SlideShare uma empresa Scribd logo
1 de 39
Modelamiento de ontologías usando RDF
                          Expositor: Francisco Cifuentes Silva
            Sistemas y Servicios de Información en Red - BCN
                                                     09/04/12
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
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


                               Relaciones
                Entidad                           Entidad
                Persona       Es Propietario     Automovil
                                Conduce           Atributos
                Atributos
              •Nombre                           •Marca
              •Edad                             •Modelo
              •Rut                              •Patente
                               Relaciones

                               Tiene dueño
                             Es 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.


                       fecha                           nombre
      apellidos      nacimiento             teléfono               fecha
                                                                 fundación


nombres                           Trabaja
                                    en
                  Persona                              Empresa
Modelo Entidad – Relación
Simbología

• Entidad:      Persona



• Relación:       Trabaja
                    en



                  fecha
• Atributo:     nacimiento
Modelo Entidad – Relación
El modelo en entidades se traduciría a:
                               Trabaja
        Persona                  en            Empresa


•Pedro                                    •Codelco
•Juan                                     •Banco Chile
•Diego                                    •Entel
•María                                    •…
•Ana
•Karina
•…
Modelo Entidad – Relación
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
                           Nº                                                                        Página
                                                                                                      web                  nombre
             Tipo          oficina   Nombre
             funcionario             completo


Fecha                                                              Trabaja en                           Aerolínea
ingreso
                              Personal



                                                    Sabe pilotar                posee                                              ofrece
                 vende
                                                      Pilotea                                  modelo
Nº asiento                                                                                                                                  origen
                                                                                                                       destino
                                            tripula                             Avión
               Pasaje                                                                                Pertenece
                                                                                                                                 Trayecto
                                                                                                         a

                                                                                                                   duración
                compra
                                                pertenece a                         utiliza
                                                                                                                                 pertenece a



             Pasajero                           Lleva a                                        Vuelo

    Nombre                                                                              Fecha-hora
    completo                                                                                                  código
Modelo Entidad – Relación
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.
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/valparais    http://wikisiit.cl/tieneCut    “501”
 o

De quién 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/nacimiento         “1945-01-02”



                http://ejemplo.com/tieneHijo
                                                          http://ejemplo.com/pedro


               http://ejemplo.com/viveEn


                                                          http://wikisiit.cl/valparaiso


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

                                                                                                                                            “1990-07-13”

                     http://ejemplo.com/tieneHijo
                                                              http://ejemplo.com/pedro
                                                                                                                           http://ejemplo.com/nacimiento
                                                                                               http://ejemplo.com/tieneHijo
                    http://ejemplo.com/viveEn


                                                              http://wikisiit.cl/valparaiso
                                                                                                                                              http://ejemplo.com/Persona

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




                                                                                                                                                 rdf:type
                                                                                                            http://ejemplo.com/luis
“1301”


            http://wikisiit.cl/tieneCut                                                       http://ejemplo.com/viveEn
                                     http://wikisiit.cl/santiago
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/valparais   http://wikisiit.cl/tieneCut    “501”
o
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
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
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 información, podríamos 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, 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 ;
   Sujeto, propiedad, objeto       foaf:name “Ministro Juan”;
                                   ej:foto <http://www.juan.cl/yo.jpg> .
                               ej:bcn a foaf:Organization;
                                   foaf:name “Biblioteca del Congreso
Elementos del    Elementos del
                                      Nacional”;
   dominio           rango         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 .
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ía
        Ej: 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

Mais conteúdo relacionado

Mais procurados

Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
innovalabcun
 
Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos original
Jose Angel Rodriguez
 
Algebra relacional i-bdi
Algebra relacional i-bdiAlgebra relacional i-bdi
Algebra relacional i-bdi
Deisy Montoya
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
josecuartas
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
LuiS YmAY
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacion
oswchavez
 
Bases de Datos - Parte 5/10 Modelo relacional
Bases de Datos - Parte 5/10 Modelo relacionalBases de Datos - Parte 5/10 Modelo relacional
Bases de Datos - Parte 5/10 Modelo relacional
Carlos Castillo (ChaTo)
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
josecuartas
 
