Академический Документы
Профессиональный Документы
Культура Документы
Expositor: Francisco Cifuentes Silva Sistemas y Servicios de Informacin en Red - BCN 06/12/2012
Objetivos
Introducir al modelamiento de ontologas Definir conceptos clave Describir una metodologa de modelado sin considerar aun factores tcnicos Acercar a los asistentes a una primera fase de modelamiento Realizar una prctica para internalizar lo expuesto
Introduccin
El gran problema
Personas, organizaciones y sistemas de software necesitan comunicarse Cada uno tiene diferente conocimiento previo, contexto y puntos de vista Visin compartida dificulta la construccin de sistemas
Un ejemplo: qu es la leche?
Personas Alimento
Empresa
Producto
Software
Cdigo binario
Una solucin
Una ontologa permitir:
Comunicacin: unificar puntos de vista Interoperabilidad: un lenguaje comn para todos
Beneficios
Reusabilidad: podr usarse en mltiples contextos, tiempo, etc. Fiabilidad: cierta certeza de los datos respecto a un modelo Especificacin: homogeneizar realidad, puntos de vista, acuerdo
Qu es una ontologa?
Nace en la filosofa, rama de la metafsica que estudia la existencia de las entidades.
En informtica
Es una especificacin de una conceptualizacin Thomas Gruber, 1993
Qu es una ontologa?
Las ontologas son modelos conceptuales que capturan y hacen explcito el vocabulario usado en un dominio o en una aplicacin semntica, de forma de garantizar la ausencia de ambigedades Breitman et al., 2007
Una ontologa es leble tanto por humanos como por mquinas. En conjunto con una sintaxis y semntica, provee el lenguaje por el que sistemas basados en conocimiento pueden interoperar (ej. Intercambiar aserciones, consultas y respuestas). Una ontologa determina lo que existe para un sistema.
Gruber, 1992
Lgica de predicados
Tipos de frases en el lenguaje:
Interrogativo Imperativo Declarativo
Lgica estudia formalizacin del conocimiento humano mediante expresiones matemticas Lgica de predicados estudia frases declarativas en donde se distinguen dos elementos:
Qu se afirma (predicado) De quin se afirma (objeto)
Lgica de predicados
Ejemplo:
Inferencia
Mecanismo por el cual obtenemos conclusiones a partir de declaraciones establecidas anteriormente Ejemplo A) Todos los estudiantes del curso de ontologas son muy inteligentes B) Yo soy estudiante del curso de ontologas Inferencia A y B => Yo soy inteligente
Razonador
Herramienta de software capaz de realizar inferencias (obtener conclusiones) a partir de declaraciones realizadas en algn lenguaje de descripcin de predicados lgicos.
Conjunto de predicados
Razonador
Consistencia
Propiedad de un conjunto de datos que indica que dentro de ellos como conjunto no existe una contradiccin. La consistencia semntica implica adicionalmente que el conjunto de datos est basado en un modelo existente.
HTTP
Hyper Text Transfer Protocol
Primera versin por Tim Berners-Lee 1990 Especificacin RFC2616 (1.1) Base de lo que conocemos como la Web
Internet servidor
Peticin HTTP Respuesta HTTP
cliente
http://www.w3.org/2003/Talks/0904-IUC-IRI/slide11-0.html
URI HTTP
Una URI HTTP es una URI sobre la Web Ejemplo:
http://www.bcn.cl
Web Semntica?
Activar un nuevo modelo mental, posibilita nuevos tipos de bsqueda en la Web. cmo obtenemos el siguiente resultado de bsqueda?
Todas las novelas de autores nacidos en Amrica del sur antes de 1950 que hablen sobre viajes a alguna ciudad Europea
Qu es RDF
Resource Description Framework Marco de trabajo para la descripcin de recursos Recomendacin W3C desde febfero de 2004 http://www.w3.org/TR/rdf-primer/ La primera definicin surge en 1999 por TmBL, de ah la URL en el espacio de nombre: xmlns:rdf=http://www.w3.org/1999/02/22rdf-syntax-ns#
RDF
Modelo de datos en forma de grafo, cada nodo es un Recurso: URI Literal Las aristas del grafo son tambin URIs y tambin pueden ser recursos Varios formatos de representacin (mltiples sintaxis): RDF/XML, CSV, RDFa, Turtle, etc. (http://datos.bcn.cl/recurso/cl/ley/2000) Relacin es unidireccional
http://ejemplo2.org#tieneHijo
http://ejemplo.org#Pedro
http://ejemplo2.org#tieneEdad http://ejemplo2.org#viveEn
http://ejemplo.org#Juan
40
http://ejemplo.org#Chile
Qu es RDF
Descripcin mediante lgica declarativa Solo dos constructos bsicos: URIs y valores
URI: http://www.ejemplo.com/Juanito Valor: 123, Valor textual, 2012-12-21, verdadero/falso
Permite describir tanto modelos como datos Web Semntica -> se usa HTTP
Qu es RDF
Basado en el concepto de Tripleta (RDF triple) En RDF todo se describe con tripletas Una tripleta RDF se compone de tres partes:
Sujeto: de quin se est hablando. Predicado (o tambin llamado propiedad): qu se est declarando. Objeto: el valor de lo declarado.
Qu es RDF
Ejemplo:
Sujeto http://ejemplo.com/juan http://ejemplo.com/juan http://ejemplo.com/juan Predicado http://ejemplo.com/nacimient o http://ejemplo.com/tieneHijo http://ejemplo.com/viveEn Objeto 1945-01-02 http://ejemplo.com/pedro http://wikisiit.cl/valparaiso 501
http://wikisiit.cl/valparaiso http://wikisiit.cl/tieneCut
De quin se habla
Qu se est declarando
El valor de lo declarado
Qu es RDF
Las declaraciones se pueden representar como un grafo dirigido:
http://ejemplo.com/juan http://ejemplo.com/juan
http://ejemplo.com/nacimiento
1945-01-02 1945-01-02
http://ejemplo.com/tieneHijo
http://ejemplo.com/pedro http://ejemplo.com/pedro
http://ejemplo.com/viveEn
Qu es RDF
Este grafo puede ser declarado como un subconjunto mediante URI: http://www.ejemplo.com/migrafo : grafo nombrado (Named graph) RDF es composicional
1945-01-02 1945-01-02
http://ejemplo.com/juan http://ejemplo.com/juan
http://ejemplo.com/nacimiento
1990-07-13 1990-07-13
http://ejemplo.com/tieneHijo
http://ejemplo.com/pedro http://ejemplo.com/pedro
http://ejemplo.com/nacimiento
http://ejemplo.com/viveEn
http://ejemplo.com/tieneHijo
http://wikisiit.cl/valparaiso http://wikisiit.cl/valparaiso
http://ejemplo.com/Persona http://ejemplo.com/Persona
501 501
http://wikisiit.cl/tieneCut
rdf:type
http://wikisiit.cl/santiago http://wikisiit.cl/santiago
Qu es RDF
Sujeto siempre es una URI y representan un recurso. Predicado siempre es una URI y representa una conexin entre un sujeto y un objeto, normalmente una relacin del sujeto con algo o un atributo del sujeto. Objeto puede ser tanto una URI o un valor literal.
Sujeto http://ejemplo.com/juan http://ejemplo.com/juan http://ejemplo.com/juan Predicado http://ejemplo.com/nacimient o http://ejemplo.com/tieneHijo http://ejemplo.com/viveEn Objeto 1945-01-02 http://ejemplo.com/pedro http://wikisiit.cl/valparaiso 501
http://wikisiit.cl/valparaiso http://wikisiit.cl/tieneCut
Qu es RDF
Ejemplo en RDF (sintaxis N TRIPLES):
<http://ejemplo.com/juan> <http://ejemplo.com/nacimiento> 1945-01-02 .
Archivo ejemplo.ntriples
Qu es RDF
Para simplificar la escritura se definen espacios de nombre (prefijos) de la forma: @PREFIX ej: <http://ejemplo.com/> . Sintaxis N3 permite el uso de prefijos
@PREFIX ej: <http://ejemplo.com/> . @PREFIX ws: <http://wikisiit.cl/> . ej:juan ej:nacimiento 1945-01-02 . ej:juan ej:tieneHijo ej:pedro . ej:juan ej:viveEn ws:valparaiso . ej:juan ws:valparaiso ws:tieneCut 501 .
Sin prefijos
<http://ejemplo.com/juan> <http://ejemplo.com/juan> <http://ejemplo.com/juan> <http://wikisiit.cl/valparaiso> <http://ejemplo.com/nacimiento> 1945-01-02 . <http://ejemplo.com/tieneHijo> <http://ejemplo.com/pedro> . <http://ejemplo.com/viveEn> <http://wikisiit.cl/valparaiso> . <http://wikisiit.cl/tieneCut> 501.
Sintaxis de RDF
Algunas Sintaxis de RDF: RDF/XML: Una de las ms complejas a la lectura humana, pero ms facilmente procesable por estar en XML. N3: Descripciones declarativas simples, permite definir espacios de nombre (prefijos) que facilitan la lectura. N Triples: Subconjunto de N3, pero a diferencia de ella no permite la definicin de prefijos. JSON: Sintaxis orientada a utilizar la informacin directamente en Javascript o un parser de este. Los datos se estructuran como un arreglo asociativo o hash map. CSV: Describe los datos columnas, orientado a la visualizacin en hojas de clculo. RDFa: Permite incrustar RDF en atributos (RDF a) de etiquetas HTML. YAML: Similar a JSON, pero con la sintaxis de YAML.
Clases en RDF
Una clase ser, para nuestro caso, equivalente a una entidad E-R Herencia mltiple altamente utilizada Para definir una clase en RDF se utiliza el predicado y objeto rdf:type rdfs:Class o rdf:type owl:Class . En N3 rdf:type = a
ej:Persona rdf:type rdfs:Class . ej:Persona a owl:Class . ej:NormaLegal a rdfs:Class . ej:Pais a owl:Class . ej:chile a ej:Pais . ej:juan a ej:Persona .
Clases en RDF
La clase de una entidad se define mediante rdf:type. Objetos literales definen tipos xsd o declaraciones propias Objetos que son recursos con URI definen tipo con rdf:type
@PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @PREFIX ej: <http://ejemplo.com/> . ej:juan a ej:Persona, bcn:Funcionario ; ej:nacimiento 1945-01-02^^xsd:date ; ej:tieneHijo ej:pedro . ej:tieneHijo a rdf:Property . ej:pedro rdf:type ej:Estudiante .
Jerarqua en RDF
Existen clases ms generales y ms especficas bajo un mismo concepto (Jerarqua) RDF permite definir jerarqua de clases y propiedades mediante dos predicados:
rdfs:subClassOf rdfs:subPropertyOf
ej:pedro a foaf:Person . foaf:Person rdfs:subClassOf foaf:Agent . foaf:Organization rdfs:subClassOf foaf:Agent . ej:pedro ej:tieneHijo ej:juan. ej:tieneHijo rdfs:subPropertyOf ej:tieneFamiliar .
Jerarqua en RDF
ej:pedro a foaf:Person . foaf:Person rdfs:subClassOf foaf:Agent . foaf:Organization rdfs:subClassOf foaf:Agent . ej:pedro ej:tieneHijo ej:juan. ej:tieneHijo rdfs:subPropertyOf ej:tieneFamiliar .
Con esta informacin, podramos inferir cosas como obtener los familiares de un agente
Propiedades en RDF
Las entidades de una misma clase siempre tienen elementos comunes a nivel estructural. Ejemplo:
Persona: nombre, nmero de pasaporte, direccin, etc. Medio de comunicacin: director, periodostas, noticias
A estos elementos comunes les llamaremos propiedades asociadas a la clase. Las propiedades no pertenecen a las clases. Las propiedades conectan recursos con otros recursos. Respecto a E-R, las propiedades son relaciones + atributos
Propiedades en RDF
Las propiedades o predicados en RDF pueden relacionarse con entidades de mltiples clases. Se puede restringir su dominio mediante rdfs:domain y su rango mediante rdfs:range Entidades de distintas clases pueden tener una misma propiedad.
ej:juan a foaf:Person, ej:Funcionario ; foaf:name Ministro Juan; ej:foto <http://www.juan.cl/yo.jpg> . ej:bcn a foaf:Organization; foaf:name Biblioteca del Congreso Nacional; ej:foto <http://www.bcn.cl/foto.jpg> . foaf:name rdfs:domain foaf:Agent. ej:foto rdfs:domain ej:Funcionario. foaf:name rdfs:range xsd:string . ej:foto rdfs:range ej:Foto .
Tipos de propiedades
Object Properties: Propiedades que tienen como en su objeto (rango) a un recurso declarado en una URI Datatype Properties: Propiedades que tienen en su objeto (rango) un valor literal.
@PREFIX owl: <http://www.w3.org/2002/07/owl#> . @PREFIX ej: <http://ejemplo.com/> . ej:juan ej:nacimiento 1945-01-02 ; ej:tieneHijo ej:pedro . ej:nacimiento a owl:DatatypeProperty . ej:tieneHijo a owl:ObjectProperty .
Documentar la ontologa
Uno de los puntos ms importantes en el desarrollo de una ontologa Permitir entender el modelo y el contexto por quienes la usen Documentar clases y propiedades permitir mejorar el modelo Puede ser multilinge y versionada Propiedades estndar para documentacin: rdfs:label y rdfs:comment
ej:Persona rdfs:label Persona@es ; rdfs:label Person@en ; rdfs:label Personne@fr; rdfs:label Person@de; rdfs:comment Un ser humano, esta clase es sub clase de foaf:Person@es; rdfs:comment A human being, this class is subclass of foaf:Person@en .
Vocabularios y ontologas
Existen vocabularios de uso general que ya modelan ciertos dominios, algunas de las ms conocidas son:
FOAF: Friend of a friend DC: Dublin Core GN: Geonames GEO: Informacin geogrfica SDMX: Informacin estadstica XBRL: Informacin financiera y econmica Datacube / Scovo: Estadsticas y OLAP TIME: Tiempo, fechas, periodos BIO: Informacin biogrfica FRBR: Informacin bibliogrfica
Vocabularios y ontologas
Vocabularios BCN:
bcntransparency: Modelo organizacional orientado a la transparencia bcnbio: Modelo de informacin biogrfica de personas y organismos bcngeo: Modelo de informacin geogrfica del pas bcnnorms: Modelo de normas bcnres: Modelo de recursos legislativos bcncon: Modelo de congreso nacional
Vocabularios y ontologas
Para buscar vocabularios existentes relacionados con nuestro dominio, algunas herramientas (http://www.w3.org/wiki/Search_engines):
http://kmi-web05.open.ac.uk/WatsonWUI/
http://swoogle.umbc.edu/
http://ws.nju.edu.cn/falcons/objectsearch/
A partir de esta URI se describirn todas las clases y propiedades de la ontologa. Tambin en ella se publicarn las restricciones y reglas que definamos
Definicin del prefijo de la ontologa: No ms de 8 caracteres por prefijo (simplificar) Verificar si est en uso: http://prefix.cc
Herramientas de diseo
Protg http://protege.stanford.edu/ Altova Semantic Works
Algunas definiciones
Instancia (programacin)
En programacin, una instancia se produce con la creacin de un objeto perteneciente a una clase (se dice que se instancia la clase). El objeto que se crea tiene los atributos, propiedades y mtodos de la clase a la que pertenece. Fuente: Wikipedia
Recursos o Instancias
En RDF, un recurso representar algo que se puede describir. El recurso de quin se habla, o se est declarando algo en RDF es siempre el sujeto: Sujeto -> predicado -> Objeto Juan -> naci en -> Santiago Un recurso ser una instancia de una o varias clases Un recurso tendr un tipo definido en la ontologa
Instancias
De esta manera, consideraremos como instancia, a un recurso que puede ser modelado en una ontologa, que a su vez es instancia de una clase, ya sea explcita o implcitamente.
Qu queda pendiente
OWL SPARQL lenguaje de consulta para RDF SPARUL extensin de SPARQL, lenguaje de actualizacin para RDF
Consultas