Вы находитесь на странице: 1из 67

Introduccin al modelamiento de ontologas

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

Usos y aplicaciones de las ontologas


Modelo de datos compartido Definicin de un sistema complejo Estructura jerrquica de elementos y sus relaciones Validacin de datos Proporcionan una base para las tecnologas de Web Semntica Muchos otros

Algunos conceptos previos

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:

Todos los estudiantes del curso de ontologas son muy inteligentes


Podra formalizarse como F1(x) = x estudia el curso de ontologas F2(x) = x es muy inteligente

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

Nuevos predicados (conclusiones)

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

URL - URI- IRI


URL Uniform Resource Locator Universal Resource Locator Cadena de caracteres que permite referenciar un recurso sobre Internet. Ejemplos: http://www.bcn.cl/index.html ftp://documentos.bcn.cl/publicaciones/articulo1.pdf

URL - URI- IRI


URI
Uniform Resource Identifier Cadena de caracteres que permite identificar un recurso unvocamente, algo similar a una clave primaria universal. El uso de URIs permite separar el recurso de sus mltiples representaciones. Adicionalmente, una URI permite identificar segmentos Ejemplo de URI:
http://datos.bcn.cl/recurso/cl/ley/18010

Representaciones de este recurso:


http://www.leychile.cl/Navegar?idNorma=29438 http://datos.bcn.cl/recurso/cl/ley/18010/datos.rdf

URL - URI- IRI


IRI Internationalized Resource Identifier Es una URI, pero que permite cualquier tipo de carcter Unicode (como japons, Chino, Cyrlico, Espaol). Ejemplo de IRI: http://biografias.bcn.cl/wiki/Nstor_Jofr_Nez

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

Tecnologas de Web Semntica

La Web como Base de datos - enfoque

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

Tecnologas base para la Web Semntica


RDF Resource Description Framework RDFS - RDF Schema OWL Ontology Web Language

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

http://wikisiit.cl/valparaiso http://wikisiit.cl/valparaiso 501 501


http://wikisiit.cl/tieneCut

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://ejemplo.com/luis http://ejemplo.com/luis 1301 1301


http://wikisiit.cl/tieneCut http://ejemplo.com/viveEn

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 .

<http://ejemplo.com/juan> <http://ejemplo.com/tieneHijo> <http://ejemplo.com/pedro> . <http://ejemplo.com/juan> <http://ejemplo.com/viveEn> <http://wikisiit.cl/valparaiso> .

<http://wikisiit.cl/valparaiso> <http://wikisiit.cl/tieneCut> 501.

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 .

Cmo definir las clases?


Dadas las entidades de nuestro dominio, agruparlas de acuerdo a un criterio natural. Ejemplo:
Luis, Pedro, Juan, son personas -> tipo = miprefijo:Persona El Mercurio, TVN, Radio Futuro, son medios de comunicacin -> miprefijo:MedioDeComunicacin

Una misma entidad puede pertenecer a mltiples clases. Ejemplo:


Luis, Pedro, Juan -> mp:Estudiante, mp:Mamfero, mp:Cliente Luis -> Escritor Juan-> Periodista Pedro, Ingeniero

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/

Consideraciones con nuestra ontologa


Definicin de URI de la ontologa: URL de mi sitio Web + ontologias/+nombreOntologa
Ej: http://datos.bcn.cl/ontologies/bcn-biographies#

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

Validacin de nuestra ontologa


Verificacin de integridad y consistencia: http://swse.deri.org/RDFAlerts/ Validacin RDF y visualizacin en SVG: http://www.w3.org/RDF/Validator/ Generacin de documentacin: http://ontorule-project.eu/parrot/parrot

Herramientas de diseo
Protg http://protege.stanford.edu/ Altova Semantic Works

Qu son los recursos o instancias?

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.

Carctersticas de Entidades o Instancias


Pertenecen a uno o varios tipos
De acuerdo al contexto de modelado, una misma instancia puede pertenecer a uno o varios tipos. Ejemplo:
Juan Prez es una instancia Juan Prez es de tipo Persona, Ingeniero, Cliente, Hospedaje (para un microbio), Habitante, etc.

Carctersticas de las instancias


