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.
Cheers,
Michael
Featured Community Member: Ghlen Nagels
This week’s featured community member is Ghlen Nagels.
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 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.
-
project dependencies
-
folders & files
-
types
-
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
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
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 Arrows.app 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
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
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
- A number of Neo4j releases happened this week: 3.5.29 / 4.0.12 / 4.1.10 / 4.2.9 / 4.3.2
- Bloom 1.7.0 with auto-perspectives, performance improvements and 4.3 updates
- Neo4j/GraphQl 1.1.0 with top-level @cypher projections and several bugfixes
- Graph Data Science Library 1.6.2 with several bugfixes came out
- The Python driver 4.3.2 has been released!
- A new version of the Neo4j Driver for Go, version 4.3.2, is now available
- A new version of Neo4j Driver for Java, version 4.3.3, is now available
- Software Analytics tool jQAssistant 1.10.0 was released with some cool features like concept extensions, support for Generics, and a Jupyter Docker image with custom analysis notebooks
- Florent Biville released the final version of liquigraph, which is superseded by the real liquibase extension for Neo4j
Links of the week
- In part 3 of her Cypher Sleuthing series, Jennifer Reif dives into datetime-components, precisions, and durations
- Michael Simons gives us a sneak peak into a Twitter thread deploying a Quarkus GraphQL app that uses Neo4j and CypherDSL to Heroku. Looking forward to the blog post.
- Amy Hodler published an article about using graph databases in human capital management
- The current GraphStuff.FM podcast episode covers in audio some of the recent hot topics in the Neo4j world
- The recording for last week’s #3Hx session “3H10 – Apache Hop and Neo4j” is available, all you need for a ETL infrastructure that supports Neo4j as top-notch integration
- Paras Bansal wrote an article about Neo4j data processing with springboot where he shows how to use the plain driver with Cypher queries
- SpringML published an article explaining which problems a Graph Database solves
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.
My mind is absolutely blown!!!
— CJLovesData (@CJLovesData1) July 1, 2021
This morning is discovered that #GitHubCopilot can write the code for you to connect to a #Neo4j and also will write the Cypher queries for you, just based on a single comment line! Check this out! https://t.co/ptXQ6YGZb9
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.
Let's kick off with this talk from 2009, in which @emileifrem & @adamskogman explain NOSQL, a new generation of agile, scalable and high-performance databases without knowing Neo4j would raise the largest funding round in database history 12 years later ? https://t.co/A6KAPY3bQN pic.twitter.com/JgQzPNyBAE
— Øredev (@oredev) July 7, 2021
Don’t forget to RT if you liked it too!