comprendiendo sparql

56
Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009 Hicham Qaissi 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 Hicham Qaissi Lenguaje De Recuperación De Datos en la Web Semántica SPARQL

Upload: mario-torres

Post on 27-Nov-2014

704 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 1

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

Universidad Politécnica de MadridPrograma de Doctorado

Curso de Doctorado Nº 584, http://sinbad.dit.upm.es, DIT-UPM

Hicham Qaissi

Lenguaje De Recuperación De Datos en la Web Semántica

SPARQL

Page 2: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 2

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 3: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 3

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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).

Page 4: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 4

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 5: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 5

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

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

Introducción. Debilidad de Internet

Page 6: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 6

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

Introducción. Web Actual vs. Web Semántica

Page 7: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 7

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

Introducción. Web Semántica. RDF

Page 8: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 8

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 9: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 9

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

Introducción. Necesidad de RDFS

RDF expresa propiedades simples sobre recursos.Necesidad de definir vocabularios para usar en las propiedades de RDFRDF 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.

Page 10: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 10

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 11: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 11

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

Introducción. RDFS. Relación de Elementos.

Page 12: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 12

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

BBDD Relacionales

SQ L

RDF & OWL SPARQ L

Acceso a Datos

Page 13: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 13

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

Introducción. Qué es SPARQL.

SQ L

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 el grafo RDF.

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.

Page 14: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 14

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 15: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 15

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 16: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 16

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 17: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 17

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. EspecificacionesSPARQL 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/)

Page 18: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 18

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 19: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 19

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Sintaxis. Cláusulas Prologue I.

BASE<iri>

Esta parte es opcional en la consulta y es Repetible.Tiene dos posibles componentes :BASE y PREFIX.

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

Page 20: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 20

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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>

Page 21: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 21

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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 SQLDefine 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.

Page 22: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 22

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 23: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 23

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 24: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 24

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Para imponer constricciones adicionales al patrón de búsqueda.

FILTER

Asegura la unicidad de los resultados.

DISTINCT

REDUCED

Permite eliminar las respuestas duplicadas.

Page 25: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 25

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Sintaxis. Cláusulas. Query Results Ordering.

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

Page 26: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 26

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 27: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 27

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Ejemplos de consultas Ihttp://www.yoyodesign.org/doc/w3c/rdf-sparql-query/#ask

PREFIX prefijo1: <uri1>PREFIX prefijo2: <uri2>SELECT ?varWHERE { prefijo1:sujeto prefijo2:predicado ?var }

PREFIX prefijo1: <uri1>SELECT ?varWHERE { prefijo1:sujeto <uri2/predicado> ?var}

SELECT ?varWHERE { <uri1/sujeto> ?var <uri2/objeto> }

1

y son consultas equivalentes. La variable buscada es un objeto (recordar que las consultas se realizan sobre conjuntos de Sujeto-Predicado-Objeto).En se hace referencia al predicado directamente con la uri correspondiente sin utilizar un prefijo.En no se utiliza prefijo y la variable buscada es un predicado.

1

2

3

2

2

3

Page 28: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 28

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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“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/> SELECT ?titleWHERE { book_:book1 ttl_:title ?title .}

SELECT ?titleWHERE {

<http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title .

}

corresponde a los datos del grado RDF (Anotaciones Turtle).y son consultas equivalentes.

1

2

3

12 3

Page 29: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 29

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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:[email protected]> . _:b foaf:name "Peter Goodguy" . _:b foaf:mbox <mailto:[email protected]> . _:c foaf:mbox <mailto:[email protected]> .

PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?mboxWHERE

{ ?x foaf:name ?name . ?x foaf:mbox ?mbox }

corresponde a los datos del grafo RDF a consultar.La consulta busca 2 variables, ambas corresponden a un objeto.

es la respuesta, y no contiene la 6º línea del grafo RDF por no cumplir la condición.

name mbox

“Johnny Lee Outlaw” <mailto:[email protected]>

"Peter Goodguy" <mailto:[email protected]>

1

2

3

12

3

Page 30: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 30

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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#> . @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" }SELECT ?v WHERE { ?v ?p "car"@en }SELECT ?v WHERE { ?v ?p 10 }SELECT ?v WHERE { ?v ?p "abc"^^<http://example.org/datatype#specialDatatype> }

con los datos del grafo RDF a consultar.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.devuelve una solución con la variable v correspondiente a :y.

1

2

1

4

34

5

2

Page 31: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 31

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Ejemplos de consultas V (CONSTRUCT) @prefix org: <http://example.com/ns#> ._:a org:employeeName "Alice" . _:a org:employeeId 12345 . _: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 } WHERE { ?x org:employeeName ?name }

La sentencia CONSTRUCT devuelve el grafo RDF . 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).

1

2

3

@prefix org: <http://example.com/ns#> .@prefix foaf: <http://xmlns.com/foaf/0.1/>._:x foaf:name "Alice" ._:y foaf:name "Bob" .

2 3

Page 32: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 32

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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#> . :book1 dc:title "SPARQL Tutorial" . :book1 ns:price 42 . :book2 dc:title "The Semantic Web" . :book2 ns:price 23 .

1

2

PREFIX dc: <http://purl.org/dc/elements/1.1/>SELECT ?titleWHERE { ?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 { ?x ns:price ?price . FILTER (?price < 30.5) ?x dc:title ?title . }

