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
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 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
: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:
Fügen Sie in das Unterdiagramm alle Anweisungen im Quelldiagramm ein, deren Subjekt der Anweisung der Startknoten ist.
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.
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
: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.