Instrucciones de Gremlin en Neptune - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Instrucciones de Gremlin en Neptune

Los datos de gráficos de propiedades en Amazon Neptune se componen de instrucciones de cuatro posiciones (cuádruples). Cada una de estas instrucciones representa una unidad atómica individual de datos de gráficos de propiedades. Para obtener más información, consulte Modelo de datos de gráficos de Neptune.. Al igual que el modelo de datos del marco de descripción de recursos (RDF), estas cuatro posiciones son las siguientes:

  • subject (S)

  • predicate (P)

  • object (O)

  • graph (G)

Cada instrucción es una afirmación sobre uno o varios recursos. Por ejemplo, una instrucción puede afirmar la existencia de una relación entre dos recursos o puede asociar una propiedad (par clave/valor) a algún recurso.

Puede considerar el predicado como el verbo de la instrucción, que describe el tipo de relación o propiedad. El objeto es el objetivo de la relación o el valor de la propiedad. La posición del gráfico es opcional y se puede utilizar de muchas maneras diferentes. En el caso de los datos de gráficos-propiedades (PG) de Neptune, o bien no se usan (gráfico nulo) o se utilizan para representar el identificador de un borde. Un conjunto de instrucciones con identificadores de recursos compartidos crea un gráfico.

Existen tres clases de instrucciones en el modelo de datos de gráficos de propiedades de Neptune:

Instrucciones de etiqueta de vértice de Gremlin

Las instrucciones de etiqueta de vértice en Neptune sirven para dos fines:

  • Realizan un seguimiento de las etiquetas de un vértice.

  • La presencia de al menos una de estas instrucciones es lo que implica la existencia de un vértice determinado en el gráfico.

El asunto de estas instrucciones es un identificador de vértice y el objeto es una etiqueta que especifica el usuario. Puede utilizar un predicado fijo especial para estas instrucciones, que se muestra como <~label>, y un identificador de gráfico predeterminado (el gráfico nulo), que se muestra como <~>.

Por ejemplo, fíjese en el siguiente recorrido de addV.

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

Este recorrido hace que se añada la siguiente instrucción al gráfico.

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

Instrucciones de borde de Gremlin

Una instrucción de borde de Gremlin es lo que implica la existencia de un límite entre dos vértices en un gráfico en Neptune. El asunto (S) de una instrucción de borde es el vértice from de origen. El predicado (P) es una etiqueta de borde proporcionada por el usuario. El objeto (O) es el vértice to de destino. El gráfico (G) es un identificador de borde proporcionado por el usuario.

Por ejemplo, fíjese en el siguiente recorrido de addE.

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

El recorrido hace que se añada la siguiente instrucción al gráfico.

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

Instrucciones de propiedades de Gremlin

Una instrucción de propiedad de Gremlin en Neptune confirma un valor de propiedad individual para un vértice o borde. El asunto es un vértice o un identificador de borde proporcionado por el usuario. El predicado es el nombre de la propiedad (clave) y el objeto es el valor de la propiedad individual. El gráfico (G) es de nuevo el identificador de gráfico predeterminado, el gráfico nulo, que se muestra como <~>.

Considere el siguiente ejemplo.

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

Esta instrucción da como resultado lo siguiente.

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

Las instrucciones de propiedad difieren de otras en que su objeto es un valor primitivo (string, date, byte, short, int, long, float o double). Su objeto no es un identificador de recursos que pueda utilizarse como sujeto de otra afirmación.

Para varias propiedades, cada valor de propiedad individual del conjunto recibe su propia instrucción.

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

Se obtiene el siguiente resultado:

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