25.07.2013 Views

RDF avanzado - Departamento de Ciencias e Ingeniería de la ...

RDF avanzado - Departamento de Ciencias e Ingeniería de la ...

RDF avanzado - Departamento de Ciencias e Ingeniería de la ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Objetivos<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

<strong>RDF</strong> <strong>avanzado</strong><br />

Pablo R. Fillottrani<br />

Depto. <strong>Ciencias</strong> e <strong>Ingeniería</strong> <strong>de</strong> <strong>la</strong> Computación<br />

Universidad Nacional <strong>de</strong>l Sur<br />

Segundo Cuatrimestre 2009<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

<strong>RDF</strong> permite expresar propieda<strong>de</strong>s simples sobre recursos, pero<br />

<strong>la</strong>s comunida<strong>de</strong>s <strong>de</strong> usuarios también necesitan <strong>de</strong>finir<br />

vocabu<strong>la</strong>rios para usar en esas propieda<strong>de</strong>s<br />

<strong>RDF</strong> puro no provee formas <strong>de</strong> <strong>de</strong>finir c<strong>la</strong>ses y propieda<strong>de</strong>s<br />

específicas <strong>de</strong> un dominio<br />

en el documento <strong>RDF</strong> Vocabu<strong>la</strong>ry Description Language se<br />

<strong>de</strong>finen extensiones para ello<br />

todos los términos <strong>de</strong>finidos en este documento tienen URIrefs<br />

que comienzan con<br />

http://www.w3.org/2000/01/rdf-schema#<br />

usualmente asociado al prefijo rdfs<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

<strong>RDF</strong> <strong>avanzado</strong><br />

1 Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

2 Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

3 Introducción a SPARQL<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

<strong>RDF</strong> Schena no <strong>de</strong>fine vocabu<strong>la</strong>rio especfíico <strong>de</strong> un dominio,<br />

pero introduce elementos para po<strong>de</strong>r <strong>de</strong>finirlo<br />

estos elementos permiten establecer cuáles URIrefs son c<strong>la</strong>ses,<br />

propieda<strong>de</strong>s, y cómo estas c<strong>la</strong>ses y propieda<strong>de</strong>s <strong>de</strong>ben estar<br />

re<strong>la</strong>cionadas<br />

en resumen, <strong>RDF</strong> Schema permite introducir un sistema <strong>de</strong> tipos<br />

para <strong>RDF</strong><br />

pero a diferencia <strong>de</strong> los lenguajes <strong>de</strong> programación, los tipos <strong>de</strong><br />

<strong>RDF</strong> Schema no <strong>de</strong>finen una camisa <strong>de</strong> fuerza don<strong>de</strong> <strong>la</strong><br />

información <strong>de</strong>be ser adaptada, sino que proveen información<br />

adicional sobre los recursos que <strong>de</strong>scriben<br />

esta información pue<strong>de</strong> luego ser usada en los servicios <strong>de</strong><br />

inferencia<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


Lenguaje<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

c<strong>la</strong>ses: rdfs:C<strong>la</strong>ss<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

#estudiante rdf:type #rdfs:C<strong>la</strong>ss .<br />

ex:juan rdf:type #estudiante.<br />

jerarquía <strong>de</strong> c<strong>la</strong>ses: rdfs:subC<strong>la</strong>ssOf<br />

#estudiante rdfs:subC<strong>la</strong>ssOf #person.<br />

propieda<strong>de</strong>s: rdf:Property<br />

#nombre rdf:type rdf:Property .<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

literales: rdfs:Literal<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

:juan #nombre "Juan" .<br />

:juan #nombre _:X .<br />

_:X rdf:type rdfs:Literal .<br />

tipos <strong>de</strong> datos: rdfs:Datatype<br />

todos los tipos <strong>de</strong> datos XML Schema son instancias <strong>de</strong><br />

rdfs:Datatype, aunque algunos como QName no son<br />

apropiados para ser usados en <strong>RDF</strong><br />

también pue<strong>de</strong>n usarse otros tipos <strong>de</strong> datos no XML Schema<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

jerarquía <strong>de</strong> propieda<strong>de</strong>s: rdfs:subPropertyOf<br />

#madre rdfs:subPropertyOf #progenitor .<br />

asociación <strong>de</strong> propieda<strong>de</strong>s con c<strong>la</strong>ses: rdfs:domain<br />

#nombre rdfs:domain #person .<br />

