Déclarations Gremlin dans Neptune - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Déclarations Gremlin dans Neptune

Les données de graphe de propriétés d'Amazon Neptune sont composées de déclarations à quatre positions (quadruplets). Chacune de ces instructions représente une unité atomique individuelle des données de graphe de propriété. Pour plus d’informations, consultez Modèle de données de graphe de Neptune. À l'instar du modèle de données RDF (Resource Description Framework), ces quatre positions sont les suivantes :

  • subject (S)

  • predicate (P)

  • object (O)

  • graph (G)

Chaque instruction est une assertion sur une ou plusieurs ressources. Par exemple, une instruction peut déclarer l'existence d'une relation entre deux ressources ou attacher une propriété (paire clé/valeur) à une ressource.

Vous pouvez considérer la position de prédicat (predicate) comme le verbe de l'instruction, qui décrit le type de relation ou de propriété. L'objet est la cible de la relation ou la valeur de la propriété. La position du graphe est facultative et peut être utilisée de nombreuses manières. Pour les données de graphe de propriétés (PG), elle est soit inutilisée (graphe null), soit utilisée pour représenter l'identifiant d'une arête. Un graphe est constitué d'un ensemble de déclarations avec des identifiants de ressources partagées.

Il existe trois classes de déclarations dans le modèle de données de graphe de propriétés Neptune :

Instructions d'étiquette de sommet Gremlin

Les déclarations d'étiquette de sommet dans Neptune ont deux objectifs :

  • Elles permettent d'assurer le suivi des étiquettes d'un sommet.

  • La présence d'au moins une de ces instructions implique l'existence d'un sommet particulier dans le graphe.

Le sujet de ces instructions est un identifiant de sommet et l'objet est une étiquette, ces deux éléments étant spécifiés par l'utilisateur. Vous utilisez un prédicat fixe spécial pour ces instructions, affiché sous la forme <~label>, et un identifiant de graphe par défaut (graphe null), affiché sous la forme <~>.

Considérons par exemple la traversée addV suivante.

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

Cette traversée entraîne l'ajout de l'instruction suivante au graphe.

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

Instructions d'arc Gremlin

Une déclaration d'arête Gremlin implique l'existence d'une arête entre deux sommets dans un graphe dans Neptune. Le sujet (S) d'une instruction d'arc est le sommet source from. Le prédicat (P) est une étiquette d'arc fournie par l'utilisateur. L'objet (O) est le sommet cible to. Le graphe (G) est un identifiant d'arc fourni par l'utilisateur.

Considérons par exemple la traversée addE suivante.

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

La traversée se traduit par l'ajout de l'instruction suivante au graphe.

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

Instructions de propriété Gremlin

Une déclaration de propriété Gremlin dans Neptune définit une valeur de propriété individuelle pour un sommet ou une arête. Le sujet est un identifiant d'arc ou de sommet fourni par l'utilisateur. Le prédicat est le nom de propriété (clé) et l'objet est la valeur de propriété individuelle. Le graphe (G) est à nouveau l'identifiant de graphe par défaut, le graphe null, affiché sous la forme <~>.

Prenez l’exemple de code suivant.

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

Cette instruction aboutit aux résultats suivants.

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

Les instructions de propriété diffèrent des autres en ce sens que leur objet est une valeur primitive (string, date, byte, short, int, long, float ou double). Leur objet n'est pas un identifiant de ressource pouvant être utilisé comme sujet d'une autre assertion.

Dans le cas de propriétés multiples, chaque valeur de propriété individuelle de l'ensemble reçoit sa propre instruction.

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

La sortie obtenue est la suivante.

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