The Story of GraphGen
This is the story behind the really useful and ingenious Neo4j example graph data generator developed by Christophe Willemsen.
I don’t just want to show you the tool but also tell the story how it came to be.
First of all: The Neo4j Community is awesome.
There are so many enthusiastic and creative people, that it is often humbling for me to be part of it.
So October 1st, Christophe tweeted out a short screencast he recorded, about a new tool (NeoGen) he was developing which converted a YAML domain specification into Cypher statements to populate a Neo4j database.
Just released a #neo4j graph generator https://t.co/7EDLQcwSuE sample video : https://t.co/ErDwl20pO2 #graphs #draft feedbks|reqs welcome
— Christophe Willemsen (@ikwattro) October 1, 2014
It was already pretty cool, but being me, I had a bulk of ideas that I’d love to see in such a tool.
Some of these were:
-
online tool
-
visualization
-
cypher like specification language (inspired by yuml.me)
-
download cypher script and GraphJSON for later usage
-
populate Neo4j database from online tool
-
generate Neo4j console link
So I contacted him and we had some really good discussions. He was very enthusiastic and eager to continue to work on this. So he first added the Cypher spec, then the online tool GraphGen including visualization, the download of GraphJSON & Cypher and finally the database population. And he continued further and further adding model types (pre-defined combinations of labels with properties) and adding the Neo4j console link. All while expanding the documentation.
Really impressive work.
Christophe also added some documentation and a neat teaser to quickly get started.
And so today, a mere 5 days later, GraphGen was out there, very usable and useful and waiting for you to generate your graph domain model.
No wonder he won the 2014 GraphConnect Graphies Award for best community contribution.
Here is a quick screencast I made (which is already superceded by new features):
In a recent blog post Christophe wrote about his view of this story.
And my amazing colleague Rik showed how to utilize GraphGen in his Simulating the IDMS EmpDemo blog post.
This is just one of the many examples in which a member of the Neo4j community got behind a good idea and created a very useful tool, driver, framework or documentation.
I can’t thank all the contributors enough and can only pledge to support the community to the best of my abilities.
I want to invite you all to join our community and contribute in writing and coding around Neo4j and be supported by others when you need it.
And even if you don’t have an idea that you currently want to pursue, just helping others by answering questions and providing feedback to Neo4j and all the tools and content in its ecosystem is extremely valuable and helpful.
Cheers, Michael
P.S: Christophe is also the author of the more widely used Neo4j PHP library NeoClient, translator of the Neo4j manual into French and importer of GitHub repository data into Neo4j.
Meet him and me in London for the GraphDay on Nov 13 and the GraphHack - Meetup on Nov 12.