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:
Comments via Github:
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.