This Week in Neo4j – Analyzing the FinCEN Files, Subway Journey Planner, Spotify Playlist Builder

Hey everyone,

The big news in graph land this week was the publication of the FinCEN Files by the ICIJ. The dataset contains a vast network of industrial-scale money laundering running through Western banks. In this week’s video Michael Hunger makes sense of the data using Neo4 and friends.

As Coronavirus related restrictions are tightened in European countries, Rik Van Bruggen’s timely blog post explains exponential growth.

In lighter news, Niels de Jong builds a Spotify playlist generator and Ng Wai Foong navigates Singapore’s transport network. And we have releases of NEuler: The Graph Data Science Playground, the Neo4jClient .NET library, and Graphlytic visualisation tool.

Finally, if you haven’t yet registered for NODES 2020, watch this short video, which explains all the fun stuff you’ve got to look forward to.

Cheers, Mark, Karin, and the Developer Relations team

This week’s featured community member is Max De Marzi.

Max De Marzi - This Week’s Featured Community Member

Max De Marzi – This Week’s Featured Community Member

Max joined the Neo4j field team in 2012, helping customers with their most difficult graph problems. If a customer had to get a query to return in less than 50ms, Max was the first one they’d call, and he’d figure out how to do it.

As well as coaching field colleagues, Max shared his knowledge with the community in conference and meetup talks, including Secret Sauce of Neo4j: Modeling and Querying Graphs at GraphConnect 2018. Max frequently answers users’ questions on StackOverflow, Neo4j User Slack, and the Neo4j Community site.

He writes a popular blog at, where he shares tips for writing faster queries. He’s also written numerous graph-based tutorials. From building a Twitter clone or a chatbot to finding fraud and calculating the best railroad paths, Max has covered it all.

Max is currently looking for a new role or consulting around graph databases, so get in touch with him on LinkedIn if you have any opportunities.

Analyzing the FinCEN Files in Neo4j

This week’s video is an analysis of the ICIJ’s FinCEN Files by Michael Hunger.

After giving an overview of the raw dataset, Michael shows how to import it into Neo4j and then explores the graph using Neo4j Bloom, neomap, and NEuler.

You can also read a blog post about the FinCEN Files that Michael wrote with Rik Van Bruggen and Will Lyon.

Build a Subway Journey Planner Using Neo4j

Using a dataset of Singapore’s public transport network, Ng Wai Foong explores how to find the best travel path between two subway stations.

After constructing a transport graph, Ng Wai uses APOC’s Dijkstra algorithm to find the top 3 shortest weighted paths between two stations. He then wraps the query in a Python backed API and React web application.

Neo4j Playlist Builder: Organize your Music with Graph Data Science

Niels de Jong liked songs on Spotify got a bit out of control, so he turned to Neo4j to try to make sense of it, intending to generate playlists of similar songs.

After importing his Spotify data and running some exploratory queries, Niels realised that his list of songs fell into more than 700 different genres. Creating playlists by genre would result in way too many playlists, so a different approach was needed.

Niels shows how to use the Graph Data Science Library to create clusters of genres and then uses k-means clustering on tracks’ audio properties to group tracks into playlists. Finally, Niels shows off a neat Cypher query to create a name for each playlist.

Releases: NEuler, Graphlytic, Neo4jClient

    • Over the last few months, we’ve been making lots of improvements to NEuler, a UI tool to onboard users of the Graph Data Science Library. We’ve added perspectives-light to improve the results view, redesigned the results view for community detection algorithms, added a GDS Sandbox integration, and more.
    • This week saw the release of version 3.1 of Graphlytic, a customisable web application for collaborative graph visualisation and analysis. This release includes new visualization features, auditing, and improved documentation.
    • Chris Skardon released version 4.0.0 of Neo4jClient, a .NET client for Neo4j. This version supports all of Neo4j’s URI schemes, has multi-database support, and is now NetStandard 2.0.

Exponential growth in Neo4j

There’s been a big debate in the UK this week over whether the number of positive Coronavirus cases is increasing exponentially, and if so how many days it takes for that number to double.

It seems like the same type of discussion has been happening in other countries as well, which led to Rik Van Bruggen’s latest blog post.

Rik explains how exponential growth works and then shows how to simulate the spread of a virus through a population in Neo4j using Cypher subqueries.

Tweet of the Week

My favourite tweet this week was by Jamie Gaskins:

Don’t forget to RT if you liked it too!