Running algorithms on GraphViews

Both graphwide and node centric algorithms can be run on GraphView. This allows us to see how results change over time, run algorithms on subsets of the layers, or remove specific nodes from the graph to see the impact this has.

To demonstrate this, the following example shows how you could track Gandalf's importance over the course of the story using rolling() windows and the pagerank algorithm.

Within each windowed graph we use the NodeState api to extract Gandalf's score and record it alongside the earliest timestamp in the window, which can then be plotted via matplotlib.

Gandalf's importance over time