This objective of this project was to design and develop a visualization tool to represent relationships among different types of entities that evolve over time. Ok, oouf, very long complicated sentence. Let me try to explain you slowly.

Imagine you are a data journalist who is analyzing which politicians appeared together in the news, in which locations they were mentioned, with which organizations and in which dates. Each of these elements can be trated as an entity with a name and a type. If we consider France’s president, the entity that represents him would have the name “Emmanuel Macron” and be of type “person”. So, the dataset we are interested in analyzing in this case will have lots of entities of four possible types: “people”, “locations”, “organizations” and “time”.

Now, how we define relationships among these entities? Well, it depends on the context but in our case we can define that two (or more) entities participate in a relationship if they were mentioned together in a news article. Consider this news about the primaries of the ecologist party in France. We can define a relationship as the set of entities that appear in the article (I just considered the most important ones for the sake of the example): {“Sandrine Rousseau”, “Yannick Jadot “, “France”, “Ecologist parties”, “2019-09-24”}. We will have a set of relationships when we consider a bigger set of articles. Cool! We have all the ingredients from the first sentence of this blog post, let’s continue.

The dataset I just described can be modeled as Hypergraphs which are similar to normal graphs but whose links are called hyperedges and can contain many number of nodes. Therefore, we can say that our dataset of relationships can be modeled as a hypergraph in which each entity is a node and each relationship is a hyperedge. Hypergraphs are hard to visualize and there are not a lot of visualization that can do so in an effective way so we decided to design our own one.

We decided to use Storyline visualizations as inspiration. You don’t know Storylines visualizations? That’s ok, they are very simple. Have you ever seen the movie narrative charts from XKCD? The following image (taken from that webpage) shows the movie narrative of Jurassic Park.

Jurassic Park

In here, the horizontal axis represents time and each line represents a character that extends as long as the character is in the movie. In addition, lines come together when the characters interact together. Simple and pretty, right? Well, Storylines visualizations follow the same idea as they were inspired by this chart was the inspiration.

In the case of Hyperstorylines, each line represents an entity that evolves in the horizontal axis. Each hyperedge/relationship is represented as a rectangle that intersects all the people that are involved in it, as you see in the following image:

HyperStorylines base

Now, this image only shows people over time and we have other two types of entities that are not visible. How do we see the rest? Well, we can see a third type of entity that, that is nested, by clicking on a hyperedge/relationship to expand it as the image below:

HyperStorylines expand

Additionally, users can select which dimensions to see beyond just people and time. For example, the following image shows people as lines, locations in the horizontal axis and time as nested entities:

HyperStorylines dimensions

There are a lot of other cool stuff that users can do with HyperStorylines. If you would like to know more details, please refer to the publication associated:

This work was part of the iCoda Project in collaboration with Ouest France.