SPARQLAbfragehinweise verwendet mit DESCRIBE - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

SPARQLAbfragehinweise verwendet mit DESCRIBE

Eine SPARQL DESCRIBE Abfrage bietet einen flexiblen Mechanismus zum Anfordern von Ressourcenbeschreibungen. Die SPARQL Spezifikationen definieren jedoch nicht die genaue Semantik vonDESCRIBE.

Ab Engine-Version 1.2.0.2 unterstützt Neptune mehrere verschiedene DESCRIBE-Modi und -Algorithmen, die für unterschiedliche Situationen geeignet sind.

Dieser Beispieldatensatz kann helfen, die verschiedenen Modi zu veranschaulichen:

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

In den folgenden Beispielen wird davon ausgegangen, dass eine Beschreibung der Ressource mithilfe einer SPARQL Abfrage wie der folgenden angefordert :JaneDoe wird:

DESCRIBE <https://example.com/JaneDoe>

Der describeMode SPARQL Abfragehinweis

Der hint:describeMode SPARQL Abfragehinweis wird verwendet, um einen der folgenden SPARQL DESCRIBE Modi auszuwählen, die von Neptune unterstützt werden:

Der Modus ForwardOneStep DESCRIBE

Sie rufen den Modus ForwardOneStep wie folgt mit dem Abfragehinweis describeMode auf:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "ForwardOneStep" }

Der Modus ForwardOneStep gibt nur die Attribute und Forward-Links der Ressource zurück, die beschrieben werden soll. Im Beispiel gibt der Modus die Tripel zurück, deren Subjekt :JaneDoe ist, die Ressource, die beschrieben werden soll.

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b301990159 .

Beachten Sie, dass die DESCRIBE Abfrage Tripel mit leeren Knoten zurückgeben kann, z. B._:b301990159, die IDs jedes Mal anders sind als der Eingabedatensatz.

Der SymmetricOneStep DESCRIBE Modus

SymmetricOneStepist der DESCRIBE Standardmodus, wenn Sie keinen Abfragehinweis angeben. Sie können ihn auch explizit mit dem Abfragehinweis describeMode wie folgt aufrufen:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SymmetricOneStep" }

In der Semantik SymmetricOneStep gibt DESCRIBE die Attribute, Forward- und Reverse-Links der Ressource zurück, die beschrieben werden soll:

:JaneDoe :firstName "Jane" . :JaneDoe :knows :JohnDoe . :JaneDoe :knows _:b318767375 . _:b318767631 rdf:subject :JaneDoe . :RichardRoe :knows :JaneDoe . :ref_s2 rdf:subject :JaneDoe .

Der Modus Concise Bounded Description () CBD DESCRIBE

Der Modus Concise Bounded Description (CBD) wird mit dem Abfragehinweis describeMode wie folgt aufgerufen:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "CBD" }

In der Semantik CBD gibt DESCRIBE die Concise Bounded Description (wie vom W3C definiert) der zu beschreibenden Ressource zurück:

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

Die Kurzbeschreibung einer RDF Ressource (d. h. eines Knotens in einem RDF Diagramm) ist der kleinste Untergraph, der um diesen Knoten herum zentriert ist und eigenständig sein kann. Wenn Sie sich dieses Diagramm als Baum vorstellen, bei dem der angegebene Knoten die Wurzel ist, dann gibt es keine leeren Knoten (bnodes) als Blätter dieses Baums. Da bnodes nicht extern adressiert oder in nachfolgenden Abfragen verwendet werden können, reicht es nicht aus, das Diagramm zu durchsuchen, nur um den oder die nächsten einzelnen Hop(s) vom aktuellen Knoten aus zu finden. Sie müssen auch weit genug gehen, um etwas zu finden, das in nachfolgenden Abfragen verwendet werden kann (d. h. etwas anderes als ein bnode).

Berechnung der CBD

