A new version of Neo4j is available and is being described by the creators as the graph database they dreamed about, providing graphs for everyone, and with a new tool for developers.

(click to enlarge)

The main improvements in release 2.0 are extensions to Cypher, the graph query language, and "a tool designed to let that language flow from your fingertips", a new browser UI enabling users to visualize and edit data in graph or tabular form.

According to the post announcing the new release on the NeoTechnology website, the UI has been redesigned to be ‘a fluid developer workbench’ that includes guides and comes with a sample mini graph app to help you get started. There’s a multiline Cypher query editor, tabular representations, and drag-and-drop support. Cypher is the graph query language used in Neo4j, and it has been extended in 2.0. You can now refer to subsets of nodes in a graph within Cypher queries, and to facilitate this, the graph mode has been extended with the concept of node labels. Labels are optional, and mark a node as belonging to a group.

The addition of the labels also means you can make use of meta-information; a feature the blog post describes as:

In practical terms, this means you can set Uniqueness Constraints such as

CREATE CONSTRAINT ON (person:Person) ASSERT person.name IS UNIQUE

which would ensure you couldn’t create a second Person node with the same name property value.

The addition of support for node labels also means you can declare an automatically indexed property on a labeled node.

There are some new clauses in Cypher, including optional match to identify parts of patterns that aren’t required in the main match. You can also define merges, whereby the query either creates a new node, or should a node with the defined pattern already exist, it is matched and returned.

Literal node patterns can be used to find nodes that exactly match text you enter into the pattern, such as

MATCH (keanu:Person { name:’Keanu Reeves’ }) RETURN keanu

The Community Edition of Neo4j is free to download and the online Neo4j Manual provides tutorials and reference documentation.