By Mark Needham, Developer Relations Engineer | March 11, 2017
Welcome to this week in Neo4j.
This week we’ve got articles showing how to integrate Neo4j with Kibana, using jQAssistant from Pandas, and lots of releases of Neo4j and related projects.
International Women’s Day
Praveena and Eve answering questions at the Neo4j boothOn Wednesday 8th March Neo4j sponsored Tech (K)now Day – a mini conference hosted by Skillsmatter for International Women’s Day.
There were a variety of different talks and workshops including a Neo4j one run by Eve Bright, Praveena Fernandes, and me. Attendees had the chance to explore Buzzfeed’s TrumpWorld dataset and learn Neo4j in the process.
The next day we ran a similar workshop for people interested in journalism at journocoders in London. If you’d like to get your hands on the dataset, you can get up and running in a few minutes with your own TrumpWorld Neo4j sandbox.
There were a number of updates pushed to the TrumpWorld-Graph repository and Will Lyon released updated data and a browser guide for campaign financing in 2016 for his NICAR workshop.
New releases of Neo4j and Neo4j Drivers
It’s been a busy week for releases!
This release has removed some boilerplate code and introduce retry logic based on encapsulated “unit of work” operations. We released Neo4j 3.2.0 ALPHA06 as part of the early release program. This version contained some Windows fixes and supporting for whitelisting procedures. For all changes see the release notes.
New release of APOC – lots of goodies to play with
Activity on the APOC projectThe APOC community have been busy as well. This week has seen the most commits since the surge in May/June 2016 when a lot of procedures were added.
There have been releases of APOC that are compatible with Neo4j 3.2.0-alpha06, Neo4j 3.1.2, and Neo4j 3.0.8. The documentation was also updated and is now available for each version.
Included in these releases are new date functions, a couple of cool new procedures for working with paths, as well as new functions for working with collections. Notable improvements in apoc.periodic.iterate allow now much faster operations and retries. Manual free-text indexes can now be kept up to date and the expire(TTL) functionality got more robust.
You can read full release notes for 220.127.116.11 (for Neo4j 3.2.0-alpha06), 18.104.22.168 (Neo4j 3.1.2), and 22.214.171.124 (Neo4j 3.1.1).
If you try any of these releases, let us know how you get on by dropping us an email firstname.lastname@example.org.
The Neo4j Grails plugin saw its 6.0.9 and 6.1.0-RC1 releases and our partner GraphAware published the 1.0.0-RC1 version of the new Neo4j-PHP-OGM.
Analysing Web Traffic with Neo4j
In September 2016 Dmitriy Nesteryuk wrote an article explaining how web browsers could pre-render the next page a user might visit if they could predict what that page might be. He’s now created Sirko Engine which does this prediction in Neo4j.
I think searching for user journeys through web sites is a fascinating use of Neo4j and Dmitriy’s project reminded me about a blog post written by Nick Dingwell of Snowplow Analytics and how they’d used Neo4j to run path analysis on their own website.
Connecting Neo4j to Kibana, analysing source code with jQAssistant/Pandas, and more
In other news:
- Brock Tibert created a Neo4j Docker image that also includes APOC and JDBC drivers. This looks like a good place to start if you want to import relational data into the graph using APOC’s JDBC procedure.
- Tomasz Bratanic wrote a blog post explaining how to connect Neo4j to Elastic using APOC so that he could visualise geographical data using Kibana. In a second post, he showed a really cool combination of APOC triggers with apoc.load.json to enrich data created in the graph with information from the Google Knowledge Graph.
- Markus Harrer shows how to combine jQAssistant and Python’s Pandas library to check how many getters and setters a code base has. I didn’t realise it was so easy to go from a Neo4j query to Pandas data frame – this looks really cool for doing data science work.
- Gabriel de Maeztu created neo4jupyter which makes it really easy to visualise Neo4j queries in a Jupyter notebook. It uses the popular vis.js library under the covers.
- Miro Marchi wrote about the NOT recommendation: breaking free from similarity segregation with Neo4j, in which he discusses recommender systems and the importance of sometimes recommending something outside of the user’s usual preferences. Graph theory and the strength of weak ties comes in handy for breaking out of the similarity trap.
- Rob Schoening released mercator – a tool for analysing physical, virtual and cloud infrastructure. There’s also a docker image that will scan your AWS infrastructure and build a graph from it.
- Samathy Barratt shared the slides from her adventure into graph databases with Neo4j talk that we covered last week.
- Connecting Apache Zeppelin to Neo4j has been written about in the past, and this week Kaushik Chatterjee shows how to do it with d3. A full Zeppelin-Neo4j connector is being developed by Andrea Santurbano. You can follow his work in this pull-request.
- Michael Hunger started a collection of useful Cypher tips and queries in this GitHub Gist. This follows on from his tips for efficient bulk updates using Cypher that we featured last week.
- Michael also created The Oscars Graph, starting from a Kaggle (now Google) dataset and loading it into Neo4j.
- Jose Chavez had the fun idea of mapping his wardrobe combinations in a graph to help him chose a good outfit each day.
- Ralf Becher, who created the Neo4j Tableau integration, spiced up the QlikSense Neo4j Dashboard coloring with CodeMirror.
- For his Graphistania Podcast, Rik van Bruggen interviewed Kristof van Tomme about integrating CMS platforms like Drupal with Neo4j, e.g. for article recommendations or organizing knowledge. Kristof’s colleague Tamasz created a Drupal connector to Neo4j which is extendable with Drupal rules and can also record a users journey. They will run a workshop about Neo4j and Drupal at the end of March at Drupal Developer Days in Seville,Spain.
- Eric Lagergren created an interesting intermediary library called neograph that auto-generates and runs Cypher queries from protobuf/json definitions.
So what’s there to look forward to in the world of graphs next week?
- On Wednesday, March 15, 2017 Carlos Justiniano will be giving a talk titled NoSQL rows, columns, documents? How about graphs? at the NYC Node meetup in Manhattan.
- On Thursday, March 16, 2017 Mike Morley and Dave Bennett will be presenting at the Calgary Neo4j Graph Meetup. They have some seriously cool stuff to show.
- Also on Thursday at 17.00 UTC be there for the next Neo4j Online Meetup where Mesosphere’s Johannes Unterstein will be showing how he created the Neo4j package for Universe and how you can scale a Neo4j cluster with Marathon on DC/OS.
- If you’re like us and can’t get enough of Neo4j, check out what’s happening locally in your area.
About the Author
Mark Needham, Developer Relations Engineer
Mark Needham is a graph advocate and developer relations engineer for Neo Technology, the company behind the Neo4j graph database.
As a developer relations engineer, Mark helps users embrace graph data and Neo4j, building sophisticated solutions to challenging data problems. Mark previously worked in engineering on the clustering team, helping to build the Causal Clustering feature released in Neo4j 3.1. Mark writes about his experiences of being a graphista on a popular blog at markhneedham.com. He tweets at @markhneedham.
From the CEO
Have a Graph Question?
Reach out and connect with the Neo4j staff.Stackoverflow
Share your Graph Story?
Email us: email@example.com