# Linguagem de consulta a RDF

Uma linguagem de consulta a RDF (RDF query language) é uma linguagem de computador, especificamente uma linguagem de consulta para bancos de dados, capaz de recuperar e manipular dados armazenados no formato RDF (Resource Description Framework).
O SPARQL surgiu como a linguagem de consulta RDF padrão, e em 2008 se tornou uma recomendação do W3C.

## Propriedades da linguagem de consulta

As propriedades relevantes ao design da linguagem de consulta RDF incluem suporte para o formato RDF:
* Suporte para dados RDF, que é uma coleção de triplos que formam um grafo RDF
* Suporte para semântica e inferência de RDF que permite vinculação, o raciocínio sobre o significado dos grafos de RDF
* Suporte para tipos de dados de esquema, como esquema XML
e para recursos gerais de linguagens de consulta:
* Expressividade (o poder da expressão de consulta que pode ser construída)
* Encerramento (operações de dados em um grafo RDF devem resultar em outro grafo RDF)
* Ortogonalidade (as operações de dados são independentes do contexto em que são usadas)
* Segurança (toda expressão retorna um conjunto finito de resultados)

## Famílias de linguagens de consulta

As linguagens de consulta RDF podem ser agrupados em famílias de linguagens, cada família compreendendo um conjunto de idiomas intimamente relacionados.
A família de linguagens SPARQL inclui SquishQL, RDQL, SPARQL e TriQL. Essas linguagens tratam os repositórios de dados RDF como repositórios triplos que não possuem necessariamente informações de ontologia ou esquema associadas a eles. Os membros da família SPARQL são considerados linguagens de consulta relacional porque possuem operações relacionais ou baseadas em padrões. O SquishQL foi uma linguagem construída para ser fácil de usar e ter estrutura semelhante ao SQL. RDQL, um acrônimo para RDF Data Query Language, foi um desenvolvimento adicional do SquishQL. O RDQL pretendia ser uma linguagem RDF de baixo nível simples e, em um determinado momento, era candidato à padronização do W3C. SPARQL é uma extensão do RDQL que suporta extração de subgráficos RDF. Em 2008, o SPARQL 1.0 se tornou uma recomendação do W3C e o SPARQL 1.1 se tornou uma recomendação do W3C em 2013.
A família de linguagens RQL inclui RQL, SeRQL e eRQL. Esses idiomas suportam a consult tanto de dados como de esquemas. O RQL, um acrônimo para RDF Query Language, é conhecido por usar os tipos definidos nos esquemas RDF (RDFS) para consultar a hierarquia de classes do esquema e oferecer suporte à consulta de dados por tipo. O RQL é considerado mais expressivo que a família de linguagens SPARQL, mas foi criticado por muitos recursos e construções sintáticas incomuns. O SeRQL e o eRQL foram desenvolvidos como alternativas simplificadas ao RQL.
Há uma família de linguagens de consulta RDF inspiradas na tecnologia de consulta XML. O XQuery para RDF usa a linguagem de consulta XML XQuery para consultar dados RDF serializando RDF em um formato XML e, em seguida, usando XQuery no resultado; isso foi chamado de "abordagem da web sintática". TreeHugger e RDF Twig usam XSLT para consultar dados RDF. A Versa , da 4Suite, é uma linguagem de consulta que se inspirou no XPath .
Existem linguagens de consulta RDF com base em outros princípios. O Metalog combina consulta com raciocínio e possui uma sintaxe semelhante ao inglês. Algas é uma linguagem de consulta desenvolvida pelo W3C que adiciona regras reativas, também chamadas de ações, que determinam, por exemplo, se uma expressão de algas é uma consulta de dados ou uma atualização de dados.
Outros exemplos de linguagens de consulta RDF incluem RDFDBQL .

## Linguagens relacionadas

Outros idiomas que podem consultar dados RDF incluem:
* DQL, XML, consultas e resultados expressos em DAML + OIL
* O XUL possui um elemento de modelo no qual declarar regras para correspondência de dados no RDF. XUL usa RDF extensivamente para ligação de dados.
* Adenina (linguagem de programação escrita em RDF).
XQuery, ou XML Query, é uma linguagem de consulta padrão para documentos XML.
Linguagens de consulta de grafos, como Cypher Query Language, GraphQL e Gremlin, são projetadas para consultar bancos de dados de grafos, dos quais armazenamentos de dados RDF são um exemplo.
A Linguagem de Consulta de Mapa de Tópicos (TMQL) é uma linguagem de consulta para mapas de tópicos, uma representação de dados semelhante, mas mais geral, ao RDF.