significa que <strong>la</strong> propiedad nombre sólo se aplica a personas<br />

asociación <strong>de</strong> valores a propieda<strong>de</strong>s: rdfs:range<br />

#nombre rdfs:range xsd:string .<br />

significa que el resultado <strong>de</strong> nombre siempre es una ca<strong>de</strong>na<br />

ninguna especificación <strong>de</strong> rango libera <strong>la</strong> propieda<strong>de</strong>; múltiples<br />

especificaciones restringen <strong>la</strong> propiedad a <strong>la</strong>s instancias <strong>de</strong> <strong>la</strong><br />

intersección<br />

Principios <strong>de</strong> <strong>RDF</strong>S<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

todos los recursos son instancias <strong>de</strong> rdfs:Resource<br />

<strong>la</strong>s c<strong>la</strong>ses son recursos que <strong>de</strong>scriben conjuntos <strong>de</strong> recursos<br />

se pue<strong>de</strong>n <strong>de</strong>finir jerarquías <strong>de</strong> c<strong>la</strong>ses, y todas <strong>la</strong>s c<strong>la</strong>ses son<br />

instancias <strong>de</strong> rdfs:C<strong>la</strong>ss<br />

<strong>la</strong>s propieda<strong>de</strong>s son recursos que tienen un rango y un dominio<br />

se pue<strong>de</strong>n <strong>de</strong>finir jerarquías <strong>de</strong> propieda<strong>de</strong>s, y todas <strong>la</strong>s<br />

propieda<strong>de</strong>s son instancias <strong>de</strong> rdfs:Property<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

Re<strong>la</strong>ción entre el vocabu<strong>la</strong>rio <strong>de</strong> <strong>RDF</strong>S<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

Resumen <strong>de</strong> vocabu<strong>la</strong>rio <strong>de</strong> <strong>RDF</strong>S<br />

c<strong>la</strong>ses<br />

rdfs:Resource rdfs:C<strong>la</strong>ss rdfs:Literal<br />

rdfs:Datatype rdfs:Container<br />

rdfs:ContainerMembershipProperty<br />

propieda<strong>de</strong>s:<br />

rdfs:domain rdfs:range rdfs:subPropertyOf<br />

rdfs:subC<strong>la</strong>ssOf rdfs:member<br />

rdfs:seeAlso rdfs:isDefinedBy rdfs:comment<br />

rdfs:<strong>la</strong>bel<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Resumen <strong>de</strong> vocabu<strong>la</strong>rio en <strong>RDF</strong><br />

c<strong>la</strong>ses:<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

rdf:Property rdf:Statement rdf:XMLLiteral<br />

rdf:Seq rdf:Bag rdf:Alt rdf:List<br />

propieda<strong>de</strong>s:<br />

rdf:type rdf:subject rdf:predicate<br />

rdf:object rdf:first rdf:rest<br />

rdf:_n rdf:value<br />

recursos:<br />

Metadatos<br />

rdf:nil<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Vocabu<strong>la</strong>rio<br />

Metadatos<br />

los metadatos son datos sobre los datos<br />

en <strong>RDF</strong>S es posible <strong>de</strong>finir metadatos sobre recursos, usando<br />

algunos <strong>de</strong> los siguientes términos<br />

rdfs:comment <strong>de</strong>scripción <strong>de</strong>l recurso orientada a un humano<br />

rdfs:<strong>la</strong>bel nombre <strong>de</strong>l recurso orientado al humano<br />

rdfs:seeAlso información adicional sobre el recurso<br />

rdfs:isDefinedBy información sobre el autor<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


Conceptos básicos<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

sean G,G ′ grafos <strong>RDF</strong> (conjuntos <strong>de</strong> trip<strong>la</strong>s), entonces<br />

G ′ es un subgrafo <strong>de</strong> G si y solo si G ′ ⊆ G<br />

G ′ es una instancia <strong>de</strong> G si y solo si G ′ se obtiene a partir <strong>de</strong> G<br />

reemp<strong>la</strong>zando un nodo en b<strong>la</strong>nco por otro nodo en b<strong>la</strong>nco, un<br />

literal o un URI<br />

G es un grafo totalmente instanciado si no contiene nodos en<br />

b<strong>la</strong>nco<br />

<strong>la</strong> semántica formal <strong>de</strong> <strong>RDF</strong> se <strong>de</strong>fine usando <strong>la</strong> teoría <strong>de</strong><br />

mo<strong>de</strong>los<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

