SPARQLDESCRIBEcomportamiento con respecto al gráfico predeterminado - Amazon Neptune

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.

SPARQLDESCRIBEcomportamiento con respecto al gráfico predeterminado

El formulario de SPARQL DESCRIBEconsulta permite recuperar información sobre los recursos sin conocer la estructura de los datos y sin tener que redactar una consulta. La forma en que se reúne esta información depende de la SPARQL implementación. Neptune proporciona varias sugerencias de consulta que invocan diferentes modos y algoritmos para que los use DESCRIBE.

En la implementación de Neptune, independientemente del modo, DESCRIBE solo usa los datos presentes en el gráfico SPARQL predeterminado. Esto es coherente con la forma en que SPARQL trata los conjuntos de datos (consulte Especificación de RDF conjuntos de datos en la SPARQL especificación).

En Neptune, el gráfico predeterminado contiene todos los triples únicos en la unión de todos los gráficos con nombre de la base de datos, a menos que los gráficos con nombre en particular se especifiquen mediante cláusulas FROM y/o FROM NAMED. Todos los RDF datos de Neptune se almacenan en un gráfico con nombre. Si se inserta un triple sin un contexto de gráfico con nombre, Neptune lo almacena en un gráfico con nombre designado http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph.

Cuando se especifican uno o más gráficos con nombre mediante la cláusula FROM, el gráfico predeterminado es la unión de todos los triples únicos de esos gráficos con nombre. Si no hay ninguna cláusula FROM y hay una o más cláusulas FROM NAMED, el gráfico predeterminado está vacío.

SPARQLDESCRIBEejemplos

Analice los siguientes datos:

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

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

Neptune devolvería:

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

Aquí, el patrón del gráfico GRAPH ex:g2 { ?s ?p "b" } se evalúa primero, lo que da como resultado enlaces para ?s, y luego la parte DESCRIBE se evalúa con respecto al gráfico predeterminado, que ahora es solo ex:g1.

Sin embargo, para esta consulta:

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

Neptune no devolvería nada, porque cuando una cláusula FROM NAMED está presente sin ninguna cláusula FROM, el gráfico predeterminado está vacío.

En la siguiente consulta, DESCRIBE se usa sin presencia de ninguna cláusula FROM o FROM NAMED:

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

En esta situación, el gráfico predeterminado se compone de todos los triples únicos en la unión de todos los gráficos con nombre de la base de datos (formalmente, la RDF fusión), por lo que Neptune devolvería:

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