About a year ago, I first logged into Hume - in the morning, I had started my new job at GraphAware, and a few hours later, I had a canvas in front of me with a few person nodes connected by relationships. Hume Visualisation. The graph: a murder mystery. Me: a newbie, never typed a line of code in any query language.
My eyes went all over the screen - “how can I make this thing work?” - and got stopped on the right-hand side, where a sidebar was labelled with “ACTIONS.” “Well,” I thought, “Action is just what I need now,” and opened the side panel. And there it was. A list of _Actions. _Possible explorations of the graph and questions formed as queries to be shot against the Neo4j database to return results to this canvas of mine. I don’t remember how much time passed if days went by and seasons changed. What I remember is that I was all of a sudden captivated and did not leave the canvas for a long time. Action after Action and new information surfaced on the canvas. I could investigate a murder mystery that I knew very little about simply by asking the questions that were ready for me to use in the form of Actions.
The Actions had been prepared by a colleague that was savvy in Cypher. Cypher is a graph query language that allows you to construct expressive and efficient queries to do any kind of create, read, update, or delete (CRUD) on a graph. Combined with Actions, Cypher opens up many possible interactions with Neo4j data. Thanks to Hume’s concept of a Knowledge Graph, in which several people can collaborate on the same dataset using the same Actions, I was able to leverage my colleagues’ work.
This was the first time I used Actions in Hume and the start of a journey I did not anticipate on that first day of work at GraphAware. A few days later, I had my first call with one of our customers. A typical use case in which an extensive dataset has to be queried by analysts. The result of the query can be several thousand nodes. How could the analysts be expected to work their way through such a result in a Visualisation? Our customer pointed out that analysts’ time is as valuable as it is limited: they are highly specialized on a subject matter and work under time constraints posed by the fast-developing business needs around them.
To meet our customer’s concern, we opened up Hume Visualisation and showed how the result of an Action (or rather the query contained in an Action) could be displayed in the form of a preview. Instead of being confronted with many nodes and relationships, the analyst sees the results one by one and can flip through them. Those results that are relevant can be selected and added to the canvas. This way, the analyst can create a focused view on the query result and efficiently drill down into the relevant pieces of the result.
Our customer’s next issue was that some data could best be understood in diagrams or simple tables. Sometimes, analysts need to see specific properties of a node in a table view or see the data displayed in a chart. In these cases, it is important not to interrupt the current analysis flow by switching context, such as using a different tool. Despite the visualisation of the data not being “graphy” it needs to find space inside the graph visualisation. With Actions in Hume, analysts can see query results displayed as tables or charts directly on top of the graph canvas.
As the days went by and I became more and more familiar with my new job, and we started to refine the Hume roadmap (a perpetual exercise), Actions stayed one of the hottest topics. I soon realised that it is one of the most used features in Hume that delivers value to all of our customers, no matter in which line of business they are specialised in.
It is an excellent opportunity for a product manager to develop a highly used feature in line with customer requests and market trends. So when one of our customers contacted us to solve a very particular problem that their analysts faced, I was very excited to see how Actions could be used to solve it. The problem: Analysts uncover insights in one dataset that affects another dataset that lives in a different database. How can the analysts annotate the other dataset with the findings without interrupting the ongoing analysis and switching context?
For us the solution was easy: we created an Action that can read and write data from another Neo4j database, thus enabling analysts to work in one place but with direct access to several Neo4j resources, both to surface data (read) and to annotate data (write).
Not much time passed until our CTO, Christophe Willemsen sent me a video: Pac-Man chasing a car in the Hume Visualisation canvas. I laughed out loud, partly because it was funny, partially because Christophe had just completed the proof of concept for a problem many of our customers face: how can data changes be observed in real time? Christophe created an Action that refreshes its results automatically in a set interval, let’s say every 30 seconds. This way data changes can be tracked as they happen, developments can be followed, and we can see if Pac-Man catches up with the car.
At the beginning of the text, I mentioned that a Cypher-savvy person usually creates actions, often a user with administrator rights in Hume. We have spent a bit of time improving the user experience for those users in the last few months, and with Hume 2.11 they can define the visibility of Actions per Perspective in Hume, which enables them to tailor the exploration experience for analysts in a given Perspective.
We want to focus on users like me in the near future: despite working with Hume for about twelve months, I am still not good at Cypher, and I feel that it will stay that way. Many users of Hume share my skill set, and it is important to us to enable them to create their own Actions without knowledge of a query language. It will take us a bit of time to get there, but the Advanced Expand feature, which we released in Hume 2.11 is the first step on our journey. It enables me and all other Hume users to query the graph to any depth, traverse it and return answers to specific questions without writing a single line of code. When I lost track of time when I first used Hume I had no idea that this was to be a recurring thing. Since Advanced Expand has been available, I have often found myself submerged in a graph, entirely focused on an analysis path - in my zone without noticing a thing around me in the real world.