39
Modelamiento de ontologías usando RDF Expositor: Francisco Cifuentes Silva Sistemas y Servicios de Información en Red - BCN 18/01/22

Curso ontologías - Modelando en E-R y RDF Schema

Embed Size (px)

Citation preview

Modelamiento de ontologías usando RDFExpositor: Francisco Cifuentes Silva

Sistemas y Servicios de Información en Red - BCN12/04/23

Objetivos

• Modelado de datos mediante E-R

• RDF y RDFS para descripción de ontologías

• Cómo definir vocabularios

• Consideraciones adicionales

• Validación y herramientas

Principios básicos de modelamiento

Principios básicos

• Modelamos para que la información tenga una estructura conocida.

• El modelo debe existir para: Evitar la redundancia de datos y consecuentes problemas de

actualización Mantener integridad de los datos (relaciones coherentes) Verificar la consistencia de la información almacenada (los

datos responden al modelo)

Aproximaciones para modelado de datos

• Modelo relacional (lógico): E. Codd 1970

• Modelo entidad – relación (conceptual): P. Chen 1976

• Elementos:

Modelo Entidad – Relación:

• Refleja la existencia de los datos, no lo que se hace con ellos

• No orientado a aplicaciones específicas

• Define elementos conceptuales

• Trabajaremos con una simplificación de él

Modelo Entidad – Relación

EntidadPersonaAtributos

•Nombre•Edad•Rut

Relaciones

Es PropietarioConduce

EntidadAutomovilAtributos

•Marca•Modelo •Patente

Relaciones

Tiene dueñoEs conducido por

Modelo Entidad – Relación

Elementos de un modelo Entidad – Relación:

• Entidad: recurso real o abstracto que representa a un conjunto de instancias.

• Relación: asociación entre dos o más entidades, normalmente representadas por un verbo.

• Atributo: propiedades de una entidad que tienen valores simples como texto, números, fechas o booleanos.

PersonaPersonanombres

apellidosfecha

nacimiento

EmpresaEmpresa

fechafundación

nombreteléfono

Trabaja en

Modelo Entidad – Relación

Simbología

• Entidad:

• Relación:

• Atributo:

PersonaPersona

fechanacimiento

Trabaja en

El modelo en entidades se traduciría a:

Modelo Entidad – Relación

•Pedro•Juan•Diego•María•Ana•Karina•…

•Pedro•Juan•Diego•María•Ana•Karina•…

•Codelco•Banco Chile•Entel•…

•Codelco•Banco Chile•Entel•…

PersonaPersona EmpresaEmpresaTrabaja

en

Modelemos en E-R el siguiente problema:• Deseamos modelar un sistema básico para aerolíneas considerando

personal, vuelos y ventas.• El sistema debe almacenar información del personal en general. Existen

tres tipos de personal, pilotos, tripulacion y administrativos. • Pilotos contratados, figuran sus datos personales y el tipo de avión que

pueden pilotar. • Los administrativos tienen sus datos personales y el número de oficina. • La compañía ofrece una serie de trayectos, los datos de un trayecto son:

origen, destino y duración• De cada trayecto hay programadas una serie de vuelos durante el año.

Cada vuelo tiene: código,fecha,hora, pasajeros, tipo de avión . • Un pasajero compra pasajes en una fecha para un determinado vuelo

especificando sus datos, el número de asientos y el administrativo que realiza la operación.

• Cada piloto tiene asignado un avión fijo durante todo el año. • Cada trayecto tiene aviones específicos asignados.

Modelo Entidad – Relación

Modelo Entidad – Relación

PersonalPersonalFecha ingreso

Tipo funcionario

Nombre completo

Trabaja en AerolíneaAerolínea

PasajeroPasajero

AviónAviónTrayectoTrayecto

VueloVuelo

PasajePasaje

posee ofrece

pertenece autiliza

tripula

Sabe pilotarPilotea

vende

compra pertenece a

nombrePágina

web

origendestino

duración

código

Lleva a

Fecha-hora

Nº oficina

Nº asiento

modelo

Pertenece a

Nombre completo

Observaciones al modelo:

• Parte del diseño depende del criterio de quien modela, sin embargo hay elementos que son evidentes.

• Se pueden realizar mejoras, ejemplo:

