openCypher Resources

The following resources are available to download and use.

  • The Cypher Query Language Reference (Version 9), containing the complete reference for Version 9 of the Cypher query language.
  • The Cypher Style Guide is comprised of:
    • Syntax guidelines for composing Cypher queries in a conventional, readability-oriented manner.
    • Guidelines that may affect the semantics of queries.
  • The TCK (Technology Compatibility Kit) is a Cucumber-based set of tests that can be used for any Cypher implementation in any of the many languages supported by Cucumber.
    • Defines the correct behaviour of Cypher under various conditions.
    • Provides an unambiguous way of certifying implementations for correctness.
    • Documents the behaviour of queries in a clear manner.
    • Grouped into features, each of which consists of a set of scenarios, which comprise ordered steps defining the prerequisites, input and expected output.
    • Allows a proposed change to be expressed clearly, through the modification of existing scenarios or the addition of a new scenario.
  • Grammar specification
    • A syntax and language composition specification in XML format, along with derived artifacts comprising a parser, EBNF-style grammar(s), and railroad diagrams.
    • An XML grammar definition is used to generate an EBNF and an Antlr4 grammar for use by projects wanting to parse Cypher, and “Railroad Diagrams” which document the syntax.

 

Resource name Latest stable version Snapshot version
Cypher Query Language Reference (Version 9) [download]
Cypher Style Guide style-guide-M10 style-guide-snapshot
Technology Compatibility Kit (TCK) tck-M10 tck-snapshot
Grammar specification grammar-M10 grammar-snapshot
Antlr grammar antlr-grammar-M10 antlr-grammar-snapshot
Antlr grammar (legacy*) antlr-grammar-legacy-M10 antlr-grammar-legacy-snapshot
EBNF grammar ebnf-grammar-M10 ebnf-grammar-snapshot
EBNF grammar (legacy*) ebnf-grammar-legacy-M10 ebnf-grammar-legacy-snapshot
Railroad diagrams railroad-M10 railroad-snapshot
Railroad diagrams (legacy*) railroad-legacy-M10 railroad-legacy-snapshot

The process of standardising the Cypher language has led to two versions of the grammar being maintained: standardised and legacy.

The standardised version only includes the Cypher language constructs that have been adopted for standardisation, as detailed in the Standardisation Scope document.

* The legacy version of the grammar (and artifacts generated from it) additionally includes Cypher language constructs that are supported by vendors, but have not been selected for standardisation. Read more about this here.