SPARQL (Simple Protocol and RDF Query Language) es un lenguaje de recuperación basado en RDF. Se trata de una recomendación para crear un lenguaje de consulta dentro de la Web semántica que está ya implementada en muchos lenguajes y bases de datos. Desde 2005 está en proceso de estandarización por el W3C.
Con SPARQL los desarrolladores y usuarios finales pueden representar y utilizar los resultados obtenidos en las búsquedas a través de una gran variedad de información como son datos personales, redes sociales y metadatos sobre recursos digitales como música e imágenes. Es de utilidad para la recuperación y organización de información.
SPARQL consiste en tres especificaciones complementarias, que contienen diferentes partes de su funcionalidad. SPARQL lo forman un lenguaje de consultas, un formato para las respuestas, y un medio para el transporte de consultas y respuestas:
- SPARQL Query Language: Núcleo de SPARQL. Explica la sintaxis para la composición de sentencias y su concordancia. (Espec.: http://www.w3.org/TR/rdf-sparql-query/)
- SPARQL Protocol: Formato utilizado para la devolución de los resultados de las búsquedas (queries SELECT o ASK), a partir de un esquema de XML. (Espec.: http://www.w3.org/TR/rdf-sparql-protocol/)
- SPARQL Query XML Results Format: Describe el acceso remoto de datos y la transmisión de consultas de los clientes a los procesadores. Utiliza WSDL para definir protocolos remotos para la consulta de bases de datos basadas en RDF. (Espec: http://www.w3.org/TR/rdf-sparql-XMLres/)
- Extraer información en forma de URIs y literales.
- Extraer sub-estructuras RDF.
- Construir nuevas estructuras RDF partiendo de resultados de consultas.
¿Cómo funciona? : Anatomía de una consulta sencilla SPARQL
Como ejemplo podemos tomar el modelo de bloggers.rdf de PlanetRDF. Es bastante directo, con los vocabularios de FOAF y de Dublin Core para proporcionar un nombre, un título del blog con URL, y un canal RSS con los últimos posts de cada blogger. El siguiente gráfico muestra la estructura gráfo básica para un solo contribuidor. El modelo completo repite simplemente esta estructura para cada blog que agreguemos.

Ahora una consulta muy simple de SPARQL sobre el modelo de bloggers. La pregunta, en inglés, dice “encontrar el URL del blog de la persona nombrada Jon Foobar”:
PREFIX foaf:
SELECT ?url
FROM
WHERE {
?contributor foaf:name "Jon Foobar" .
?contributor foaf:weblog ?url .
}
Existen numerosas herramientas online de uso SparQL, como son validadores, formularios de consulta, etc. Algunas páginas interesantes son http://sparql.org/ y http://dannyayers.com/code/sparql-editor.
Una aplicación con GUI que utiliza Jena es Twinkle, que facilita enormemente la utilización de SPARQL. Además es gratuita y de libre distribución. (http://www.ldodds.com/projects/twinkle/)