Friday, April 29, 2011

Neo4j 1.4 M01 - Announcing Kiruna Stol

It's been a couple of weeks since the 1.3 GA release, and along with it the profound changes to the Neo4j product suite and licensing. We've been busy in the meantime listening to the great feedback, planning our way forward, and beginning new work.
Leaving “Abisko Lampa” behind, we’re now headed to “Kiruna Stol”. Today marks the first step along our path, with a milestone release. Compared to the fanfare surrounding the previous release, it's a more modest affair.
For this release, the Neo4j dev team have been refining parts of the codebase - particularly those parts that users interact with - to offer a more pleasant development and ops experience. We've also managed to squish a handful of general usability annoyances which we think will make a real difference to our community.
This release is a very natural progression from our 1.3 product since it's feature compatible, but more refined. So if you're comfortable with 1.3, you'll be comfortable experimenting with this milestone too.

Looking Forward to Kiruna Stol

Where are we headed now? We’ve considered many features and refinements to focus on for Kiruna Stol. The general categories we’ve decided to pursue include:
  • revisions to the API like self-references and auto-indexing
  • investigations into query languages. Gremlin, Sparql, Cypher
  • REST results paging and streaming
  • SpringDataGraph enhancements: 
    • full featured Spring Data repository support, 
    • Spring Roo Add-On
    • domain level server integration (as remote repository)
Of course, we’ll continue to optimize performance and smooth usability along the way.
This milestone is available for download from the Neo4j website, and the components are available through the Maven repository. Happy hacking!

Tuesday, April 19, 2011

Spring Data Graph 1.0, the integration library for Neo4j released today


For a friendly introduction to Spring Data Graph we’re hosting a free webinar with VMware and presented by Neo Technology’s CEO Emil Eifrem on April 20 at two convenient times for the Americas and Europe. [Update: Webinar video available on youtube.]
Now that Spring is in the air, the Neo4j and Spring Data teams are happy that almost a year’s worth of work has produced our 1.0 version of the Spring Data Graph library. The Spring Data project aims to bring the convenient programming model of the Spring Framework to NOSQL databases. Spring Data Graph supports graph databases within Spring Data and builds in support for Neo4j as its first supported implementation.
The best way of getting to know Spring Data Graph is by using it, so we’d like to encourage you to read our Spring Data Graph Guide Book, check out the examples and sources on github and tell us what you think.
Spring Data Graph provides simple and convenient access to graph databases from any Spring application. Originally, Spring Data Graph was the brainchild of SpringSource CEO Rod Johnson and Neo Technology CEO Emil Eifrem. Together Rod and Emil refined the design philosophy, and some foundation technologies like AspectJ (used to transparently map POJOs to an underlying graph).

Spring Data Graph debuted publicly at a presentation at JAOO Aarhus 2010, when Rod invited Michael Hunger of Neo Technology to demonstrate cross-store persistence as part of his SpringSource presentation. Later in October there were several sessions at the SpringOne conference that discussed different aspects of the Spring Data and Spring Data Graph projects.
Throughout the past year, we’ve taken regular feedback from our community and have responded with frequent iterative releases, each release improving and extending the scope and functionality of the library. In all, we’ve built support for detached entities, in-graph type representation strategies, repository support and a Neo4jTemplate implementation. We’ve also developed preliminary support for Spring Roo as an add-on.
Here is an overview of Spring Data Graph features:
  • Support for property graphs (nodes connected via relationships, each with arbitrary properties)
  • Transparent mapping of annotated POJO entities
  • Neo4jTemplate with convenient API, exception translation and optional transaction management
  • Different type representation strategies for keeping type information in the graph
  • Dynamic type projections (duck typing)
  • Spring Data Commons Repositories Support
  • Cross-store support for partial JPA - Graph Entities
  • Neo4j Traversal support on dynamic fields and via repository methods
  • Neo4j Indexing support (including full-text and numeric range queries)
  • Support for JSR-303 (Bean Validation)
  • Support for the Neo4j Server
  • Support for running as extensions in the Neo4j Server
