Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Una SPARQL DESCRIBE
consulta proporciona un mecanismo flexible para solicitar descripciones de recursos. Sin embargo, las SPARQL especificaciones no definen la semántica precisa deDESCRIBE
.
A partir de la versión 1.2.0.2 del motor, Neptune admite varios modos y algoritmos DESCRIBE
diferentes que se adaptan a diferentes situaciones.
Este conjunto de datos de muestra puede ayudar a ilustrar los 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 .
En los ejemplos siguientes se supone que :JaneDoe
se solicita una descripción del recurso mediante una SPARQL consulta como esta:
DESCRIBE <https://example.com/JaneDoe>
La sugerencia describeMode
SPARQL de consulta
La sugerencia de hint:describeMode
SPARQL consulta se utiliza para seleccionar uno de los siguientes SPARQL DESCRIBE
modos compatibles con Neptune:
El modo ForwardOneStep
DESCRIBE
El modo ForwardOneStep
se invoca con la sugerencia de consulta describeMode
de la siguiente manera:
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "ForwardOneStep" }
El modo ForwardOneStep
solo devuelve los atributos y los enlaces de reenvío del recurso que se va a describir. En el caso de ejemplo, esto significa que devuelve los triples que tienen :JaneDoe
, que es el recurso que se va a describir, como asunto:
:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b301990159 .
Tenga en cuenta que la DESCRIBE consulta puede devolver triples con nodos en blanco, por ejemplo_:b301990159
, que son diferentes IDs cada vez en comparación con el conjunto de datos de entrada.
El modo SymmetricOneStep
DESCRIBE
SymmetricOneStep
es el DESCRIBE modo predeterminado si no proporciona una sugerencia de consulta. También puede invocarlo de forma explícita con la sugerencia de consulta describeMode
de la siguiente manera:
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SymmetricOneStep" }
En la semántica SymmetricOneStep
, DESCRIBE
devuelve los atributos, los enlaces directos y los enlaces inversos del recurso que se va a describir:
:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b318767375 . _:b318767631 rdf:subject :JaneDoe . :RichardRoe :knows :JaneDoe . :ref_s2 rdf:subject :JaneDoe .
El modo Concise Bounded Description (CBD
) DESCRIBE
El modo de descripción limitada concisa (CBD
) se invoca con la sugerencia de consulta describeMode
de la siguiente manera:
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "CBD" }
En la semántica CBD
, DESCRIBE
devuelve la descripción limitada concisa (tal como la define el 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 .
La descripción acotada concisa de un RDF recurso (es decir, un nodo de un RDF gráfico) es el subgrafo más pequeño centrado alrededor de ese nodo que puede funcionar de forma independiente. En la práctica, esto significa que si piensa en este gráfico como un árbol, con el nodo designado como raíz, no hay nodos en blanco (nodos b) como hojas de ese árbol. Como los nodos b no se pueden direccionar externamente ni se pueden usar en consultas posteriores, no basta con navegar por el gráfico para encontrar los siguientes saltos individuales desde el nodo actual. También hay que ir lo suficientemente lejos como para encontrar algo que pueda usarse en consultas posteriores (es decir, algo que no sea un nodo b).
Calcular el CBD
Dado un nodo en particular (el nodo de inicio o la raíz) en el RDF gráfico de origen, el CBD de ese nodo se calcula de la siguiente manera:
Incluya en el subgráfico todas las instrucciones del gráfico de origen en las que el sujeto de la instrucción sea el nodo inicial.
De forma recursiva, para todas las instrucciones del subgráfico que hasta ahora tengan un objeto de nodo en blanco, incluya en el subgráfico todas las instrucciones del gráfico de origen cuyo sujeto sea ese nodo en blanco y que aún no estén incluidas en el subgráfico.
Recursivamente, para todas las sentencias incluidas en el subgrafo hasta el momento, para todas las reificaciones de estas declaraciones en el gráfico fuente, incluya el CBD principio desde el
rdf:Statement
nodo de cada reificación.
Esto da como resultado un subgrafo en el que los nodos objeto son IRI referencias o literales, o bien nodos en blanco que no sirven de sujeto a ninguna afirmación del gráfico. Tenga en cuenta que CBD no se puede calcular mediante una sola consulta SPARQL SELECT o CONSTRUCT consulta.
El modo Symmetric Concise Bounded Description () SCBD
DESCRIBE
El modo de descripción limitada concisa simétrica (SCBD
) se invoca con la sugerencia de consulta describeMode
de la siguiente manera:
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SCBD" }
En la semántica de SCBD
, DESCRIBE
devuelve la descripción limitada concisa simétrica del recurso (tal como la define el W3C en 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 .
La ventaja de los modos CBD y SCBD con respecto a los SymmetricOneStep
modos ForwardOneStep
y es que los nodos vacíos siempre se expanden para incluir su representación. Esto puede ser una ventaja importante, ya que no se puede consultar un nodo en blanco utilizandoSPARQL. Además, los SCBD modos también CBD tienen en cuenta las reificaciones.
Tenga en cuenta que la sugerencia de consulta describeMode
también puede formar parte de una 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> }
La sugerencia de describeIterationLimit
SPARQL consulta
La sugerencia de hint:describeIterationLimit
SPARQL consulta proporciona una restricción opcional sobre el número máximo de expansiones iterativas que se deben realizar para DESCRIBE algoritmos iterativos como y. CBD SCBD
DESCRIBElos límites están juntos. ANDed Por lo tanto, si se especifican tanto el límite de iteración como el límite de las sentencias, ambos límites deben cumplirse antes de que se interrumpa la DESCRIBE consulta.
El valor predeterminado de este valor es 5. Puede establecerlo en ZERO (0) para no especificar ningún límite en el número de expansiones iterativas.
La describeStatementLimit
SPARQL sugerencia de consulta
La sugerencia de hint:describeStatementLimit
SPARQL consulta proporciona una restricción opcional sobre el número máximo de sentencias que pueden estar presentes en una respuesta a una DESCRIBE consulta. Solo se aplica a DESCRIBE algoritmos iterativos como CBD y. SCBD
DESCRIBElos límites están ANDed juntos. Por lo tanto, si se especifican tanto el límite de iteración como el límite de las sentencias, ambos límites deben cumplirse antes de que se interrumpa la DESCRIBE consulta.
El valor predeterminado de este valor es 5000. Puede establecerlo en ZERO (0) para no especificar ningún límite en el número de sentencias devueltas.