RDF y RDF-Schema

Anuncio
RDF y RDF-Schema
Por qué RDF?

Lenguajes para la Web Semántica
deben:



Tener una sintaxis y semántica formal para
automatizar el procesamiento de su
contenido.
Proveer una manera de estandarizar el
vocabulario que se refiere a la semántica del
ente en el mundo real para permitir a los
agentes compartir información y
conocimiento.
Capturar metadatos que describen a un
documento.
Lenguajes Formales

Inicialmente la Web creció principalmente
alrededor de documentos HTML.


Estructura y formato de los documentos.
Familia de lenguajes de XML:


permite definir languajes en universos de
discurso específicos.
semántica ligada a la sintaxis.
HTML y XML




Existe una sintaxis formal del lenguaje.
XML permite añadir metadatos como parte
de un documento.
No existe una definición de la semántica.
No existe una manera de identificar
unívocamente a los objetos ni a sus
propiedades.
Resource Description Framework
(RDF)





Es un dialecto de XML para especificar metadatos
o recursos.
Un recurso es un ente que se identifica con URI
(Uniform Resource Identifier).
Ofrece una convención sintáctica y un modelo
de datos simple para representar la semántica
de los datos procesable por un computador.
Permite crear metadatos sobre un documento
como un ente individual.
Es un modelo para representar propiedades
etiquetadas y valores de propiedades.


Recursos: objetos
Propiedades: relaciones entre objetos.
Resource Description Framework
(RDF)


Se basa en la idea de identificar los objetos usando
los identificadores de Web (Uniform Resource
Identifier) y describir los recursos en función de
propiedades simples y sus valores.
Un documento RDF contiene uno o más
descripciones de recursos. Una descripción es un
conjunto de afirmaciones sobre un recurso.


El elemento <rdf:Description> contiene un atributo
rdf:about que se refiere al recurso que se está
describiendo.
Los elementos hijos de un elemento <rdf:Description>
son todas las propiedades del recurso que se está
describiendo.
RDF


Permite a agentes de software
compartir e intercambiar
conocimiento.
Basado en un modelo de datos
simple, el cual es independiente de
forma como se escriba (sintaxis)
RDF-Modelo de Datos
Predicado
Objeto
Sujeto
Predicado
Literal
RDF-Modelo de Datos
http://www.w3.org/Home/Lassila/doc1.html
http://www.schema.org/#Creator
http://www.w3.org/Home/Lassila
RDF-Modelo de Datos

Recurso


Propiedad


Ente del cual se habla
Define relaciones del ente con otros entes o
valores, aspectos específicos, características,
atributos o relaciones.
Afirmación

Recurso tiene Propiedad con Valor(Objeto)
Recursos, Propiedades y Objetos están identificados con un
único Universal Resource Identifier (URI) =>
palabras en los documentos estén atados a una única
definición que puede ser encontrada en la Web.
RDF-Uniform Resource Identifier
(URI)
Es la identificación universal de un recurso u
objeto.
Existen dos tipos de URI:
 Uniform Resource Locator (URL):
identifica un recurso a través de la forma
cómo es accedido.
http://www.example.com/stuff/index.html
Identifica una página HTML en un servidor con nombre de DNS (Domain
Name System) www.example.com y accedido via el prtocolo http.


Uniform Resource Name (URN):

Crea un nombre único y persistente por un recurso en cualquier
namespace.
RDF-Ejemplo

Afirmación:


“Ora Lassila es el creador del documento
http://www.w3.org/Home/Lassila/doc1.html”
Estructura:



Recurso (sujeto)
http://www.w3.org/Home/Lassila/doc1.html
Propiedad (predicado)
http://www.schema.org/#Creator
Valor (objeto) “Ora Lassila”
http://www.w3.org/Home/Lassila
RDF

Modelo de datos de RDF

Tripletas (recurso,propiedad,valor)




Recurso (Sujeto)
Propiedad (Predicado)
Valor (Objeto)
Sintaxis de RDF


