Usage of Cypher

Cypher implementations

SAP HANA Graph

SAP HANA Graph is an integral part of SAP HANA core functionality. It expands the SAP HANA platform with native support for graph processing and allows you to execute typical graph operations on the data stored in an SAP HANA system.

SAP HANA Graph uses Cypher to express pattern matching queries.

Links

Agens Graph

Agens Graph is a multi-model (Relational + Graph) database. It is based on PostgreSQL RDBMS. With Agens Graph, one can retrieve a result from both relational and graph by a single query at the same time. Agens Graph supports ACID transactions and implements the graph data model.

The railroad diagrams and CIPs have been used as reference.

Links

Redis Graph

Redis Graph is a graph database implemented as a Redis module, which means that it lives within the Redis server and has fast access into Redis data structures.

The module uses a subset of Cypher, and supports operations such as filtering, aggregation and ORDER BY.

Links

ingraph

The aim of the ingraph project is to evaluate openCypher graph queries incrementally. Our long-term goal is to provide a horizontally scalable graph query engine, which is able to perform complex graph queries on graphs with 100M+ elements.

ingraph uses the Antlr4 grammar for parsing, and the TCK as a reference for the formalization & implementation.

Links

Gradoop

Gradoop is an open source research framework for scalable graph analytics built on top of Apache Flink™ and Apache HBase™. It offers a graph data model which extends the widespread property graph model by the concept of logical graphs and further provides operators that can be applied on single logical graphs and collections of logical graphs.

The implementation in Gradoop is part of a research project by the Database Group Leipzig.

Links

Ruruki

Ruruki is a pure Python lightweight in-memory graph database designed to be used for proof of concept projects or if you just need a temporary graph structure.

Ruruki bases its parser implementation on the EBNF grammar provided by openCypher.

Links

Graphflow

Graphflow is a prototype active graph database developed by the Data Systems Group (DSG) at the University of Waterloo. Active databases are those that support continuous queries and triggers. An example continuous query in the context of graph databases is continuously finding cycles in an input graph and calling a user-defined function when a new cycle emerges or gets deleted. Graphflow evaluates general one-time and continuous subgraph queries and supports the property graph model. The database is implemented in Java and provides a Cypher++ interface, which extends the Cypher query language with subgraph-condition-action triggers. At the core of Graphflow’s query processor are two worst-case optimal join algorithms called Generic Join and our new Delta Generic Join algorithm for one-time and continuous subgraph queries, respectively.

Links

Cypher tools

Graph Database Support

The plugin may be used with, for example, IntelliJ IDEA, where it provides completion and highlighting of Cypher strings.

Links

libcypher-parser

libcypher-parser is a parser library and validation (lint) tool for Cypher. The parser is written in C, and is intended for building tools and libraries in various languages.

libcypher-parser bases its implementation on CIP documents and the grammar specification.

Links

slizaa

slizaa is a customizable software architecture workbench that allows you to explore and visualize the structure and the dependencies of java-based software systems. slizaa uses Neo4j/jQAssistant and provides a frontend with a bunch of specific tools and viewers to provide an easy-to-use in-depth insight of your software's architecture.

Part of slizaa is a Xtext-based editor for Cypher queries that will be included in one of the next releases of slizaa. The Xtext-based implementation is based of the Antlr4 grammar provided by the openCypher project and is already available (see links below).

Links

ocparse

ocparse is based on the EBNF grammar.

Links

Cytosm

Cytosm is an open-source software library for converting Cypher queries into plain old SQL on-the-fly.

Cytosm was originally developed by researchers and engineers working on graph analytics on a variety of databases.

Links