SPARQL-Abfragehinweise, die mit DESCRIBE verwendet werden - 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.

SPARQL-Abfragehinweise, die mit DESCRIBE verwendet werden

Eine SPARQL-DESCRIBEAbfrage stellt einen flexiblen Mechanismus zum Anfordern von Ressourcenbeschreibungen bereit. Die SPARQL-Spezifikationen definieren jedoch nicht die genaue Semantik von DESCRIBE.

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 .

Die folgenden Beispiele gehen davon aus, dass eine Beschreibung der Ressource :JaneDoe mit einer SPARQL-Abfrage wie dieser angefordert wird:

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

Der SPARQL-Abfragehinweis describeMode

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

Der DESCRIBE-Modus ForwardOneStep

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 im Vergleich zum Eingabedatensatz jeweils unterschiedliche IDs haben.

Der DESCRIBE-Modus SymmetricOneStep

SymmetricOneStep ist 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 DESCRIBE-Modus Concise Bounded Description (CBD)

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 Concise Bounded Description einer RDF-Ressource (d. h. eines Knotens in einem RDF-Diagramm) ist das kleinste Unterdiagramm um diesen Knoten herum, das 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).

Berechnen der CBD

Für einen bestimmten Knoten (den Startknoten oder die Wurzel) im RDF-Quelldiagramm wird der CBD-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. Fügen Sie rekursiv für alle bisher eingefügten Anweisungen im Unterdiagramm, für alle Konkretisierungen dieser Anweisungen im Quelldiagramm die CBD ab dem rdf:Statement-Knoten jeder Konkretisierung ein.

Dies führt zu einem Unterdiagramm, in dem die Objektknoten entweder IRI-Referenzen oder Literale sind oder leere Knoten, die nicht als Subjekt einer Anweisung im Diagramm dienen. Beachten Sie, dass die CBD nicht mit einzelnen SPARQL SELECT- oder CONSTRUCT-Abfrage berechnet werden kann.

Der DESCRIBE-Modus Symmetric Concise Bounded Description (SCBD)

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 Modi ForwardOneStep und SymmetricOneStep besteht darin, dass leere Knoten stets um ihre Darstellung erweitert werden. Dies kann ein wichtiger Vorteil sein, da Sie einen leeren Knoten nicht über SPARQL abfragen können. Darüber hinaus berücksichtigen die Modi CBD und SCBD auch Konkretisierungen.

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 SPARQL-Abfragehinweis describeIterationLimit

Der SPARQL-Abfragehinweis hint:describeIterationLimit stellt eine optionale Einschränkung der maximalen Anzahl iterativer Erweiterungen bereit, die für iterative DESCRIBE-Algorithmen wie CBD und SCBD ausgeführt werden sollen.

Die DESCRIBE-Einschränkungen sind durch UND verknüpft. Wenn also sowohl die Iterationseinschränkung als auch die Befehlseinschränkung angegeben sind, müssen beide Einschränkungen eingehalten werden, bevor die DESCRIBE-Abfrage abgeschnitten wird.

Der Standardwert für diesen Wert ist 5. Sie können ihn auf NULL (0) festlegen, um anzugeben, dass die Anzahl der iterativen Erweiterungen KEINEN Einschränkungen unterliegt.

Der SPARQL-Abfragehinweis describeStatementLimit

Der SPARQL-Abfragehinweis hint:describeStatementLimit stellt eine optionale Einschränkung der maximalen Anzahl von Anweisungen dar, die in einer DESCRIBE-Abfrageantwort enthalten sein dürfen. Er wird nur auf iterative DESCRIBE-Algorithmen wie CBD und SCBD angewendet.

Die DESCRIBE-Einschränkungen sind durch UND verknüpft. Wenn also sowohl die Iterationseinschränkung als auch die Befehlseinschränkung angegeben sind, müssen beide Einschränkungen eingehalten werden, bevor die DESCRIBE-Abfrage abgeschnitten wird.

Der Standardwert für diesen Wert ist 5 000. Sie können ihn auf NULL (0) festlegen, um anzugeben, dass die Anzahl der zurückgegebenen Anweisungen KEINEN Einschränkungen unterliegt.