

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.

# Formatos de serialización en flujos de Neptune
<a name="streams-change-formats"></a>

Amazon Neptune utiliza dos formatos diferentes para serializar los datos de cambios de gráficos en flujos de registro, en función de si el gráfico se creó con Gremlin o SPARQL.

Ambos formatos comparten un formato de serialización de registros común, como se describe en [Formato de respuesta de la API de flujos de Neptune](streams-using-api-reponse.md), que contiene los siguientes campos:
+ `commitTimestamp`: la hora a la que se solicitó la confirmación de la transacción, en milisegundos a partir de la fecha de inicio de Unix.
+ `eventId`: el identificador de secuencia del registro de cambios del flujo.
+ `data`— El registro serializado de Gremlin, SPARQL o cambios. OpenCypher Los formatos de serialización de cada registro se describen con más detalle en las siguientes secciones.
+ `op`: la operación que creó el cambio.

**Topics**
+ [Formato de serialización de cambios PG\$1JSON](#streams-change-formats-gremlin)
+ [Formato de serialización de cambios SPARQL NQUADS](#streams-change-formats-sparql)

## Formato de serialización de cambios PG\$1JSON
<a name="streams-change-formats-gremlin"></a>

**nota**  
El formato de salida del flujo Gremlin (`GREMLIN_JSON`) emitido por el punto final del flujo Gremlin () está obsoleto. `https://Neptune-DNS:8182/gremlin/stream` Se sustituye por PG\$1JSON, que actualmente es idéntico a `GREMLIN_JSON`.

Un registro de cambios de Gremlin u openCypher, contenido en el campo `data` de una respuesta de flujo de registro, tiene los siguientes campos:
+ `id`: cadena, obligatorio.

  El ID del elemento de Gremlin u openCypher.
+ `type`: cadena, obligatorio.

  El tipo de este elemento de Gremlin u openCypher. Debe ser una de las siguientes:
  + `vl`: etiqueta de vértice para Gremlin; etiqueta de nodo para openCypher.
  + `vp`: propiedades de vértice para Gremlin; propiedades de nodo para openCypher.
  + `e`: borde y etiqueta de borde para Gremlin; relación y tipo de relación para openCypher.
  + `ep`: propiedades de borde para Gremlin; propiedades de relación para openCypher.
+ `key`: cadena, obligatorio.

  Nombre de la propiedad. Para las etiquetas de elementos, se trata de "etiqueta".
+ `value`: objeto `value`, obligatorio.

  Se trata de un objeto JSON que contiene un campo `value` para el propio valor y un campo `datatype` para el tipo de datos JSON de ese valor.

  ```
    "value": {
      "value": "the new value",
      "dataType": "the JSON datatype of the new value"
    }
  ```
+ `from`: cadena, opcional.

  Si se trata de un borde (tipo = e), el identificador del vértice *from* o nodo de origen correspondientes.
+ `to`: cadena, opcional.

  Si se trata de un borde (tipo="e"), el identificador del vértice *to* o nodo de destino correspondientes.

**Ejemplos de Gremlin**
+ A continuación se muestra un ejemplo de una etiqueta de vértice de Gremlin.

  ```
  {
    "id": "an ID string",
    "type": "vl",
    "key": "label",
    "value": {
      "value": "the new value of the vertex label",
      "dataType": "String"
    }
  }
  ```
+ A continuación se muestra un ejemplo de una propiedad de vértice de Gremlin.

  ```
  {
    "id": "an ID string",
    "type": "vp",
    "key": "the property name",
    "value": {
      "value": "the new value of the vertex property",
      "dataType": "the datatype of the vertex property"
    }
  }
  ```
+ A continuación se muestra un ejemplo de un borde de Gremlin.

  ```
  {
    "id": "an ID string",
    "type": "e",
    "key": "label",
    "value": {
      "value": "the new value of the edge",
      "dataType": "String"
    },
    "from": "the ID of the corresponding "from" vertex",
    "to": "the ID of the corresponding "to" vertex"
  }
  ```

**Ejemplos de openCypher**
+ A continuación, se muestra un ejemplo de una etiqueta de nodo de openCypher.

  ```
  {
    "id": "an ID string",
    "type": "vl",
    "key": "label",
    "value": {
      "value": "the new value of the node label",
      "dataType": "String"
    }
  }
  ```
+ A continuación, se muestra un ejemplo de una propiedad de nodo de openCypher.

  ```
  {
    "id": "an ID string",
    "type": "vp",
    "key": "the property name",
    "value": {
      "value": "the new value of the node property",
      "dataType": "the datatype of the node property"
    }
  }
  ```
+ A continuación, se muestra un ejemplo de una relación de openCypher.

  ```
  {
    "id": "an ID string",
    "type": "e",
    "key": "label",
    "value": {
      "value": "the new value of the relationship",
      "dataType": "String"
    },
    "from": "the ID of the corresponding source node",
    "to": "the ID of the corresponding target node"
  }
  ```

## Formato de serialización de cambios SPARQL NQUADS
<a name="streams-change-formats-sparql"></a>

Neptune registra cambios en los cuádruples de SPARQL en el gráfico utilizando el lenguaje `N-QUADS` del marco de descripción de recursos (RDF) definido en la especificación [W3C RDF 1.1 N-Quads](https://www.w3.org/TR/n-quads/).

El campo `data` del registro de cambios simplemente contiene un campo `stmt` que contiene una instrucción N-QUADS que expresa el cuadrante modificado, como en el siguiente ejemplo.

```
  "stmt" : "<https://test.com/s> <https://test.com/p> <https://test.com/o> .\n"
```