Son nicas
Debe ser posible identificarlos de manera nica. Para ello existen mltiples mtodos que permiten establecer unicidad: Identificadores Claves primarias Representacin binaria URI (para nuestro caso la fundamental)

Carctersticas de Entidades o Instancias


URIs
Representan direcciones sobre Internet. Nosotros utilizaremos URIs HTTP. ftp://www.bcn.cl/documento1.doc No es una URI HTTP http://www.bcn.cl/documento2.jpg S es una URI HTTP

Cmo definir URIs


Bsicamente 3 tipos
1.URIs jerrquicas 2.URIs de identificadores 3.Combinacin de anteriores

Cmo definir URIs


1) URIs Jerrquicas
Representan la estructura jerrquica a la que pertenece un recurso.
Ejemplo: http://datos.bcn.cl/recurso/cl/ley/ministerio-del-interior/2005-02-16/20000 Ventajas Entregan una visin natural del contexto del recurso Son altamente descriptivas Desventajas Pueden llegar a ser muy largas En estructuras complejas puede ser difcil tratarlas Normalmente implican realizar la descripcin de todos los niveles

Cmo definir URIs


2) URIs de identificadores
Representan un recurso de acuerdo a un identificador numrico nico en su tipo.
Ejemplo: http://datos.bcn.cl/page/1001 Ventajas Son cortas y fcilmente procesables No requieren delatar la estructura de su contexto

Desventajas No ofrecen informacin adicional en su composicin

Cmo definir URIs


3) Combinacin de anteriores
Representar un recurso utilizando ambos esquemas combinados. Ejemplo:
http://ejemplo.org/universidad/15/facultad/4/carrera/70 Son una buena solucin dependiendo del caso. Representacin parcial del contexto Pueden o no permitir la fcil identificacin del recurso por un humano

Cmo definir URIs


Tambin existe un elemento de extensin
Hash URIs: permiten definir un recurso RDF dentro de la URI de otro documento, normalmente alguno que lo contiene. Ejemplo:
http://datos.bcn.cl/recurso/cl/organismo/partido-politico/pelucones#fundacion Recomendado para definir recursos que pertenecen al recurso definido en la URI sin el Hash, es decir: http://datos.bcn.cl/recurso/cl/organismo/partido-politico/pelucones#fundacion Pertenece a: http://datos.bcn.cl/recurso/cl/organismo/partido-politico/pelucones

Cmo definir las URIs de nuestro modelo


1. Primero definir la base de la URI, se recomienda anteponer la palabra recurso o resource para definir que desde ese segmento se describen recursos. Ejemplo: http://datos.bcn.cl/recurso 2. Identificar los tipos de recursos de nuestro modelo que van a tener una URI. Ejemplo: Funcionario, Avin, Aerolnea, Vuelo, Pasaje, etc. 3. Definir el tipo de la URI. Si es jerrquica pensar en que todas las instancias debern seguir el mismo patrn. Si este patrn es recursivo o el nombre a utilizar como ltimo segmento de la URI se puede repetir en distintas instancias, deber ser una URI de identificador . 4. Definir elementos estticos y dinmicos de la URI 5. Identificar los tipos de recurso que se relacionan nicamente con el tipo de recurso y visualizar si existe una dependencia entre ellos. De ser as, posiblemente puede existir un Hash URI.

Cmo documentar las URIs


Definir el patrn de URI para entidades de tipo Libro <base>: http://libros.bcn.cl/recurso <base>/{idioma}/autor/{autor}/isbn/{num-ISBN} Describir sus elementos: {idioma}: corresponde a 2 letras que identifican el idioma del recurso autor: cadena esttica en la URI {autor}: corresponde al apellido del autor principal, reemplazando espacios por _ {num-ISBN}: corresponde al cdigo isbn del libro, un nmero entero Etc. Nos permitir obtener URIs como:
http://libros.bcn.cl/recurso/es/autor/neruda/isbn/65001 http://libros.bcn.cl/recurso/es/autor/mistral/isbn/2397

Cmo documentar las URIs


Generar un mapa de los patrones de URI de nuestro modelo

Qu queda pendiente
OWL SPARQL lenguaje de consulta para RDF SPARUL extensin de SPARQL, lenguaje de actualizacin para RDF

Consultas

Вам также может понравиться