We’re very pleased with our Spring Data Graph Guide Book “Good Relationships” that comes as a Duplex Book with a narrative tutorial and a reference , with forewords by both Rod and Emil.

Another highlight is the social movie database cineasts.net which is part of an extensive tutorial in building real-world systems with Spring and Spring Data Graph. The cineasts.net application runs on Spring Framework, Spring Data Graph and the Neo4j Graph Database, and uses movie data from the free and open themoviedb.org.
Our community has also been busy building productive and interesting systems atop Spring Data Graph. For example Spring Data Graph has been used for a large and sophisticated energy market simulation at the Technical University of Delft.
Spring Data Graph is released under the Apache Software License. Its source code is hosted on github. Several examples can also be found there. Issue tracker and forums are provided at springsource.org. You can follow @SpringData and @Neo4j on twitter and also subscribe to the Neo4j mailing list for more information.
Thanks to all the people that supported the development of Spring Data Graph with their experience, skills and time!

Wednesday, April 13, 2011

Neo4j 1.3 "Abisko Lampa" Released

Today we've released the 1.3 GA (General Availability) version of the popular open source graph database Neo4j. As well as a slew of new features and improvements, we’re thrilled to announce that the community edition is now entirely GPLv3 licensed!

For more information about why we’re changing license, please see our posting on license changes.

What's in 1.3?

Aside from the license changes, we've added so much cool stuff to Neo4j 1.3 over the course of the last 5 milestone releases. Here's a taste of some of the features that we really love:

Supersize me!

Each database can now contain 32 billion nodes/relationships and up to 64 billion properties. That's enough to usefully store Earth's population for a while to come.
Warning: this requires specific action, to upgrade your database from 1.2 to 1.3. See more in the Neo4j manual.

Unsupersize me!

The database footprint has been reduced, thanks to an new storage strategy for common short strings (e.g. zip codes). For many data sets, this results in dramatically smaller files on disk and a bonus performance bump.

What you graph is what you see (WYGIWYS)


The completely revamped Webadmin tool looks stunning and is much more usable, with a new integrated visual data browser that lets you jump into and explore a pictorial representation of the graph from any Webadmin screen in just a click!

Developers, developers, developers

Our graph database gives developers a natural way to persist complex data. This release includes even more power without compromising ease of use:

  • We've added Dijkstra algorithm for finding shortest paths to our library of graph algorithms.
  • Our APIs have undergone a spring clean with improvements to the traversal framework and a new, improved look for the indexing API and the underlying implementation (which sadly means old indexes will have to be rebuilt, but it's worth it!).
  • RESTafarians will be pleased to know we now support advanced index queries through our REST API, and we've separated out the server plugin API so building server plugins requires a minimal set of dependencies.

Neo4j Products

As we’ve mentioned, Neo4j Community is now available under the GPLv3. For other deployments where you have greater needs around management or availability, we're launching two new commercial products: Advanced and Enterprise.
Here's a breakdown of how the product family is structured:

  • Community: All the core features of Neo4j embedded and server including the fully ACID transactional graph database engine (available under the GPL or commercial license for OEM)
  • Advanced: Everything from the community edition plus management features and additional support services (available under the APGL or a commercial license)
  • Enterprise: Everything from the Advanced edition plus High Availability features and even more support services (available under the APGL or a commercial license)
Both Neo4j Advanced and Enterprise are dual licensed under the AGPL or a commercial license, meaning that you can continue to be free and open source, or choose a commercial license that meets your needs. If you’re super-keen, you can read all the details, including typical usage scenarios, here.

Free Beer!


To celebrate the release of Neo4j 1.3, we're hosting release parties in several cities around the globe! We'll get Neo4j speakers to (almost) all the events to provide an overview of Neo4j 1.3, and for all the release parties we'll be covering the bar tab!
So come along and enjoy the free (as in speech) Neo4j 1.3 release, and the free (as in beer) beer! The release parties will be happening here:
Don’t forget the Neo4j Graphistas Map – look for flags that indicate meetup locations.

Download it!

As always, pre-built binaries are available for download on the neo4j.org download page. For the source code visit our github repo.