This Week in Neo4j – 11 March 2017

Developer Relations Engineer
6 min read

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.
But first:
International Women’s Day
Praveena and Eve answering questions at the Neo4j booth
On Wednesday 8th March Neo4j sponsored opens in new tabTech (K)now Day – a mini conference hosted by opens in new tabSkillsmatter for International Women’s Day.There were a variety of different talks and workshops including a Neo4j one run by opens in new tabEve Bright, opens in new tabPraveena Fernandes, and me. Attendees had the chance to explore opens in new tabBuzzfeed’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 opens in new tabTrumpWorld Neo4j sandbox.
There were a number of updates pushed to the TrumpWorld-Graph repository and opens in new tabWill 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!
The drivers team have released the first versions of the 1.2 series for the opens in new tabJava and opens in new tab.NET driver. The opens in new tabPython one is planned for next week. The Javascript driver will follow two weeks later.
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 opens in new tabrelease notes.
New release of APOC – lots of goodies to play with
Activity on the APOC project
The opens in new tabAPOC 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 opens in new tabNeo4j 3.2.0-alpha06, opens in new tabNeo4j 3.1.2, and opens in new tabNeo4j 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 opens in new tab3.2.0.1 (for Neo4j 3.2.0-alpha06), opens in new tab3.1.2.5 (Neo4j 3.1.2), and opens in new tab3.1.0.4 (Neo4j 3.1.1).
If you try any of these releases, let us know how you get on by dropping us an email devrel@neo4j.com.
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 opens in new tabweb browsers could pre-render the next page a user might visit if they could predict what that page might be. He’s now created opens in new tabSirko 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 opens in new tabused 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 opens in new tabNeo4j 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 opens in new tabAPOC’s JDBC procedure.
- Tomasz Bratanic wrote a blog post explaining how to opens in new tabconnect 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.
- opens in new tabMarkus Harrer shows how to opens in new tabcombine 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.
- opens in new tabGabriel de Maeztu created opens in new tabneo4jupyter which makes it really easy to visualise Neo4j queries in a opens in new tabJupyter notebook. It uses the popular opens in new tabvis.js library under the covers.
- Miro Marchi wrote about opens in new tabthe 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.
- opens in new tabSamathy Barratt shared the slides from her opens in new tabadventure into graph databases with Neo4j talk that we covered last week.
- Cristina Escalante demonstrated how to use the recently released opens in new tabMicrosoft Concept Graph with Neo4j in this interesting post. She previously published opens in new tabtutorials for developing a Movie App using React and Javascript and Python(Flask) backends.
- Connecting Apache Zeppelin to Neo4j has been written about in the past, and this week opens in new tabKaushik 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 opens in new tabGitHub Gist. This follows on from his tips for opens in new tabefficient bulk updates using Cypher that we featured last week.
- Michael also created opens in new tabThe 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, opens in new tabspiced up the QlikSense Neo4j Dashboard coloring with CodeMirror.
- For his Graphistania Podcast, Rik van Bruggen opens in new tabinterviewed 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 opens in new tabCarlos Justiniano will be giving a talk titled opens in new tabNoSQL 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 opens in new tabpresenting 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 opens in new tabJohannes Unterstein will be showing how he created opens in new tabthe 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 opens in new tabwhat’s happening locally in your area.