sábado, 23 de junio de 2007

Introducción a SparQL

¿Qué es?

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/)
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.
Una limitación de la actual especificación es que únicamente se permiten consultas de lectura. Así pues sólo se pueden leer informaciones y comparar datos. En resumen SPARQL es una vía rápida para localizar información específica. Por último apuntar que existen varias implementaciones (Python, PHP, Java), pero destaca Jena Semantic Web Toolkit para plataforma Java sobre las demás.

¿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/)

Vista de Twinkle

No hay comentarios:

Publicar un comentario