RDF - Facultad de Ciencias-UCV - Universidad Central de Venezuela

Anuncio
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
Resource Description
Framework
RDF
Presentado por:
Msc. Franklin José Sandoval Sucre
1
Resource Description
Framework (RDF)
• Marco de trabajo para la descripción de recursos
• 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
• El Modelo de datos en forma de grafo, cada nodo es un
Recurso: URI ó Literal
• Las aristas del grafo son también URIs y también pueden
ser recursos
• Relación es unidireccional
http://ejemplo2.org#tieneHijo
http://ejemplo.org#Juan
http://ejemplo.org#Pedro
http://ejemplo2.org#tieneEdad
http://ejemplo2.org#viveEn
http://ejemplo.org#Venezuela
40
RDF: Modelo de datos

El modelo de datos que propone RDF consiste en tres
tipos de objetos:
Recurso
Valor
Propiedad
Propiedad / descripción
De quién se
está hablando
Recursos
Propiedades
Descripción
Qué se está
declarando.
Valor de lo
declarando
.
SUJETO (recurso)
PREDICADO (tipo de propiedad)
OBJETO (valor)
Basado en el concepto de Tripleta (RDF triple)
Grafos
Representación simbólica de los elementos constituidos
de un sistema o conjunto, mediante esquemas gráficos
4
Ejemplo RDF
RDF: un modelo de metadatos
flexible para WEB
AUTOR
DC: Title
DC: Creator
BIB:Aff
“UC3M”
uc3m
EVA
“Eva
Méndez”
BIB:Name
“Eva Méndez”
BIB:Email
“emendez@bib.uc3m.es”
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.ve/petare
http://wikisiit.ve/petare
http://wikisiit.ve/tiene
“501”
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.ve/petare
“501”
http://wikisiit.ve/tieneCodigo
Qué es RDF
Este grafo puede ser declarado como un subconjunto mediante URI:
http://www.ejemplo.com/migrafo : grafo nombrado (Named graph)
http://ejemplo.com/juan
http://ejemplo.com/nacimiento
“1945-01-02”
RDF es composicional
“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.ve/petare
“501”
http://ejemplo.com/Persona
http://wikisiit.cl/tieneCut
rdf:type
http://ejemplo.com/luis
“13”
http://wikisiit.ve/tieneCut
http://wikisiit.ve/catia
http://ejemplo.com/viveEn
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.ve/petare
http://wikisiit.ve/petare
http://wikisiit.ve/tiene
“501”
Ejemplo RDF-Abreviado
SERIALIZADA
<RDF:RDF>
<RDF: Description about=
”http://www.bib.uc3m.es/~mendez/rdf.htm”>
<Title> Explicando RDF</Title>
<Author>Eva Méndez </Author>
</RDF: Description>
</RDF:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.0/">
<rdf:Description rdf:about="http://www.bib.uc3m.es/~mendez/rdf.htm"
dc:creator=”Eva Méndez"
dc:title=”Explicando RDF"
dc:date=“2005-04-12" />
</rdf:RDF>
RDF Sintaxis básica serializada
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
[1]
[2]
RDF
description
::= ['<rdf:RDF>'] description* ['</rdf:RDF>']
::= '<rdf:Description' idAboutAttr? '>' propertyElt*
'</rdf:Description>'
[3] idAboutAttr
::= idAttr | aboutAttr
[4] aboutAttr
::= 'about="' URI-reference '"'
[5] idAttr
::= 'ID="' IDsymbol '"'
[6] propertyElt
::= '<' propName '>' value '</' propName '>'
| '<' propName resourceAttr '/>'
[7] propName
::= Qname
[8] value
::= description | string
[9] resourceAttr
::= 'resource="' URI-reference '"'
[10] Qname
::= [ NSprefix ':' ] name
[11] URI-reference ::= string, interpreted para [URI]
[12] IDsymbol
::= (any legal XML Name symbol)
[13] name
::= (any legal XML name symbol)
[14] NSprefix
::= (any legal XML namáspace prefix)
[15] string
::= (any XML texto, with "<", ">", and "&" escaped)
RDFs

Algunos términos RDFs




Estos términos son los elementos constitutivos de RDF
Schema, o core primitives
Definición del vocabulario




Class, property
Type, SubClassOf, domain
<Country, type, class>
<Capital, subClassOf, city>
<hasCapital, domain, Country>
Estas son sentencias RDF donde:


