Neo4j 2.0: The Graph Database Has Arrived
Neo Technology, the commercial sponsor of the Neo4j open-source NoSQL graph database implemented in Java, on Tuesday announced the general availability of Neo4j 2.0. This release adds a new schema construct, makes big improvements to the Cypher query language, and offers a new interactive query environment, according to the company.
Neo4j 2.0 is only the second major release of the DBMS since version 1.0 was announced back in February 2010. "It turns out that when you're writing a fully transactional, ACID-compliant database, it takes some time," CEO Emil Eifrem told ADTmag. Eifrem, who co-founded the open-source project, has been working on Neo4j since 2000.
With this release, the company takes a big step toward "bringing graph databases to the masses," Eifrem said. The list of new features 0 includes "radical improvements" to Cypher, the company's home-grown declarative query and modification language. The Cypher 2.0 upgrade aims to make it easier to develop graph applications with, the company claims, "one tenth the amount of code as in SQL." Neo4j also supports Java API and RESTful HTTP API access methods, as well as a long list of programming languages, from .NET and Java to Python and Scala.
This release includes a major change to the graph data model with the introduction of a new schema construct called "labels." The new construct makes it possible for developers essentially to tell the database more about the data, the company says. Among the new label features are automatic indexing and the ability to apply unique constraints.
Also new in this release is the Neo4j Browser, an interactive query environment that enables rapid prototyping of Cypher queries and visual data discovery.
This may be the year graph databases come into their own as a stand-alone category. (They're typically grouped with NoSQL offerings.) Neo Technology's recent GraphConnect event in London provided some evidence of that change, 451 Research analyst Matt Aslett told ADTmag. The term "NoSQL" barely came up at the event.
"Clearly the people at GraphConnect were likely to have a greater understanding of the benefits of graph databases," Aslett said in an email, "but the contrast in tone was notable compared with the GraphConnect event we attended in San Francisco just over a year ago, where the discussion very much placed graph databases in the wider context of NoSQL."
"We expect to see graph databases continue to emerge from behind the NoSQL umbrella," he added.
The Web site DB Engines, which ranks the popularity of DBMS's by category, put Neo4j at the top of its latest graph database list far ahead of its nine nearest competitors. The ranking was based on such factors as number of mentions on Web sites, frequency of Google Trends searches, and questions posted to Stack Overflow, among others.
"Neo4j was an early evangelist in the market and did a lot of the heavy lifting in terms of educating the market around the tech," said Redmonk analyst Stephen O'Grady. "That plus having a solid product has led to a lot of attention."
For developers, the rise of the graph database means more opportunity to create new applications that are based on relationships, Aslett said -- for example: the relationship between resources, users and permissions in an asset management context. He also pointed to the "whiteboard friendliness of the software itself," as well as "the flexibility of graph databases to allow for multiple use cases and business change."
"By enabling analysis of not just individual or aggregate data, but also the relationships between data, graph databases potentially provide new opportunities for generating business intelligence by highlighting new patterns in data," Aslett said.
"Graph databases offer a data model that allows for the expression of connections in a very robust fashion," Eifrem said. "Relationships in the graph data model are first class citizens. That is not true even of the relational model, despite its name, because relationships there are hidden as foreign keys. And the index free adjacency [every element contains a direct link to its adjacent element] is allows graph databases to get mind-blowing performance when it comes to querying connected data."
The community edition of Neo4j is licensed under the GPLv3. Advanced enterprise editions are available under the AGPLv3 and a commercial license from Neo Technology.