This blog post is the first part in a series on Effective Graph Visualisations, showcasing features emerging from years of experience in the field.
Virtual Relationships: What and Why?
Unlike in other storages, graph databases are making indirect relationships evident and often more important than direct relationships.
From a visualisation perspective, implicit relationships might not be so easy to discover as the amount of direct relationships will often be the first obstacle analysts will encounter when performing their job.
To illustrate this obstacle, we will use a graph having the following schema:
An analyst will be interested in figuring out which articles mention organisations of his portfolio of investments.
Based on the schema, the analyst will likely go into a sequence of steps being:
- Search for an investor
- Expand the INVESTED relationships
- From the returned Organization nodes, optionally expand the ACQUIRED relationships
- Select all Organization nodes
- Expand the MENTIONS relationships
It isn’t a tedious process if your portfolio contains only two Organizations
But if you are Sequoia capital, your visualisation experience will likely be less pleasant.
An ideal solution to the exploration experience issue would be to have a direct link between Sequoia capital and the articles mentioning organizations in its portfolio. That said, it would be impractical to materialise this during data ingestion, especially if you need to serve not one but many use cases like the one above.
Virtual Relationships were born to solve this particular problem and have been implemented in Hume since version 2.8.
Creating Virtual Relationships
Nowhere you’ll find a more pleasant way to express virtual relationships than in Hume.
In the Perspectives editor, draw a relationship between two classes and give it a name, for example, RELEVANT_ARTICLE from an Investor and an Article
Once done, you just need to select the paths that will express how to traverse in order to build this virtual relationship. We have two possible paths here:
(Investor)-[:INVESTED]->(Organization)<-[:MENTIONS]-(Article)
(Investor)-[:INVESTED]->(Organization)-[:ACQUIRED]->(Organization)<-[:MENTIONS]-(Article)
As you will see, the process cannot be simpler:
Traversing Virtual Relationships
We saw previously that creating virtual relationships in Hume is human friendly but traversing them is even easier.
Now automatically, virtual relationships can be expanded selectively from a right click on an Investor node and will immediately return the right insights to the user.
Analysts also have the ability to inspect why a virtual relationship has been created, which can be summarised as “show the concrete relationships that form this virtual one.”
Handling Complex Patterns
Complex patterns can be expressed by switching from the no-code mode to the Cypher mode for the expression of the pattern. Here we extended the schema with the Keyword class, and we’re finding potential competitors based on the keywords in common in the articles in the paths, keywords having a high relevance (> 0.5)
Might you have guessed?
Suppose you’re already a Hume user and spotted that virtual relationships are described in Perspectives. In that case, you might have guessed – yes, virtual relationships combined with the Perspectives role-based access control allow to offer different virtual views on the same data to other groups of users, and that’s how 360 degrees Insights can be delivered.
Summary
Virtual Relationships ease the exploration and analysis experience in graph visualisations, offering shortcuts to indirect relationships and tailored views of the same data to serve different purposes.
Want to try Hume? Contact us at info@graphaware.com or request a demo right away 😉