• Personal y Pasajeros son personas -> comparten elementos comunes

• Administrativos y pilotos tienen diferencias, pero son tratados como personal de forma similar.

• Existen atributos y relaciones con el mismo nombre para distintas entidades. Eventualmente podrían ser propiedades con dominio y rango múltiple.

• Para nuestro caso, una clave que reflejará que el elementos es único es su URI.

Modelo Entidad – Relación

Resource Description Framework

Qué es RDF

• Resource Description Framework – Marco de trabajo para la descripción de recursos

• Recomendación W3C desde febfero de 2004 http://www.w3.org/TR/rdf-primer/

• La primera definición surge en 1999 por TmBL, de ahí la URL en el espacio de nombre: xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#

Qué es RDF

• Descripción mediante lógica declarativa

• Solo dos constructos básicos: URIs y valores• URI: http://www.ejemplo.com/Juanito

• Valor: “123”, “Valor textual”, “2012-12-21”, verdadero/falso

• Web Semántica -> 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 quién se está hablando.

– Predicado (o también llamado propiedad): qué se está declarando.

– Objeto: el valor de lo declarado.

Qué es RDF

• Ejemplo:

Sujeto Predicado Objeto

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”De quién se hablaDe quién se habla El valor de lo declaradoEl valor de lo declaradoQué se está declarandoQué se está declarando

Qué es RDF

Las declaraciones se pueden representar como un grafo dirigido:

http://ejemplo.com/juanhttp://ejemplo.com/juan “1945-01-02”“1945-01-02”

http://wikisiit.cl/valparaisohttp://wikisiit.cl/valparaiso

http://ejemplo.com/pedrohttp://ejemplo.com/pedro

http://ejemplo.com/nacimiento

http://ejemplo.com/tieneHijo

http://ejemplo.com/viveEn

“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 composicionalhttp://ejemplo.com/juanhttp://ejemplo.com/juan “1945-01-02”“1945-01-02”

http://wikisiit.cl/valparaisohttp://wikisiit.cl/valparaiso

http://ejemplo.com/pedrohttp://ejemplo.com/pedro

http://ejemplo.com/nacimiento

http://ejemplo.com/tieneHijo

http://ejemplo.com/viveEn

“501”“501” http://wikisiit.cl/tieneCut

http://ejemplo.com/luishttp://ejemplo.com/luis

“1990-07-13”“1990-07-13”

http://wikisiit.cl/santiagohttp://wikisiit.cl/santiago

http://ejemplo.com/Personahttp://ejemplo.com/Persona

http://ejemplo.com/nacimiento

rdf:type

http://ejemplo.com/viveEn

“1301”“1301”

http://wikisiit.cl/tieneCut

http://ejemplo.com/tieneHijo

Qué es RDF

• Sujeto siempre es una URI y representan un recurso.

• Predicado siempre es una URI y representa una conexión entre un sujeto y un objeto, normalmente una relación del sujeto con algo o un atributo del sujeto.

• Objeto puede ser tanto una URI o un valor literal.

Sujeto Predicado Objeto

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”

Qué es RDF

• Ejemplo en RDF (sintaxis N TRIPLES):

Archivo ejemplo.ntriples

<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”.

Sintaxis de RDF

Algunas Sintaxis de RDF:

• RDF/XML: Una de las más complejas a la lectura humana, pero más 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 definición de prefijos.

• JSON: Sintaxis orientada a utilizar la información 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 visualización en hojas de cálculo.

• RDFa: Permite incrustar RDF en atributos (RDF a) de etiquetas HTML.

• YAML: Similar a JSON, pero con la sintaxis de YAML.

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:tieneHijo ej:pedro .ej:viveEn ws:valparaiso .

ws:valparaiso ws:tieneCut “501” .

Reglas y Convenciones de sintaxis en N3

• Nombres de clases se escriben con caracteres alfanuméricos, con la primera letra de cada palabra en mayúscula y sin espacios

ej:VehiculoMotorizado a rdfs:Class .

• Nombres de entidades se escriben bajo la misma regla anterior, salvo que la primera palabra completa va en minúscula

ej:motoAK2344 a ej:VehiculoMotorizado.

ej:avionRTR334 a ej:VehiculoMotorizado.

