This Week in Neo4j – GraphConnect Keynote, Graphs4Good, APOC and Graph Algos Releases


Welcome to this week in Neo4j where we round up what’s been happening in the world of graph databases in the last 7 days.

This week we have the GraphConnect 2018 opening keynote, releases of APOC and Graph Algorithms, Certificates with Let’sEncrypt, Graphs4Good, and more


This week’s featured community member is Lauren Shin, Student at UC Berkeley and Developer Relations Intern at Neo4j.

Lauren Shin - This Week’s Featured Community Member

Lauren Shin – This Week’s Featured Community Member

Lauren worked in our Developer Relations team during the summer of 2018 and focused on making it easier for people to integrate Neo4j in their Machine Learning pipelines.

Lauren implemented procedures for several machine learning algorithms, all of which are available in the ml-models library.

Lauren also wrote several popular blog posts describing her approach: Graphs and ML: Linear Regression, Graphs and ML: Remembering Models, and Graphs and ML: Multiple Linear Regression. She presented her work in a widely acclaimed GraphConnect talk this week – we’ll feature that in a future TWIN4j as soon as the videos are published.

On behalf of the Neo4j community, thanks for all your work Lauren!

GraphConnect 2018 Keynote: Hilary Mason and Emil Eifrem


Hilary Mason and Emil Eifrem presented the opening keynote at GraphConnect 2018 on Thursday morning.



Emil presented the state of the graph databases union, before handing over to Philip Rathle to talk about the new features coming up in Neo4j 3.5 – multi clustering, 3D Geo-Spatial, Full Text Search, and more!

In the 2nd part of the keynote Hilary gave a talk about Machine Learning and Artificial Intelligence, including lots of different examples of how these tools allow us to solve new problems.

APOC Release – Custom Procedures, Web Scraping, Refreshed Docs


Just in time for GraphConnect, Michael released version 3.4.0.3 of the popular APOC library.

This release has support for defining custom procedures and functions implemented in plain Cypher and then calling them like regular ones, as well as a new procedure for scraping web pages – I look forward to giving that one a try!

The warmup procedure has been rewritten to allow warm up of index files, and date formatting now supports named formats – a feature inspired by Elastic.

On top of all these features we’ve also done an extensive update of the documentation so now it should be even easier to find the procedure or function to solve your problem!

If you’re using the Neo4j Desktop the new version will automatically be available for download in there. If not you can download it from the link below.

Graphs4Good, Let’s Encrypt, Knowledge Graphs, GraphConnect Slides


    • On Thursday Emil announced Graphs4Good, a new program that aims to showcase – and then support, encourage and connect others to – graph-powered projects that affect positive social change, uphold democratic principles and take on some of the world’s toughest challenges.
    • David Allen has written a blog post in which he shows how to setup valid SSL to protect data in transit using Let’sEncrypt, a popular free certificate authority.
    • Max De Marzi has written a blog post about the multiple-origin-multiple-destination (MOMD), and how to solve a simpler version of it using dictionary coding. If you’re interesting in searching across Knowledge Graph you’ll enjoy this post.
    • Matt Casters shared the slides from his GraphConnect talk: Kettle for Neo4j – Integrating Relational, Big Data, and other sources into Neo4j.
    • Michael Zelenetz also shared the slides from his GraphConnect talk: Graphing Space and Time.

Graph Algos Release – Similarity Functions, Balanced Triads, Louvain Phase 2


We also released a new version of the Graph Algorithms library.

In this release we’ve added support for calculating similarity between nodes with the Jaccard Similarity, Cosine Similarity, and Euclidean Distance algorithms. Each of these algorithms is available as a function if you want to run it on small datasets, or as a procedure if you want to run parallel computation across a bigger dataset.

Our Louvain implementation now has support for the 2nd phase of the algorithm. This means that the Louvain algorithm will not only return the final cluster that each node belongs to, but also its intermediate ones as well. This is very handy for understanding subtle smaller communities that may exist in your data.

Finally we’ve added a procedure for calculating Balanced Triads. I need to give this one a try on Jim Webber’s favourite Allies and Enemies World War I graph!

If you’re using the Neo4j Desktop the new version will automatically be available for download in there. If not you can download it from the link below.

Talking Kotlin: Michael Hunger


This week Michael Hunger was interviewed on the Talking Kotlin podcast.

Michael and Hadi warm up with a conversation about getting children into programming and the merits of Kotlin as a starter programming language before moving onto graph databases.

Michael explains how he got into graphs, gives an introduction to the property graph model, and describes the types of queries that work well on graph databases. In the second half of the interview Michael talks about his work integrating Neo4j with both GraphQL and Kotlin.

Next Week


What’s happening next week in the world of graph databases?

Date Title Group

September 27th 2018

RECAP GraphConnect 2018

Philly GraphDB

Tweet of the Week


My favourite tweet this week was by Travis Henning:

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

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

Cheers, Mark