Traditionally CMSs use SQL databases that are really fast when you need all the information stored together in a record row, but are a bad fit when you need to search for relationship patterns that are not already stored together in your database. A significant performance penalty is incurred for every additional table that needs to be joined for a query. That is why SQL databases are notoriously bad at deducting relationships from datasets. Graph databases, however, are really good at this task.
In a talk we did at FOSDEM ‘17, Tamás Demeter-Haludka and I discuss potential application areas of graph databases in existing open source CMSs like Drupal.
We believe graph databases could make a big difference when used in key areas where traditionally CMSs would fail:
- Explore large non-uniform datasets: Neo4j got a lot of attention after it was used by investigative journalists to identify the organisations and individuals involved in offshore tax evasion in the Panama papers leak.
- Recommend content: media companies like the Financial Times are using Neo4j to display related content on their website, this helps them to increase engagement with higher clickthrough rates.
- Personalisation: Adidas uses the Neo4j graph database to create its internal metadata service, offering access and searchability to their data and making sense of complex interdependencies and relationships.
We've created a basic integration that makes it possible for non-developers to work with Neo4j. Combined with Drupal’s content modelling capabilities we believe it could be a powerful tool for people to explore graph databases using a GUI. There is also a case to be made for the use of graph databases in the Drupal ecosystem: sites that already use Drupal could benefit from its capabilities.
For the video recording, click here.
Table of content:
- Introduction (0:00)
- Module demo (5:18)
- CMSs as a GUI for a graph database (9:40)
- Q&A (19:40)