Normalización Usando Dependencias Funcionales - Segunda Forma Normal
Normalización Usando Dependencias Funcionales - Segunda Forma NormalNormalización Usando Dependencias Funcionales - Segunda Forma Normal
Normalización Usando Dependencias Funcionales - Segunda Forma Normal
Yessenia I. Martínez M.
 

Mais procurados (20)

Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
Programación Orientada a Objetos
Programación Orientada  a ObjetosProgramación Orientada  a Objetos
Programación Orientada a Objetos
 
Metodología orientada a objetos
Metodología orientada a objetosMetodología orientada a objetos
Metodología orientada a objetos
 
Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos original
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de Datos
 
Algebra relacional i-bdi
Algebra relacional i-bdiAlgebra relacional i-bdi
Algebra relacional i-bdi
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la poo
 
Modelo objeto semántico
Modelo objeto semánticoModelo objeto semántico
Modelo objeto semántico
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Reglas de Produccion
Reglas de ProduccionReglas de Produccion
Reglas de Produccion
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
5 polimorfismo
5 polimorfismo5 polimorfismo
5 polimorfismo
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacion
 
Diccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónDiccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de información
 
Bases de Datos - Parte 5/10 Modelo relacional
Bases de Datos - Parte 5/10 Modelo relacionalBases de Datos - Parte 5/10 Modelo relacional
Bases de Datos - Parte 5/10 Modelo relacional
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)
 
Conceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de DatosConceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de Datos
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Normalización Usando Dependencias Funcionales - Segunda Forma Normal
Normalización Usando Dependencias Funcionales - Segunda Forma NormalNormalización Usando Dependencias Funcionales - Segunda Forma Normal
Normalización Usando Dependencias Funcionales - Segunda Forma Normal
 

Mais de Francisco Cifuentes Silva

Presentación Linked data BCN - Red linked data españa
Presentación Linked  data BCN  - Red linked data españaPresentación Linked  data BCN  - Red linked data españa
Presentación Linked data BCN - Red linked data españa
Francisco Cifuentes Silva
 

Mais de Francisco Cifuentes Silva (12)

Tecnologías Semánticas para análisis político y legislativo
Tecnologías Semánticas para análisis político y legislativoTecnologías Semánticas para análisis político y legislativo
Tecnologías Semánticas para análisis político y legislativo
 
Modelo de enriquecimiento semántico de recursos de información
Modelo de enriquecimiento semántico de recursos de informaciónModelo de enriquecimiento semántico de recursos de información
Modelo de enriquecimiento semántico de recursos de información
 
Participación de la BCN en la Global Legislative Hackathon 2016.
Participación de la BCN en la Global Legislative Hackathon 2016.Participación de la BCN en la Global Legislative Hackathon 2016.
Participación de la BCN en la Global Legislative Hackathon 2016.
 
Experiencias con tecnologías de Web Semántica en la Biblioteca del Congreso N...
Experiencias con tecnologías de Web Semántica en la Biblioteca del Congreso N...Experiencias con tecnologías de Web Semántica en la Biblioteca del Congreso N...
Experiencias con tecnologías de Web Semántica en la Biblioteca del Congreso N...
 
Service-Oriented Architecture for automatic markup of documents
Service-Oriented Architecture for automatic markup of documentsService-Oriented Architecture for automatic markup of documents
Service-Oriented Architecture for automatic markup of documents
 
Introduccion a OpenData
Introduccion a OpenDataIntroduccion a OpenData
Introduccion a OpenData
 
Introduccion - Curso Ontologías
Introduccion - Curso OntologíasIntroduccion - Curso Ontologías
Introduccion - Curso Ontologías
 
Presentacion tfm
Presentacion tfmPresentacion tfm
Presentacion tfm
 
Presentación Linked data BCN - Red linked data españa
Presentación Linked  data BCN  - Red linked data españaPresentación Linked  data BCN  - Red linked data españa
Presentación Linked data BCN - Red linked data españa
 
Cuántos Rostros!
Cuántos Rostros!Cuántos Rostros!
Cuántos Rostros!
 