Für einen bestimmten Knoten (den Startknoten oder die Wurzel) im RDF Quelldiagramm wird CBD der Wert dieses Knotens wie folgt berechnet:

  1. Fügen Sie in das Unterdiagramm alle Anweisungen im Quelldiagramm ein, deren Subjekt der Anweisung der Startknoten ist.

  2. Fügen Sie rekursiv für alle vorhandenen Anweisungen im Unterdiagramm, die ein leeres Knotenobjekt haben, in das Quelldiagramm alle Anweisungen ein, in denen das Subjekt der Anweisung dieser leere Knoten ist und die noch nicht im Unterdiagramm enthalten sind.

  3. Rekursiv wird für alle Aussagen, die bis jetzt im Untergraphen enthalten sind, für alle Reifizierungen dieser Aussagen im Quellgraphen den CBD Anfang vom rdf:Statement Knoten jeder Reifikation mit einbeziehen.

Dies führt zu einem Untergraphen, in dem die Objektknoten entweder IRI Referenzen oder Literale sind oder leere Knoten, die nicht als Subjekt einer Aussage im Graphen dienen. Beachten Sie, dass der CBD nicht mit einer einzigen SPARQL SELECT oder einer Abfrage berechnet werden kann. CONSTRUCT

Der Modus Symmetric Concise Bounded Description () SCBD DESCRIBE

Der Modus Symmetric Concise Bounded Description (SCBD) wird mit dem Abfragehinweis describeMode wie folgt aufgerufen:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#> DESCRIBE <https://example.com/JaneDoe> { hint:Query hint:describeMode "SCBD" }

In der SCBD-Semantik gibt DESCRIBE die Symmetric Concise Bounded Description der Ressource zurück (wie vom W3C in Describing Linked Datasets with the VoID Vocabulary definiert:

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

Der Vorteil von CBD und SCBD gegenüber den SymmetricOneStep Modi ForwardOneStep und besteht darin, dass leere Knoten immer um ihre Repräsentation erweitert werden. Dies kann ein wichtiger Vorteil sein, da Sie einen leeren Knoten nicht mit abfragen könnenSPARQL. Darüber hinaus CBD berücksichtigen SCBD Modi auch Reifizierungen.

Beachten Sie, dass der Abfragehinweis describeMode auch Teil einer WHERE-Klausel sein kann:

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

Der describeIterationLimit SPARQL Abfragehinweis

Der hint:describeIterationLimit SPARQL Abfragehinweis bietet eine optionale Einschränkung für die maximale Anzahl von iterativen Erweiterungen, die für iterative DESCRIBE Algorithmen wie und durchgeführt werden können. CBD SCBD

DESCRIBEGrenzwerte sind zusammen. ANDed Wenn also sowohl das Iterationslimit als auch das Befehlslimit angegeben sind, müssen beide Grenzwerte eingehalten werden, bevor die DESCRIBE Abfrage unterbrochen wird.

Der Standardwert für diesen Wert ist 5. Sie können ihn auf ZERO (0) setzen, um KEIN Limit für die Anzahl der iterativen Erweiterungen festzulegen.

Der describeStatementLimit SPARQL Abfragehinweis

Der hint:describeStatementLimit SPARQL Abfragehinweis bietet eine optionale Einschränkung der maximalen Anzahl von Anweisungen, die in einer DESCRIBE Abfrageantwort enthalten sein können. Er wird nur für iterative DESCRIBE Algorithmen wie CBD und SCBD angewendet.

DESCRIBEGrenzen sind ANDed zusammen. Wenn also sowohl das Iterationslimit als auch das Befehlslimit angegeben sind, müssen beide Grenzwerte eingehalten werden, bevor die DESCRIBE Abfrage unterbrochen wird.

Der Standardwert für diesen Wert ist 5 000. Sie können es auf ZERO (0) setzen, um KEIN Limit für die Anzahl der zurückgegebenen Anweisungen festzulegen.