Effective Graph Visualisations: Virtual Relationships

· 3 min read

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:

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

Visualisation

But if you are Sequoia capital, your visualisation experience will likely be less pleasant.

Visualisation

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

Visualisation

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:

Visualisation

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.

Visualisation

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.”

Visualisation

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)

Visualisation

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 ;)

Christophe Willemsen

Technology & Infrastructure | Neo4j certification

Christophe Willemsen brings almost 15 years of experience as a Communication Systems Engineer for the Belgian Navy to the table. Highly skilled in software engineering, he is one of the primary authors of Hume and an active participant in the Neo4j community, dedicating his efforts towards driving the development of cutting-edge technologies in the field.