{"id":33363,"date":"2019-10-31T21:52:11","date_gmt":"2019-10-31T18:52:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/chto-sejchas-proishodit-s-rdf-hranilishhami\/"},"modified":"2019-10-31T21:52:11","modified_gmt":"2019-10-31T18:52:11","slug":"chto-sejchas-proishodit-s-rdf-hranilishhami","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","title":{"rendered":"O que est\u00e1 acontecendo agora com os reposit\u00f3rios RDF?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A Web Sem\u00e2ntico e os Dados Linked s\u00e3o semelhantes ao espa\u00e7o pr\u00f3ximo: n\u00e3o h\u00e1 vida l\u00e1. Para embarcar nessa jornada por um per\u00edodo mais ou menos longo... bem, n\u00e3o sei o que te disseram na inf\u00e2ncia em resposta a \"quero ser astronauta\". Mas voc\u00ea pode observar o que acontece mesmo estando na Terra; tornar-se um astr\u00f4nomo amador ou at\u00e9 profissional \u00e9 muito mais f\u00e1cil.<\/p>\n<p><\/p>\n<p>Neste artigo, falaremos sobre as tend\u00eancias recentes, com n\u00e3o mais de alguns meses, do mundo dos armazenamentos RDF. A met\u00e1fora no primeiro par\u00e1grafo foi inspirada por uma imagem de propor\u00e7\u00f5es \u00e9picas abaixo.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Imagem \u00e9pica<\/b><\/p>\n<p><img decoding=\"async\" alt=\"O que est\u00e1 acontecendo agora com os reposit\u00f3rios RDF?\" src=\"\/wp-content\/uploads\/2019\/05\/3d157fb2f771f3dc622dacc8dab0a9ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"i-graphql-dlya-dostupa-k-rdf\">I. GraphQL para acesso ao RDF<\/h2>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.zdnet.com\/article\/graphql-for-databases-a-layer-for-universal-database-access\/\">Dizem<\/a><\/noindex>, que o GraphQL se prop\u00f5e a ser a linguagem universal de acesso a bancos de dados. Mas como est\u00e1 a possibilidade de acesso utilizando GraphQL ao RDF?<\/p>\n<p><\/p>\n<p>\u00abDe f\u00e1brica\u00bb, essa possibilidade \u00e9 oferecida por:<\/p>\n<p><\/p>\n<ul>\n<li>Stardog (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/graphql-and-paths\/\">blog<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_executing_graphql_queries\">documenta\u00e7\u00e3o<\/a><\/noindex>);<\/li>\n<li>produtos da TopQuadrant (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.topquadrant.com\/2018\/07\/05\/graphql-webinar\/\">webinar<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.topquadrant.com\/technology\/graphql\/\">documenta\u00e7\u00e3o<\/a><\/noindex>).<\/li>\n<\/ul>\n<p><\/p>\n<p>Se o armazenamento n\u00e3o oferece essa possibilidade, ela pode ser implementada por conta pr\u00f3pria, escrevendo um \"resolvedor\" correspondente. Foi assim que, por exemplo, no projeto franc\u00eas <noindex><a rel=\"nofollow\" href=\"https:\/\/framagit.org\/datatourisme\/api\/tree\/master\/src\/Resolver\">DataTourisme<\/a><\/noindex>. Ou agora j\u00e1 n\u00e3o \u00e9 preciso escrever nada, basta pegar <noindex><a rel=\"nofollow\" href=\"https:\/\/www.hypergraphql.org\/\">HyperGraphQL<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Do ponto de vista de um ortodoxo defensor do Web Sem\u00e2ntico e dos Dados Linked, tudo isso, claro, \u00e9 triste, pois parece destinado a integra\u00e7\u00f5es constru\u00eddas em torno de novos silos de dados, e n\u00e3o adequadas para plataformas (evidentemente, armazenamentos RDF).<\/p>\n<p><\/p>\n<p>As impress\u00f5es da compara\u00e7\u00e3o do GraphQL com o SPARQL s\u00e3o amb\u00edguas.<\/p>\n<p><\/p>\n<ul>\n<li>Por um lado, o GraphQL parece um parente distante do SPARQL: ele resolve problemas caracter\u00edsticos de reconsulta e m\u00faltiplas consultas do REST \u2014 sem os quais, provavelmente, n\u00e3o poderia ser considerado <em>uma linguagem de consulta<\/em>, mesmo que seja para a web;<\/li>\n<li>Por outro lado, decepciona a rigidez do esquema do GraphQL. Consequentemente, sua \"introspectividade\" parece muito limitada em compara\u00e7\u00e3o com a plena reflexividade do RDF. E n\u00e3o h\u00e1 nenhum an\u00e1logo a property paths, ent\u00e3o nem est\u00e1 claro por que \u00e9 \"Graph-\".<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"ii-adaptery-k-mongodb\">II. Adaptadores para MongoDB<\/h2>\n<p><\/p>\n<p>Uma tend\u00eancia complementar \u00e0 anterior.<\/p>\n<p><\/p>\n<ul>\n<li>Agora na Stardog <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/native-mongodb-support-is-here\/\">talvez<\/a><\/noindex> \u2014 em particular, tudo no mesmo GraphQL \u2014 configura-se a representa\u00e7\u00e3o de dados do MongoDB em gr\u00e1ficos RDF virtuais;<\/li>\n<li>O GraphDB, recentemente, <noindex><a rel=\"nofollow\" href=\"http:\/\/graphdb.ontotext.com\/documentation\/8.8\/standard\/integrating-graphdb-with-mongodb.html\">permite<\/a><\/noindex> come\u00e7ou a inserir fragmentos do MongoDB Query no SPARQL.<\/li>\n<\/ul>\n<p><\/p>\n<p>Falando de maneira mais ampla, sobre adaptadores para fontes JSON, que permitem, mais ou menos \"em tempo real\", representar o JSON armazenado nessas fontes como RDF, podemos lembrar do j\u00e1 existente <noindex><a rel=\"nofollow\" href=\"https:\/\/ci.mines-stetienne.fr\/sparql-generate\/\">SPARQL Generate<\/a><\/noindex>, que pode ser adaptado, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/sparql-generate\/sparql-generate\">por exemplo<\/a><\/noindex>, para Apache Jena.<\/p>\n<p><\/p>\n<p>Resumindo as duas primeiras tend\u00eancias, pode-se dizer que os reposit\u00f3rios RDF demonstram total prontid\u00e3o para integra\u00e7\u00f5es e funcionamento em condi\u00e7\u00f5es de \"armazenamento poliglotas\" (polyglot persistence). Sabe-se, no entanto, que isso j\u00e1 n\u00e3o est\u00e1 na moda, e est\u00e1 sendo substitu\u00eddo <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gartner.com\/en\/documents\/3105622\">por<\/a><\/noindex> multimodalidade. E como est\u00e3o as coisas com a multimodalidade no mundo dos reposit\u00f3rios RDF?<\/p>\n<p><\/p>\n<p>Resumindo, n\u00e3o est\u00e3o. O tema dos SGBDs multimodais merece um artigo dedicado, mas pode-se notar, por enquanto, que n\u00e3o existem SGBDs multimodais \"baseados\" em modelo gr\u00e1fico (pode-se considerar uma variedade dele o RDF) atualmente. Sobre uma certa pequena multimodalidade \u2014 suporte dos reposit\u00f3rios RDF a um modelo gr\u00e1fico alternativo LPG \u2014 ser\u00e1 abordado na <noindex><a rel=\"nofollow\" href=\"#v-podderzhka-lpg\">se\u00e7\u00e3o V<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h2 id=\"iii-oltp-vs-olap\">III. OLTP vs. OLAP<\/h2>\n<p><\/p>\n<p>No entanto, o mesmo Gartner <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gartner.com\/en\/documents\/3467318\">escreve<\/a><\/noindex>, que a multimodalidade \u00e9 uma condi\u00e7\u00e3o sine qua non, principalmente para <em>SGBDs<\/em> operacionais. \u00c9 compreens\u00edvel: na situa\u00e7\u00e3o de \"armazenamento poliglotas\", os principais problemas surgem com a transacionalidade.<\/p>\n<p><\/p>\n<p>Mas onde na escala OLTP\u2014OLAP est\u00e3o os reposit\u00f3rios RDF? Eu responderia assim: nem l\u00e1, nem aqui. Para descrever a que se destinam, precisa ser utilizada alguma terceira abrevia\u00e7\u00e3o. Como op\u00e7\u00e3o, eu sugeriria <em>OLIP<\/em> \u2014 Online Intellectual Processing.<\/p>\n<p><\/p>\n<p>No entanto, ainda assim:<\/p>\n<p><\/p>\n<ul>\n<li>os mecanismos de integra\u00e7\u00e3o realizados no GraphDB n\u00e3o s\u00e3o, em \u00faltima an\u00e1lise, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ontotext.com\/company\/news\/ontotexts-graphdb-8-8-0-enriches-the-knowledge-graph-experience\/\">destinados<\/a><\/noindex> a contornar problemas de desempenho de grava\u00e7\u00e3o;<\/li>\n<li>o Stardog vai ainda mais longe e reescreve completamente <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/announcing-stardog-7-beta\/\">o motor, novamente com o objetivo de aumentar o desempenho de grava\u00e7\u00e3o.<\/a><\/noindex> E agora, permita-me apresentar um novo jogador no mercado. dos criadores do IBM Netezza e Amazon Redshift \u2014<\/li>\n<\/ul>\n<p><\/p>\n<p>AnzoGraph <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cambridgesemantics.com\/product\/anzograph\/\">. A imagem do produto baseada nele foi publicada no in\u00edcio do artigo. O AnzoGraph se posiciona como uma solu\u00e7\u00e3o GOLAP. O que voc\u00ea acha de SPARQL com fun\u00e7\u00f5es de janela? \u2014<\/a><\/noindex>SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE {  \u2026  }<\/p>\n<p><\/p>\n<pre><code class=\"sql\">IV. RocksDB<\/code><\/pre>\n<p><\/p>\n<h2 id=\"iv-rocksdb\">Acima j\u00e1<\/h2>\n<p><\/p>\n<p>houve uma refer\u00eancia <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/blog\/announcing-stardog-7-beta\/\">ao an\u00fancio do Stardog 7 Beta, onde foi dito que o Stardog planeja usar RocksDB como sistema de armazenamento subjacente \u2014 um armazenamento \"chave-valor\", um fork do LevelDB do Google feito pelo Facebook. Por que j\u00e1 vale a pena falar sobre uma certa tend\u00eancia?<\/a><\/noindex> Em primeiro lugar, de acordo com<\/p>\n<p><\/p>\n<p>um artigo da Wikip\u00e9dia <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/RocksDB#Alternative_backend\">, os reposit\u00f3rios RDF n\u00e3o s\u00e3o os \u00fanicos que est\u00e3o \"migrando\" para o RocksDB. Existem projetos utilizando o RocksDB como motor de armazenamento em ArangoDB, MongoDB, MySQL e MariaDB, Cassandra.<\/a><\/noindex>Em segundo lugar, est\u00e3o sendo feitos projetos (ou seja, n\u00e3o produtos) sobre o tema correspondente no RocksDB.<\/p>\n<p><\/p>\n<p>Em segundo lugar, projetos relacionados s\u00e3o realizados no RocksDB (ou seja, n\u00e3o produtos).<\/p>\n<p><\/p>\n<p>Por exemplo, o eBay utiliza RocksDB na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/eBay\/beam\">plataforma<\/a><\/noindex> para seu 'grafo de conhecimento'. Ali\u00e1s, \u00e9 engra\u00e7ado ler: <em>a linguagem de consulta come\u00e7ou como um formato desenvolvido internamente, mas recentemente tem se transformado para ser muito mais parecido com SPARQL<\/em>. Como na piada: n\u00e3o importa quantos grafos de conhecimento fazemos, sempre acabamos em RDF.<\/p>\n<p><\/p>\n<p>Outro exemplo \u2014 surgiu h\u00e1 alguns meses <noindex><a rel=\"nofollow\" href=\"https:\/\/www.wikidata.org\/wiki\/Wikidata:History_Query_Service\">Wikidata History Query Service<\/a><\/noindex>. Antes de sua cria\u00e7\u00e3o, para informa\u00e7\u00f5es hist\u00f3ricas do Wikidata, era necess\u00e1rio recorrer ao <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mediawiki.org\/wiki\/Wikidata_Query_Service\/User_Manual\/MWAPI\">MWAPI<\/a><\/noindex> do padr\u00e3o Mediawiki API. Agora, muito \u00e9 poss\u00edvel com puro SPARQL. Ali\u00e1s, parece que quem fez o WDHQS foi a pessoa que esteve envolvida na importa\u00e7\u00e3o do Freebase para o Google Knowledge Graph.<\/p>\n<p><\/p>\n<h2 id=\"v-podderzhka-lpg\">V. Suporte a LPG<\/h2>\n<p><\/p>\n<p>Lembro-me da principal diferen\u00e7a entre grafos LPG e grafos RDF.<\/p>\n<p><\/p>\n<p>Em LPG, podem ser anexadas propriedades escalares aos instantes de arestas, enquanto em RDF elas s\u00f3 podem ser anexadas a 'tipos' de arestas (mas n\u00e3o apenas propriedades escalares, mas tamb\u00e9m rela\u00e7\u00f5es normais). Esta limita\u00e7\u00e3o do RDF em compara\u00e7\u00e3o com o LPG <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/swbp-n-aryRelations\/\">\u00e9 superada<\/a><\/noindex> por v\u00e1rias t\u00e9cnicas de modelagem. A limita\u00e7\u00e3o do LPG em compara\u00e7\u00e3o ao RDF \u00e9 mais dif\u00edcil de superar, mas os grafos LPG s\u00e3o mais parecidos com as imagens do livro de Harari, por isso as pessoas os desejam.<\/p>\n<p><\/p>\n<p>Obviamente, a tarefa de 'suporte a LPG' se divide em duas partes:<\/p>\n<p><\/p>\n<ol>\n<li>fazer altera\u00e7\u00f5es no modelo RDF para possibilitar a simula\u00e7\u00e3o de estruturas LPG;<\/li>\n<li>fazer altera\u00e7\u00f5es na linguagem de consultas RDF para permitir acessar dados nesse modelo modificado, \u2014 ou implementar a possibilidade de fazer consultas a esse modelo em linguagens de consulta populares para LPG.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"v1--model-dannyh\">V.1. Modelo de dados<\/h3>\n<p><\/p>\n<p>Aqui existem v\u00e1rias abordagens poss\u00edveis.<\/p>\n<p><\/p>\n<p><strong>V.1.1. Propriedade Singleton<\/strong><\/p>\n<p><\/p>\n<p>A abordagem mais literal para harmonizar RDF e LPG \u00e9, provavelmente, a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ncbi.nlm.nih.gov\/pmc\/articles\/PMC4350149\/\">singleton property<\/a><\/noindex>:<\/p>\n<p><\/p>\n<ul>\n<li>Em vez, por exemplo, do predicado <code>:isMarriedTo<\/code> utilizam-se os predicados <code>:isMarriedTo1<\/code>, <code>:isMarriedTo2<\/code> etc.<\/li>\n<li>Depois, esses predicados tornam-se sujeitos de novos triplos: <code>:isMarriedTo1 :desde \"2013-09-13\"^^xsd:date<\/code> etc.<\/li>\n<li>A rela\u00e7\u00e3o dessas inst\u00e2ncias de predicados com o predicado comum \u00e9 estabelecida por triplos do tipo <code>:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo<\/code>.<\/li>\n<li>\u00c9 evidente que <code>rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type<\/code>, mas pense por que n\u00e3o devemos simplesmente escrever <code>:isMarriedTo1 rdf:type :isMarriedTo<\/code>.<\/li>\n<\/ul>\n<p><\/p>\n<p>A tarefa de 'suporte a LPG' \u00e9 resolvida aqui no n\u00edvel RDFS. Essa solu\u00e7\u00e3o requer modifica\u00e7\u00f5es na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/rdf-schema\/\">especifica\u00e7\u00e3o<\/a><\/noindex>. Algumas altera\u00e7\u00f5es podem ser necess\u00e1rias por parte dos reposit\u00f3rios RDF que suportam a anexa\u00e7\u00e3o de consequ\u00eancias, enquanto isso, a Propriedade Singleton pode ser vista simplesmente como mais uma t\u00e9cnica de modelagem.<\/p>\n<p><\/p>\n<p><strong>V.1.2. Reifica\u00e7\u00e3o Feita da Maneira Certa<\/strong><\/p>\n<p><\/p>\n<p>Abordagens menos ing\u00eanuas derivam da compreens\u00e3o de que inst\u00e2ncias de propriedades podem ser perfeitamente instanciadas em tripletos. Sendo capaz de falar algo sobre tripletos, teremos a capacidade de falar sobre inst\u00e2ncias de propriedades.<\/p>\n<p><\/p>\n<p>A abordagem mais s\u00f3lida entre elas \u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1409.3288\">RDF*<\/a><\/noindex>, tamb\u00e9m conhecido como RDR, <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.blazegraph.com\/wiki\/index.php\/Reification_Done_Right\">nascido<\/a><\/noindex> nas entranhas do Blazegraph. Desde o in\u00edcio, <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cambridgesemantics.com\/anzograph\/userdoc\/lpgs.htm\">ele foi escolhido<\/a><\/noindex> para si mesmo e para o AnzoGraph. A solidez da abordagem \u00e9 definida pelo fato de que, dentro de sua estrutura, <noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1406.3399\">s\u00e3o oferecidos<\/a><\/noindex> mudan\u00e7as correspondentes em <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/rdf11-mt\/\">Sem\u00e2ntica RDF<\/a><\/noindex>. A ess\u00eancia, no entanto, \u00e9 extremamente simples. Na serializa\u00e7\u00e3o Turtle do RDF, agora podemos escrever algo assim:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">&lt;&gt; :desde \"2013-09-13\"^^xsd:date .<\/code><\/pre>\n<p><\/p>\n<p><strong>V.1.3. Outras Abordagens<\/strong><\/p>\n<p><\/p>\n<p>\u00c9 poss\u00edvel n\u00e3o se preocupar com a sem\u00e2ntica formal e simplesmente considerar que os tripletos t\u00eam certos identificadores, que s\u00e3o, naturalmente, URIs, e compor novos tripletos com esses URIs. Resta apenas fornecer acesso a esses URIs no SPARQL. Assim, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_motivation_implementation\">faz<\/a><\/noindex> Stardog. <\/p>\n<p><\/p>\n<p>No Allegrograph, <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-attributes.html\">seguiram<\/a><\/noindex> um caminho intermedi\u00e1rio. \u00c9 conhecido que os identificadores de tripletos no Allegrograph <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-index.html\">tem<\/a><\/noindex>, mas ao implementar atributos tripletos para fora, eles n\u00e3o s\u00e3o expostos. No entanto, ainda est\u00e1 muito longe da sem\u00e2ntica formal. Notavelmente, os atributos de tripletos n\u00e3o s\u00e3o URIs, e os valores desses atributos tamb\u00e9m podem ser somente literais. Os adeptos do LPG obt\u00eam exatamente o que queriam. Em um formato especialmente inventado NQX, um exemplo semelhante ao mencionado acima para RDF* se parece com isso:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">:bob :casadoCom :alice {\"desde\" : \"2013-09-13\"}<\/code><\/pre>\n<p><\/p>\n<h3 id=\"v2-yazyki-zaprosov\">V.2. Linguagens de Consulta<\/h3>\n<p><\/p>\n<p>Apoiando, de uma forma ou de outra, o LPG no n\u00edvel do modelo, \u00e9 necess\u00e1rio permitir que consultas sejam feitas aos dados nesse modelo.<\/p>\n<p><\/p>\n<ul>\n<li>O Blazegraph para consultas ao RDF* suporta <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.blazegraph.com\/wiki\/index.php\/Reification_Done_Right\">SPARQL*<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/blazegraph\/tinkerpop3\/blob\/master\/README.md\">Gremlin.<\/a><\/noindex>Uma consulta em SPARQL* se parece com isso:<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\"> SELECT * { &lt;&gt; :since ?since }<\/code><\/pre>\n<p><\/p>\n<ul>\n<li>AnzoGraph tamb\u00e9m suporta <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cambridgesemantics.com\/anzograph\/userdoc\/lpgs.htm\">SPARQL*<\/a><\/noindex> e planeja suportar <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cambridgesemantics.com\/cambridge-semantics-adds-opencypher-anzograph-2\/\">Cypher<\/a><\/noindex>, a linguagem de consulta em Neo4j. <\/li>\n<li>O Stardog suporta seu pr\u00f3prio <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_integration_with_sparql_2\">extens\u00e3o<\/a><\/noindex> SPARQL e <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stardog.com\/docs\/#_example_2\">novamente<\/a><\/noindex> Gremlin. O URI do tripleta e a \"metainforma\u00e7\u00e3o\" podem ser obtidos em SPARQL com uma constru\u00e7\u00e3o semelhante a esta:<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\">SELECT * { BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id) ?id :since ?since }<\/code><\/pre>\n<p><\/p>\n<ul>\n<li>Allegrograph tamb\u00e9m suporta seu pr\u00f3prio <noindex><a rel=\"nofollow\" href=\"https:\/\/franz.com\/agraph\/support\/documentation\/current\/triple-attributes.html#Querying-Attributes-using-SPARQL\">extens\u00e3o<\/a><\/noindex> SPARQL:<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"sql\"> SELECT * { (\"desde\" ?since)  franz:attributesNameValue  ( :bob :casadoCom ?wife ) }<\/code><\/pre>\n<p><\/p>\n<p>A prop\u00f3sito, o GraphDB, por um tempo, suportou Tinkerpop\/Gremlin, sem suportar LPG, mas na vers\u00e3o 8.0 ou 8.1 isso foi interrompido.<\/p>\n<p><\/p>\n<h2 id=\"vi-uzhestochenie-licenziy\">VI. Endurecimento das Licen\u00e7as<\/h2>\n<p><\/p>\n<p>N\u00e3o houve adi\u00e7\u00f5es recentes nas interse\u00e7\u00f5es entre \"triplestore de escolha\" e \"triplestore de c\u00f3digo aberto\". Os novos reposit\u00f3rios RDF de c\u00f3digo aberto ainda est\u00e3o longe de se tornarem uma boa escolha para uso cotidiano, e o c\u00f3digo fonte de novos reposit\u00f3rios RDF que gostar\u00edamos de explorar (como o AnzoGraph) est\u00e1 fechado. Podemos at\u00e9 falar de redu\u00e7\u00f5es...<\/p>\n<p><\/p>\n<p>Claro, o c\u00f3digo-fonte aberto n\u00e3o est\u00e1 sendo fechado, mas alguns reposit\u00f3rios de c\u00f3digo aberto est\u00e3o lentamente deixando de ser considerados escolhas dignas. O Virtuoso, que tem uma edi\u00e7\u00e3o opensource, na minha opini\u00e3o, est\u00e1 afundando em bugs. O Blazegraph foi adquirido pela AWS e se tornou a base do Amazon Neptune; agora n\u00e3o est\u00e1 claro se haver\u00e1 mais lan\u00e7amentos. Resta apenas o Jena...<\/p>\n<p><\/p>\n<p>Caso o c\u00f3digo-fonte aberto n\u00e3o seja t\u00e3o importante e voc\u00ea queira apenas experimentar, a situa\u00e7\u00e3o tamb\u00e9m n\u00e3o \u00e9 t\u00e3o otimista quanto antes. Por exemplo:<\/p>\n<p><\/p>\n<ul>\n<li>Stardog <noindex><a rel=\"nofollow\" href=\"https:\/\/community.stardog.com\/t\/update-to-enterprise-and-community-trials\/1533\">deixa de<\/a><\/noindex> distribuir a vers\u00e3o gratuita (no entanto, o per\u00edodo de teste padr\u00e3o dobrou);<\/li>\n<li>em <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.ontotext.com\/\">GraphDB Cloud<\/a><\/noindex>, onde anteriormente era poss\u00edvel escolher um plano b\u00e1sico gratuito, suspendeu o registro de novos usu\u00e1rios.<\/li>\n<\/ul>\n<p><\/p>\n<p>No geral, para o cidad\u00e3o comum de TI, o espa\u00e7o se torna cada vez mais inacess\u00edvel, e seu dom\u00ednio se torna privil\u00e9gio das corpora\u00e7\u00f5es.<\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/451206\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Semantic Web \u0438 Linked Data \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u0431\u043b\u0438\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u0441\u043c\u043e\u0441\u0443: \u0436\u0438\u0437\u043d\u0438 \u0442\u0430\u043c \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0443\u0434\u0430 \u043d\u0430\u00a0\u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u043e\u043a\u2026 \u043d\u0443, \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043c \u0432 \u0434\u0435\u0442\u0441\u0442\u0432\u0435 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u00ab\u0445\u043e\u0447\u0443 \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u043e\u043c\u00bb. \u041d\u043e \u043f\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u043d\u0430 \u0417\u0435\u043c\u043b\u0435; \u0441\u0442\u0430\u0442\u044c \u0430\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u043e\u043c-\u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u043c \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u043c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e \u0441\u0432\u0435\u0436\u0438\u0445, \u043d\u0435 \u0441\u0442\u0430\u0440\u0435\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25082,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-33363","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Semantic Web \u0438 Linked Data \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u0431\u043b\u0438\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u0441\u043c\u043e\u0441\u0443: \u0436\u0438\u0437\u043d\u0438 \u0442\u0430\u043c \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0443\u0434\u0430 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u043e\u043a\u2026 \u043d\u0443, \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043c \u0432 \u0434\u0435\u0442\u0441\u0442\u0432\u0435 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u00ab\u0445\u043e\u0447\u0443 \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u043e\u043c\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 RDF-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u043c\u0438? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Semantic Web \u0438 Linked Data \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u0431\u043b\u0438\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u0441\u043c\u043e\u0441\u0443: \u0436\u0438\u0437\u043d\u0438 \u0442\u0430\u043c \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0443\u0434\u0430 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u043e\u043a\u2026 \u043d\u0443, \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043c \u0432 \u0434\u0435\u0442\u0441\u0442\u0432\u0435 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u00ab\u0445\u043e\u0447\u0443 \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u043e\u043c\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:52:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:52:11+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47O que est\u00e1 acontecendo atualmente com os reposit\u00f3rios RDF? | ProHoster","description":"A Web Sem\u00e2ntica e os Dados Vinculados s\u00e3o como o espa\u00e7o pr\u00f3ximo: n\u00e3o h\u00e1 vida l\u00e1. Para se aventurar por l\u00e1 por um per\u00edodo mais longo... bem, n\u00e3o sei o que lhe disseram na inf\u00e2ncia em resposta ao \"quero ser astronauta\".","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 RDF-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u043c\u0438? | ProHoster","og:description":"Semantic Web \u0438 Linked Data \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u0431\u043b\u0438\u0436\u043d\u0435\u043c\u0443 \u043a\u043e\u0441\u043c\u043e\u0441\u0443: \u0436\u0438\u0437\u043d\u0438 \u0442\u0430\u043c \u043d\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0443\u0434\u0430 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u043e\u043a\u2026 \u043d\u0443, \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043c \u0432 \u0434\u0435\u0442\u0441\u0442\u0432\u0435 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u00ab\u0445\u043e\u0447\u0443 \u0441\u0442\u0430\u0442\u044c \u043a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u043e\u043c\u00bb.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-sejchas-proishodit-s-rdf-hranilishhami","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:52:11+00:00","article:modified_time":"2019-10-31T18:52:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33363","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 14:56:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:42:22","updated":"2026-01-21 14:56:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/33363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=33363"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/33363\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/25082"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=33363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=33363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=33363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}