El predicado es un término RDF Schema
El sujeto u objeto es un término RDF
RDFs
Recurso
Clase
rdfs:Resource
rdfs:Class
rdf:Property
rdfs:ConstraitProperty
rdfs:Literal
Propiedad
•rdf:type
•rdf:subClassOf
•rdfs:subPropertyOf
•rdfs:comment
•rdfs:label
•rdfs:seeAlso
•rdfs:isDefinedBy
ConstraintProperty
•rdfs:range
•rdfs:domain
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.ve/petare> .
<http://wikisiit.ve/petare> <http://wikisiit.ve/tieneCodigo> “501”.
Archivo ejemplo.ntriples
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.
Sujeto, propiedad, objeto
Elementos del
dominio
Elementos del
rango
ej:juan a foaf:Person, ej:Funcionario ;
foaf:name “Profesor Juan”;
ej:foto <http://www.juan.ve/yo.jpg> .
ej:ucv a foaf:Organization;
foaf:name “Biblioteca de la UCV”;
ej:foto <http://www.ucv.ve/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 .
Donde Usar RDF
Herramientas de codificación del
conocimiento de un dominio
• Hay tres niveles de comunicación
• Cada nivel proporciona una estructura sobre la que se apoya
el inmediatamente superior
• Un nivel más alto proporciona mayor expresividad pero
conlleva mayor complejidad
Comunicación de un dominio
Problema esencial
Pero las máquinas no entienden el
sentido de las palabras, mucho
menos el sentido de los textos…
¿No puedes
hacer nada bien?
• Personas, organizaciones y sistemas de software necesitan
comunicarse
• Cada uno tiene diferente conocimiento previo, contexto y
puntos de vista
• Visión compartida dificulta la construcción de sistemas
Un ejemplo: ¿qué es la leche?
Personas
Alimento
Empresa
Producto
Software
Código
binario
¿Qué es una ontología?
Nace en la filosofía, rama de la metafísica que estudia la
existencia de las entidades.
Es un
Vocabulario
Controlado
Ontología
Con el Objetivo de
Especificar el
Conocimiento
Del
Para Describir
Objetos
Relación
Con una
Gramática
Relevantes de un
Dominio
En informática
“Es una especificación de una conceptualización”
Thomas Gruber, 1993
Fundamentos teóricos de ontologías:
Definición
Ontologías
usadas_en
Ciencias
de la
Computación
Inteligencia
Artificial
Ingeniería
del Conocimiento
En la actualidad muchas de las aplicaciones relacionadas con:
Comercio
electrónico
Bioinformática
Recuperación
de información
Web
Semántica
Educación
Gestión de
conocimiento
Procesamiento
lenguaje natural
Una solución… Las Ontologías
Una ontología permitirá:
• Comunicación: unificar puntos de vista
• Interoperabilidad: un lenguaje común para todos
Beneficios
 Reusabilidad: podrá usarse en múltiples contextos, tiempo, etc.
 Fiabilidad: cierta certeza de los datos respecto a un modelo
 Especificación: homogeneizar realidad, puntos de vista, acuerdo
Una Ontología es una especificación formal, explícita de una conceptualización
compartida
Procesable por
una máquina
Conocimiento
consensual
Conceptos, propiedades,
relaciones, funciones,
restricciones, axiomas.
Modelo abstracto de
algún fenómeno en
el mundo
Ejemplo de una ontología
Órgano
parte_de
Aurícula
Estructura
Anatómica
tiene_una
es_un
parte_de
afecta_una
Corazón
Tabique
parte_de
Ventrículo
parte_de
tiene_un
Tratamiento
tipo_de
tipo_de
Intervención
Medicación
Laboratorio
Radiología
Ontología
Guías médicas
Farmacia
Bases de datos
Anatomía Patológica
Sistemas Clasificación
……..
……..
Requerimiento
Historias médicas
Resultados
Sistemas
Aplicaciones
Protocolos
Sistemas de Información
basado en ontologías SIBO
Lenguaje
humano
Requerimiento
Formal
RDF
Sistemas
de
Información
Validación de nuestro RDF
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
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/
RDF Bases de datos
Motores de Grafos basados en RDF
Hexastore
Seis posibles
formas de
ordenar los roles
(S,P,O) en una
tripleta RDF.
Uso de mucha
memoria para
grafos
moderadamente
grandes
RDF-3x
Tablas de
tripletas, cada
registro
representa una
tripleta.
Diccionario para
reemplazar los
strings por un id;
dos índices de
diccionario.
BitMap
Representación en Cubo
3D donde cada dimensión
representa sujetos,
predicados y objetos.
Representación
de RDF
Basada en
Hypergrafos
Cada celda de
una matriz
puede ser 0 o 1.
Cada nodo
corresponde a
un recurso RDF .
Los roles que juega un
recurso en una tripleta es
representado por un
hypergrafo.
Actualizar la BD
puede ser muy
costoso.
Índice agrupado
B+tree para
indexar todas las
tripletas.
Cada cubo 3D al
verlo
transversalment
e representa
matrices 2D.
La data puede
ser replicada
muchas veces.
Seis
permutaciones
de sujeto,
predicado y
objeto.
Se implementa
compresión para
almacenamiento
Las tripletas son
ordenadas
lexicográficamente en
cada B+tree.
Bhyper
Algunos enlaces de
Referencias
• PlanetRDF
– Planetrdf.com/guide/
• RDF Model and Syntax Specification (W3C Recommendation)
– http://www.w3.org/TR/REC-rdf-syntax
• RDF Schema Specification (W3C Candidate Recommendation)
– http://www.w3.org/TR/rdf-schema/
• RDF tutorial (rather technical...)
– http://www710.univ-lyon1.fr/~champin/rdf-tutorial/
• W3C's RDF links collection
– http://www.w3.org/RDF/
33
Descargar