59
RDF The Resource Description Framework

The Resource Description Framework - Facultad de …mtovar/doc/WSO/RDF.pdfThe Resource Description Framework Web Semántica XML •XML es un metalenguaje universal para definir marcado

Embed Size (px)

Citation preview

RDF

The Resource Description Framework

Web Semántica

XML

• XML es un metalenguaje universal para definir marcado.

Proporciona un marco uniforme, y un conjunto de

herramientas como analizadores, para el intercambio de

datos y metadatos entre aplicaciones.

• XML no proporciona ningún medio para tratar la

semántica (significado) de los datos.

• Por ejemplo, no hay un significado asociado con el

anidamiento de las etiquetas; le corresponde a cada

aplicación interpretar la anidación.

XML, ejemplo 1

• Ejemplo.

• Supongamos que queremos expresar el siguiente hecho:

• Pedro Romero es profesor de Matemáticas Discretas.

• Pedro Romero is a lecturer of Discrete Mathematics

• XML

<course name="Discrete Mathematics">

<lecturer>Pedro Romero</lecturer>

</course>

<lecturer name="Pedro Romero">

<teaches>Discrete Mathematics</teaches>

</lecturer>

<teachingOffering>

<lecturer>Pedro Romero</lecturer>

<course>Discrete Mathematics</course>

</teachingOffering>

No hay una forma

estándar para asignar el

significado, y el

anidamiento.

XML y RDF

• XML Schema restringe la estructura de los documentos

XML, mientras que RDF Schema define el vocabulario

usado en los modelos de datos RDF.

• En RDFS definimos el vocabulario, específicamente que

propiedades aplicar a que tipo de objetos y que valores

pueden tomar estos, y describimos las relaciones entre

los objetos.

• Por ejemplo:

• Lecturer is a subclass of academic staff member.

RDF-Schema

• Por ejemplo:

• Lecturer is a subclass of academic staff member.

• Esta frase significa que todos los profesores son también

miembros del personal académico. Es importante

entender que hay un significado intencional asociado con

"es una subclase de“ (is a subclass of). No es hasta la

aplicación para interpretar este término; su significado

debe ser respetado por todo el software de

procesamiento de RDF.

Ejemplo

<academicStaffMember>Gregorio Antonio</academicStaffMember>

<professor>Miguel Ramos</professor>

<course name="Discrete Mathematics">

<isTaughtBy>Pedro Romero</isTaughtBy>

</course>

• Supongamos que necesitamos coleccionar todos los miembros de la

planta de profesores. Una expresion en Xpath debe ser:

• //academicStaffMember

Ejemplo

• El resultado sólo es Gregorio Antonio. Desde el punto de

vista de XML, pero es una respuesta insatisfactoria desde

el punto de vista semántico. Los lectores humanos

también incluirían a los otros dos como respuesta porque:

• Todos los profesores son miembros de la planta docente (es decir,

profesores son una subclase de academicStaffMember);

• Los cursos solo lo enseñan miembros de la planta docente.

• Este tipo de información hace uso del modelo semántico

de un dominio particular y no se puede representar en

XML o en RDF pero es conocimiento escrito en RDF

Schema.

RDF y RDFS

• RDF

• Resource Description Framework

• Modelo de Datos

• Sintaxis (XML)

• Independiente del dominio

• El vocabulario esta definido por RDF Schema

• RDF Schema

• RDFS Lenguaje de Descripción del Vocabulario

• Captura el modelo semántico de un dominio

RDF

• Recomendación W3c en 1999

• Modelo de datos en forma de grafo

• Cada nodo es un Recurso: URI ó Literal

• Las aristas son también URIs

• Varios formatos de representación:

• RDF/XML, N3, Turtle, etc.

RDF

• El poder de representación de tripletas junto con la

serialización XML.

• RDF (ResourceDescriptionFramework)

• Mecanismo para describir recursos

• Recurso: Cualquier cosa que pueda nombrarse mediante URI

• Propiedad: Característica o atributo de un recurso

• Se identifica mediante una URI => Valor global

• Un enunciado está formado por una tripleta:

• Sujeto -> Propiedad -> Objeto

Sujeto

Propiedad

Objeto

RDF

Subject Predicate

Object

Grafo RDF

RDF • RDF es un lenguaje que permite describir instrucciones de marcado

en recursos • John is father of Bill

• Instrucciones (o tripletas) como fórmulas lógicas P(x,y), donde

el predicado binario P relaciona el objeto x con el objeto y.

• Modelo de tipletas de datos: <subject, predicate, object> • Subject: Recurso o nodo vacio • Predicate: Propiedad • Object: Recurso (o colección de recursos), literales o nodos vacios.

• Ejemplo:

<ex:john, ex:father-of, ex:bill>

