Linguagem de consulta a RDF

Origem: Wikipédia, a enciclopédia livre.

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

  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.03556Acessível livremente. 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 | editar código-fonte]