Declarações do Gremlin no Neptune - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Declarações do Gremlin no Neptune

Os dados do grafo de propriedades no Amazon Neptune são compostos por declarações de quatro posições (quadrante). Cada uma dessas instruções representa uma unidade atômica individual de dados do gráfico de propriedades. Para ter mais informações, consulte Modelo de dados de grafo do Neptune. Semelhante ao modelo de dados Resource Description Framework (RDF — Estrutura de descrição de recursos), essas quatro posições são as seguintes:

  • subject (S)

  • predicate (P)

  • object (O)

  • graph (G)

Cada instrução é uma declaração sobre um ou mais recursos. Por exemplo, uma instrução pode confirmar a existência de um relacionamento entre dois recursos ou anexar uma propriedade (par de valor-chave) a algum recurso.

Você pode pensar no predicado como o verbo da instrução, que descreve o tipo de relacionamento ou propriedade. O objeto é o destino do relacionamento ou o valor da propriedade. A posição do gráfico é opcional e pode ser usada de muitas maneiras diferentes. Para os dados do grafo de propriedades (PG) do Neptune, ela não é usada (grafo nulo) ou é usada para representar o identificador de uma borda. Um conjunto de instruções com identificadores de recursos compartilhados cria um gráfico.

Há três classes de declaração no modelo de dados do grafo de propriedades do Neptune:

Instruções de rótulo de vértice do Gremlin

As declarações de rótulo de vértice no Neptune têm duas finalidades:

  • Elas rastreiam os rótulos de um vértice.

  • A presença de pelo menos uma dessas instruções é o que sugere a existência de um determinado vértice no gráfico.

O assunto dessas instruções é um identificador de vértice, e o objeto é um rótulo, ambos especificados pelo usuário. Você usa um predicado fixo especial para essas instruções, exibido como <~label>, e um identificador de gráfico padrão (o gráfico nulo), exibido como <~>.

Por exemplo, considere a seguinte travessia addV:

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

Essa travessia resulta na adição da seguinte instrução ao gráfico.

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

Instruções de borda do Gremlin

Uma declaração de borda do Gremlin é o que sugere a existência de uma borda entre dois vértices em um grafo no Neptune. O assunto (S) de uma instrução de borda é o vértice de origem from. O predicado (P) é um rótulo de borda fornecido pelo usuário. O objeto (O) é o vértice de destino to. O gráfico (G) é um identificador de borda fornecido pelo usuário.

Por exemplo, considere a seguinte travessia addE:

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

A travessia resulta na adição da seguinte instrução ao gráfico.

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

Instruções de propriedade do Gremlin

Uma declaração de propriedade do Gremlin no Neptune declara um valor de propriedade individual para um vértice ou uma borda. O assunto é um identificador de vértice ou de borda fornecido pelo usuário. O predicado é o nome da propriedade (chave), e o objeto é o valor da propriedade individual. O gráfico (G) é novamente o identificador de gráfico padrão, o gráfico nulo, exibido como <~>.

Considere o seguinte exemplo.

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

Essa instrução resulta no seguinte.

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

As instruções de propriedade diferem das outras porque seu objeto é um valor primitivo (string, date, byte, short, int, long, float ou double). O objeto não é um identificador de recurso que possa ser usado como assunto de outra declaração.

Para várias propriedades, cada valor de propriedade individual no conjunto recebe sua própria instrução.

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

Isso resulta no seguinte.

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