significado <strong>de</strong> una expresión F en un grafo totalmente<br />

instanciado G en una interpretación I:<br />

si E es un literal "xxx" entonces I(E) = aaa<br />

si E es un literal "xxx"@ttt entonces I(E) =< aaa,ttt ><br />

si E es un literal tipado, entonces I(E) = IL(E)<br />

si E es un URIref, entonces I(E) = IS(E)<br />

si E es una trip<strong>la</strong> s p o . totalmente instanciada, entonces<br />

I(E) = verda<strong>de</strong>ro si s,p,o pertenecen al vocabu<strong>la</strong>rio y<br />

< s,o >∈ IEXT (IP(p)); sino I(E) = falso<br />

si E es un grafo totalmente instanciado entonces I(E) = falso si<br />

existe en E una trip<strong>la</strong> tal que su interpretación es falso; sino<br />

I(E) = verda<strong>de</strong>ro<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Interpretación<br />

Ejemplo<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

una interpretación I <strong>de</strong> un vocabu<strong>la</strong>rio <strong>RDF</strong> está compuesta por<br />

un conjunto no vacío IR <strong>de</strong> recursos, l<strong>la</strong>mado dominio<br />

un conjunto IP <strong>de</strong> propieda<strong>de</strong>s<br />

un mapeo IEXT <strong>de</strong> IP al conjunto <strong>de</strong> partes <strong>de</strong> IR × IR<br />

un mapeo IS <strong>de</strong> URIrefs a IR ∪ IP<br />

un mapeo IL <strong>de</strong> literales tipados a IR<br />

un subconjunto distinguido L <strong>de</strong> IR que contiene a los valores <strong>de</strong><br />

todos los literales<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

sea el siguiente grafo escrito en N-triples:<br />

# Mi libro en <strong>RDF</strong><br />

dc:creator uns:profe .<br />

uns:profe uns:nombre "Pablo" .<br />

uns:profe uns:apellido "Fillottrani" .<br />

uns:profe uns:posgrado "1"^^xsd:boolean .<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


Nodos en b<strong>la</strong>nco<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

un nodo en b<strong>la</strong>nco se interpreta como una variable existencial en<br />

lógica clásica<br />

para asignar un significado a los nodos en b<strong>la</strong>ncos, se extien<strong>de</strong><br />

una interpretación I con un mapeo parcial A que va <strong>de</strong> los nodos<br />

en b<strong>la</strong>ncos a elementos <strong>de</strong>l dominio<br />

el concepto <strong>de</strong> interpretación se extien<strong>de</strong> <strong>de</strong> forma que si E es un<br />

nodo en b<strong>la</strong>nco y A(E) está <strong>de</strong>finido, entonces [I + A](E) = A(E)<br />

entonces si E es un grafo <strong>RDF</strong>, I(E) = verda<strong>de</strong>ro si existe un<br />

mapeo A ′ tal que [I + A ′ ](E) = verda<strong>de</strong>ro; sino I(E) = falso<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Mo<strong>de</strong>los y Consecuencia Lógica<br />

Ejemplo<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

un mo<strong>de</strong>lo <strong>de</strong> un grafo G es una iterpretación I tal que<br />

I(G) = verda<strong>de</strong>ro. Se escribe I |= G<br />

el conjunto <strong>de</strong> mo<strong>de</strong>los <strong>de</strong> un grafo G se nota M (G)<br />

esta notación es trivial <strong>de</strong> exten<strong>de</strong>r a conjuntos <strong>de</strong> grafos<br />

un grafo G es consecuencia lógica <strong>de</strong> un conjuntos <strong>de</strong> grafos S si<br />

y solo si M (S) ⊆ M (G). Se escribe S |= G<br />

<strong>la</strong> re<strong>la</strong>ción <strong>de</strong> consecuencia lógica se pue<strong>de</strong> exten<strong>de</strong>r a<br />

conjuntos <strong>de</strong> grafos, y es transitiva<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

sea el siguiente grafo escrito en N-triples:<br />

# Mi libro en <strong>RDF</strong><br />

dc:creator _:autor .<br />

_:autor uns:nombre "Pablo" .<br />

_:autor uns:apellido "Fillottrani" .<br />

_:autor uns:posgrado "1"^^xsd:boolean .<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

<strong>la</strong> operación <strong>de</strong> mezc<strong>la</strong> <strong>de</strong> grafos <strong>RDF</strong> se <strong>de</strong>fine como <strong>la</strong> unión<br />

