Cypher for Gremlin adds Cypher support to any Gremlin graph database.
Clone or download
dwitry Improve compatibility by adding type to float properties in GremlinGr…
…oovy (#220)

- `.property('float_prop',1.4)` → `.property('float_prop', 1.4d)`
- JanusGraph/janusgraph#487

Signed-off-by: Dwitry dwitry@users.noreply.github.com
Latest commit 209a37f Nov 16, 2018

README.md

Cypher for Gremlin

CircleCI Maven Central

Cypher for Gremlin is a toolkit for users of Apache TinkerPop™ that allows querying Gremlin databases with Cypher, the industry's most widely used property graph query language defined and maintained by the openCypher project.

The toolkit is composed of:

Quick Start

The fastest way to start experimenting with Cypher for Gremlin is with the Gremlin Console Cypher plugin. Follow the link for installation and usage instructions.

You can also take a look at the Cypher for Gremlin Demo project.

Language Support

With Cypher for Gremlin you can use the following Cypher language features:

  • MATCH and OPTIONAL MATCH with most of the pattern-matching syntax, except for variable-length patterns
  • WHERE, ORDER BY, SKIP, and LIMIT sub-clauses
  • RETURN, WITH, and UNWIND projections, including basic support for list and path comprehensions
  • CREATE, MERGE, SET, REMOVE, and DETACH DELETE
  • CASE expressions
  • UNION operations

It is not guaranteed that all instances and combinations of the listed features will work. However, the produced translation covers around 70% of the Cypher Technology Compatibility Kit and an additional 15% on Gremlin Servers with Cypher extensions. Note that latest TCK M11 covers Temporal types and functions support of which is currently not implemented in Cypher for Gremlin. Coverage of TCK M10:

You are very welcome to report any issues with the translation that you encounter.

Major Limitations

See the current TCK report for a detailed overview of language coverage.

Related

  • Gizmo is a Web UI that makes it easy to interact with TinkerPop graph databases such as AWS Neptune and Azure CosmosDB with the Cypher query language. Uses Cypher Gremlin Neo4j Driver for translation.

Development

To build and run Cypher for Gremlin you need Java 8. The project is built using Gradle or the provided wrapper.

To build and run unit and integration tests:

./gradlew build

To automatically fix formatting errors in your changes:

./gradlew spotlessApply

How to contribute

We would love to find out about any issues you encounter and are happy to accept contributions following a Contributors License Agreement (CLA) signature as per the process outlined in our contribution guidelines.

License

The project is licensed under the Apache Software License, Version 2.0

Copyright

© Copyright 2018 Neo4j, Inc.

Apache TinkerPop™, TinkerPop, and Apache are registered trademarks of the Apache Software Foundation.