Hoje, SPARQL continua sendo um tema de grande relevância e interesse para muitas pessoas ao redor do mundo. Seja pelo seu impacto na sociedade, pela sua importância na história, pela sua influência na cultura ou pela sua relevância na atualidade, SPARQL continua a ser objeto de análise, debate e reflexão. Ao longo dos anos, SPARQL tem sido extensivamente pesquisado e escrito sobre, oferecendo diferentes perspectivas e abordagens que permitem uma melhor compreensão do seu significado e alcance. Neste artigo iremos explorar algumas das facetas mais relevantes de SPARQL e refletir sobre a sua importância no nosso dia a dia.
SPARQL (acrónimo recursivo do inglês SPARQL Protocol and Resource Description Framework Query Language), é uma linguagem padrão da web semântica para a consulta de grafos RDF (Resource Description Framework, descrição conceitual em recursos Web), padronizada pelo grupo "RDF Data Access Working Group" (DAWG) da organização "World Wide Web Consortium" (W3C). É uma tecnologia básica no desenvolvimento da web semântica (interatividade entre pessoas e computadores) que se constituiu como recomendação oficial (padrão) do W3C à 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, para 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 }
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 Wikipédia em espanhol.
Um exemplo de como criar uma listagem de músicos espanhois contendo nome e as datas 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 é usado o FILTER, que 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)
}
Como fazer a criação de dado e converter seu tipo
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/davhttps://sapientiapt.com/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]