<strong>de</strong> trip<strong>la</strong>s, reemp<strong>la</strong>zando posibles nodos en b<strong>la</strong>nco en común<br />

Lema (<strong>de</strong> <strong>la</strong> mezc<strong>la</strong>)<br />

La mezc<strong>la</strong> <strong>de</strong> un conjunto <strong>de</strong> grafos es consecuencia lógica <strong>de</strong>l<br />

conjunto, y tiene como consecuencia lógica a todos los miembros <strong>de</strong>l<br />

conjunto<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Lemas<br />

Lema (<strong>de</strong>l grafo vacío)<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

El grafo vacío es consecuencia lógica <strong>de</strong> cualquier grafo.<br />

Lema (<strong>de</strong>l subgrafo)<br />

Un grafo tiene como consecuencia lógica todos sus subgrafos.<br />

Lema (<strong>de</strong> <strong>la</strong> instancia)<br />

Una instancia <strong>de</strong> un grafo tiene como consecuencia lógica al grafo<br />

original.<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

el principal resultado para <strong>RDF</strong> es el siguiente lema<br />

Lema (<strong>de</strong> interpo<strong>la</strong>ción)<br />

Un conjunto <strong>de</strong> grafos S tiene como consecuencia lógica un grafo E si<br />

y solo si existe un subgrafo <strong>de</strong> S que es una instancia <strong>de</strong> E<br />

este lema muestra que el proceso <strong>de</strong> encontrar una sustitución<br />

<strong>de</strong> nodos en b<strong>la</strong>nco <strong>de</strong> E tal que está incluído en S es un<br />

proceso sano y completo para ver si S |= E<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Interpretación <strong>de</strong>l vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

<strong>RDF</strong> introduce vocabu<strong>la</strong>rio que tiene un significado específico<br />

una interpretación <strong>RDF</strong> es una interpretación I que satisface <strong>la</strong>s<br />

siguientes condiciones extra sobre el vocabu<strong>la</strong>rio <strong>RDF</strong>:<br />

si x ∈ IP si y solo si<br />

< x,I(rdf : Property) >∈ IEXT (rdf : type)<br />

condiciones que <strong>de</strong>ben cumplir los literales con tipo<br />

rdf:XMLLiteral<br />

incluye un conjunto <strong>de</strong> trip<strong>la</strong>s axiomáticas<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

no se incluyen <strong>de</strong>finiciones semánticas para <strong>la</strong> reificación,<br />

contenedores y colecciones, con el objetivo <strong>de</strong> no limitar posibles<br />

implementaciones<br />

en base al concepto <strong>de</strong> interpretaciones <strong>RDF</strong> se pue<strong>de</strong> <strong>de</strong>finir el<br />

concepto <strong>de</strong> consecuencias lógicas <strong>RDF</strong> entre conjuntos <strong>de</strong><br />

grafos<br />

para obtener <strong>la</strong>s consecuencias lógicas <strong>RDF</strong> <strong>de</strong> un grafo, se<br />

transforma al grafo original siguiendo un conjuntos <strong>de</strong> reg<strong>la</strong>s<br />

<strong>de</strong>nominadas reg<strong>la</strong>s <strong>de</strong> consecuencias <strong>RDF</strong><br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Trip<strong>la</strong>s axiomáticas para <strong>RDF</strong><br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

rdf:type rdf:type rdf:Property .<br />

rdf:subject rdf:type rdf:Property .<br />

rdf:predicate rdf:type rdf:Property .<br />

rdf:object rdf:type rdf:Property .<br />

rdf:first rdf:type rdf:Property .<br />

rdf:rest rdf:type rdf:Property .<br />

rdf:value rdf:type rdf:Property .<br />

rdf:_1 rdf:type rdf:Property .<br />

rdf:_2 rdf:type rdf:Property .<br />

...<br />

rdf:nil rdf:type rdf:List .<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Interpretación <strong>de</strong>l vocabu<strong>la</strong>rio <strong>RDF</strong>S<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

<strong>RDF</strong> Schema tiene un conjunto adicional <strong>de</strong> vocabu<strong>la</strong>rio, con<br />

mayores restricciones semánticas<br />

se <strong>de</strong>fine IC como el conjunto <strong>de</strong> elementos c <strong>de</strong> IR tal que <strong>la</strong><br />

trip<strong>la</strong><br />

c rdf:type rdfs:C<strong>la</strong>ss .<br />

