SPARQL é um acrónimo recursivo do inglês SPARQL Protocol and RDF Query Language. Trata-se de uma linguagem padronizada para a consulta de grafos RDF, padrão pelo RDF Data Access Working Group (DAWG) do World Wide Web Consortium (W3C). É uma tecnologia básica no desenvolvimento da web semântica que se constituiu como recomendação oficial do W3C a 15 de janeiro de 2008, sendo actualizada à versão 1.1 em 2013.[1]
Ao igual que sucede com SQL, é necessário distinguir entre o linguagem de consulta e o motor para o armazenamento e recuperação dos dados. Por este motivo, existem múltiplas implementações de SPARQL, geralmente unidos a meios de desenvolvimento e plataforma tecnológicas.
Num princípio SPARQL unicamente incorpora funções para a recuperação de parágrafos RDF. No entanto, algumas propostas também incluem operações para a manutenção (criação, modificação e apagar) de dados.
Por exemplo, se queremos obter uma listagem de nomes de livros podemos executar a seguinte consulta:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?title
WHERE { <http://exemplo.org/livros> dc:title ?title
}
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?title
WHERE { <http://exemplo.org/livros> dc:title ?title }
SPARQL permite o acesso a informação disponível no site através de diversas plataformas como é o caso de DBpedia que tem o acesso a toda a informação da Wikipedia em espanhol.
No exemplo de abaixo podemos ver como levar a cabo uma consulta que nos mostre uma listagem de músicos espanhois junto com seu nome, sua data de nascimento e de falecimento.
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbp: <http://dbpedia.org/ontology/>
SELECT ?musico ?nombreMusico ?fechaNacimiento ?fechaFallecimiento
WHERE {
?musico dcterms:subject
<http://dbpedia.org/resource/Category:Spanish_musicians>;
rdfs:label ?nombreMusico ;
dbp:birthDate ?fechaNacimiento ;
dbp:deathDate ?fechaFallecimiento .
FILTER (LANG(?nombreMusico) = "es")
}
No exemplo2 temos visto o uso de FILTER que nos permite eliminar resultados da nossa busca. FILTER admite tipos de dados de tipo Bool, Int, Float, dataTime, etc. e frequentemente usa operadores do tipo >, <, >=, <=, =, !=, ||, &&:
PREFIX ex: <http://example.org#>
SELECT ?nom ?ed
WHERE{
?x ex:nome ?nom .
?x ex:idade ?ed
FILTER (?ed<40 || ?ed >18)
}
strdt("1234", "xsd:integer")="1234"^^<xsd:integer>
strlang("Universidade", "es")="Universidade"@"es"
PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT DISTINCT?name WHERE f ?x foaf:name ?name.g ORDER BY ?name LIMIT 3 OFFSET 1
Usando DBpedia podemos criar metadatos RDF e URIs. DBpedia transforma em RDF tripletas (Sujeito, Predicado, Objeto) que têm sido introduzidas na Wikipédia. A criação de uma página na Wikipédia provoca, por tanto, a criação de informação RDF em DBpedia. Isto é, quando se cria um conteúdo na Wikipédia do tipo starcraft cria-se a sua vez uma entrada. Através da interface pública Virtuoso SPARQL Query Editor podemos levar a cabo consultas no banco de dados da DBpedia. As consultas SPARQL serão traduzidas a SQL de forma transparente ao usuário. [http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSODSSparqlSamples Exemplos de consultas.
A base de dados em grafo Wikidata disponibiliza seu conteúdo para buscas usando a linguagem SPARQL através do Wikidata Query Service. [2]
Contexto | |
---|---|
Sub-tópicos | Linked data · Data Web · Hiperdado · URI dereferenciável · Sistema baseado em regras · Espaço de dados |
Aplicações | Wiki semântico · Publicação semântica · Busca semântica · Publicidade semântica · Motor de regra · Casamento semântico · Mapeador semântico · Análise de semântica · Arquitetura semântica orientada a serviços |
Tópicos relacionados | |
Normas | Sintaxe e tecnologias de suporte : RDF (Notação 3 · Turtle · N-Triples) · SPARQL · URI · HTTP · XML
Esquemas, ontologias e regras : RDFS · OWL · Rule Interchange Format · Semantic Web Rule Language · SHACL Anotação semântica : RDFa · eRDF · GRDDL · Microformato Vocabulários comuns : FOAF · SIOC · Dublin Core · SKOS |