• Una tripleta siempre termina con punto .

Algunas reglas de sintaxis en N3

• Múltiples clases de un recurso se separan por comas.ej:avionRTR334 a ej:VehiculoMotorizado, ej:VehiculoAereo, ej:AvionDePasajeros.

• Múltiples declaraciones para un mismo recurso se pueden simplificar separándolas por punto y coma.ej:avionRTR334 a ej:VehiculoMotorizado, ej:Avion;

ej:patente “RTR334”;

ej:piloto ej:juan.

• Es lo mismo que:

ej:avionRTR334 a ej:VehiculoMotorizado .

ej:avionRTR334 a ej:Avion .

ej:avionRTR334 ej:patente “RTR334” .

ej:avionRTR334 ej:piloto ej:juan.

Clases en RDF

• Una clase será, para nuestro caso, equivalente a una entidad E-R

• 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 .

¿Cómo 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 comunicación -> miprefijo:MedioDeComunicación

• Una misma entidad puede pertenecer a múltiples clases. Ejemplo:– Luis, Pedro, Juan -> mp:Estudiante, mp:Mamífero, mp:Cliente

– Luis -> Escritor

– Juan-> Periodista

– Pedro, Ingeniero

Jerarquía en RDF

• Existen clases más generales y más específicas bajo un mismo concepto (Jerarquía)

• RDF permite definir jerarquía 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 .

Jerarquía en RDF

Con esta información, podríamos inferir cosas “como obtener los familiares de un agente”

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 .

Propiedades en RDF

• Las entidades de una misma clase siempre tienen elementos comunes a nivel estructural. Ejemplo:– Persona: nombre, número de pasaporte, dirección, etc.

– Medio de comunicación: 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.

• Las propiedades son entidades de tipo rdf:Property

Propiedades en RDF

• Las propiedades o predicados en RDF pueden relacionarse con entidades de múltiples 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:Organization .foaf:name rdfs:range xsd:string .ej:foto rdfs:range ej:Foto .

Sujeto, propiedad, objeto

Elementos deldominio

Elementos delrango

Tipos de propiedades

Respecto a E-R, las propiedades son relaciones + atributos, en RDF:

• 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 rdf:Property.ej:tieneHijo a rdf:Property .ej:nacimiento a owl:DatatypeProperty .ej:tieneHijo a owl:ObjectProperty .

Documentar la ontología

Uno de los puntos más importantes en el desarrollo de una ontología

Permitirá entender el modelo y el contexto por quienes la usen

Documentar clases y propiedades permitirá mejorar el modelo

Puede ser multilingüe y versionada

Propiedades estándar para documentación: 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 ontologías

Existen vocabularios de uso general que ya modelan ciertos dominios, algunas de las más conocidas son:– FOAF: Friend of a friend

– DC: Dublin Core

– GN: Geonames

– GEO: Información geográfica

– SDMX: Información estadística

– XBRL: Información financiera y económica

– Datacube / Scovo: Estadísticas y OLAP

– TIME: Tiempo, fechas, periodos

– BIO: Información biográfica

– FRBR: Información bibliográfica

Vocabularios y ontologías

Vocabularios BCN:

– bcntransparency: Modelo organizacional orientado a la transparencia

– bcnbio: Modelo de información biográfica de personas y organismos

– bcngeo: Modelo de información geográfica del país

– bcnnorms: Modelo de normas

– bcnres: Modelo de recursos legislativos

– bcncon: Modelo de congreso nacional

Consideraciones con nuestra ontología

Definición de URI de la ontología:

URL de mi sitio Web + “ontologias/”+nombreOntologíaEj: http://datos.bcn.cl/ontologies/bcn-biographies#

• A partir de esta URI se describirán todas las clases y propiedades de la ontología.

• También en ella se publicarán las restricciones y reglas que definamos

Definición del prefijo de la ontología: No más de 8 caracteres por prefijo (simplificar) Verificar si está en uso: http://prefix.cc

Vocabularios y ontologías

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/

Validación de nuestra ontología

Verificación de integridad y consistencia:

http://swse.deri.org/RDFAlerts/

Validación RDF y visualización en SVG:

http://www.w3.org/RDF/Validator/

Generación de documentación:

http://ontorule-project.eu/parrot/parrot