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,[1] e em 2008 se tornou uma recomendação do W3C.[2][3]
Propriedades da linguagem de consulta[editar | editar código-fonte]
As propriedades relevantes ao design da linguagem de consulta RDF incluem suporte para o formato RDF:[4]
- 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[editar | editar código-fonte]
As linguagens de consulta RDF podem ser agrupados em famílias de linguagens, cada família compreendendo um conjunto de idiomas intimamente relacionados.[5]
A família de linguagens SPARQL inclui SquishQL, RDQL, SPARQL e TriQL.[5] 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.[6] 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.[7] 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 [8] e o SPARQL 1.1 se tornou uma recomendação do W3C em 2013.[9]
A família de linguagens RQL inclui RQL, SeRQL e eRQL.[5] 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.[5] 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.[5] 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,[10] 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 .[11]
Exemplo[editar | editar código-fonte]
select
?uri,?name, ?lat, ?lon
from
<http://swordfish.rdfweb.org/discovery/2003/11/cities/xmlrdf.jsp?query=port>
where
(?city, <rdfs:label>, ?name),
(?city, <rdfs:label>,?uri),
(?city, <pos:lat>, ?lat),
(?city, <pos:long>, ?lon)
using
rdfs FOR <http://www.w3.org/2000/01/rdf-schema#>,
pos FOR <http://www.w3.org/2003/01/geo/wgs84_pos#>,
doilair FOR <http://www.daml.org/2001/10/html/airport-ont#>,
vcard FOR <http://www.w3.org/vcard-rdf/3.0#>
Linguagens relacionadas[editar | editar código-fonte]
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.[12]
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.[13]
A Linguagem de Consulta de Mapa de Tópicos (TMQL) [14] é uma linguagem de consulta para mapas de tópicos, uma representação de dados semelhante, mas mais geral, ao RDF.
Referências
- ↑ Bikakis, Nikos; Tsinaraki, Chrisa; Gioldasis, Nektarios; Stavrakantonakis, Ioannis; Christodoulakis, Stavros (1 de janeiro de 2013). The XML and Semantic Web Worlds: Technologies, Interoperability and Integration: A Survey of the State of the Art. Col: Studies in Computational Intelligence (em inglês). 418. [S.l.: s.n.] pp. 319–360. ISBN 978-3-642-28976-7. arXiv:1608.03556. doi:10.1007/978-3-642-28977-4_12
- ↑ Prud'hommeaux, Eric; Seaborne, Andy (15 de janeiro de 2008). «SPARQL Query Language for RDF». W3C. World Wide Web Consortium
- ↑ Herman, Ivan (15 de janeiro de 2008). «SPARQL is a Recommendation». Semantic Web Activity News. World Wide Web Consortium
- ↑ Haase, Peter; Broekstra, Jeen; Eberhart, Andreas; Volz, Raphael (7 de novembro de 2004). A Comparison of RDF Query Languages. Col: Lecture Notes in Computer Science (em inglês). 3298. [S.l.: s.n.] pp. 502–517. ISBN 978-3-540-23798-3. doi:10.1007/978-3-540-30475-3_35
- ↑ a b c d e Bailey, James; Bry, François; Furche, Tim; Schaffert, Sebastian (1 de janeiro de 2005). Web and Semantic Web Query Languages: A Survey. [S.l.: s.n.] pp. 35–133. ISBN 9783540278283. doi:10.1007/11526988_3
- ↑ Furche, Tim; Linse, Benedikt; Bry, François; Plexousakis, Dimitris; Gottlob, Georg (1 de janeiro de 2006). RDF Querying: Language Constructs and Evaluation Methods Compared. Col: Lecture Notes in Computer Science (em inglês). 4126. [S.l.: s.n.] pp. 1–52. ISBN 978-3-540-38409-0. doi:10.1007/11837787_1
- ↑ «RDQL - A Query Language for RDF». www.w3.org. W3C. Consultado em 23 de outubro de 2016
- ↑ «SPARQL is a Recommendation | Semantic Web Activity News». www.w3.org. Consultado em 23 de outubro de 2016
- ↑ «Eleven SPARQL 1.1 Specifications are W3C Recommendations | Semantic Web Activity News». www.w3.org. Consultado em 23 de outubro de 2016
- ↑ Berstel, Bruno; Bonnard, Philippe; Bry, François; Eckert, Michael; Pătrânjan, Paula-Lavinia (1 de janeiro de 2007). Reactive Rules on the Web. Col: Lecture Notes in Computer Science (em inglês). 4636. [S.l.: s.n.] pp. 183–239. ISBN 978-3-540-74613-3. doi:10.1007/978-3-540-74615-7_3
- ↑ Fensel, Dieter; Sycara, Katia; Mylopoulus, John (2003). The Semantic Web - ISWC 2003. Springer. [S.l.: s.n.] ISBN 9783540203629
- ↑ «XQuery 3.0: An XML Query Language». www.w3.org. W3C. Consultado em 23 de outubro de 2016
- ↑ Angles, Renzo; Gutierrez, Claudio (29 de maio de 2005). Querying RDF Data from a Graph Database Perspective. Col: Lecture Notes in Computer Science (em inglês). 3532. [S.l.: s.n.] pp. 346–360. ISBN 978-3-540-26124-7. doi:10.1007/11431053_24
- ↑ «Topic Map Query Language (TMQL)». www.isotopicmaps.org. Consultado em 23 de outubro de 2016