Neptune Analytics openCypher specification compliance
Please refer to the Neptune Database documentation found here for openCypher specification compliance, with the exception that Neptune Analytics does not support custom edge IDs.
Amazon Neptune also supports several features beyond the scope of the openCypher specification. Refer to openCypher extensions in Amazon Neptune for details.
Vertex and edge IDs
Custom IDs for vertices
Neptune Analytics supports both querying and creating vertices with custom IDs. See openCypher custom IDs for more details.
Custom IDs for edges
Neptune Analytics does not support edge creation with custom edge IDs. Custom IDs are not permitted in CREATE or MERGE
clauses. Edges are assigned IDs by Neptune , using a reserved prefix neptune_reserved_
.
Edges can be queried by the server assigned ids, just as in Neptune Database.
# Supported MATCH (n)-[r:knows {`~id`: 'neptune_reserved_1_123456789'}]->(m) RETURN r # Unsupported CREATE (n:Person {name: 'John'})-[:knows {`~id`: 'john-knows->jim'}]->(m:Person {name: 'Jim'}) # Unsupported MERGE (n)-[r:knows {`~id`: 'neptune_reserved_1_123456789'}]->(m) RETURN r
Server assigned IDs are recycled. After an edge is deleted, a new edge created could get assigned the same ID.
Note
The edges could get assigned new IDs if the graph gets restructured and the older IDs would then become invalid. If the edges are reassigned IDs, older IDs would match no other edges. It is not recommended to store these IDs externally for long-term querying purposes.
IRIs and language-tagged literals
Neptune Analytics supports values hat are of type IRI or languag-tagged literal. See Handling RDF values for more information.