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á.
SPARQLdicas de consulta usadas com DESCRIBE
Uma SPARQL DESCRIBE
consulta fornece um mecanismo flexível para solicitar descrições de recursos. No entanto, as SPARQL especificações não definem a semântica precisa deDESCRIBE
.
A partir da versão 1.2.0.2 do mecanismo, o Neptune é compatível com vários modos DESCRIBE
e algoritmos diferentes que são adequados para situações diferentes.
Esse exemplo de conjunto de dados pode ajudar a ilustrar os diferentes modos:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix : <https://example.com/> . :JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JohnDoe :firstName "John" . :JaneDoe :knows _:b1 . _:b1 :knows :RichardRoe . :RichardRoe :knows :JaneDoe . :RichardRoe :firstName "Richard" . _:s1 rdf:type rdf:Statement . _:s1 rdf:subject :JaneDoe . _:s1 rdf:predicate :knows . _:s1 rdf:object :JohnDoe . _:s1 :knowsFrom "Berlin" . :ref_s2 rdf:type rdf:Statement . :ref_s2 rdf:subject :JaneDoe . :ref_s2 rdf:predicate :knows . :ref_s2 rdf:object :JohnDoe . :ref_s2 :knowsSince 1988 .
Os exemplos abaixo pressupõem que uma descrição do recurso :JaneDoe
está sendo solicitada usando uma SPARQL consulta como esta:
DESCRIBE <https://example.com/JaneDoe>
A dica describeMode
SPARQL de consulta
A dica de hint:describeMode
SPARQL consulta é usada para selecionar um dos seguintes SPARQL DESCRIBE
modos suportados pelo Neptune:
O ForwardOneStep
DESCRIBE modo
Você invoca o modo ForwardOneStep
com a dica de consulta describeMode
desta forma:
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "ForwardOneStep" }
O modo ForwardOneStep
gera somente os atributos e os links diretos do recurso a ser descrito. No caso de exemplo, isso significa que ele gera os triplos que têm :JaneDoe
, o recurso a ser descrito, como assunto:
:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b301990159 .
Observe que a DESCRIBE consulta pode retornar triplas com nós em branco, como_:b301990159
, que são diferentes a IDs cada vez, em comparação com o conjunto de dados de entrada.
O SymmetricOneStep
DESCRIBE modo
SymmetricOneStep
é o DESCRIBE modo padrão se você não fornecer uma dica de consulta. Você também pode invocá-la explicitamente com uma dica de consulta describeMode
da seguinte forma:
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SymmetricOneStep" }
Na semântica SymmetricOneStep
, DESCRIBE
retorna os atributos, links diretos e links reversos do recurso a ser descrito:
:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b318767375 . _:b318767631 rdf:subject :JaneDoe . :RichardRoe :knows :JaneDoe . :ref_s2 rdf:subject :JaneDoe .
O modo Concise Bounded Description () CBD
DESCRIBE
O modo Concise Bounded Description (CBD
) é invocado usando a dica de consulta describeMode
da seguinte forma:
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "CBD" }
Na semântica CBD
, DESCRIBE
gera o modo Concise Bounded Description (conforme definido pelo W3C
:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b285212943 . _:b285212943 :knows :RichardRoe . _:b285213199 rdf:subject :JaneDoe . _:b285213199 rdf:type rdf:Statement . _:b285213199 rdf:predicate :knows . _:b285213199 rdf:object :JohnDoe . _:b285213199 :knowsFrom "Berlin" . :ref_s2 rdf:subject :JaneDoe .
A descrição concisa limitada de um RDF recurso (ou seja, um nó em um RDF gráfico) é o menor subgráfico centralizado em torno desse nó que pode ficar sozinho. Na prática, isso significa que, se você pensar nesse grafo como uma árvore, com o nó designado como raiz, não haverá nós em branco (nós) como folhas dessa árvore. Como os nós não podem ser tratados externamente nem usados em consultas subsequentes, não basta navegar no grafo apenas para encontrar os próximos saltos únicos do nó atual. Você também precisa ir longe o suficiente para encontrar algo que possa ser usado em consultas subsequentes (ou seja, algo diferente de um bnode).
Computando o CBD
Dado um nó específico (o nó inicial ou raiz) no RDF gráfico de origem, o CBD desse nó é calculado da seguinte forma:
Inclua no subgrafo todas as declarações no grafo de origem em que o assunto da declaração é o nó inicial.
Recursivamente, até o momento, para todas as declarações no subgrafo que têm um objeto de nó em branco, inclua no subgrafo todas as declarações no grafo de origem em que o assunto da declaração seja esse nó em branco e que ainda não tenham sido incluídas no subgrafo.
Recursivamente, para todas as declarações incluídas no subgráfico até o momento, para todas as reificações dessas declarações no gráfico de origem, inclua o CBD início do
rdf:Statement
nó de cada reificação.
Isso resulta em um subgráfico em que os nós do objeto são IRI referências ou literais, ou nós em branco que não servem como assunto de nenhuma declaração no gráfico. Observe que o CBD não pode ser calculado usando uma única CONSTRUCT consulta SPARQL SELECT ou.
O modo Descrição Simétrica Concisa Limitada () SCBD
DESCRIBE
O modo Symmetric Concise Bounded Description (SCBD
) é invocado usando a dica de consulta describeMode
da seguinte forma:
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SCBD" }
Na semântica SCBD
, DESCRIBE
gera o modo Symmetric Concise Bounded Description do recurso (conforme definido pelo W3C em Describing Linked Datasets with the VoID Vocabulary
:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b335544591 . _:b335544591 :knows :RichardRoe . :RichardRoe :knows :JaneDoe . _:b335544847 rdf:subject :JaneDoe . _:b335544847 rdf:type rdf:Statement . _:b335544847 rdf:predicate :knows . _:b335544847 rdf:object :JohnDoe . _:b335544847 :knowsFrom "Berlin" . :ref_s2 rdf:subject :JaneDoe .
A vantagem dos modos CBD e SCBD sobre os SymmetricOneStep
modos ForwardOneStep
e é que os nós em branco são sempre expandidos para incluir sua representação. Isso pode ser uma vantagem importante porque você não pode consultar um nó em branco usando SPARQL o. Além disso, os SCBD modelos CBD Band também consideram as reificações.
Observe que a dica de consulta describeMode
também pode fazer parte de uma cláusula WHERE
:
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE ?s WHERE { hint:Query hint:describeMode "CBD" . ?s rdf:type <https://example.com/Person> }
A dica describeIterationLimit
SPARQL de consulta
A dica de hint:describeIterationLimit
SPARQL consulta fornece uma restrição opcional sobre o número máximo de expansões iterativas a serem executadas para algoritmos iterativosDESCRIBE, como e. CBD SCBD
DESCRIBEos limites estão ANDed juntos. Portanto, se o limite de iteração e o limite de instruções forem especificados, os dois limites deverão ser atendidos antes que a DESCRIBE consulta seja interrompida.
O padrão para esse valor é cinco. Você pode defini-lo como ZERO (0) para especificar SEM limite no número de expansões iterativas.
A dica describeStatementLimit
SPARQL de consulta
A dica de hint:describeStatementLimit
SPARQL consulta fornece uma restrição opcional sobre o número máximo de declarações que podem estar presentes em uma resposta de DESCRIBE consulta. Ele é aplicado apenas para DESCRIBE algoritmos iterativos, como CBD e. SCBD
DESCRIBEos limites estão ANDed juntos. Portanto, se o limite de iteração e o limite de instruções forem especificados, os dois limites deverão ser atendidos antes que a DESCRIBE consulta seja interrompida.
O padrão para esse valor é cinco mil. Você pode defini-lo como ZERO (0) para especificar SEM limite no número de declarações retornadas.