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

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

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

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

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

  1. 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 
  2. Prud'hommeaux, Eric; Seaborne, Andy (15 de janeiro de 2008). «SPARQL Query Language for RDF». W3C. World Wide Web Consortium 
  3. Herman, Ivan (15 de janeiro de 2008). «SPARQL is a Recommendation». Semantic Web Activity News. World Wide Web Consortium 
  4. 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 
  5. 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 
  6. 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 
  7. «RDQL - A Query Language for RDF». www.w3.org. W3C. Consultado em 23 de outubro de 2016 
  8. «SPARQL is a Recommendation | Semantic Web Activity News». www.w3.org. Consultado em 23 de outubro de 2016 
  9. «Eleven SPARQL 1.1 Specifications are W3C Recommendations | Semantic Web Activity News». www.w3.org. Consultado em 23 de outubro de 2016 
  10. 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 
  11. Fensel, Dieter; Sycara, Katia; Mylopoulus, John (2003). The Semantic Web - ISWC 2003. Springer. [S.l.: s.n.] ISBN 9783540203629 
  12. «XQuery 3.0: An XML Query Language». www.w3.org. W3C. Consultado em 23 de outubro de 2016 
  13. 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 
  14. «Topic Map Query Language (TMQL)». www.isotopicmaps.org. Consultado em 23 de outubro de 2016 

Ligações externas editar