SPARQLdicas de consulta usadas com DESCRIBE - 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á.

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) do recurso a ser descrito:

: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:

  1. Inclua no subgrafo todas as declarações no grafo de origem em que o assunto da declaração é o nó inicial.

  2. 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.

  3. 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.