Comportamento do SPARQL DESCRIBE em relação ao grafo padrão - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Comportamento do SPARQL DESCRIBE em relação ao grafo padrão

O formato da consulta DESCRIBE SPARQL permite que você recupere informações sobre recursos sem conhecer a estrutura dos dados e sem precisar compor uma consulta. A forma como essas informações são reunidas é deixada para a implementação do SPARQL. O Neptune fornece várias dicas de consulta que invocam diferentes modos e algoritmos para DESCRIBE usar.

Na implementação do Neptune, independentemente do modo, DESCRIBE usa apenas dados presentes no grafo padrão do SPARQL. Isso é consistente com a forma como o SPARQL trata os conjuntos de dados (consulte Specifying RDF Datasets na especificação do SPARQL).

No Neptune, o grafo padrão contém todos os triplos exclusivos na união de todos os grafos nomeados no banco de dados, a menos que grafos nomeados específicos sejam especificados usando cláusulas FROM e/ou FROM NAMED. Todos os dados do RDF no Neptune são armazenados em um grafo nomeado. Se um triplo for inserido sem um contexto de grafo nomeado, o Neptune o armazenará em um grafo nomeado designado http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph.

Quando um ou mais grafos nomeados são especificados usando a cláusula FROM, o grafo padrão é a união de todos os triplos exclusivos nesses grafos nomeados. Se não houver nenhuma cláusula FROM e houver uma ou mais cláusulas FROM NAMED, o grafo padrão estará em branco.

Exemplos de DESCRIBE do SPARQL

Pense nos seguintes dados:

PREFIX ex: <https://example.com/> GRAPH ex:g1 { ex:s ex:p1 "a" . ex:s ex:p2 "c" . } GRAPH ex:g2 { ex:s ex:p3 "b" . ex:s ex:p2 "c" . } ex:s ex:p3 "d" .

Para essa consulta:

PREFIX ex: <https://example.com/> DESCRIBE ?s FROM ex:g1 FROM NAMED ex:g2 WHERE { GRAPH ex:g2 { ?s ?p "b" . } }

O Neptune geraria:

ex:s ex:p1 "a" . ex:s ex:p2 "c" .

Aqui, o padrão do grafo GRAPH ex:g2 { ?s ?p "b" } é avaliado primeiro, gerando vinculações para ?s e, depois, a parte DESCRIBE é avaliada sobre o grafo padrão, que agora é apenas ex:g1.

No entanto, para essa consulta:

PREFIX ex: <https://example.com/> DESCRIBE ?s FROM NAMED ex:g1 WHERE { GRAPH ex:g1 { ?s ?p "a" . } }

O Neptune não geraria nada, porque quando uma cláusula FROM NAMED está presente sem nenhuma cláusula FROM, o grafo padrão está em branco.

Na seguinte consulta, DESCRIBE é usado sem as cláusulas FROM ou FROM NAMEDpresentes:

PREFIX ex: <https://example.com/> DESCRIBE ?s WHERE { GRAPH ex:g1 { ?s ?p "a" . } }

Nessa situação, o grafo padrão é composto por todos os triplos exclusivos na união de todos os grafos nomeados no banco de dados (formalmente, a mesclagem do RDF), então o Neptune geraria:

ex:s ex:p1 "a" . ex:s ex:p2 "c" . ex:s ex:p3 "b" . ex:s ex:p3 "d" .