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 ...
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