Mikel Egaña Arangurenhttp://mikeleganaaranguren.com / mikel.egana.aranguren@gmail.com
OWL es un estándar oficial del W3C para crear ontologías en la web con un semántica precisa y formal
OWL se basa en Lógica Descriptiva (DL)
Representación computacional de un dominio de conocimiento:
Para ordenadores: RDF/XML, OWL/XML, ...
Para humanos: Manchester OWL Syntax, functional, ...
Una ontología OWL esta compuesta de:
Una ontología puede importar otra (owl:import) y hacer referencia a sus entidades mediante axiomas
Una ontología OWL formada por individuos y clases es una "Base de Conocimiento" (KB) formada por:
(+ QCR!) Manchester tutorial
disjointFrom
booleanos: not, or, and
Jerarquía propiedad-subpropiedad (~taxonomía pero con propiedades), ej:
Solo funcional
Dominio clases, rango datatypes
Anotar con lenguaje natural entidades (propiedades, clases, individuos), axiomas, ontologías
Fuera de la semántica
rdfs:label, rdfs:comment, dublin core, a medida
Miembro de una o más clases (Types)
Igual (SameAs) o diferente (DifferentFrom) a otro individuo
Relaciones binarias con otros individuos o datos (triples), positivas o negativas
Un razonador infiere los "nuevos" axiomas que implican los axiomas que hemos introducido en la ontología
El razonador infiere todos los axiomas; es útil para tratar con conocimiento complejo
Open World Assumption (OWA)
(Falta de) Unique Name Assumption (¡owl:sameAs!)
Mantener taxonomía
Consistencia
Clasificar entidades y consultas
Clasificar entidades: dada una entidad nueva, como se relaciona con las demas entidades (types, equivalentTo, subClassOf, triples)
Una consulta es una clase anónima que clasificamos contra la ontología como si fuese una entidad
Ejercicios: owl_assignment.pdf
Soluciones:
RDF es un estándar oficial del W3C para representar información en la web
Un grafo RDF es un conjunto de triples
Algunos objetos pueden ser valores literales (Cadenas de caracteres)
Sujetos y predicados sólo pueden ser recursos
Los valores literales pueden tener tipo (XML Schema datatypes)
rdf:type: agrupar recursos en clases
Cada recurso (Sujeto, predicado, objeto) tiene una URI
URI: Uniform Resource Identifier (RFC3986)
RDF usa espacios de nombres XML mediante "qualified names"
Vocabulario: URIs bajo un espacio de nombre
RDF es un modelo para representar datos
Ese modelo abstracto se puede representar con diferentes sintaxis: "Serializar" (escribir) en un archivo
Una de esas sintaxis es RDF/XML
No confundir el modelo con la sintaxis: ¡RDF es mucho más que un archivo XML!
Lenguaje para hacer consultas sobre grafos RDF (~"El SQL para RDF")
Familiarizarse con los datos que vamos que vamos a usar para Linked Data
RDF (raw); copiar y pegar en RDF validator
OWL (raw); bajar y abrir con Protégé
Un triple store Stardog en cada puerto: http://biomaster.atica.um.es:8180
Cada alumno tiene un puerto asignado (8181-8193)
cd /home/USER/LinkedDataServer/
export STARDOG_HOME=/home/USER/LinkedDataServer/stardog-3.0-home
export PATH=/home/USER/LinkedDataServer/stardog-3.0/bin:$PATH
stardog-admin server start --port 8180
stardog-admin --server snarl://localhost:8180 db create -n um
stardog data add snarl://localhost:8180/um data/data2.rdf data/data.rdf
DataBases; um; query (admin;admin)
DataBases; um; browse (admin;admin)
QUERY 1: Obtener todos los triples del dataset
QUERY 2: ¿Que entidad se relaciona con Prot B a traves del predicado codifiedBy?
QUERY 3: ¿Cual es el rdfs:label de Prot B?
QUERY 4: ¿Que instancias pertenecen a la clase Organelle?
QUERY 5: ¿Que entidad es parte de algo (part of) y esta codificada (codifiedBy) por un gen?
QUERY 6: ¿En que triples aparece Prot A como sujeto?(*)
QUERY 7: Inferencia. ¿Con que entidades se relaciona Gene B a traves de part of?¿Debería ser parte de Nucleus?
QUERY 8: Consultas federadas. Ejemplo Uniprot. ¿Que entidad de nuestro dataset es owl:sameAs otra entidad de Uniprot que es el sujeto del triple http://purl.uniprot.org/core/classifiedWith http://purl.obolibrary.org/obo/GO_0005890?
Un método para ofrecer datos directamente en la web
Una propuesta del W3C: http://www.w3.org/standards/semanticweb/data
LD utiliza la tecnología ya existente (URI, HTTP, ...) para ofrecer una primera versión de la Web Semántica
RDF ofrece el triple, un modelo de datos explícito y homogéneo: una "frase" estándar que los ordenadores pueden "entender"
En el triple, cada entidad (sujeto, predicado, objeto) tiene una URI que lo identifica
Los datos son enlazados a otros datos a través de la web, con enlaces explícitos
Internet de datos, en vez de documentos: "Base de Datos universal":
Navegamos directamente por las datos (RDF), en vez de navegar a través de documentos que representan esos datos en lenguaje natural (HTML)
Enlazar datos nuevos es tan fácil como enlazar páginas web: crecimiento orgánico de la red
Un "triple store" contiene diferentes grafos
Solo recibiremos los triples de ese triple store (¡Pero nosotros o nuestro agente automático podemos seguir los enlaces! "Follow your nose")
URI identifica a la entidad; URLs identifican (localizan!) diferentes representaciones (RDF, HTML, ...) de la entidad
Descripción de la entidad (RDF, HTML, ...) ≠ entidad
HTTP URIs dereferenciable: cuando se busca una URI, deberia devolver una descripción adecuada del objeto que identifica esa URI
Semántica: el significado de nuestro datos es explícito y claro, debido a RDF (instancias) + OWL ("esquema"): es fácil crear aplicaciones, incluyendo razonamiento automático (ej. agentes)
Ejercicio práctico: recrear todo el proceso de publicar nuestro dataset Linked Data en nuestro servidor, en una infraestructura ya preparada (Linked Data Server)
"Pack" ya listo y configurado para publicar Linked Data en localhost (Solo para GNU/Linux)
Stardog: http://biomaster.atica.um.es:8180
LinkedDataServer.js: var port=3030; var endpoint_url = "http://localhost:8180/";
nodejs LinkedDataServer.js
curl --header "accept: application/rdf+xml" http://biomaster.atica.um.es:3030/resource/Prot_B
curl --header "accept: text/html" http://biomaster.atica.um.es:3030/resource/Prot_B
Añadir un triple a un entidad externa y publicar en Linked Data server
Crear otro dataset y publicar en Linked Data server
Arreglar alguno de los bugs de LinkedDataServer
Linked Data, the story so far (Christian Bizer, Tom Heath, Tim Berners-Lee)
Linked Data: Evolving the Web into a Global Data Space (Christian Bizer, Tom Heath)
Semantic Web Health Care and Life Sciences Interest Group (W3C HCLS IG): Health Care and Life Science (HCLS) Linked Data Guide
Programming the Semantic Web (O'Reilly)