Prototipe v2
Prototipe v2Prototipe v2
Prototipe v2
 
Usability Fails
Usability FailsUsability Fails
Usability Fails
 

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

  • 1. Modelamiento de ontologías usando RDF Expositor: Francisco Cifuentes Silva Sistemas y Servicios de Información en Red - BCN 09/04/12
  • 2. 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
  • 3. Principios básicos de modelamiento
  • 4. 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)
  • 5. Aproximaciones para modelado de datos • Modelo relacional (lógico): E. Codd 1970 • Modelo entidad – relación (conceptual): P. Chen 1976 • Elementos:
  • 6. Modelo Entidad – Relación 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 Relaciones Entidad Entidad Persona Es Propietario Automovil Conduce Atributos Atributos •Nombre •Marca •Edad •Modelo •Rut •Patente Relaciones Tiene dueño Es conducido por
  • 7. 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. fecha nombre apellidos nacimiento teléfono fecha fundación nombres Trabaja en Persona Empresa
  • 8. Modelo Entidad – Relación Simbología • Entidad: Persona • Relación: Trabaja en fecha • Atributo: nacimiento
  • 9. Modelo Entidad – Relación El modelo en entidades se traduciría a: Trabaja Persona en Empresa •Pedro •Codelco •Juan •Banco Chile •Diego •Entel •María •… •Ana •Karina •…
  • 10. Modelo Entidad – Relación 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.
  • 11. Modelo Entidad – Relación Nº Página web nombre Tipo oficina Nombre funcionario completo Fecha Trabaja en Aerolínea ingreso Personal Sabe pilotar posee ofrece vende Pilotea modelo Nº asiento origen destino tripula Avión Pasaje Pertenece Trayecto a duración compra pertenece a utiliza pertenece a Pasajero Lleva a Vuelo Nombre Fecha-hora completo código
  • 12. Modelo Entidad – Relación 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.
  • 14. 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#
  • 15. 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
  • 16. 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.
  • 17. 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/valparais http://wikisiit.cl/tieneCut “501” o De quién se habla Qué se está declarando El valor de lo declarado
  • 18. Qué es RDF Las declaraciones se pueden representar como un grafo dirigido: http://ejemplo.com/juan http://ejemplo.com/nacimiento “1945-01-02” http://ejemplo.com/tieneHijo http://ejemplo.com/pedro http://ejemplo.com/viveEn http://wikisiit.cl/valparaiso “501” http://wikisiit.cl/tieneCut
  • 19. 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 http://ejemplo.com/juan http://ejemplo.com/nacimiento “1945-01-02” “1990-07-13” http://ejemplo.com/tieneHijo http://ejemplo.com/pedro http://ejemplo.com/nacimiento http://ejemplo.com/tieneHijo http://ejemplo.com/viveEn http://wikisiit.cl/valparaiso http://ejemplo.com/Persona “501” http://wikisiit.cl/tieneCut rdf:type http://ejemplo.com/luis “1301” http://wikisiit.cl/tieneCut http://ejemplo.com/viveEn http://wikisiit.cl/santiago
  • 20. 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/valparais http://wikisiit.cl/tieneCut “501” o
  • 21. 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
  • 22. 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.
  • 23. 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” .
  • 24. 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 .
  • 25. 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.
  • 26. 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 .
  • 27. 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 .
  • 28. ¿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
  • 29. 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 .
  • 30. Jerarquía 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 información, podríamos inferir cosas “como obtener los familiares de un agente”
  • 31. 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
  • 32. 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 ; Sujeto, propiedad, objeto foaf:name “Ministro Juan”; ej:foto <http://www.juan.cl/yo.jpg> . ej:bcn a foaf:Organization; foaf:name “Biblioteca del Congreso Elementos del Elementos del Nacional”; dominio rango 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 .
  • 33. 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 .
  • 34. 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 .
  • 35. 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
  • 36. 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
  • 37. Consideraciones con nuestra ontología Definición de URI de la ontología: URL de mi sitio Web + “ontologias/”+nombreOntología Ej: 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
  • 38. 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/
  • 39. 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