This Week in Neo4j – PHP Driver, Software Analytics, Chemical Patents, Streamlit TSNE, GraphQL Security, GitHub Copilot, Developer Tools, Nodes 2021

Hello, everyone!

Another week gone, and many of you had a long weekend and a short week. But impressively, a lot of content has been created these last few days.

Our featured member this week is Ghlen Nagels, the maintainer of the new PHP client library for Neo4j. We look at Clair’s Node Embedding Streamlit App, follow Dan through the Auth story of neo4j/graphql, check out what’s new with Developer Tools, look at the connections between Chemicals and Patent data, and explore .Net code with Neo4j.

I also highlight some releases that came out in the last few days and cover the Neo4j track of NODES 2021. And definitely watch how Clair Sullivan makes GitHub’s Copilot write Neo4j client code for her.

Hope you enjoy reading this week’s issue as much as I did putting it together.

If you want to discuss any of the topics, please join us on Neo4j Discord.


This week’s featured community member is Ghlen Nagels.

Ghlen Nagels - This Week’s Featured Community Member

Ghlen Nagels – This Week’s Featured Community Member

Ghlen lives in Kortrijk, Belgium and is the founder of the software consultancy “youngsource” and, even more interestingly, of the legal document search and management tool “Laudis.”

In the recent resurgence of interest for a PHP driver, he took it on to write a replacement for the discontinued GraphAware driver that’s built on top of Michael Stefanak’s “bolt” connector and the HTTP APIs. It offers a user-friendly API, as well as wrappers for the previous driver APIs. The client has been developed with help from the drivers team and supports features like transaction functions, typing with psalm, and more.

There is more to come in the neo4j-php github organization, including updated integrations for Laravel and Symfony. If you are using PHP with Neo4j, I would like to urge you to give the new driver a try and provide us with feedback.

You can read more in the blog post about the new PHP client release.

Thanks a lot, Ghlen, for helping to improve the lives of PHP users in the Neo4j community.

Visualizing Graph Embeddings with t-SNE in Python with Streamlit


Data Science Advocate Clair Sullivan combined two interesting things in this TowardsDataScience article. Using a Streamlit app to compute Node embeddings in Neo4j through the Graph Data Science Library and then visualizing them with an interactive t-SNE component is pretty cool.

With the built-in controls you can manipulate hyperparameter and other algorithm config options. Check out the code and app in the article, of course you can fork it and use it for your own purposes.

.Net Code Analysis with Neo4j

software analytics

Software Analytics with Neo4j was my first project 13 years and resulted in the development of jQAssistant, a software analytics platform based on Neo4j.

I was excited about Vlad Batushkov’s tool Strazh that uses the Roslyn compiler to generate a source code representation of .Net projects that then is imported into Neo4j.

He differentiates them into four layers of different granularities and purposes.

  1. project dependencies

  2. folders & files

  3. types

  4. method invocations

He explores how you can then query this graph model to get new insights into your code. Definitely a worthwhile read, even if you’re not working in .Net.

New and Noteworthy: Neo4j Developer Tools

browser home

In this article, Greg King summarizes the updates to Neo4j Browser and Desktop in the latest releases.

For Browser, those cover mostly usability improvements when working with Cypher editing and frame interactions in the result frames.

In Desktop, it is more about operations, from dump-support and safe-restart on Windows to better upgrade experience and improved log-viewers.

NODES 2021 Videos Neo4j Track

neo4j track

At GraphConnect, the Neo4j track often had standing room only. Hearing from Neo4j folks about cool features, tips, and tricks always filled the seats. That’s not different for NODES, where we had a dedicated track with nine talks.

We started with Priya Jacobs and Tom Geudens doing a fun introduction to Neo4j, followed by Darrel Warde looking at the history, present, and future of GraphQL with Neo4j. Then my team member Adam Cowley showed how we use Neo4j to learn about and improve the user experience on our developer pages. Being a Java/JVM person I really enjoyed Gerrit Meiers’ talk on using Neo4j from the Java ecosystem, from procedures to using the drivers all the way to Spring Data Neo4j.

Greg King demonstrated the powerful and cool new features in the Neo4j Developer Tools – Browser and Desktop. A-Team Alicia Frame and Amy Hodler took us on a whirlwind tour through the most recent releases of the Graph Data Science Library, which gets more impressive with each release.

Ivan Zoratti – with engineers Anton Persson and Valdemar Roxling – gave us a look under the hood of the brand new 4.3 release of Neo4j. Beloved by many users, the is perfect for drawing graphs for presentations and illustrations. Maintainers Alistair Jones and Irfan Nuri Karaca demonstrated many of the non-obvious features and capabilities.

And finally, my colleague Jennifer Reif puts her Cypher Sleuthing skills to work on topics like datetimes/durations, the CASE statement, and the notorious Eager operation and PROFILE/EXPLAIN – your best friends.

Securing Your Graph With Neo4j GraphQL

secure graphql

Dan Starns recaps his NODES 2021 talk with lots of code examples and details on scenarios for authentication and authorization in GraphQL. He discusses the challenges of Auth in GraphQl in general and how we approached it in neo4j/graphql, from authentication with JWT’s through a top-level mutation and handling the tokens in resolvers. For securing access to data, he demonstrated the automated handling of scopes, permissions using the @auth directive with coarse grained operations and fine grained conditionals, and even RBAC roles.

Definitely check out Dan’s post and talk recording. This is a really interesting and important area. Security should not be underestimated.

Visualizing Relationships Between Chemicals and Patent Data

chemical patents

This deep dive article by Aniruddha Chatterjee looks into mapping chemicals from patents using NER (entity recognition) into a Neo4j knowledge graph and querying them for recommendations for related patents and chemicals.

I can imagine quite a number of good applications for this data, especially if combined with life sciences and ecological sources, similar to drug-repurposing.

It uses data from iChemist claim search as a source.

Fresh off the Press – Releases

neo4j 432

Links of the week

amy hcm

Tweet(s) of the Week

My favorite tweet this week was by Clair Sullivan, showing off how GitHub’s Copilot will generate your Neo4j client code for you, including Cypher statements.

But I cannot skip the throwback to 2009 from Øredev, the developer conference in our home of Malmö, Sweden of one of Emil’s early presentations on Neo4j and graphs. That was 12 years ago – time really flies.

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