Cypher Workbench as a Neo4j Labs Project

I am pleased to announce that Cypher Workbench has been released under Neo4j Labs. Cypher Workbench is a set of tools that helps you conceptualize, model, and work with graphs and the Cypher query language. It is meant to be complementary to existing Neo4j tools such as Browser, Bloom, and Workspace.

Cypher Workbench – Data Modeling and Cypher Tool Suite – Neo4j Labs

Cypher Workbench was released in 2020 to Neo4j employees, select customers, and select partners. It has been used to develop thousands of data models covering a wide range of domains and graph problems. The ideas were originally introduced at the GraphConnect talk below.

Note: If you are reading this and are currently using Solutions Workbench, note that Cypher Workbench and Solutions Workbench are the same tools. We are reverting the name back to Cypher Workbench for the release under Neo4j Labs.

The inspiration for Cypher Workbench came from the diagram “Building the Graph” shown below. When thinking about graphs, it is useful to focus on a few specific questions initially. With these questions in mind, you can focus your efforts as you model the problem domain needed to answer the questions, source the data, and build queries to answer those questions.

Workflow for building Neo4j graphs

Cypher Workbench provides the tools necessary to support this workflow. Determining the right model for your graph is a balancing act between many factors:

  • Capturing domain knowledge
  • Questions that need to be answered
  • Available data
  • Queries to answer questions
  • Data Science algorithms to use
  • Performance

As you go through your graph journey, any one of these factors could change your model, possibly impacting how data is loaded and/or how data is queried. Iteration is key to working through the issues and creating a successful graph implementation — as denoted by the arrows pointing back to previous steps in the diagram.

Cypher Workbench includes the following tools to support the workflow depicted in the diagram:

  • Business Scenarios. Used to capture questions and business problems. Provides the ability to start modeling based on your scenarios, and later link completed Cypher queries to the scenarios.
  • Model. Used to create and edit graph models. Includes the ability to reverse engineer models from existing Neo4j databases and Cypher statements. Provides the ability for limited collaboration.
  • Cypher Suite. Used to capture sets of related Cypher Statements. Statements can be validated against models. A rudimentary execution and debugging feature is also provided.
  • Cypher Builder. Used to build Cypher statements graphically. MATCH statements can be built by clicking on nodes and relationships in the graph model. A rudimentary execution and debugging feature is also provided.
  • Databases. Provides the ability to configure connections to Neo4j databases.

Note that data import is not a feature directly available in Cypher Workbench. Once a model is complete, a different mechanism needs to be used to import data into Neo4j. Common data import options for Neo4j are Cypher LOAD CSV, Neo4j Data Importer, using Neo4j drivers directly, or popular ETL and ELT tools like Google DataFlow, AWS Glue, Azure Data Factory, Kafka, and Apache Hop.

Shown below are a few screenshots of Cypher Workbench. In this first screenshot, the Model tool is selected and the user has created a Movie Recommendations graph data model.

Movie Recommendations model in the Model tool

In this second screenshot, the Scenarios tool is shown where the user has linked Cypher statements back to their defined scenarios, and the path of one of the Cypher statements is shown in the data model.

Scenarios tool with linked data model and Cypher statements

One example of a graph development workflow utilizing the complete feature set of Cypher Workbench is:

  • Subject Matter Expert: Capture scenarios in the Business Scenarios tool
  • Data Architect: Start the data model in the Business Scenarios tool
  • Data Architect/Data Owner: Iterate over the data model in the Model tool
  • Data Engineer: Import data against the data model using Load CSV or another import option
  • Graph Developer: Write Cypher conforming to the data model using Cypher Builder or import Cypher using Cypher Suite
  • All Roles: Iterate as necessary
  • Data Architect/Graph Developer: Link Cypher queries to scenarios in the Business Scenarios tool, therefore completing the development cycle

Note that in larger enterprises, these roles may be played by different persons, and in smaller companies or projects, one person may assume multiple roles, or perhaps perform all of the roles themselves. This is one of several workflows that are possible with the tools and features present in Cypher Workbench.

To get started with Cypher Workbench, follow these steps to download the code and install it locally:

  • Check out the code here
  • Ensure that you have Node.js on your machine

Next, follow the instructions in the Cypher Workbench project README to:

  • Setup a Neo4j or Aura database
  • Build, configure, and run the GraphQL API server
  • Build, configure, and run the React UI

I’ve put together an instructional video that walks through the installation steps here. Note that Cypher Workbench uses the Neo4j database you set up to record all of the data. Any scenarios, models, database cards and so forth are all written to the Neo4j database you have configured.

Once you have set up Cypher Workbench, you can learn more about its features, architecture, and how to use it by watching some tutorial videos and exploring the documentation:

Note the Cypher Workbench code is offered through the Apache 2.0 license and comes with no SLAs or implied support. Support is offered best effort through the Neo4j community. Bugs or feature requests can be submitted through GitHub issues.

GitHub – neo4j-labs/cypher-workbench: Tools for Neo4j data modeling and more

To use the SaaS version of Cypher Workbench, please contact your Neo4j Sales or Partner representative.

I’m excited to release this toolset to the larger Neo4j community, and I hope you find it useful. Stay tuned for other blog posts where we go deeper into the feature set and code of Cypher Workbench.

Cypher Workbench as a Neo4j Labs Project was originally published in Neo4j Developer Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.