Diferentes vocabularios de XML
[http://www.w3.org/RDF/]
RDF-Gramática




Sujeto persona, animal o cosa que
ejecuta la acción del verbo.
Predicado modifica o dice algo sobre
el sujeto.
Objeto es una persona, animal o cosa
a la cual se refiere el predicado.
Afirmación combinación de un sujeto,
predicado y objeto.
RDF-Ejemplo

Afirmación: La compañía vende
baterías:



Sujeto compañía. En RDF este es un
recurso descrito. Puede ser descrito por el
URL: http://www.business.org/ontology/#company
Predicado vende. El concepto vender se
define en http://www.business.org/ontology/#sells
Objeto baterías. El concepto batteries se
define en http://www.business.org/ontology/#batteries
RDF-Modelo de Datos



Sujeto:
 es el elemento que ejecuta la acción del verbo
 es el término del cual se dice algo
 ente que tiene identidad.
Predicado:
 Es el que denota la acción que ejecuta el sujeto,
 Es una función del conjunto de elementos en
valores de verdad, que denota si los elementos
cumplen con la propiedad representada por el
predicado.
Objeto:
 Es un recurso referido por el predicado o un valor
literal.
RDF-Modelo de Datos Formal
Un documento en RDF es un grafo
etiquetado G=(V,E) donde
 V: conjunto de nodos


recursos o valores.
E: conjunto de arcos entre los nodos,



E ⊆ V x V x L, donde
L: conjunto de etiquetas.
Los arcos representan propiedades.
RDF-Modelo de Datos
“Ora Lassila es el creador del documento
http://www.w3.org/Home/Lassila/doc1.html”

http://www.w3.org/Home/Lassila/doc1.html
http://www.w3.org/Home/Lassila
http://www.schema.org/#Creator
RDF-Modelo de Datos




Existe un conjunto llamado Recursos.
Existe un conjunto llamado Literales.
Existe un subconjunto de Recursos, llamado
Propiedades.
Existe un conjunto llamado Afirmaciones,
cada elemento es un tripleta de la forma:




{Pred,Sub,Obj}, donde
Pred: es una propiedad, miembro de
Propiedades.
Sub: es un recurso, miembro de Recursos.
Obj: es un recurso o un literal.
Ejemplo de RDF
<?xml:namespace ns=http://www.w3.org/RDF/RDF
prefix=“RDF”>
<?xml:namespace ns=“http://www.schema.org/#Creator”
prefix=”DC”>
<RDF:Description
RDF:Resource=http://www.w3.org/Home/Lassila/doc1.html>
<DC: Creator RDF:Resource= http://www.w3.org/Home/Lassila/
>
Ora Lassila
</DC: Creator>
</RDF:Description>
Namespace: son mecanismos simples de crear nombres globales
únicos por los elementos y atributos del lenguaje de etiquetas.


Elimina los conflcitos entre etiquetas que tengan el mismo nombre.
Diferentes languajes se pueden mezclar.
NameSpaces
Cada nombre de una etiqueta de XML debe
consistir de dos partes:


Un prefijo: es una abrevación para el
namespace en la declaración del namesapce.
Una parte local: es el identificador para el
metadatos.
<xsd:integer>
Declaración:
<xsd:schema xmls:xsd=“http://www.w3.org/2001/XMLSchema”>
RDF-Ejemplo
<?xml version=‘1.0’ encoding=‘ISO-8859-1 ?’>
<rdf:RDF xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-nx#
xmlns:rdfs=http://www.w3.org/TR/1999/PR-rdf-schema-19990303#
xmls:s0=’http://www.w3.org/2000/PhotoRDF/dc-1-0#
xmls:s1=’http://sophia.inria.fr/~enerbonn/rdfpiclang#
xmls:s2=’http://www.w3.org/2000/PhotoRDF/technical-1-0#>
<rdf:Description
rdf:about=“http://www.c2i2.com/~budstv/images/shop1.jpg”>
<s0:relationship> part-of Store Front</s0:relation>
<s0:type> image </s0:type>
<s0:format>image/jpeg</s0:format>
<s1:xmllang> en </s1:xmllang>
<s0:description> Buddy Belden’s work bench for TV repair</s0:description>
<s2:camera> Kodak EasyShare</s2:camera>
<s0:title> TV Shop repair bench</s0:title>
</rdf:Description>
</rdf:RDF>
RDF
Elemento description:
 Un conjunto de afirmaciones sobre un
recurso.
<rdf:Description rdf:about=URI>
Esta etiqueta es esencial,
Todos los recursos descritos deben tener asociado
un URI.
Los elementos hijos de la etiqueta
<rdf:Description> son todas las
propiedades del recurso que se está
describiendo.
RDF-Sintaxis Básica
RDF ::= [‘<rdf:RDF>’] Description* [‘</rdf:RDF>’]
Description ::= ‘<rdf:Description’ idAboutAttr? ‘>’ propertyElt*
‘</rdf:Description>’
idAboutAtt ::= idAttr | aboutAttr
aboutAttr ::= ‘about=“ ’ URI-reference ‘ “ ‘
idAttr ::= ‘ID=“’ Idsymbol ‘ “ ‘
propertyElt ::= ‘<‘ propName ‘>’ value ‘,/’ propName ‘>’ |
‘<‘ propName resourceAttr ‘/>’
propName ::= Qname
value ::= description | string
resourceAttr ::= ‘resource=“ ’ URI-reference ‘ “ ‘
Qname ::= [Nsprefix ‘:’ ] name
URI-reference ::=string, interpreted per [URI]
Idsymbol ::= (any legal XML name symbol)
namel ::= (any legal XML name symbol)
NSprefixl ::= (any legal XML name symbol)
String ::= (any XML text, with “<”, “>” and “&” escaped)
RDF-Sintaxis
rdf:Description
 Permite la definición de un conjunto de afirmaciones
para un recurso.
idAboutAtt ::= idAttr | aboutAttr
aboutAttr ::= ‘about=“ ’ URI-reference ‘ “ ‘
idAttr ::= ‘ID=“’ Idsymbol ‘ “ ‘
 Cuando el atributo about es usado, el elemento
Description se refiere al recurso identificado por
este valor.
 El atributo ID indica la creación de un nuevo
recurso. El valor de este atributo es único en el
documento.
 En un elemento Description no pueden aparecer al
mismo tiempo los atributos about ID.
RDF - Sintaxis
Description ::= ‘<rdf:Description’ idAboutAttr? ‘>’
propertyElt* ‘</rdf:Description>’
propertyElt ::= ‘<‘ propName ‘>’ value ‘,/’ propName ‘>’ |
‘<‘ propName resourceAttr ‘/>’
propName ::= Qname
value ::= description | string
resourceAttr ::= ‘resource=“ ’ URI-reference ‘ “ ‘
Una descripción simple puede contener más de una propertyElt
con la misma propName. Cada uno añade un arco el grafo.
Dentro de un propertyElt el atributo resource especifica que
otro recurso es el valor de esta propiedad, es decir, el valor de
esta propiedad es otro recurso identificado por un URI.
RDF-Sintaxis-Ejemplo
Ora Lassila es el creador del recurso
http://www.w3.org/Home/Lassila/doc1.html
<rdf:RDF
xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns
xmls:s=“http://description.org/schema”>
<rdf:Description
about=“http://www.w3.org/Home/Lassila/doc1/html”>
<s:Creator> Ora Lassila</s:Creator>
</rdf:Description>
</rdf:RDF>
RDF-Sintaxis-Ejemplo
El empleado con identificador 85740 con nombre Ora Lassila y con
e-mail [email protected], es el creador del recurso
http://www.w3.org/Home/Lassila
<rdf:RDF
xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns
xmls:s=“http://description.org/schema”>
<rdf:Description about=“http://www.w3.org/Home/Lassila”>
<s:Creator rdf:resource=“http://www.w3.org/staffId/85740”/>
</rdf:Description>
<rdf:Description about=“http://www.w3.org/staffId/85740”>
<s:Name> Ora Lassila </s:Name>
<s:Email> [email protected] </s:Email>
</rdf:Description>
</rdf:RDF>
RDF-Sintaxis-Ejemplo
<rdf:RDF
xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns
xmls:s=“http://description.org/schema”>
<rdf:Description about=“http://www.w3.org/Home/Lassila”>
<s:Creator>
<rdf:Description about=“http://www.w3.org/staffId/85740”>
<s:Name> Ora Lassila </s:Name>
<s:Email> [email protected] </s:Email>
</rdf:Description>
</s:Creator>
</rdf:Description>
</rdf:RDF>
RDF-Sintaxis-Ejemplo
<rdf:RDF
xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns
xmls:s=“http://description.org/schema”>
<rdf:Description about=“http://www.w3.org/Home/Lassila”>
<s:Creator rdf:resource=http://www.w3.org/staffId/85740,
s:Name=“Ora Lassila”
s:Email=“ [email protected]” /l>
</rdf:Description>
</rdf:RDF>
Ejemplo RDF
Existe un persona identificada por
http://www.w3.org/People/EM/contact#me,
cuyo nombre es Eric Miller, cuya dirección
es: [email protected], y su título es Dr.
Ejemplo RDF
http://www.w3.org/2000/10/swap/pim/contact#Person
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/People/EM/contact#me
http://www.w3.org/2000/10/swap/pim/contact#fullName
Eric Miller
http://www.w3.org/2000/10/swap/pim/contact#mailBox
mailTo: [email protected]
http://www.w3.org/2000/10/swap/pim/contact#personalTitle
Dr
Ejemplo RDF
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntaxns#"
xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#">
<contact:Person
rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:fullName>Eric Miller</contact:fullName>
<contact:mailbox rdf:resource="mailto:[email protected]"/>
<contact:personalTitle>Dr.</contact:personalTitle>
</contact:Person>
</rdf:RDF>
RDF-Contenedores
RDF define tres tipos de contenedores:
 Bag: una lista no ordenada de recursos o literales.
Un Bag se utiliza para declarar que una propiedad
tiene múltiples valores y que el orden no es
importante. Repeticiones son permitidas.
 Sequence: una lista ordenada de recursos o
literales. Un Sequence se utiliza para declarar que
una propiedad puede tener múltiples valores y que
el orden es relevante. Repeticiones son permitidas.
 Alternative: una lista de recursos o literales que
representa alternativas para los valores (simples) de
una propiedad. Un Alternative puede utlizarse para
proveer traducciones del título de un trabajo.
RDF-Contenedores-Sintaxis
Container ::= Sequence | Bag | Alternative
Sequence ::= ‘<rdf:Seq’ idAttr? ‘>’ member* ‘</rdf:Seq>’
Bag ::= ‘<rdf:Bag’ idAttr? ‘>’ member* ‘</rdf:Bag>’
Alternative::= ‘<rdf:Alt’ idAttr? ‘>’ member* ‘</rdf:Alt>’
Member::= referencedItem | inlineItem
referencedItem::= ‘<rdf:li’ resourceAtt ‘/>’
inlineItem::= ‘<rdf:li>’ Value ‘/rdf:li>’
RDF::= ‘<rdf:RDF>’ Obj* ‘</rdf:RDF>’
Value::= Obj| string
Obj::= Description|Container
RDF-Sintaxis
Los estudiantes en ci7454 son: luis, maria, pepe, jose
<rdf:RDF>
<rdf:Description about=“http://www.ldc.usb.ve/~mvidal/ci7454”>
<s:students>
<rdf:Bag>
<rdf:li resource=“http://www.ldc.usb.ve/students/Luis”>
<rdf:li resource=“http://www.ldc.usb.ve/students/Maria”>
<rdf:li resource=“http://www.ldc.usb.ve/students/Pepe”>
<rdf:li resource=“http://www.ldc.usb.ve/students/Jose”>
</rdf:Bag>
</s:students>
</rdf:Description>
</rdf:RDF>
RDF-Sintaxis
El código de fuente de XX se puede conseguir en ftp.x.org o
ftp.y.org o ftp.z.org
<rdf:RDF>
<rdf:Description about=“http://x.org/XX”>
<s:DistributionSite>
<rdf:Alt>
<rdf:li resource=“ftp://ftp.x.org”>
<rdf:li resource=“ftp://ftp.y.org”>
<rdf:li resource=“ftp://ftp.z.org”>
</rdf:Alt>
</s:DistributionSite>
</rdf:Description>
</rdf:RDF>
RDF-Sintaxis
Se puede referenciar a un contenedor en lugar de los
elementos del mismo.
<rdf:Bag ID=“estudiantesCi7454”>
<rdf:li resource=“http://www.ldc.usb.ve/students/Luis”>
<rdf:li resource=“http://www.ldc.usb.ve/students/Maria”>
<rdf:li resource=“http://www.ldc.usb.ve/students/Pepe”>
<rdf:li resource=“http://www.ldc.usb.ve/students/Jose”>
</rdf:Bag>
<rdf:Description about=# estudiantesCi7454 >
<s:Course
rdf:resource=“http://www.ldc.usb.ve/~mvidal/ci7454”/>
</rdf:Description>
RDF-Afirmaciones sobre
Afirmaciones(Reification)
Reification son afirmaciones de alto nivel que
permiten expresar conocimiento sobre otras
afirmaciones. Permite ver a una afirmación como
un recurso, representando explicitamente al
sujeto, predicado, objeto y tipo de la
afirmación..
Luis Perez dice:” Ora Lassila es el creador del recurso
http://www.w3.org/Home/Lassila/doc1.html”
Afirmaciones:
 ” Ora Lassila es el creador del recurso
http://www.w3.org/Home/Lassila”
 Luis Perez dice:…
RDF- Reification
Para modelar afirmaciones RDF ofrece las siguientes
propiedades:
 Sujeto: esta propiedad representa el sujeto que
identifica al recurso que se está describiendo en la
afirmación modelada.
 Predicado: esta propiedad representa el predicado
original en la afirmación modelada.
 Objeto: esta propiedad representa el valor en la
afirmación modelada.
 Tipo: esta propiedad describe el tipo del nuevo
recurso. Todas las afirmaciones reified son instancias
de RDF:Statement, es decir, ellos tienen una
propiedad type cuyo objecto es RDF:Statement.
Esta propiedad provee una forma primitiva de
definición de tipos.
RDF-Ejemplo
<rdf:RDF>
xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmls:a=http://description.org/schema/>
<rdf:Description>
<rdf:subject
resource=“http://www.w3.org/Home/Lassila/doc1.html”>
< rdf:predicate resource=“http://description.org/schema/Creator
/>
<rdf:object> Ora Lassila</rdf:object>
<rdf:type resource=“http://www.w3.org/1999/02/22-rdf-syntaxns#Statements” />
<a:attributedTo> Luis Perez </a:attributedTo>
</rdf:Description>
</rdf:RDF>
RDF-Desventajas





Dos documentos pueden usar definiciones diferentes
del mismo concepto y no se puede decidir que son
equivalentes.
Tiene problemas de ambiguedad en la definición de
sus elementos.
No se permite el manejo/definición de restricciones
de integridad.
RDF no se ajusta bien a documentos XML.
Algunas partes de RDF son complejas.
RDF Schema
RDF Schema
RDF
XML




URI
NameSpaces
XML: elementos, atributos y notación de las
etiquetas.
URI: Identificación Universal.
NameSpaces: identificación de los vocabularios.
RDF: modelo de tripletas
(sujeto,predicado,valor)
RDF Schema
Es un conjunto de:
 recursos
 propiedades
para facilitar la definición de vocabularios.
RDF Schema implementa un modelo de datos
orientado por objetos.
Se diferencia de los modelos de datos OO en
que se debe seguir una metodología
bottom-up
Se definen las propiedades y luego se establece a
que clases caracterizan.
RDF Schema-Estructuras





Clases: grupo de entes o recursos con
características comunes. Están usualmente
caracterizados por un URI.
Instancias: objetos de clases o interrelaciones. La
extensión de una clase, es el conjunto de instancias
de la misma.
Relación IS-A: relación de subclase entre clases.
Propiedades: representa la característica de un
ente o asociaciones entre grupos de entes.
Dominio: representa el dominio de una propiedad.
RDF-Elementos

rdf:Property: elemento que permite
definir una propiedad y su rango de valores.
<rdf:Property rdf:about..>
… propiedades
</rdf:Property>

rdf:type: elemento que permite definir
que un sujeto RDF es de un cierto tipo.
<rdf:Description rdf:about=“http://www.mybiz.com/staff/ID/865”>
<rdf:type rdf:resource=“Employee”>
RDF Schema-Elementos


rdfs:Class: representa una clase. Se usa
conjuntamente con rdf:Property, rdfs:rango y
rdfs:domain para asignar propiedades a una clase.
Requiere de un URI como identificador en el
atributo rdf:about.
Los elementos <rdfs:label> <rdfs:subclassOf>
<rdfs:comment> <rdfs:isDefinedBy> se usan
como subelementos.
<rdfs:Class rdf:about=URI>
<rdfs:label> Empleado </rdfs:label>
<rdfs:comment> representa un empleado
universitario<rdfs:comment>
<rdfs:subclassOf rdf:resource=“#empleadoPublico”/>
</rdfs:Class>
RDF Schema-Elementos




rdfs:label: define una etiqueta para una clase o
propiedad.
rdfs:subClassOf: especifica que una clase es la
especilaización de otra clase. La clase hereda todas
las propiedades de la clase madre.
<rdfs:comment>: permite añadir comentarios a
las clases y propiedades.
<rdfs:isDefinedBy>: define el nameSpace del
sujeto.
RDF Schema-Elementos





rdfs: domain: define cual es la clase a la que una
propiedad pertenece.
rdfs:range: define el conjunto de valores posibles
de una propiedad.
rdfs:subPropertyof: declara que la propiedad
sujeto es subpropiedad de otra propiedad.
rdfs:seeAlso: permite referirse a un recurso que
provee información adicional al recurso actual.
rdfs:Literal: representa un valor constante
representado como una cadena de caracteres.
RDF Schema-Ejemplo
<rdfs:class rdf:ID=“comunidadUniversitaria”
rdfs:label=“ComunidadUniversitaria”>
</rdfs:class>
<rdf:Property rdf:ID=“nombre” rdfs:label=“Nombre”>
<rdfs:domain rdf:resource=“# comunidadUniversitaria”/>
<rdfs:rango rdfs:resource=“http://www.w3.org/2000/01/rdfschema#Literal”/>
</rdf:Property>
<rdfs:class rdf:ID=“profesor” rdfs:label=“Profesor”>
<rdfs:subClass rdf:resource=“# comunidadUniversitaria”>
</rdfs:class>
<rdfs:class rdf:ID=“estudiante” rdfs:label=“Estudiante”>
<rdfs:subClass rdf:resource=“# comunidadUniversitaria”>
</rdfs:class>
<rdfs:class rdf:ID=“empleado” rdfs:label=“Empleado”>
<rdfs:subClass rdf:resource=“# comunidadUniversitaria”>
</rdfs:class>
RDF-Ejercicios
Escribir en RDF las siguientes oraciones:

Luis Perez es el profesor de ci7454.

Los estudiantes de ci7454 son: jose, luis, pedro y luisa.

Alguno de los libros utilizados en ci7454 son:







D. Fensel, J. Hendler, H. Lieberman, W. Waslster, “Spinning The Semantic Web”. MIT
Press. 2003.
M. Daconta, L. Obrst, K. Smith, “The Semantic Web”. Wiley Publishing. 2003.
Z. Lacroix, T. Critchlow, “Bionformatics, Managing Scientific Data”. Morgan Kaufmann
2003.
S. Abiteboul, P. Buneman, D. Suciu, “Data on the Web”. Morgan Kaufmann 2000.
Artículos.
Las clases de ci7454 son los martes de 1:00 pm a 5:00pm.
Jose Perez piensa que ci7454 es un curso interesante.
Descargar