The 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 we are data journalists who are 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. For example, 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 (co-occurrence). 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 (for the sake of the example I just considered the most important ones): {“Sandrine Rousseau”, “Yannick Jadot “, “France”, “Ecologist parties”, “2019-09-24”}. If we consider a bigger set of articles we will have a set of relationships. In particular, as we have the dates of each article, we can try to analyze how these relationships evolve over time.

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. When we focus on the evolution of relationships over time we talk about dynamic hypergraphs.

We decided to use Storyline visualizations as inspiration. Storylines visualizations were inspired by the movie narrative charts by 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. In the case of Hyperstorylines, each line represents an entity that evolves in the horizontal axis. Each hyperedge/relationship is represented by a rectangle that intersects all the people that are part of it. In the following image, we have a small dataset with a relationships circled in red that includes Diane, Anna, Bruno, Irene, Harry, Eric and Carlos:

HyperStorylines base

This image only shows people over time but we have other two types of entities that are hidden and only visible on demand. To start, we 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 types of entities they want 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.