pertenece a <strong>la</strong> interpretación<br />

ICEXT (y) es el conjunto <strong>de</strong> elementos r <strong>de</strong> IR tal que < r,y ><br />

pertence a IEXT (rdf : type)<br />

una interpretación <strong>RDF</strong>S es una interpretación <strong>RDF</strong> que cumple,<br />

entre otras, <strong>la</strong>s siguientes condiciones:<br />

IC = ICEXT (I(rdfs : C<strong>la</strong>ss))<br />

IR = ICEXT (I(rdfs : Resource))<br />

si < x,y >∈ IEXT (rdfs : domain) y < u,v >∈ IEXT (x)<br />

entonces u ∈ ICEXT (y)<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

Algunas trip<strong>la</strong>s axiomáticas para <strong>RDF</strong>S<br />

rdf:type rdfs:domain rdfs:Resource .<br />

rdfs:domain rdfs:domain rdf:Property .<br />

rdfs:range rdfs:domain rdf:Property .<br />

rdfs:subPropertyOf rdfs:domain rdf:Property .<br />

rdfs:subC<strong>la</strong>ssOf rdfs:domain rdfs:C<strong>la</strong>ss .<br />

rdf:subject rdfs:domain rdf:Statement .<br />

rdf:predicate rdfs:domain rdf:Statement .<br />

rdf:object rdfs:domain rdf:Statement .<br />

rdfs:member rdfs:domain rdfs:Resource .<br />

rdf:first rdfs:domain rdf:List .<br />

rdf:rest rdfs:domain rdf:List .<br />

...<br />

Objetivos<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

SPARQL es un lenguaje <strong>de</strong> consulta para <strong>RDF</strong>, estilo SQL para<br />

base <strong>de</strong> datos re<strong>la</strong>cionales<br />

es una recomendación W3C <strong>de</strong>s<strong>de</strong> enero 2008<br />

su especificación consta <strong>de</strong> tres documentos:<br />

SPARQL Query Language for <strong>RDF</strong> <strong>de</strong>fine <strong>la</strong> sintaxis y <strong>la</strong><br />

semántica <strong>de</strong> <strong>la</strong>s consultas<br />

SPARQL Protocol for <strong>RDF</strong> <strong>de</strong>fine un protocolo para accesso<br />

remoto entre una aplicación que emita consultas SPARQL, y un<br />

servidor que le envíe resultados<br />

SPARQL Query Results XML Format especifica un formato XML<br />

para los resultados <strong>de</strong> <strong>la</strong>s consultas ASK y SELECT <strong>de</strong> SPARQL.<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Conceptos básicos<br />

Semántica en Teoría <strong>de</strong> Mo<strong>de</strong>los<br />

Implicación<br />

en base al concepto <strong>de</strong> interpretaciones <strong>RDF</strong>S se pue<strong>de</strong> <strong>de</strong>finir<br />

el concepto <strong>de</strong> consecuencias lógicas <strong>RDF</strong>S entre conjuntos <strong>de</strong><br />

grafos<br />

para obtener <strong>la</strong>s consecuencias lógicas <strong>RDF</strong>S <strong>de</strong> un grafo, se<br />

transforma al grafo original siguiendo un conjuntos <strong>de</strong> reg<strong>la</strong>s<br />

<strong>de</strong>nominadas reg<strong>la</strong>s <strong>de</strong> consecuencias <strong>RDF</strong>S<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Sintaxis para consultas<br />

Respuestas<br />

SPARQL usa para <strong>la</strong>s consultas una sintaxis muy parecida a SQL<br />

cada consulta pue<strong>de</strong> estar formada por <strong>la</strong>s siguientes c<strong>la</strong>usu<strong>la</strong>s:<br />

PREFIX <strong>de</strong>fine los prefijos para los espacios <strong>de</strong> nombres<br />

SELECT i<strong>de</strong>ntifica <strong>la</strong>s variables que se retornarán como<br />

resultados<br />

FROM nombra los grafos que serán consultados<br />

WHERE patrón para <strong>la</strong> consulta en <strong>la</strong> forma <strong>de</strong> una lista <strong>de</strong> trip<strong>la</strong>s<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


Ejemplo <strong>de</strong> consulta<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

PREFIX dc: <br />

SELECT ?title<br />

WHERE { <br />

dc:title ?title }<br />

C<strong>la</strong>usu<strong>la</strong> SELECT<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

