Title: RDF
1RDF
- RDF Resource Description Framework
- Basado en XML sintaxis para la serialización
- Esquema para XML (DTD)
- Más que un modelo de metadatos
- Infraestructura para describir recursos en la web
e intercambiar metadatos
2RDF (2)
- Metamodelo de metadatos que permite expresar
otros modelos - MARC, TEI, DC, AGLS ...
- Permite mezclar/reutilizar los diferentes modelos
de metadatos - Permite describir recursos que no se encuentran
en otro documento
3Historia de RDF
- Agosto 1997 Nace en el W3C
- Impulsado por diferentes grupos de trabajo
- PICS (control de contenido)
- P3P (privacidad)
- Dublin Core
- Febrero 1999 Primer estándar
- Febrero 2004 Revision versión actual
4Aplicaciones
- Recuperación de recursos ,
- Indexación y motores de búsqueda
- Catalogación de recursos web
- privacidad, preferencias, perfiles de usuario
- Sitemaps / colecciones digitales (web)
- Recomendación, filtrado
- Preferencias de privacidad del usuario
- Derechos de propiedad intelectual
5RDF
- Describe los recursos mediante afirmaciones
sencillas propiedades - Un recurso puede ser
- un libro, una imagen, un mapa, etc...
- un sitio web, una página web, etc...
- una persona, un edificio...
- Las propiedades tienen la estructura
Factotum tiene un autor cuyo valor es
Bukowski
PREDICADO
SUJETO
OBJETO
6Ejemplo de RDF (1)
- Factotum esta escrito por Bukowski
- Factotum se publicó en 1980
- Bukowski nacio en 1930
Sujeto Predicado Objeto Factotum
autor Bukowski Factotum fecha
publicación 1980 Bukowski fecha
nacimiento 1930
7Ejemplo de RDF (2)
- Problemas
- No tenemos identificador
- distintos libros se pueden llamar igual
- El identificador tiene que ser global, servir
para toda la WWW - Solución
- Utilizar una direccion URL, en este caso se llama
URI (Uniform Resource Identifier)
8Ejemplo de RDF (3)
http/www.vlibros.com/libros/1017989
httpwww.autores.org/Bukowski
1980
fecha_nacimiento
autor
Factotum
Factotum
Bukowski
Bukowski
1930
fecha publicacion
1980
9Ejemplo de RDF (3)
http/www.vlibros.com/libros/1017989
httpwww.autores.org/Bukowski
1980
fecha_nacimiento
Factotum
Bukowski
1930
10Modelo de datos básico
- Compuesto de propiedades (property)
- Consiste en 3 tipos de objetos
- Recurso (Resource) - Sujeto
- Tipo de Propiedad (Property type) - Predicado
- Valor (Value) - Objeto
- Represetación grafo dirigido
- Nodo recurso
- Rectángulo valor
- Arco dirigido con nombre propiedad
- conectan recurso con valor
- concectan recursos
11Ejemplo de RDF (4)
- Problemas
- Qué significan para una máquina...?
- Qué significan para otra persona...?
- autor,titulo,fecha nacimiento...
- Solución
- Definir el significado del tipo de propiedad
- Definir y publicar un vocabulario (esquema de
metadatos - RDF Schema
- Referenciar univocamente al significado
12Modelo de datos (2)
- A su vez todo puede ser recurso (se puede
describir) - Tipos de propiedades pueden ser recursos
- Valores pueden ser recursos
- Propiedades pueden ser recursos
- De momento Tipos de propiedades
- Identificadas por una URI
- URI de su vocabulario nombre de tipo de
propiedad - Podemos mezclar diferentes vocabularios
13Ejemplo de RDF (5)
http/www.vlibros.com/libros/1017989
1980
httpwww.autores.org/Bukowski
1930
Factotum
Bukowski
14Ejemplo de RDF (6)
- Puedo definir prefijos (espacios de nombres)
- dc http//purl.org/dc/elements/1.1/
http/www.vlibros.com/libros/1017989
1980
httpwww.autores.org/Bukowski
1930
Factotum
Bukowski
15Ejemplo de RDF (7)
- Incluso para el resto de recursos
- lib http/www.vlibros.com/libros/
- auth httpwww.autores.org/
lib1017989
1980
authBukowski
1930
Factotum
Bukowski
16Ejemplo de RDF (8)
- Y mezclar diferentes esquemas o vocabularios
- foaf
lib1017989
1980
authBukowski
10-10-1930
Factotum
Charles Bukowski
17Escribiendo RDF
- Existen varios formatos para RDF
- N3 Notation Triple
- Sintaxis abreviada
- Relativamente nueva
- Basada en tripletas recurso-tipo_propiedad-valor
- Definición de datos por humanos
- RDF/XML
- Sintaxis clásica basada en XML
- Demasiado verbosa
- Utilizada para el intercambio de datos
18Notation Triple (N3)
recurso
tipo de propiedad
valor
lib1017989 dccreator authBukowski
. lib1017989 dcdate 1980
. lib1017989 dctitle Factotum
. authBukowski foaffullName Charles Bukowski
. authBukowski foafbithday 10-10-1930.
propiedades
propiedades acaban en punto
literal entre comillas
recurso
URI completa entre menor y mayor
lib1017989 lthttp//purl.org/dc/elements/1.1/crea
torgt authBukowski . lib1017989 lthttp//purl.org
/dc/elements/1.1/dategt 1980 . lib1017989 dct
itle Factotum . authBukowski foaffullName
Charles Bukowski . authBukowski foafbithday
10-10-1930.
19RDF/XML (1)
declaración XML
espacios de nombres
lt?xml version"1.0"?gt ltrdfRDF
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlnsexterms"http//www.examp
le.org/terms/"gt ltrdfDescription
rdfabout"http//www.example.org/index.html"gt
ltextermscreation-dategtAugust 16,
1999lt/extermscreation-dategt
lt/rdfDescriptiongt lt/rdfRDFgt
Descripción de un recurso
recurso
valor literal
tipo de propiedad
20RDF/XML (2)
- Describiendo un recurso con varias propiedades...
version 1
lt?xml version"1.0"?gt ltrdfRDF
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlnsdc"http//purl.org/dc/el
ements/1.1/"gt ltrdfDescription
rdfabout"http/www.vlibros.com/libros/1017989"gt
ltdcdategt1980lt/dcdategt
lt/rdfDescriptiongt ltrdfDescription
rdfabout"http/www.vlibros.com/libros/1017989"gt
ltdctitlegtFactotumlt/dctitlegt
lt/rdfDescriptiongt ltrdfDescription
rdfabout"http/www.vlibros.com/libros/1017989"gt
ltdccreator rdfresource"httpwww.autores.
org/Bukowski"/gt lt/rdfDescriptiongt lt/rdfRDFgt
valor recurso como atributo
21RDF/XML (3)
- Describiendo un recurso con varias propiedades...
version 2
lt?xml version"1.0"?gt ltrdfRDF
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlnsdc"http//purl.org/dc/e
lements/1.1/"gt ltrdfDescription
rdfabout"http/www.vlibros.com/libros/1017989"gt
ltdcdategt1980lt/dcdategt
ltdctitlegtFactotumlt/dctitlegt ltdccreator
rdfresource"httpwww.autores.org/Bukowski"/gt
lt/rdfDescriptiongt lt/rdfRDFgt
varias propiedades en una descripción
valor recurso como atributo
22RDF/XML (4)
- Describiendo un grafo varios recursos en un
documento
lt?xml version"1.0"?gt ltrdfRDF
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlnsdc"http//purl.org/dc/e
lements/1.1/"gt ltrdfDescription
rdfabout"http/www.vlibros.com/libros/1017989"gt
ltdcdategt1980lt/dcdategt
ltdctitlegtFactotumlt/dctitlegt
ltdccreatorgt ltrdfDescription
rdfabout"httpwww.autores.org/Bukowski"gt ltfoaf
fullNamegtCharles Bukowskilt/foaffullNamegt ltfoaf
birthdaygt10-10-1930lt/foafbirthdaygt
lt/rdfDescriptiongt lt/dccreatorgt
lt/rdfDescriptiongt lt/rdfRDFgt
23Clases de recursos
- Podemos definir el tipo de un recurso usando
rdftype - El nombre de la clase generalmente en mayúsculas
authBukowski rdftype foafPerson
. authBukowski foaffullName Charles
Bukowski . authBukowski foafbithday 10-10-19
30.
24Clases de recursos RDF/XML
lt?xml version"1.0"?gt ltrdfRDF
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlnsdc"http//purl.org/dc/e
lements/1.1/"gt ltrdfDescription
rdfabout"httpwww.autores.org/Bukowski"gt ltrdf
type rdfresourcehttp//direcciondeFoaf
Persongt ltfoaffullNamegtCharles
Bukowskilt/foaffullNamegt ltfoafbirthdaygt10-10-19
30lt/foafbirthdaygt lt/rdfDescriptiongt lt/r
dfRDFgt
25Clases de recursos RDF/XML (2)
lt?xml version"1.0"?gt ltrdfRDF
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlnsdc"http//purl.org/dc/e
lements/1.1/"gt ltfoafPerson
rdfabout"httpwww.autores.org/Bukowski"gt ltfoaf
fullNamegtCharles Bukowskilt/foaffullNamegt ltfoaf
birthdaygt10-10-1930lt/foafbirthdaygt
lt/foafPersongt lt/rdfRDFgt
26Usando Ids en vez de URIs
lt?xml version"1.0"?gt ltrdfRDF
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlnsdc"http//purl.org/dc/e
lements/1.1/" xmlbasehttpwww.autores.org/
gt ltrdfDescription rdfID"Bukowski"gt ltrdf
type rdfresourcehttp//direcciondeFoaf
Persongt ltfoaffullNamegtCharles
Bukowskilt/foaffullNamegt ltfoafbirthdaygt10-10-19
30lt/foafbirthdaygt lt/rdfDescriptiongt lt/r
dfRDFgt
usamos rdfID en vez de rdfabout
dirección base
se supone que el ID es único
si no se especifica xmlbase se usa la URL del
documento
27Tipos de datos
authBukowski foafbirthday 25-12-1930. authB
ukowski foafbirthday 1930-25-12. authBukowsk
i foafbirthday 12-25-1930. authBukowski foa
fbirthday 25-Diciembre-1930. authBukowski fo
afbithday Navidad 1930. authBukowski foafbi
thday melon.
- Todas las afirmaciones son RDF válido
- Su interpretación sin ambigüedad es más
complicada - Podemos contribuir a su interpretación automática
mediante el uso de tipo de datos
28Tipos de datos N3
- El único tipo de datos de RDF es Literal
- Podemos utilizar los de XML Schema (nota no
todos)
URI del tipo de datos
authBukowski foafbirthday 25-12-1930lthttp
//www.w3.org/2001/XMLSchemadategt
. authBukowski foafbirthday 25-12-1930x
sddate .
literaltipo
URI abreviada
- Problema aún así las inconsistencias entre valor
y tipo de datos son RDF válido - Los tipos de datos dependen del software para RDF
29Tipos de datos RDF/XML
lt?xml version"1.0"?gt ltrdfRDF
xmlnsrdf"http//www.w3.org/1999/02/22-rdf-syntax
-ns" xmlnsdc"http//purl.org/dc/e
lements/1.1/"gt ltrdfDescription
rdfabout"http/www.vlibros.com/libros/1017989"gt
ltdcdategt1980lt/dcdategt
ltdctitlegtFactotumlt/dctitlegt
ltdccreatorgt ltrdfDescription
rdfabout"httpwww.autores.org/Bukowski"gt ltfoaf
fullNamegtCharles Bukowskilt/foaffullNamegt ltfoaf
birthday rdfdatatype"http//www.w3.org/2001
/XMLSchemadate" gt 1930-12-25 lt/foafbirthday
gt lt/rdfDescriptiongt
lt/dccreatorgt lt/rdfDescriptiongt lt/rdfRDFgt
tipo de datos
30Nodos vacíos y Recursos anónimos
- Como podemos representar valores complejos?
- Por ejemplo una dirección
- Utilizando recursos anónimos cuya funcionalidad
es agrupar varios valores - Se representan mediante nodos vacíos
C/ Ramón Areces 16 1ºA
tipo_via
nombre
numero
piso
31Recursos anónimos N3
uc3m85740 extermsdireccion
_dircesar . _dircesar extermscalle
"Ramón Areces" . _dircesar extermstipo
"Calle" . _dircesar extermsnumero
"16"xsdinteger . _dircesar extermspiso
"1 A" .
_dircesar es un recurso anomino
- no pertenece a ningún espacio de nombres
- dircesar es unicamente un nombre temporal
32Recursos anónimos RDF/XML
entidad abreviación
lt?xml version"1.0"?gt lt!DOCTYPE rdfRDF
lt!ENTITY xsd "http//www.w3.org/2001/XMLSchema"gt
gt ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/2
2-rdf-syntax-ns" xmlnsexterms"http
//www.example.org/terms/"gt ltrdfDescription
rdfabout"http//www.uc3m.es/staff/85740 "gt
ltextermsdireccion gt ltextermstipogtcallelt/e
xtermstipogt ltextermsnombregtRamón
Areceslt/extermsnombregt ltextermsnumero
rdftypexsdintegergt16lt/extermsnumerogt
ltextermspisogt1 Alt/extermspisogt
lt/extermsdirecciongt lt/rdfDescriptiongt lt/rdfR
DFgt
como en XML, jerarquico
33Recursos anónimosRDF/XML (2)
lt?xml version"1.0"?gt lt!DOCTYPE rdfRDF
lt!ENTITY xsd "http//www.w3.org/2001/XMLSchema"gt
gt ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/2
2-rdf-syntax-ns" xmlnsexterms"http
//www.example.org/terms/"gt ltrdfDescription
rdfabout"http//www.example.com/2002/04/produc
tsitem10245"gt ltextermsweight
rdfparseType"Resource"gt ltrdfvalue
rdfdatatype"xsddecimal"gt2.4lt/rdfvaluegt
ltextermsunits rdfresource"http//www.example
.org/units/kilograms"/gt lt/extermsweightgt
lt/rdfDescriptiongt lt/rdfRDFgt
- Con valores estructurados algunos elementos son
más importantes, por ejemplo cálculo - usamos rdfvalue
34Contenedores
- Podemos expresar varios valores para una misma
propiedad - List lista de valores con orden
- lista de autores
- Bag conjunto de valores sin orden
- conjunto de palabras clave
- Alt diferentes alternativas
- URLs donde conseguir un fichero
35Contenedores N3
recurso anónimo
de tipo conjunto
exstaffSue extermspublication _z . _z
rdftype rdfBag . _z
rdf_1
exAnthologyOfTime . _z rdf_2
exZoologicalReasoning . _z
rdf_3 exGravitationalReflec
tions .
compuesto de propiedades enumeradas
36Contenedores RDF/XML
lt?xml version"1.0"?gt ltrdfRDF xmlnsrdf"http//w
ww.w3.org/1999/02/22-rdf-syntax-ns"
xmlnsexterms"http//example.org/vocab"gt
ltrdfDescription rdfabout"http//example.org/pac
kages/X11"gt ltextermspublicationgt
ltrdfAltgt ltrdfli rdfresource"ftp
//ftp.example.org/AnthologyOfTime"gt
ltrdfli rdfresource"ftp//ftp.example.org/Zo
ologicalReasoning"gt ltrdfli
rdfresource"ftp//ftp.example.org/Gravitation
alReflections"gt lt/rdfAltgt
lt/extermpublicationgt lt/rdfDescriptiongt lt/rdf
RDFgt
usamos rdfli para enumerar los elementos de la
colección
37RDF Schema
- Definir el vocabulario a usar en las aplicaciones
de RDF - Clases de objetos
- Propiedades y sus dominios
- Relaciones entre las clases de objetos
- Definir jerarquías o taxonomías básicas
- Puede ayudar a inferir información
- razonamiento básico
- búsqueda de información
38RDF Schema
- Se especifica en...
- http//www.w3.org/2000/01/rdf-schema
- Es un documento XML
- Es un vocabulario definido en RDF Schema
- Define los constructores que pueden utilizar
nuestro vocabularios - Suele abreviarse con el prefijo rdfs
- Conjunto de tipos de propiedades apropiados para
definir vocabularios
39Ejemplo Taxonomía
40RDF Schema Clases
- Concepto genérico, tipo o categoría de recursos
que queremos describir
exDocumento rdftype rdfsClass . exLibro
rdftype rdfsClass . exDocVisual rdftype
rdfsClass . exImagen rdftype rdfsClass
. exVideo rdftype rdfsClass .
- Ahora podemos describir recursos de este tipo
(instancias) en nuestros documentos RDF
lib1017989 rdftype exLibro
. imgportada.jpg rdftype exImagen .
41RDF Schema Subclases
- Las clases pueden ser especializaciones de clases
más generales
exLibro rdfsSubClassOf exDocumento
. exDocVisual rdfsSubClassOf exDocumento
. exImagen rdfsSubClassOf exDocVisual
. exVideo rdfrdfsSubClassOf exDocVisual .
- La propiedad SubClassOf es transitiva, Imagen es
un DocVisual, Imagen también es un Documento - Una clase puede ser subclase de varias otras
42Clases en RDF/XML (1)
lt?xml version"1.0"?gt lt!DOCTYPE rdfRDF lt!ENTITY
xsd "http//www.w3.org/2001/XMLSchema"gtgt ltrdfRD
F xmlnsrdf"http//www.w3.org/1999/02/22-rdf
-syntax-ns" xmlnsrdfs"http//www.w3.org/200
0/01/rdf-schema" xmlbase"http//example.org/s
chemas/documentos"gt ltrdfDescription
rdfID"Documento"gt ltrdftype
rdfresource"http//www.w3.org/2000/01/rdf-schema
Class"/gt lt/rdfDescriptiongt ltrdfDescription
rdfID"Libro"gt ltrdftype rdfresource"http//w
ww.w3.org/2000/01/rdf-schemaClass"/gt
ltrdfssubClassOf rdfresource"Documento"/gt lt/rdf
Descriptiongt ...
43Clases en RDF/XML (2)
ltrdfDescription rdfID"DocVisual"gt ltrdftype
rdfresource"http//www.w3.org/2000/01/rdf-schema
Class"/gt ltrdfssubClassOf rdfresource"Docume
nto"/gt lt/rdfDescriptiongt ltrdfDescription
rdfID"Imagen"gt ltrdftype rdfresource"http//
www.w3.org/2000/01/rdf-schemaClass"/gt
ltrdfssubClassOf rdfresource"DocVisual"/gt lt/rdf
Descriptiongt ltrdfDescription rdfID"Video"gt
ltrdftype rdfresource"http//www.w3.org/2000/01/
rdf-schemaClass"/gt ltrdfssubClassOf
rdfresource"DocVisual"/gt lt/rdfDescriptiongt lt/
rdfRDFgt
44RDF Schema Propiedades
- Tambien podemos definir propiedades en nuestro
vocabulario - Las propiedades son de la clase definida en RDF
Property
exautor rdftype rdfProperty
. extitulo rdftype rdfProperty
. exsubtitulo rdftype rdfProperty .
45RDF Schema Propiedades
exPersona rdftype rdfsClass . exautor
rdftype rdfProperty . exautor
rdfsrange exPersona .
exedad rdftype rdfProperty . exedad
rdfsrange xsdinteger .
El valor de autor debe ser un recurso de la
clase Persona
El valor de edad debe ser un número entero
La propiedad autor se aplica a recursos de la
clase Documento
exDocumento rdftype rdfsClass
. exautor rdftype rdfProperty
. exautor rdfsdomain exDocumento .
46RDF Schema Miscelánea
- RDF RDF Schema también permite
- Reificación de las propiedades
- Las propiedades se pueden describir como otro
recurso (meta-metadatos) - Podemos especificar quien ha catalogado una
propiedad. Puede servir para confiar en la
anotación. Cualquiera puede describir recursos en
la web - Comentarios en los esquemas (rdfscomments)
- Documentación del uso de una propiedad
- Etiquetas en diferentes idiomas (rdflabel)
47Aplicaciónes RDF Estándares
- Dublin Core Metadata Initiative
- PRISM Publishing Requirements for Industry
Standard Metadata - Distribución de contenidos en web
- XPackage
- Agrupación de recursos
- RSS 1.0 RDF Site Summary
- Agregación de contenidos
- CC/PPComposite Capabilities/Preferences Profile
- Descripción de las características de visores y
preferencias de usuario
48Herramientas para RDF
- Parser o Analizador de RDF
- Interpreta el contenido de los ficheros RDF
- Editor Protègè
- RDF se puede editar en ficheros de texto o
editores XML - Facilidades para editar RDF
- sintáxis coloreada
- edicion en formato gráfico
- Base de datos
- Almacenamiento másivo de grafo
- Lenguaje de consulta
- SPARQL
- seQRL
49Utilidades RDF
- Validador
- http//www.w3.org/RDF/Validator/
- Aplicaciones usando RDF