This Week in Neo4j – Content-Based Recommendations using Knowledge Graphs, Augment Intelligence with Graph Power, Graph Algorithms in Practice

This week we learn how to build a content recommendation system using knowledge graphs, augment business intelligence with graph power, and learn how to use BloodHound to assist with an analysis of password hashes from two different domains.

Our featured community members this week are the organisers of the Global Graph Celebration Day events.

Global Graph Celebration Day Organisers - This Week’s Featured Community Member

Global Graph Celebration Day Organisers – This Week’s Featured Community Member

We initially planned Global Graph Celebration Day because we thought it would be fun to do, but we had no idea that it would be so impactful in such a large global movement.

For the 1st annual Global Graph Celebration Day, having 60+ events in 6 continents really wow’d us, but what truly makes it incredible is that it was driven strictly by the community.

People, all over the world, took time out of their lives to gather their local community and include them as part of this global initiative. We wanted to recognize these people for their drive and hard work, along with all the attendees that supported their efforts, as it wouldn’t be anything without them, as well.

Thank you to all who led and participated…​. Leonhard Euler would be proud. 😉

“Individually, we are one drop. Together, we are an ocean.” – Ryunosuke Satoro

Content-Based Recommendations using Knowledge Graphs

In this week’s Neo4j Online Meetup, Christophe Willemsen showed us how to build a content based recommendation engine using knowledge graphs.

Using data from my blog, Max De Marzi’s blog, and the Neo4j Community site, Christophe used NLP techniques to compute article similarities and categorise those articles.

Augment Intelligence with Graph Power

In Ralf Becher‘s latest blog post, he shows us to build a graph based business intelligence dashboard using Neo4j Graph Algorithms and Qlik.

Graph Algorithms in Practice: Eigenvector Centrality, Cosine Similarity

We have a couple of posts showing how to use a couple of the algorithms in the Neo4j Graph Algorithms Library.

Tomaz Bratanic analyses the Subreddit hyperlink network using Eigenvector Centrality. He also does a deep dive into how the projected graph model of the graph algorithms work, and explains how to use it for your own analysis.

Mike Palei wanted to compute the Cosine Similarity between a given node and all other nodes in the graph, and explains how to use the Cosine Similarity function to do this.

Releases: Elixir Driver, Foreign data wrapper for Postgresql, APOC

    • Version 1.5 of BoltSips, the Neo4j Driver for Elixir, was released this week, and is available from This is a comprehensive release, containing support for Bolt v1, v2 and v3.
    • Benoît Simard released neo4j-fdw, a foreign data wrapper for Postgresql. It can be used to access data stored into Neo4j from Postgresql, or you can directly write a cypher query in your select.
    • Michael released a new version of the APOC library. This release has lots of new features, including an automatic UUID handler configurable by label, Excel export functionality, and new functions for checking relationship existence. Lju also created a video showing how to do conditional execution using the and procedures.

Case Study: Password Analysis with BloodHound

Christopher Maddalena has written a case study, in which he explained how the SpecterOps team used BloodHound to assist with an analysis of password hashes from two different domains.

Tweet of the Week

My favourite tweet this week was by Noemi Derzsy:

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

That’s all for this week. Have a great weekend!

Cheers, Mark