En el marco de la recuperación y organización de la información las siglas SPARQL (SPARQL Protocol And RDF Query Language, pronunciado como "sparkle") definen un lenguaje de recuperación para RDF/RDFS.Esta tecnología de consulta SPARQL permite que las personas pueden centrarse en la información que quieren, sin tener en cuenta la tecnología de la base de datos o el formato utilizado para almacenar esos datos. Debido a que las consultas en el lenguaje SPARQL expresan objetivos de alto nivel, es fácil extenderlos a orígenes de datos inesperados, o incluso transferirlos a nuevas aplicaciones.
El lenguaje de recuperación SPARQL ha sido diseñado para un uso a escala de la Web, así permite hacer consultas sobre orígenes de datos distribuidos, independientemente del formato. A la hora de recuperar información la creación de una sola consulta a través de diferentes almacenes es mejor que múltiples consultas, además de tener un coste menor y de ofrecer unos resultados mejores.
El lenguaje SPARQL de posee tres componentes importantes: URIs, literales y variables procedentes del lenguaje RDF.
La sintaxis de SPARQL es similar a la de RQL, añadiendo algunas modificaciones para facilitar el análisis sintáctico (parsing) del lenguaje. Como RQL, SeRQL se basa en una interpretación formal del grafo de RDF, diferenciándose de RQL en que se basa directamente en RDF Model Theory.
El lenguaje SPARQL tiene cuatro tipos de consultas, estas con sus respectivas descripciones se pueden observar abajo:
PREFIX foaf: <http://lenguajerecuperacionsparql.com/foaf/0.1/>
SELECT ?nameX ?nameY ?nickY
WHERE
{ ?x foaf:knows ?y ;
foaf:name ?nameX .
?y foaf:name ?nameY .
OPTIONAL { ?y foaf:nick ?nickY }
}
PREFIX foaf: <http://lenguajerecuperacionsparql/foaf/0.1/>
PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
CONSTRUCT { <http://lenguajerecuperacionsparql.org/person#Alice> vcard:FN ?name }
WHERE { ?x foaf:name ?name }
PREFIX foaf: <http://lenguajerecuperacionsparql/foaf/0.1/>
ASK { ?x foaf:name "Alice" }
DESCRIBE <http://example.org/>