What is openCypher?

The openCypher project aims to deliver a full and open specification of the industry’s most widely adopted graph database query language: Cypher.

Focus on Your Domain

Graphs naturally describe your domain, and Cypher lets you focus on that domain instead of getting lost in the mechanics of data access. Both expressive and efficient, Cypher is intuitive and immediately familiar, without the steep learning curve of learning a new language.

Human Readable

Cypher is a human-readable query language that makes complex things possible. A combination of English prose and intuitive iconography, Cypher is accessible to developers and operations professionals alike.

Complete Open Source Access

The openCypher project means you can use Cypher as your query language for graph processing capabilities within any product or application. Everyone from Oracle and Apache Spark to Tableau and Structr can (and do) use Cypher’s capabilities – now you can too.


    MATCH (cypher:QueryLanguage)-[:QUERIES]->(graphs)
    MATCH (cypher)<-[:USES]-(u:User) WHERE u.name IN [‘Oracle’, ‘Apache Spark’, ‘Tableau’, ‘Structr’]
    MATCH (openCypher)-[:MAKES_AVAILABLE]->(cypher)
    RETURN cypher.attributes
    -----------
    [‘awesome’,…]
                        

openCypher Project

The openCypher project aims to improve growth and adoption of graph processing and analysis by providing an open graph query language to any data store, tooling or application provider as a mechanism to query graph data.

  • Provides a query language with full support
  • Makes graph processing and analysis easier to adopt
  • Grants vendor independence to all users
  • Eases graph integration with other data platforms

Check out the openCypher GitHub repository to track our progress, leave feature requests, and become a participant in our open source community.

openCypher on GitHub

Frequently Asked Questions

Cypher is a graph query language that allows for expressive and efficient querying of graph data. Cypher is intuitive, powerful and easy to learn.

It lets you write graph queries by describing patterns in your data. Because graphs already describe your domain, Cypher lets you focus on your domain instead of getting lost in the mechanics of data access.

Designed to be a human readable query language, Cypher is suitable for developers and operations professionals alike. The guiding principle behind Cypher is to make simple things easy and complex things possible. Cypher combines English prose and intuitive iconography, making queries more self-explanatory.

Cypher is declarative, which means it lets users express what data to retrieve, letting the engine underneath take care of seamlessly retrieving it. In contrast, imperative or scripting languages, including early-generation graph languages, require query writes to have a deep technical understanding of physical implementation details. Cypher eliminates this burden.

The expressive querying of Cypher is inspired by a number of different approaches and established practices. Most of the keywords, such as WHERE and ORDER BY , are inspired by SQL, while pattern matching borrows from SPARQL. In addition, some of the collection semantics have been borrowed from languages such as Haskell and Python.

The openCypher project makes it possible for any developer or technology provider to use Cypher and incorporate graph processing capabilities within that product or application.

Easy-to-learn and yet extremely powerful, Cypher is the industry’s most successful and widely adopted graph query language. With the advent of openCypher, the language promises to be just as instrumental in the growth of graph processing and analysis as SQL was instrumental in accelerating the adoption of RDBMS.

With tens of thousands of users already trained in Cypher and numerous tooling providers already offering support for the language, openCypher provides a seamless way for industry participants to provide graph capabilities in their data platforms – ranging from database suppliers, tooling vendors and the broader graph ecosystem.

For data and tooling providers:
  • Improve time to market with tools, tests and specifications that enable rapid access to graph processing capabilities
  • Collaborate on the evolution of Cypher to increase the size of the graph ecosystem
For application developers:
  • Reuse graph query knowledge and skills across a multitude of products that support
  • Cypher as the graph query language
For enterprises:
  • Interoperability and vendor independence by interfacing with products using a common query language
  • Higher availability of skilled developers trained in a graph query language used across multiple products

The project aims to deliver four types of artifacts:

  • Cypher Reference Documentation
    Comprehensive user documentation describing use of the Cypher query language with examples and tutorials.
  • Technology certification kit (TCK)
    The TCK consists of a number of tests that a software supplier would run in order to self-certify support for a given version of Cypher.
  • Reference implementation
    Distributed under the Apache 2.0 license, the reference implementation is a fully functional implementation of key parts of the stack needed to support Cypher inside a data platform or tool. The first planned deliverable is a parser that will take a Cypher statement and parse it into an AST (abstract syntax tree) representation. The reference implementation complements the documentation and tests by providing working implementations of Cypher – which are permissively licensed – and can be used as examples or as a foundation for one’s own implementation.
  • Cypher language specification
    Licensed under the Creative Commons license, the Cypher language specification is a technical expression of the language syntax to enable parsers to auto-generate the query syntax. A full semantic specification is also planned as a part the openCypher project.

Oracle

"Oracle is a strong supporter of standard, open APIs and languages. As with SQL, we believe open language standards accelerate platform and paradigm adoption. With the release of Oracle Big Data Spatial and Graph and our longstanding support for the Spatial and Graph option for Oracle Database, we are excited to deliver new, scalable solutions to the graph community. openCypher offers the graph community an opportunity to address the need for standards-based interfaces to simplify graph data access."
- Jim Steiner, Vice President, Spatial and Graph Technologies, Oracle

Databricks

"Graph processing is becoming an indispensable part of the modern big data stack. Neo4j’s Cypher query language has greatly accelerated graph database adoption. We look forward to bringing Cypher’s graph pattern matching capabilities into the Spark stack, making graph querying more accessible to the masses."
- Ion Stoica, CEO, DataBricks

Neo Technology

"Companies such as Google, Facebook and LinkedIn have leveraged graph processing to transform their respective industries. openCypher promises to bring the same transformative power of graphs to enterprises of any size."
- Emil Eifrem, CEO of Neo Technology, Creator of Neo4j and Cypher

openCypher News

Get connected with openCypher and stay informed of updates.

 

Stay Connected