Monday, 30 June 2014

Experimenting with explaining Neo4j on a whiteboard

Been experimenting with how to best explain the advantages of Neo4j on a whiteboard. Here's my latest attempt for a user that is working in a Telecom domain. Plenty more ideas like these if you like this.

I am using my Livescribe pen to make these "pencasts". Hit the little "settings" icon to make the pencast build gradually - it's the coolest way to follow.


Obviously this is only showing a tiny little part of neo4j's value proposition - but I guess this is a start.

Let me know if you like this, and if you want more of these - feedback welcome, as always.

Cheers

Rik

Tuesday, 17 June 2014

Worldcup Graph!

With the World Cup now in full swing, we really want you to have fun with our amazing Neo4j World Cup Graph Database, that is open for exploration on Heroku. Lot's of cool things to explore - take a look at this video I created to see what kinds of things you can do!



Hope you enjoy!

Rik

Saturday, 7 June 2014

Betweenness Centrality: who's the Dolphin Daddy?

Just wrote a graphgist on Betweenness Centrality in a social network of dolphins in the Doubtful Sound, New Zealand. I won't repeat myself here in this blog - but it is pretty fantastic. Thanks to Michael for his help, again.

Wednesday, 4 June 2014

Graph Local queries - revisited

Recently I had some feedback from Chuck Daniels on my blogpost on Graph Local queries. In the comment, Chuck challenged me in saying that really I should be comparing apples to apples, and that I should make sure that I was applying the same kind of locality.

Basically his question was as follows: once we go from the small dataset to the large one, shouldn't the query that we test performance for also include a richer, more complex pattern. Essentially he wanted me to compare these two queries:

match 
(eqt:EQUIPMENT_TYPE)<-[:IS_OF_TYPE]-(eq:EQUIPMENT)-[:LOCATED_AT]->(ol:OBSERVATION_LOCATION)<-[:OBSERVED_AT_LOCATION]-(o:OBSERVATION {id:1001})
return eqt.name, ol.name, o.id; 

and

match 
(eqt:EQUIPMENT_TYPE)<-[:IS_OF_TYPE]-(eq:EQUIPMENT)-[:LOCATED_AT]->(ol:OBSERVATION_LOCATION)<-[:OBSERVED_AT_LOCATION]-(o:OBSERVATION {id:1001}),
(eq)-[:USED_FOR]->(ot:OBSERVATION_TYPE)<-[:IS_OF_TYPE]-(o)
return eqt.name, ol.name, o.id; 

The second query obviously being a bit more complex, as it adds a few more "hops" to the traversal. 

So lets test this out

I have created a little gist for you to try this yourself. Look at this one for loading the data, and testing the results yourself. We start with an empty database, of course, and load the small dataset first.

Then we run the sample queries (both of them: the easier one AND the more complex one) and create the index on the OBSERVATIONS.

Next up is adding the larger dataset, and running the queries again:

And surprise surprise, the principle of graph locality and index-free adjacency still survived - the queries are still lighting fast. 

Hope this clarifies the point that Chuck raised - and reinforces the fact that graph local queries are GREAT for many different use cases!

All the best

Rik

Monday, 2 June 2014

Weekly links are not Weak!

Here's a couple of cool links that I gathered in the past week.

May 26, 2014 at 08:34PMGreat article by Jim Webber and Ian Robinson about the great power of graph data modelling. Super interesting.
May 29, 2014 at 12:53AMI did something silly at the London Graph Pub, and people seemed to like it. So I blogged about it.
May 29, 2014 at 01:12AMMichal Bachman is developing some serious tooling around neo4j. A framework, as it were. One of the parts of the framework is GraphUnit, which he gracefully announced at the Graph Pub.
May 30, 2014 at 12:57PMCool article about a cool database. What else is there to say?
June 01, 2014 at 06:54PMNice graphy visualisation of Evernote and Dropbox. Simple yet important proof of the expressive power of Graph Visualisations.
June 01, 2014 at 07:00PMLOAD CSV is a fantastic new feature of Neo4j 2.1. And you can do cool stuff with it, like analysing your GIT history.
June 01, 2014 at 07:01PMMark using R to get a better view of the NOSQL meetups scene in London - integrating R with Neo4j in the process.
June 02, 2014 at 08:53AMA gist about that I wrote around the DEM BONES demo that I mentioned above. Still silly, still fun.

I am sure you agree: they are not weak!

Enjoy!

Rik