An introduction to Neo4j


Neo4j is a recent graph-database that is rapidly accumulating success stories, especially in areas such as "social applications, recommendation engines, fraud detection, resource authorization, network & data center management and much more". Here's an interesting introductory lecture about by Ian Robinson at JavaZone 2013.

Tip: Databasetube offers various other interesting articles about neo4j

A few notes from the presentation:

Premises: - Data today is more connected than ever before - Complexity = f(size, semi-structure, connectedness) - Graphs are the best abstractions we have to model connectedness

The data model in neo4j: "property graph model" - nodes have properties (eg key-value pairs) - relationships have a direction, and can have properties too (eg weighted associations)

Neo4j server has a built in UI (web-based)

When to consider using a graph database: - lots of join tables [connectedness] - lots of sparse tables [semi-structure]

Neo4j fully supports ACID transactions - durable, consistent data - uses a try/success syntax

Performance - millions of 'joins' per second [connections are pre-calculated at insert time!] - consistent query times as dataset grows

Cypher query language - syntax mirrors the graphic representation of a graph - one dimensional, left-to-right

For a comparison of various graph databases (including Neo4j) check out this tutorial from the ESWC'13 conference

Cite this blog post:


Michele Pasin. An introduction to Neo4j. Blog post on www.michelepasin.org. Published on April 10, 2013.

Comments via Github:


See also:

2011


paper  Semantic Web Approaches in Digital History: an Introduction

Lecture slides from the Course on digital history, part of the master in Digital Humanities at King's College, London., Oct 2011.