Month: May 2014

Introduction to Neo4j

Neo Technologies run little evening seminars to introduce their graph database technology and I took the liberty of attending one yesterday evening. You get a free book!


They’re based around the back of the Tate Modern, in an area which seems like an extension of Shoreditch with loads of start-ups and overpriced coffee.

It was a very interesting presentation, given by Rik Van Bruggen (Belgian), giving the background to the database and a really good demo using belgian beers as a dataset. Neo4j also has a community version that you can download as well as a free on-line course (with registration).

Rik also demonstrated a web site that visualises recommendations in, which is quite groovy.

The Graphs of Gaming and Recruitment

Yesterday evening, I went to a presentation on Graph Databases (specifically Neo4j, who were the organisers), hosted by Skills Matter.

First up was Nigel Small who talked about Zerograph, a new container/server for Neo4j.

Nigel gave a quick overview of Zerograph, highlighting it’s ability to host more than one database and the use of ZeroMQ (thus the name) to increase reliability and robustness. ZeroMQ is a message queue, which is a piece of software designed to buffer and schedule messages between two systems in a more controlled way than a direct connection. It also, in ZeroMQ’s case, allows for temporary disconnections, saving the messages to be processed when the connection is resumed. How this works in practise is another matter.

One of things emphasised throughout the talks was the speed with which Neo4j processes queries and returns results. Graph databases are designed to cope with information which is highly relational in nature, so something that in standard SQL would take seconds or even minutes with multiple joins, takes a fraction of that in a graph database.

Next up was Mark Wright to talk about the work at his company Stitched regarding the use of Neo4j in social networks for recruiting.

A quite amusing presentation, Mark illustrated the problems with existing social networks, such as Facebook and LinkedIn, and how “private” networks could be used to give more authentic results.

The last speaker was Yan Cui, from GamesSys, to talk about his experiences using Neo4j to model his company’s Freemium online game “Here Be Monsters“.

The game is resource based and can be incredibly complex and interrelated, so any small change in the underlying data can have considerable consequences. They’ve tried to make changes by rule-of-thumb, but this proved too unwieldy, slow and error-prone, so they’ve been modelling it with Neo4j and had much better results.

One of the things mentioned during the presentations was Cypher. Being interested in cryptography, I was a little baffled, but this turns out to be the Neo4j equivalent of SQL:

MATCH (n:Person)-[:KNOWS]->(m:Person) WHERE"Alice"

Looks similar enough, although I can’t see why they didn’t call it Graph Query Language (GQL), which would be much more obvious.