• RDF ofrece predicados (propiedades) binarios únicamente.

Ejercicio

• https://www.w3.org/RDF/Validator/

• Produce el grafo y las tripletas de:

1: <?xml version="1.0"?>

2: <rdf:RDF

3: xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

4: xmlns:si="http://www.ejemplo.com/rdf/">

5: <rdf:Description rdf:about="http://www.ejemplo.com">

6: <si:title>Ejemplos RDF</si:title>

7: <si:author>Juan Torres Olmedo</si:author>

8: </rdf:Description>

9: </rdf:RDF>

Solución

RDF: Ideas Básicas

• Los conceptos fundamentales de RDF son:

• Recursos,

• Propiedades,

• Sentencias.

Recursos

• Objeto, una “cosa”.

• Puede ser:

• Autores,

• Libros,

• Editores,

• Lugares,

• Personas

• Hoteles

• Habitaciones,

• Motores de búsqueda, etc.

Recursos

• Un recurso puede ser: • Un página Web (ejemplo http://www.w3.org)

• Una persona (ejemplo http://www.fernandez.com)

• Un libro (ejemplo urn:isbn:0-345-33971-1)

• Cualquier cosa denotada con un URI

• Un URI es un identificador y no una localización en la Web.

• RDF permite hacer

• RDF permite hacer declaraciones acerca de recursos: • http://www.w3.org tiene el formato text/html

• http://www.fernandez.com tiene primer nombre Diego

• urn:isbn:0-345-33971-1 tiene autor Tolkien

URI, URN, URL

• Un Uniform Resource Identifier (URI) es una cadena de caracteres usados

para identifiar un nombre o un recurso en Internet.

• Un URI puede ser un URL o un URN

• Un Uniform Resource Name (URN) define elementos identidad • El URN urn:isbn:0-395-36341-1 es un URI que especifica el sistema identificador, es decir, el

ISBN (International Standard Book Number), también como la referencia unica con ese sistema

e información acerca de un libro, pero no sugiere donde y como obtener una copia actual de el.

• Un Uniform Resource Locator (URL) proporciona un método para encontrarlo

• El URL identifica un recurso (la página home de STI’s) e implica que una

representación de ese recurso se obtiene via HTTP desde un host de red

nombrado www.sti-innsbruck.at

Literales

• Literales planas

• Ejemplo: ”any text”

• Lenguje opcional, ejemplo ”Hello, how are you?”@en-GB

• Literales tipadas

• Ejemplo. "hello"^^xsd:string, "1"^^xsd:integer

• Tipos de datos recomendados

• XML Schema datatypes

• Solo como objeto de una tripleta, ejemplo:

<http://example.org/#john>,

<http://example.org/#hasName>,

”John Smith”ˆˆxsd:string

Tipos de datos

• Un tipo de dato predefinido: rdf:XMLLiteral • Usado para incluir XML en RDF

• Los tipos de datos recomendados son tipos de datos de XML

Schema, por ejemplo: • xsd:string

• xsd:integer

• xsd:float

• xsd:anyURI

• xsd:boolean

Recurso, Propiedad y Valor de

Propiedad RDF • RDF identifica las cosas usando identificadores Web

(URIs), y describe recursos con propiedades y valores de

propiedad.

• Un Recurso es una cosa que puede tener un URI,

• Tal como http://www.ejemplo.org/

• Una Propiedad es un recurso que tiene un nombre,

• Tal como “author” o “homepage”

• Un valor de propiedad es el valor de la propiedad.

• Tal como “Juan Perez” o http://www.ejemplo.com (note que un

valor de una propiedad puede ser otro recurso).

Sentencias RDF

Subject Predicate

author http://www.w3schools.com/RDF

Resource Property

Object

Jan Egil Refsnes

Property Value

Puede ser otro recurso

Ejercicio

RDF y XML

• Documentos RDF se pueden escribir en el lenguaje XML:

RDF/XML.

• Intercambio de información entre

• Diferentes tipos de computadoras

• Tipos de sistemas operativos y

• Lenguajes de aplicación.

Sentencias RDF

• La combinación de un Recurso, una Propiedad, y un valor Propiedad

forman una Sentencia (conocida como el sujeto, predicado y objeto

de una sentencia).

• Ejemplo:

• Sentencia: "The author of http://www.w3schools.com/rdf is Jan Egil

Refsnes".

• El sujeto de la sentencia es: http://www.w3schools.com/rdf

• El predicado es: author

• El objeto es: Jan Egil Refsnes

• Sentencia: "The homepage of http://www.w3schools.com/rdf is

http://www.w3schools.com".

• El sujeto de la sentencia es: http://www.w3schools.com/rdf

• El predicado es: homepage

• El objeto es: http://www.w3schools.com

Ejemplo Title Artist Country Company Price Year

Empire Burlesque Bob Dylan USA Columbia 10.90 1985

Hide your heart Bonnie Tyler UK CBS Records 9.90 1988

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Empire Burlesque">

<cd:artist>Bob Dylan</cd:artist>

<cd:country>USA</cd:country>

<cd:company>Columbia</cd:company>

<cd:price>10.90</cd:price>

<cd:year>1985</cd:year>

</rdf:Description>

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Hide

your heart">

<cd:artist>Bonnie Tyler</cd:artist>

<cd:country>UK</cd:country>

<cd:company>CBS Records</cd:company>

<cd:price>9.90</cd:price>

<cd:year>1988</cd:year>

</rdf:Description>

</rdf:RDF>

RDF

• La primera línea del documento RDF es la declaración XML. La

declaración XML es seguida por el elemento raíz del documento

RDF:

• <rdf:RDF>.

• El espacio de nombres xmlns:rdf, especifica que los elementos con

el prefijo rdf son el espacio de nombres

"http://www.w3.org/1999/02/22-rdf-syntax-ns#".

• El espacio de nombres xmlns:cd, especifica que los elementos con

el prefijo cd son del espacio de nomres

"http://www.recshop.fake/cd#".

• El elemento <rdf:Description> contiene la descripción del recurso

identificado por el atributo rdf:about

• Los elementos: <cd:artist>, <cd:country>, <cd:company>, etc. Son

propiedades del recurso.

Elementos RDF

• Los elementos principales de RDF son el elemento raíz,

<RDF>, y el elemento <Description>, que identifica un

recurso.

Elemento <rdf:RDF>

• <rdf:RDF> es un elemento raíz de un documento RDF.

• Define al documento XML como documento RDF.

• Contiene una referencia al namespace RDF:

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

...Description goes here...

</rdf:RDF>

El elemento <rdf:Description>

• El elemento <rdf: Description> identifica un recurso con el atributo

about.

• El elemento <rdf: Description> contiene elementos que describen el

recurso:

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Empire Burlesque">

<cd:artist>Bob Dylan</cd:artist>

<cd:country>USA</cd:country>

<cd:company>Columbia</cd:company>

<cd:price>10.90</cd:price>

<cd:year>1985</cd:year>

</rdf:Description>

</rdf:RDF>

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Empire Burlesque">

<cd:artist>Bob Dylan</cd:artist>

<cd:country>USA</cd:country>

<cd:company>Columbia</cd:company>

<cd:price>10.90</cd:price>

<cd:year>1985</cd:year>

</rdf:Description>

</rdf:RDF>

El elemento <rdf:Description>

• Los elementos, artist, country, company, price, and year,

son definidos en el espacio de nombres

http://www.recshop.fake/cd#

• Este espacio de nombres esta fuera del RDF (no e es

parte de RDF).

• RDF define sólo el marco de trabajo.

• Los elementos, artist, country, company, price, and year,

deben ser definidos por alguien más (compañía,

organización, persona, etc.).

Propiedades como atributos

• Los elementos propiedad también se definen como

atributos (en lugar de los elementos):

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Empire Burlesque"

cd:artist="Bob Dylan" cd:country="USA"

cd:company="Columbia" cd:price="10.90"

cd:year="1985" />

</rdf:RDF>

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Empire Burlesque"

cd:artist="Bob Dylan" cd:country="USA"

cd:company="Columbia" cd:price="10.90"

cd:year="1985" />

</rdf:RDF>

Propiedades como Recursos

• Los elementos propiedad pueden definirse como

recursos.

• La propiedad “artist” no tiene un valor, pero si una

referencia a un recurso que contiene información acerca

del artista. <?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Empire Burlesque">

<cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />

</rdf:Description>

</rdf:RDF>

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Empire Burlesque">

<cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />

</rdf:Description>

</rdf:RDF>

Contenedores RDF

• Los contenedores RDF se usan para describir grupo de

cosas.

• Los siguientes elementos RDF se usan para describir

grupos:

• <Bolsa>,

• <Sec> y

• <Alt>.

Elemento <RDF Bag>

• El elemento <RDF Bag> se utiliza para describir una lista

de valores que no tienen que estar en un orden

específico.

• <rdf: Bag> puede contener valores duplicados.

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-

ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Beatles">

<cd:artist>

<rdf:Bag>

<rdf:li>John</rdf:li>

<rdf:li>Paul</rdf:li>

<rdf:li>George</rdf:li>

<rdf:li>Ringo</rdf:li>

</rdf:Bag>

</cd:artist>

</rdf:Description>

</rdf:RDF>

Nodos blancos

• Los nodos blancos son nodos sin un URI

• Recursos no nombrados

• Constructores más complejos

• Ejemplo: <#john>, <#hasName>, _:johnsname

_:johnsname, <#firstName>, ”John”ˆˆxsd:string

_:johnsname, <#lastName>, ”Smith”ˆˆxsd:string

Nodos blancos

• Representación de datos complejos

Un nodo en blanco se puede utilizar para adjuntar indirectamente a

un recurso un conjunto consistente de propiedades que en conjunto

representan a un dato complejo

• Clases anonimas en OWL

El lenguaje de ontologías ontología OWL utiliza nodos blanco para

representar clases anónimas, tales como uniones o intersecciones de

clases o clases llamadas restricciones, definidas por una restricción

en una propiedad.

Elemento <rdf:Sec> • La <rdf: Sec> se utiliza para describir una lista ordenada de valores

(por ejemplo, en orden alfabético).

• El elemento <rdf:Sec> puede contener valores duplicados.

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Beatles">

<cd:artist>

<rdf:Seq>

<rdf:li>George</rdf:li>

<rdf:li>John</rdf:li>

<rdf:li>Paul</rdf:li>

<rdf:li>Ringo</rdf:li>

</rdf:Seq>

</cd:artist>

</rdf:Description>

</rdf:RDF>

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Beatles">

<cd:artist>

<rdf:Seq>

<rdf:li>George</rdf:li>

<rdf:li>John</rdf:li>

<rdf:li>Paul</rdf:li>

<rdf:li>Ringo</rdf:li>

</rdf:Seq>

</cd:artist>

</rdf:Description>

</rdf:RDF>

Elemento <rdf:Alt> • El elemento <rdf:Alt> es usado para describir una lista de valores

alternativos (el usuario puede seleccionar solo un de los valores).

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Beatles">

<cd:format>

<rdf:Alt>

<rdf:li>CD</rdf:li>

<rdf:li>Record</rdf:li>

<rdf:li>Tape</rdf:li>

</rdf:Alt>

</cd:format>

</rdf:Description>

</rdf:RDF>

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description

rdf:about="http://www.recshop.fake/cd/Beatles">

<cd:format>

<rdf:Alt>

<rdf:li>CD</rdf:li>

<rdf:li>Record</rdf:li>

<rdf:li>Tape</rdf:li>

</rdf:Alt>

</cd:format>

</rdf:Description>

</rdf:RDF>

Términos RDF

• En los ejemplos anteriores hemos hablado de "lista de valores" al describir los elementos contenedores.

• En RDF estos "lista de valores" son llamados miembros.

• Un contenedor es un recurso que contiene cosas.

• Las cosas contenidas son llamados miembros (no lista de valores).

• Las colecciones RDF describen grupos que contienen únicamente miembros específicos.

Atributo rdf:parseType="Collection" • Las colecciones RDF son usadas para describir grupos que

contienen únicamente miembros específicos.

• Una colección se describe con el atributo rdf:parseType="Collection".

<?xml version="1.0"?>

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:cd="http://recshop.fake/cd#">

<rdf:Description

rdf:about="http://recshop.fake/cd/Beatles">

<cd:artist rdf:parseType="Collection">

<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/George"/>

<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/John"/>

<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Paul"/>

<rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Ringo"/>

</cd:artist>

</rdf:Description>

</rdf:RDF>

RDF, notación N3

• Los grafos RDF pueden representarse como una lista de

tripletas separadas por punto (Notación N3)

<subject, predicate, object> <sujbect> <predicate> <object>

Ejercicio

• Representar el siguiente conocimiento en RDF

La página http://www.uniovi.esha sidorealizadaporJuan Gallardo, el cual

tiene por correo electrónico [email protected] y tiene 26años.

Sin embargo, la página http://www.euitio.uniovi.es ha sidorealizada por

Isabel Castillay Juan Gallardo. El correo electrónico de Isabel

[email protected] y tiene 25 años.

Nodos anónimos

• [ ] representa un nodo anónimo

• Las declaraciones realizadas dentro de [] hacen

referencia a dicho nodo anónimo.

Ejercicio

• Representa la información de la tabla

DNI Nombre Apellidos

9391212 Juan Gallardo

1223452 Jose Torre

Ejercicio: RDF contenedores

“The lecture is attended by John, Mary and Chris”

Bag

“[RDF-Concepts] is edited by Graham and Jeremy

(in that order)”

Seq

“The source code for the application may be found at

ftp1.example.org,

ftp2.example.org,

ftp3.example.org”

Alt

“The lecture is attended by John, Mary and Chris”

Bag

“[RDF-Concepts] is edited by Graham and Jeremy

(in that order)”

Seq

“The source code for the application may be found at

ftp1.example.org, ftp2.example.org, ftp3.example.org”

Alt