openCypher data model - Amazon Neptune
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

openCypher data model

The Neptune openCypher engine builds on the same property-graph model as Gremlin. In particular:

  • Every node has one or more labels. If you insert a node without labels, a default label named vertex is attached. If you try to delete all of a node's labels, an error is thrown.

  • A relationship is an entity that has exactly one relationship type and that forms a unidirectional connection between two nodes (that is, from one of the nodes to the other).

  • Both nodes and relationships can have properties, but don't have to. Neptune supports nodes and relationships with zero properties.

  • Neptune does not support metaproperties, which are not included in the openCypher specification either.

  • Properties in your graph can be multi-valued if they were created using Gremlin. That is a node or relationship property can have a set of different values rather than only one. Neptune has extended openCypher semantics to handle multi-valued properties gracefully.

Supported data types are documented in openCypher data format. However, we do not recommend inserting Array property values into an openCypher graph at present. Although it is possible to insert an array property value using the bulk loader, the current Neptune openCypher release treats it as a set of multi-valued properties instead of as a single list value.

Below is the list of data types supported in this release:

  • Bool

  • Byte

  • Short

  • Int

  • Long

  • Float (Includes plus and minus Infinity and NaN, but not INF)

  • Double (Includes plus and minus Infinity and NaN, but not INF)

  • DateTime

  • String