Gremlin-Anweisungen in Neptune - 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.

Gremlin-Anweisungen in Neptune

Die Eigenschaftsdiagrammdaten in Amazon Neptune bestehen aus Vier-Positions-Anweisungen (Quads). Jede dieser Anweisungen stellt eine einzelne atomare Einheit von Eigenschaftsdiagrammdaten dar. Weitere Informationen finden Sie unter Neptune-Diagrammdatenmodell. Ähnlich wie beim Resource Description Framework (RDF) -Datenmodell lauten diese vier Positionen wie folgt:

  • subject (S)

  • predicate (P)

  • object (O)

  • graph (G)

Jede Anweisung ist eine Assertion über eine oder mehrere Ressourcen. Eine Anweisung kann beispielsweise das Vorhandensein einer Beziehung zwischen zwei Ressourcen bestätigen oder einer Ressource eine Eigenschaft (Schlüssel-Wert-Paar) anfügen.

Sie können sich das Prädikat als das Verb der Anweisung vorstellen, das den Typ der Beziehung oder Eigenschaft beschreibt. Das Objekt ist das Ziel der Beziehung oder der Wert der Eigenschaft. Die Diagrammposition ist optional und kann auf viele verschiedene Arten verwendet werden. Für Neptune-Eigenschaftsdiagrammdaten (PG-Daten) wird sie entweder nicht verwendet (Null-Diagramm) oder verwendet, um die ID für eine Kante darzustellen. Ein Satz von Anweisungen mit geteilten Ressourcen-IDs erstellt ein Diagramm.

Es gibt drei Klassen von Anweisungen im Neptune-Eigenschaftsdiagramm-Datenmodell:

Gremlin-Eckpunktbezeichnungs-Anweisungen

Eckpunktbezeichnungs-Anweisungen in Neptune dienen zwei Zwecken:

  • Sie verfolgen die Bezeichnungen für einen Eckpunkt.

  • Das Vorhandensein von mindestens einer dieser Anweisungen impliziert das Vorhandensein eines bestimmten Eckpunkts im Diagramm.

Das Subjekt dieser Anweisungen ist eine Eckpunkt-ID, und das Objekt ist eine Bezeichnung, die beide vom Benutzer angegeben werden. Sie verwenden ein spezielles festes Prädikat für diese Anweisungen, die als <~label> angezeigt werden, und eine Standard-Diagramm-ID (das Null-Diagramm), angezeigt als <~>.

Betrachten Sie beispielsweise die folgende addV-Transversale:

g.addV("Person").property(id, "v1")

Diese Transversale führt dazu, dass die folgende Anweisung zu dem Diagramm hinzugefügt wird.

StatementEvent[Added(<v1> <~label> <Person> <~>) .]

Gremlin Edge-Anweisungen

Eine Gremlin-Kanten-Anweisung impliziert das Vorhandensein einer Kante zwischen zwei Eckpunkten in einem Diagramm in Neptune. Das Subjekt (S) einer Edge-Anweisung ist der Quell-from-Eckpunkt. Das Prädikat (P) ist eine vom Benutzer bereitgestellte Grenze-Bezeichnung. Das Objekt (O) ist der to-Ziel-Eckpunkt. Das Diagramm (G) ist eine vom Benutzer bereitgestellte Edge-ID.

Betrachten Sie beispielsweise die folgende addE-Transversale:

g.addE("knows").from(V("v1")).to(V("v2")).property(id, "e1")

Die Transversale führt dazu, dass die folgende Anweisung zu dem Diagramm hinzugefügt wird.

StatementEvent[Added(<v1> <knows> <v2> <e1>) .]

Gremlin-Eigenschaftenanweisungen

Eine Gremlin-Eigenschaftsanweisung in Neptune bestätigt einen einzelnen Eigenschaftswert für einen Eckpunkt oder eine Kante. Das Subjekt ist eine vom Benutzer bereitgestellte Eckpunkt- oder Grenze-ID. Das Prädikat ist der Eigenschaftsname (Schlüssel), und das Objekt ist der einzelne Eigenschaftswert. Das Diagramm (G) ist wiederum die Standard-Diagramm-ID, das Null-Diagramm, das als angezeigt wird <~>.

Betrachten Sie das folgende Beispiel.

g.V("v1").property("name", "John")

Diese Anweisung führt zu Folgendem.

StatementEvent[Added(<v1> <name> "John" <~>) .]

Eigenschaftenanweisungen unterscheiden sich dadurch, dass es sich bei ihrem Objekt um einen primitiven Wert handelt (string, date, byte, short, int, long, float oder double). Ihr Objekt ist keine Ressourcen-ID, die als Betreff einer anderen Assertion verwendet werden könnte.

Für Multi-Eigenschaften erhält jeder einzelne Eigenschaftswert in der Gruppe eine eigene Anweisung.

g.V("v1").property(set, "phone", "956-424-2563").property(set, "phone", "956-354-3692 (tel:9563543692)")

Daraus resultiert Folgendes.

StatementEvent[Added(<v1> <phone> "956-424-2563" <~>) .] StatementEvent[Added(<v1> <phone> "956-354-3692" <~>) .]