3

Page 33: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 33

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Ejemplos de consultas VI (FILTER II)

@prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix : <http://example.org/book/> . @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 .

“i” nos indica que filtramos sin tener en cuenta el case sensitive.

1

2PREFIX dc: <http://purl.org/dc/elements/1.1/>SELECT ?titleWHERE { ?x dc:title ?title

FILTER regex(?title, “Web“, “i”) }

Page 34: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 34

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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/> . _:b foaf:name "Bob" . _:b foaf:mbox <mailto:[email protected]> .

La consulta devuelve ‘yes’ ya que la tripleta a comprobar existe en el grafo de consulta

1

2PREFIX foaf: <http://xmlns.com/foaf/0.1/> ASK { ?x foaf:name "Alice" }

2

Page 35: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 35

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX ns: <http://example.org/ns#> SELECT ?title ?price WHERE { ?x dc:title ?title .

OPTIONAL { ?x ns:price ?price . FILTER (?price < 30) } }

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#> . :book1 dc:title "SPARQL Tutorial" . :book1 ns:price 42 . :book2 dc:title "The Semantic Web" . :book2 ns:price 23 .

La cláusula OPTIONAL en debe cumplirse en la respuesta a la consulta.

1

2

title price

“SPARQL Tutorial”

“The Semantic Web" 23

3

2

Page 36: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 36

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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/> . _:b foaf:name "Bob" . _:b foaf:mbox <mailto:[email protected]> .

En este caso, la consulta cuenta con dos cláusulas OPTIONAL.

1

2PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?mbox ?hpageWHERE { ?x foaf:name ?name .

OPTIONAL { ?x foaf:mbox ?mbox } . OPTIONAL { ?x foaf:homepage ?hpage }

}

3

2

name mbox hpage

Alice <http://work.example.org/alice/>

“Bob" <mailto:[email protected]>3

Page 37: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 37

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

PREFIX dc10: <http://purl.org/dc/elements/1.0/> PREFIX dc11: <http://purl.org/dc/elements/1.1/> SELECT ?title WHERE {{ ?book dc10:title ?title } UNION { ?book dc11:title ?title }

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" . _:b dc11:title "SPARQL Protocol Tutorial" . _:b dc11:creator "Bob" . _:c dc10:title "SPARQL" . _:c dc11:title "SPARQL (updated)" .

1

2

title

“SPARQL Query Language Tutorial”

“SPARQL”

“SPARQL (updated)”

“SPARQL Query Language Tutorial”

3

Page 38: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 38

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Ejemplos de consultas IX (UNION II)

2PREFIX dc10: <http://purl.org/dc/elements/1.0/> PREFIX dc11: <http://purl.org/dc/elements/1.1/> SELECT ?x ?y WHERE { { ?book dc10:title ?x } UNION { ?book dc11:title ?y } }

3

x y

“SPARQL (updated)”

“SPARQL Protocol Tutorial”

“SPARQL”

“SPARQL Query Language Tutorial”

3

El resultado obtenido en es la unión de los resultados correspondientes a cada cláusula UNION en la consulta .

32

Page 39: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 39

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Ejemplos de consultas IX (UNION III)

2

PREFIX dc10: <http://purl.org/dc/elements/1.0/> PREFIX dc11: <http://purl.org/dc/elements/1.1/> SELECT ?title ?author WHERE { { ?book dc10:title ?title . ?book dc10:creator ?author }

UNION { ?book dc11:title ?title . ?book dc11:creator ?author }}

title author

“SPARQL Protocol Tutorial” “Alice”

“SPARQL Query Language Tutorial” “Bob”

3

Cláusula UNION entre dos condiciones compuestas por dos tripletas cada una.

Page 40: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 40

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 41: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 41

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Sintaxis de Tripletas ?x foaf:name ?name ;

foaf:mbox ?mbox . 1

3

?x foaf:nick "Alice" , "Alice_" .

?x foaf:name ?name ; foaf:nick "Alice" ,"Alice_" .

2

define una forma de utilizar sujetos comunes.

describe la forma de utilizar una lista de objetos.

es una tripleta combinación entre y .

1

23 1 2

Page 42: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 42

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 43: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 43

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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/

Page 44: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 44

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Novedades. XSPARQL II

¿?

RDF

XMLXSLT/XQuery

SPARQL

Se echaba en falta una herramienta para traducir RDF a XML.

Page 45: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 45

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

SPARQL. Novedades. XSPARQL II

Se echaba en falta una herramienta para traducir RDF a XML.

RDF

XMLXSLT/XQuery

SPARQL

XSPARQL

Page 46: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 46

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 47: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 47

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 48: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 48

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

48

Page 49: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 49

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 50: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 50

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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

Page 51: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 51

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

La operación DROP borra el grafo cuyo nombre viene especificado en la URI.

CREATE GRAPH <uri>

DROP GRAPH <uri>

Page 52: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 52

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 53: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 53

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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…

Page 54: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 54

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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.

Page 55: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 55

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte 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

Page 56: comprendiendo SPARQL

Curso de Doctorado Nº: 584, http://sinbad.dit.upm.es, DIT-UPM 17/06/2009Hicham Qaissi 56

Arquitecturas de Bases de Datos Web. Tecnologías de la Web SemánticaParte V-II. SPARQL

Gracias...