Dichiarazioni Gremlin in Neptune - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Dichiarazioni Gremlin in Neptune

I dati del grafo delle proprietà in Amazon Neptune sono costituiti da dichiarazioni a quattro posizioni (quadruple). Ognuna di queste dichiarazioni rappresenta una singola unità atomica dei dati del grafo di proprietà. Per ulteriori informazioni, consulta Modello di dati a grafo di Neptune. Analogamente al modello di dati Resource Description Framework (RDF), queste quattro posizioni sono le seguenti:

  • subject (S)

  • predicate (P)

  • object (O)

  • graph (G)

Ogni dichiarazione è un'asserzione su una o più risorse. Ad esempio, una dichiarazione può asserire l'esistenza di una relazione tra due risorse o può collegare una proprietà (coppia chiave-valore) ad alcune risorse.

Il predicato può essere considerato come il verbo della dichiarazione, che descrive il tipo di relazione o la proprietà. L'oggetto è la destinazione della relazione o il valore della proprietà. La posizione del grafo è opzionale e può essere utilizzata in diversi modi. Per i dati del grafo delle proprietà (PG) Neptune, questa è inutilizzata (grafico null) o è utilizzata per rappresentare l'identificatore di un arco. Un set di dichiarazioni con identificatori di risorsa condivisi crea un grafo.

Esistono tre classi di dichiarazioni nel modello di dati del grafo delle proprietà Neptune:

Dichiarazioni dell'etichetta del vertice Gremlin

Le dichiarazioni dell'etichetta del vertice in Neptune hanno due scopi:

  • Tracciare le etichette per un vertice.

  • La presenza di almeno una di queste dichiarazioni implica di per sé l'esistenza di un determinato vertice nel grafo.

Il soggetto di queste dichiarazioni è un identificatore del vertice e l'oggetto è un'etichetta, entrambi specificati dall'utente. È possibile utilizzare uno predicato fisso speciale per queste dichiarazioni, visualizzato come <~label> e un identificatore del grafo predefinito (il grafo null), visualizzato come <~>.

Considera, ad esempio, l'attraversamento addV seguente:

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

Questo attraversamento determina l'aggiunta della seguente dichiarazione al grafo.

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

Dichiarazioni di edge Gremlin

Una dichiarazione di arco Gremlin implica di per sé l'esistenza di un arco tra due vertici in un grafo in Neptune. Il soggetto (S) di una dichiarazione di edge è il vertice from di origine. Il predicato (P) è un'etichetta di edge fornita dall'utente. L'oggetto (O) è il vertice to di destinazione. Il grafico (G) è un identificatore di edge fornito dall'utente.

Considera, ad esempio, l'attraversamento addE seguente:

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

L'attraversamento comporta l'aggiunta della seguente dichiarazione al grafico.

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

Dichiarazioni di proprietà Gremlin

Una dichiarazione di proprietà Gremlin in Neptune afferma un singolo valore di proprietà per un vertice o un arco. Il soggetto è un identificatore di vertice o edge fornito dall'utente. Il predicato è il nome della proprietà (chiave) e l'oggetto è il singolo valore della proprietà. Il grafo (G) è di nuovo l'identificatore del grafo predefinito, il grafo null, visualizzato come <~>.

Analizza l'esempio seguente.

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

Questa dichiarazione genera quanto segue.

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

Le istruzioni di proprietà differiscono dalle altre in quanto il relativo oggetto è un valore primitivo (string, date, byte, short, int, long, float o double). Il loro oggetto non è un identificatore di risorsa che può essere utilizzato come il soggetto di un'altra asserzione.

Per le proprietà multiple, ogni singolo valore di proprietà nel set riceve la propria dichiarazione.

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

I risultati sono illustrati di seguito.

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