<strong>la</strong> consulta pue<strong>de</strong> contener variables, cuyos nombres comienzan<br />

con ?. Ejemplo: ?apellido<br />

pero no necesariamente todas <strong>la</strong>s variables son interesantes en<br />

el resultado<br />

<strong>la</strong> cláusu<strong>la</strong> SELECT filtra aquel<strong>la</strong>s variables que no aparacen en<br />

el resultado<br />

<strong>la</strong> sintaxis es<br />

SELECT ,,...<br />

SELECT <br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

C<strong>la</strong>usu<strong>la</strong> PREFIX<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

PREFIX es el mecanismo para usar espacios <strong>de</strong> nombres<br />

consta <strong>de</strong> cero o más <strong>de</strong> <strong>la</strong>s siguientes cláusu<strong>la</strong>s<br />

PREFIX : <br />

se pue<strong>de</strong> <strong>de</strong>finir un prefijo por <strong>de</strong>fecto<br />

C<strong>la</strong>usu<strong>la</strong> FROM<br />

PREFIX : <br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

<strong>la</strong>s consultas SPARQL se contestan en base a un grafo <strong>RDF</strong><br />

<strong>la</strong> cláusu<strong>la</strong> FROM selecciona este grafo para una dada consulta<br />

sintaxis<br />

FROM <br />

en caso <strong>de</strong> múltiples cláusu<strong>la</strong>s FROM, se interpreta que <strong>la</strong><br />

consulta se realiza sobre <strong>la</strong> mezc<strong>la</strong> <strong>de</strong> todos los grafos<br />

nombrados<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


C<strong>la</strong>usu<strong>la</strong> WHERE<br />

Ejemplo<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

<strong>la</strong> cláusu<strong>la</strong> WHERE <strong>de</strong>fine el patrón <strong>de</strong>l grafo que forma <strong>la</strong><br />

respuesta a <strong>la</strong> consulta<br />

consta <strong>de</strong> una serie <strong>de</strong> tripletas en sintaxis Turtle, encerradas<br />

entre {}<br />

WHERE { }<br />

en el patrón también pue<strong>de</strong>n aparecer nodos en b<strong>la</strong>nco<br />

_:nombre, variables ?nombre<br />

existe una c<strong>la</strong>usu<strong>la</strong> OPTIONAL para indicar patrones<br />

opcionales, y una c<strong>la</strong>usu<strong>la</strong> FILTER para imponer restricciones<br />

adicionales al patrón<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

PREFIX : <br />

SELECT ?predicado<br />

WHERE { :john ?predicado :mary }<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Ejemplo<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

SELECT ?nombre<br />

WHERE {<br />

_:autor uns:nombre ?nombre .<br />

_:autor dc:creator urn:isbn:222 .<br />

}<br />

Ejemplo<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

PREFIX vc: <br />

PREFIX ont: <br />

SELECT ?y<br />

WHERE {?x vc:FN "John Smith".<br />

?x ont:casadoCon ?y. }<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica


Ejemplo<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

PREFIX ex: <br />

SELECT ?persona, ?esposa<br />

WHERE {?persona ex:edad ?edad .<br />

OPTIONAL { ?persona ex:casadoCon<br />

?esposa } }<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Semántica <strong>de</strong> <strong>la</strong>s consultas<br />

Sintaxis para consultas<br />

Respuestas<br />

una sustitución <strong>de</strong> variables se hace asignando valores como<br />

URIs, nodos en b<strong>la</strong>nco o literales<br />

?x=,<br />

?name= :a, ?firstName="John"<br />

en <strong>la</strong>s respuestas, no todas <strong>la</strong>s variables tienen que estar<br />

necesariamente instanciadas<br />

?persona=,<br />

?esposa=<br />

<strong>la</strong>s respuestas son aquel<strong>la</strong>s sustituciones <strong>de</strong> variables en el grafo<br />

patrón que lo transforman en un subgrafo <strong>de</strong>l grafo base<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica<br />

Ejemplo<br />

Vocabu<strong>la</strong>rio <strong>RDF</strong><br />

Semántica<br />

Introducción a SPARQL<br />

Sintaxis para consultas<br />

Respuestas<br />

PREFIX ont: <br />

SELECT ?x<br />

WHERE {?x ont:edad ?edad .<br />

FILTER(?edad > 30)}<br />

Pablo R. Fillottrani Fundamentos <strong>de</strong> <strong>la</strong> Web Semántica

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!