Este documento presenta SPARQL, el lenguaje de consulta para grafos RDF. Introduce SPARQL, describiendo su objetivo de recuperar información de bases de datos RDF de la Web Semántica de forma similar a como SQL lo hace para bases de datos relacionales. Explica la sintaxis básica de SPARQL, incluyendo cláusulas como SELECT, DESCRIBE, ASK y PREFIX, y resume los diferentes componentes de las especificaciones de SPARQL.
1. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Universidad Politécnica de Madrid
Programa de Doctorado
Curso de Doctorado Nº 584, http://sinbad.dit.upm.es, DIT-UPM
Lenguaje De Recuperación De Datos en la Web
Semántica
SPARQL
Hicham Qaissi
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 1
2. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis básica y cláusulas.
• SPARQL. Anatomía de consultas.
• SPARQL. Sintaxis Tripletas.
• SPARQL. Novedades.
• XSPARQL
• SPARQL/Update (SPARUL).
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 2
3. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. Objetivo
Presentación, definición y funcionamiento del proceso
de recuperación de información en grafos RDF de la
Web semántica mediante SPARQL (Simple Protocol
and RDF Query Language).
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 3
4. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL. Sintaxis Tripletas.
• SPARQL. Novedades.
• XSPARQL
• SPARQL/Update (SPARUL).
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 4
5. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. Debilidad de Internet
Satisfacción de necesidades limitadas.
Los motores de búsqueda se caracterizan por:
Su poca precisión.
Su poca sensibilidad al significado de las palabras
de búsqueda.
“Evitar la guerra” ≠ “Conseguir la paz”
Solución:
Inclusión de Metadatos ↔ Web Semántica
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 5
6. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. Web Actual vs. Web Semántica
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 6
7. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. Web Semántica. RDF
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 7
8. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. Web Semántica. RDF
RDF (Resource Definition Framework):
Lenguaje de etiquetado basado
en XML.
Define un modelo de datos para
describir recursos.
Expresa relaciones entre
objetos y conceptos con
tripletas.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 8
9. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. Necesidad de RDFS
RDF expresa propiedades simples sobre recursos.
Necesidad de definir vocabularios para usar en las propiedades de
RDF
RDF puro no provee formas de definir clases o propiedades
específicas para un dominio.
RDF Schema no define vocabulario específico de un dominio pero
introduce elementos para poder definirlo.
Dichos elementos establecen qué URIrefs son propiedades, clases
y cómo deben estar relacionadas.
RDFS introduce un sistema de tipos para RDF.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 9
10. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. Principios de RDFS
Todos los recursos son instancias de rdfs:Resource.
Las clases son recursos que describen conjuntos de recursos.
Se pueden definir jerarquías de clases, y todas las clases son
instancias de rdfs:Class.
Las propiedades son recursos que tienen un rango y un dominio.
Se pueden definir jerarquías de propiedades, y todas las propiedades
son instancias de rdfs:Property.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 10
11. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. RDFS. Relación de Elementos.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 11
12. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. Necesidad de un Lenguaje de consulta.
Los datos en RDF no servirían de nada si no se pueden utilizar.
Los lenguajes de la Web Semántica necesitan interactuar con los
datos almacenados en la “base de datos” RDF.
Necesidad parecida al lenguaje SQL de bases de datos relacionales.
SQ L BBDD
Relacionales
Acceso a Datos
SPARQ L RDF & OWL
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 12
13. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Introducción. Qué es SPARQL.
Simple Protocol and RDF Query Language, Lenguaje de consulta del ámbito
de la Web Semántica de W3C. Define la sintaxis y la semántica necesarias para
una expresión de consulta sobre un grafo RDF y las diferentes formas de
resultados obtenidos.
Su misión es devolver todas las tripletas o componentes solicitados basándose
en la comparación de una tripleta pasada como parámetro de la consulta (grafo
básico) con todas las tripletas que componen L grafo RDF.
SQ el
Las consultas SPARQL cubren tres objetivos:
Extraer información en forma de URIs y literales.
Extraer sub-estructuras RDF.
Construir nuevas estructuras RDF partiendo de resultados de consultas.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 13
14. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL/Update (SPARUL).
• SPARQL++
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 14
15. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Introducción
SPARQL es un lenguaje consultivo para RDF. Corre paralelo al
estándar SQL de bases de datos relacionales.
Recomendación oficial de W3C del 15 de Enero de 2008.
Estandarizado por Data Access Working Group (DAWG) de W3C.
Considerado componente de la Web Semántica.
Implementado en varios lenguajes y bases de datos.
Ayuda a obtener los recursos de diferentes fuentes identificables.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 15
16. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL/Update (SPARUL).
• SPARQL++
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 16
17. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Especificaciones
SPARQL Query Language: Núcleo de SPARQL o componente principal.
Describe la sintaxis de sus sentencias y su concordancia.
(Espec.: http://www.w3.org/TR/rdf-sparql-query/).
SPARQL Protocol for RDF: Formato utilizado para devolver los resultados de las
consultas (SELECT o ASK), a partir de un esquema RDF-XML.
(Espec.: http://www.w3.org/TR/rdf-sparql-protocol/).
SPARUL (SPARQL Update): Hace actualizaciones del contenido RDF.
Desarrollado por Hewlett-Packard. No reconocido como estándar.
(Espec.: http://jena.hpl.hp.com/~afs/SPARQL-Update.html)
SPARQL Query Results XML Format: Describe el acceso remoto a datos y la
transmisión de consultas del cliente a los procesadores. Utiliza WSDL (Web
Services Description Language) para implementar protocolos remotos en la
consulta a bases de datos basada en RDF. (Espec: http://www.w3.org/TR/rdf-
sparql-XMLres/)
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 17
18. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL. Sintaxis Tripletas.
• SPARQL. Novedades.
• XSPARQL
• SPARQL/Update (SPARUL).
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 18
19. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Sintaxis. Cláusulas Prologue I.
Esta parte es opcional en la consulta y es Repetible.
Tiene dos posibles componentes :BASE y PREFIX.
BASE<iri>
Permite cambiar la dirección URI de la base de referencias relativas
dentro de la consulta. Por ejemplo, los fragmentos siguientes pueden
hacer referencia a la misma IRI (Internationalized Resource Identifier).
<http://example.org/book/book1>
BASE http://example.org/book/
<book1>
PREFIX book: http://example.org/book/
book:book1
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 19
20. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Sintaxis básica. Cláusulas Prologue II.
PREFIX
Equivalente a la declaración namespace en XML.
Define los prefijos para los espacios de nombres.
Asocia una URI a una etiqueta que se usará mas adelante en
la consulta.
Podemos tener cero o más de las siguientes cláusulas
PREFIX <prefijo> : <URI>
Se hace referencia al prefijo con “:” en la consulta.
Se puede definir un prefijo por defecto:
PREFIX : <URI>
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 20
21. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Sintaxis. Cláusulas Query Result Form I.
SELECT
Cláusula requerida en toda consulta.
Similar al uso especificado por el estándar SQL
Define las variables a retornar como resultados, cuyos nombres
deben empezar con ‘?’, y separadas por ‘,’ ejemplo: ?apellido
DESCRIBE
Devuelve un grafo RDF describiendo los recursos encontrados.
Puede ser fuente de datos para otra consulta.
Es opcional.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 21
22. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Sintaxis. Cláusulas Query Result Form II.
ASK
Devuelve una variable booleana indicando si la combinación
Sujeto-Predicado-Objeto de consulta existe en la ontología RDF
consultada.
Es opcional.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 22
23. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Sintaxis. Cláusulas Query DataSet Sources.
FROM
La consulta SPQRL da respuesta a un grafo RDF.
La cláusula FROM identifica los datos sobre los que se ejecutará la
consulta.
Es opcional.
En caso de no estar incluida en la consulta, el motor de proceso de
consultas toma como fuente de datos todos los grafos RDF
disponibles.
En caso de múltiples FROM, la consulta se realiza sobre la fusión
de todos los grafos RDF nombrados.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 23
24. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Sintaxis. Cláusulas Graph Pattern.
WHERE
Patrón de la consulta con una o más tripletas encerradas entre {}.
Cláusula requerida en caso del Query Result Form ASK.
OPTIONAL
Para indicar patrones opcionales. Es opcional.
DISTINCT
Asegura la unicidad de los resultados.
REDUCED
Permite eliminar las respuestas duplicadas.
FILTER
Para imponer constricciones adicionales al patrón de búsqueda.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 24
25. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Sintaxis. Cláusulas. Query Results Ordering.
ORDER BY
Tiene la misma funcionalidad que la definida en SQL.
Es opcional.
SPARQL. Sintaxis. Cláusulas. Query Results Selection.
LIMIT n
Restringe el número de soluciones devueltas.
Es opcional.
OFFSET m
Tiene la misma funcionalidad que la definida en SQL.
Es opcional.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 25
26. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL. Sintaxis Tripletas.
• SPARQL. Novedades.
• XSPARQL
• SPARQL/Update (SPARUL).
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 26
27. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas I
http://www.yoyodesign.org/doc/w3c/rdf-sparql-query/#ask
PREFIX prefijo1: <uri1>
PREFIX prefijo2: <uri2>
1
SELECT ?var
WHERE { prefijo1:sujeto prefijo2:predicado ?var }
PREFIX prefijo1: <uri1>
SELECT ?var
2
WHERE { prefijo1:sujeto <uri2/predicado> ?var}
SELECT ?var 3
WHERE { <uri1/sujeto> ?var <uri2/objeto> }
1 y 2 son consultas equivalentes. La variable buscada es un objeto (recordar
que las consultas se realizan sobre conjuntos de Sujeto-Predicado-Objeto).
En 2 se hace referencia al predicado directamente con la uri correspondiente
sin utilizar un prefijo.
En 3 no se utiliza prefijo y la variable buscada es un predicado.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 27
28. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas II
@prefix book: <http://example.org/book/> .
@prefix ttl: <http://purl.org/dc/elements/1.1/> .
book:book1 ttl:title "SPARQL Tutorial 1“ 1
book:book2 ttl:title "SPARQL Tutorial 2“
book:book3 ttl:title "SPARQL Tutorial 3”
PREFIX book_: <http://example.org/book/>
PREFIX ttl_: <http://purl.org/dc/elements/1.1/> 2
SELECT ?title
WHERE { book_:book1 ttl_:title ?title .}
SELECT ?title
WHERE
{ 3
<http://example.org/book/book1>
<http://purl.org/dc/elements/1.1/title>
?title .
}
1 corresponde a los datos del grado RDF (Anotaciones Turtle).
2 y 3 son consultas equivalentes.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 28
29. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas III
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Johnny Lee Outlaw" .
_:a foaf:mbox <mailto:jlow@example.com> . 1
_:b foaf:name "Peter Goodguy" .
_:b foaf:mbox <mailto:peter@example.org> .
_:c foaf:mbox <mailto:carol@example.org> .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox 2
WHERE
{ ?x foaf:name ?name .
?x foaf:mbox ?mbox }
name mbox
3
“Johnny Lee Outlaw” <mailto:jlow@example.com>
"Peter Goodguy" <mailto:peter@example.org>
1 corresponde a los datos del grafo RDF a consultar.
La consulta 2 busca 2 variables, ambas corresponden a un objeto.
3 es la respuesta, y no contiene la 6º línea del grafo RDF por no cumplir la condición.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 29
30. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas IV (Filtrado de Literales)
@prefix dt: <http://example.org/datatype#> .
@prefix ns: <http://example.org/ns#> .
@prefix : <http://example.org/ns#> . 1
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
:x ns:p "car“@en .
:y ns:p “10"^^xsd:integer .
:z ns:p "abc"^^dt:specialDatatype .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?v WHERE { ?v ?p "car" } 2
SELECT ?v WHERE { ?v ?p "car"@en } 3
SELECT ?v WHERE { ?v ?p 10 } 4
SELECT ?v WHERE { ?v ?p "abc"^^<http://example.org/datatype#specialDatatype> } 5
1 con los datos del grafo RDF a consultar.
2 no devuelve resultado alguna porque el sujeto y predicado buscados corresponden a un
sujeto descrito en un idioma concreto que no está indicado en la consulta.
4 devuelve una solución con la variable v correspondiente a :y.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 30
31. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas V (CONSTRUCT)
@prefix org: <http://example.com/ns#> .
_:a org:employeeName "Alice" .
_:a org:employeeId 12345 . 1
_:b org:employeeName "Bob" .
_:b org:employeeId 67890 .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX org: <http://example.com/ns#>
CONSTRUCT { ?x foaf:name ?name } 2
WHERE { ?x org:employeeName ?name }
@prefix org: <http://example.com/ns#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
_:x foaf:name "Alice" . 3
_:y foaf:name "Bob" .
La sentencia CONSTRUCT 2 devuelve el grafo RDF 3 . Este grafo se construye a
partir de una plantilla utilizada para generar las tripletas en función de resultados que
concuerdan con el patrón grafico básico (que se pasa en la cláusula WHERE).
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 31
32. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas VI (FILTER I)
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix : <http://example.org/book/> .
@prefix ns: <http://example.org/ns#> . 1
:book1 dc:title "SPARQL Tutorial" .
:book1 ns:price 42 .
:book2 dc:title "The Semantic Web" .
:book2 ns:price 23 .
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?title
WHERE 2
{ ?x dc:title ?title
FILTER regex(?title, "^SPARQL")
}
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX ns: <http://example.org/ns#>
SELECT ?title ?price
WHERE { 3
?x ns:price ?price .
FILTER (?price < 30.5)
?x dc:title ?title .
}
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 32
33. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas VI (FILTER II)
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix : <http://example.org/book/> . 1
@prefix ns: <http://example.org/ns#> .
:book1 dc:title "SPARQL Tutorial" .
:book1 ns:price 42 .
:book2 dc:title "The Semantic Web" .
:book2 ns:price 23 .
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?title 2
WHERE
{
?x dc:title ?title
FILTER regex(?title, “Web“, “i”)
}
“i” nos indica que filtramos sin tener en cuenta el case sensitive.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 33
34. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas VII (ASK)
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Alice" .
_:a foaf:homepage <http://work.example.org/alice/> . 1
_:b foaf:name "Bob" .
_:b foaf:mbox <mailto:bob@work.example> .
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 2
ASK { ?x foaf:name "Alice" }
La consulta 2 devuelve ‘yes’ ya que la tripleta a comprobar existe en el grafo de consulta
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 34
35. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas VIII (OPTIONAL I)
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix : <http://example.org/book/> .
@prefix ns: <http://example.org/ns#> . 1
:book1 dc:title "SPARQL Tutorial" .
:book1 ns:price 42 .
:book2 dc:title "The Semantic Web" .
:book2 ns:price 23 .
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX ns: <http://example.org/ns#> 2
SELECT ?title ?price
WHERE { ?x dc:title ?title .
OPTIONAL { ?x ns:price ?price . FILTER (?price < 30) }
}
title price
“SPARQL Tutorial”
3
“The Semantic Web" 23
La cláusula OPTIONAL en 2 debe cumplirse en la respuesta a la consulta.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 35
36. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas VIII (OPTIONAL II)
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Alice" .
_:a foaf:homepage <http://work.example.org/alice/> . 1
_:b foaf:name "Bob" .
_:b foaf:mbox <mailto:bob@work.example> .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
2
SELECT ?name ?mbox ?hpage
WHERE { ?x foaf:name ?name .
OPTIONAL { ?x foaf:mbox ?mbox } .
OPTIONAL { ?x foaf:homepage ?hpage }
}
name mbox hpage
Alice <http://work.example.org/alice/>
“Bob" <mailto:bob@work.example> 3
3
En este caso, la consulta 2 cuenta con dos cláusulas OPTIONAL.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 36
37. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas IX (UNION I)
@prefix dc10: <http://purl.org/dc/elements/1.0/> .
@prefix dc11: <http://purl.org/dc/elements/1.1/> .
_:a dc10:title "SPARQL Query Language Tutorial" .
_:a dc10:creator "Alice" . 1
_:b dc11:title "SPARQL Protocol Tutorial" .
_:b dc11:creator "Bob" .
_:c dc10:title "SPARQL" .
_:c dc11:title "SPARQL (updated)" .
PREFIX dc10: <http://purl.org/dc/elements/1.0/> 2
PREFIX dc11: <http://purl.org/dc/elements/1.1/>
SELECT ?title
WHERE {{ ?book dc10:title ?title } UNION { ?book dc11:title ?title }
title
3
“SPARQL Query Language Tutorial”
“SPARQL”
“SPARQL (updated)”
“SPARQL Query Language Tutorial”
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 37
38. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas IX (UNION II)
PREFIX dc10: <http://purl.org/dc/elements/1.0/>
PREFIX dc11: <http://purl.org/dc/elements/1.1/> 2
SELECT ?x ?y
WHERE { { ?book dc10:title ?x } UNION { ?book dc11:title ?y } }
x y
3
“SPARQL (updated)”
“SPARQL Protocol Tutorial” 3
“SPARQL”
“SPARQL Query Language Tutorial”
El resultado obtenido en 3 es la unión de los resultados correspondientes a cada
cláusula UNION en la consulta 2 .
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 38
39. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Ejemplos de consultas IX (UNION III)
PREFIX dc10: <http://purl.org/dc/elements/1.0/>
PREFIX dc11: <http://purl.org/dc/elements/1.1/>
SELECT ?title ?author
WHERE { 2
{ ?book dc10:title ?title . ?book dc10:creator ?author }
UNION
{ ?book dc11:title ?title . ?book dc11:creator ?author }
}
title author
3
“SPARQL Protocol Tutorial” “Alice”
“SPARQL Query Language Tutorial” “Bob”
Cláusula UNION entre dos condiciones compuestas por dos tripletas cada una.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 39
40. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL. Sintaxis de Tripletas.
• SPARQL. Novedades.
• XSPARQL
• SPARQL/Update (SPARUL).
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 40
41. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Sintaxis de Tripletas
?x foaf:name ?name ;
foaf:mbox ?mbox . 1
?x foaf:nick "Alice" , "Alice_" . 2
?x foaf:name ?name ;
3
foaf:nick "Alice" ,"Alice_" .
1 define una forma de utilizar sujetos comunes.
2 describe la forma de utilizar una lista de objetos.
3 es una tripleta combinación entre 1 y 2 .
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 41
42. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL. Sintaxis de Tripletas.
• SPARQL. Novedades.
• XSPARQL
• SPARQL/Update (SPARUL).
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 42
43. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Novedades. XSPARQL I
La traducción entre ficheros XML y RDF es tediosa y propensa a
errores
W3C y SAWSDL tienen muy en cuenta esta dificultad.
XSPARQL propone soluciones intuitivas y precisas para el mapeo
entre XML y RDF en ambas direcciones.
Tiene un motor de evaluación.
Existen unas demos online.
Para mas información: http://xsparql.deri.org/
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 43
44. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Novedades. XSPARQL II
XSLT/XQuery XML
¿?
RDF SPARQL
Se echaba en falta una herramienta para traducir RDF a XML.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 44
45. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. Novedades. XSPARQL II
XSLT/XQuery XML
XSPARQL
RDF SPARQL
Se echaba en falta una herramienta para traducir RDF a XML.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 45
46. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL. Sintaxis de Tripletas.
• SPARQL. Novedades.
• XSPARQL
• SPARQL/Update (SPARUL).
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 46
47. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. SPARQL/UPDATE (SPARUL) I.
Derivado de SPARQL para actualizar grafos RDF’s
Cubre las sentencias Create, Update y Delete del conjunto CRUD.
Desarrollado por Hewllet Packard.
No es recomendación de W3C aún.
Clausulas: INSERT, DELETE y MODIFY, LOAD, CLEAR, CREATE
y DROP.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 47
48. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. SPARQL/UPDATE (SPARUL) II.
PREFIX dc: <http://purl.org/dc/elements/1.1/>
DELETE DATA FROM <http://example/bookStore>
{ <http://example/book3> dc:title "Fundamentals of Compiler Desing“}
INSERT DATA INTO <http://example/bookStore>
{ <http://example/book3> dc:title "Fundamentals of Compiler Design“}
Esta solicitud borra una tripleta y añade otra de la fuente RDF
http://example/bookStore.
La diferencia entre MODIFY/INSERT/DELETE e INSERT DATA y DELETE DATA
es que éstas últimas no tienen una plantilla patrón (como en la Cláusula
WHERE), y necesitan datos concretos.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 48
48
49. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. SPARQL/UPDATE (SPARUL) III.
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
DELETE { ?book ?p ?v }
WHERE
{
?book dc:date ?date .
FILTER ( ?date < "2000-01-01T00:00:00"^^xsd:dateTime )
?book ?p ?v
}
Esta consulta borra todas las tripletas de libros con fecha inferior al año 2000.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 49
50. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. SPARQL/UPDATE (SPARUL) IV.
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
INSERT INTO <http://example/bookStore2>
{ ?book ?p ?v }
WHERE
{ GRAPH <http://example/bookStore>
{ ?book dc:date ?date .
FILTER ( ?date < "2000-01-
01T00:00:00"^^xsd:dateTime )
?book ?p ?v
}
}
Esta consulta copia todas las tripletas de libros con fecha inferior al año 2000 de un grafo
fuente http://example/bookStore a otro grafo destino http://example/bookStore2
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 50
51. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
SPARQL. SPARQL/UPDATE (SPARUL) V.
La operación MODIFY borra un conjunto de tripletas y añade otro conjunto de las mismas.
La operación LOAD copia todas las tripletas de un grafo a otro.
La operación CLEAR borra todas las tripletas de un grafo especificado.
La operación CREATE crea un nuevo grafo cuyo nombre viene especificado en la URI. A
partir de ese instante, el nuevo grafo está disponible para cualquier operación de SPARUL.
CREATE GRAPH <uri>
La operación DROP borra el grafo cuyo nombre viene especificado en la URI.
DROP GRAPH <uri>
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 51
52. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL. Sintaxis de Tripletas.
• SPARQL. Novedades.
• XSPARQL
• SPARQL/Update (SPARUL).
• Conclusiones.
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 52
53. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Conclusiones.
Es muy parecido a SQL en la elaboración de consultas, con una serie
de diferencias propias de cada modelo.
Es el principal lenguaje de consulta utilizado en la Web Semántica.
Muchas plataformas de RDF ya lo implementan (Protegé y Jena
Semantic Web Toolkit).
Existe poca información sobre ello ya que es reciente en W3C.
Su versión de actualización SPARQL/Update no es recomendación
aún.
Queda mucho por investigar, sobre todo en SPARUL.
Interesante y atractivo tema para encarrilar tesis doctorales…
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 53
54. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Índice
• Introducción.
• Descripción de SPARQL
• Introducción
• Especificaciones
• SPARQL. Sintaxis y cláusulas.
• SPARQL. Ejemplos de consultas.
• SPARQL. Sintaxis de Tripletas.
• SPARQL. Novedades.
• XSPARQL
• SPARQL/Update (SPARUL).
• Conclusiones
• Referencias.
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 54
55. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Referencias.
1. I. Herman. (2007). "Introduction to the Semantic Web." Retrieved
10/08/2007, from http://www.w3.org/2007/Talks/0423-Stavanger-IH/.
2. http://www.w3.org/Submission/2008/SUBM-SPARQL-Update-20080715/
3. W3C World Wide Web Consortium. (2007). "SPARQL Query Language
for RDF." Retrieved 10/08/2007, from http://www.w3.org/TR/rdf-sparql-
query/#basicpatterns.
4. W3C World Wide Web Consortium. (2007). "SPARQL Protocol for
RDF." Retrieved 10/08/2007, from http://www.w3.org/TR/rdf-sparql-
protocol/.
5. W3C World Wide Web Consortium. (2007). "SPARQL Query Results
XML Format." Retrieved 10/08/2007, from http://www.w3.org/TR/rdf-
sparql-XMLres/.
6. D. Beckett, "SPARQL RDF Query Language Reference v1.8," 2006.
7. http://xsparql.deri.org/ XSPARQL
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 55
56. Arquitecturas de Bases de Datos Web. Tecnologías de la Web Semántica
Parte V-II. SPARQL
Gracias...
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009
Hicham Qaissi 56