Hello,

looking for a python library for analyzing and visualizing dynamic graphs I

recently came across graph-tool which seems to be quite suitable for my

needs. But before getting into my remaining question I believe a big thank

you for Tiago Peixoto is in order: Thanks for all the work you put into this

library! And secondly I should preface with the disclaimer that I am neither

a computer scientist nor mathematician, but a humanities scholar currently

diving in to graph analysis and visualization for a project.

Quickly approaching the limits of Gephi (the Software most of my colleagues

turn to) for analyzing a large dynamic network I thought that I should give

graph-tool a try. I have a large data set of the evolution of categorization

on Wikipedia, i.e. data on when a category has been assigned to or removed

from all pages in Wikipedia. (On a side note: I am currently not aiming to

visualize the entire dataset, but the evolution of topics within Wikipedia)

I searched and read through most of the documentation of graph-tool and

graphml, but there is one thing I just cannot wrap my head around:

Is there a smart or default way of representing dynamic networks in

graph-tool?

I understand that graph tool-allows for adding and removing edges / vertices

dynamically, but is there a (recommended) way of storing the data on when an

edge or a vertice is created/removed/created again/removed again... directly

in the graph? And if not, how would you suggest to do that?

This question does not only relate to the visualization of the graph, but to

analyzing and comparing the graph at multiple ponints in time as well, i.e.

calculating graph_tool.topology.similarity(g1, g2, ...) for the graph at

time 1 and time 2. Of course, I could genrate two (or more) seperate graph

objects for t1 and t2. However, for me it would be more desirable to create

just one graph and to be able to calculate the graphs properties for certain

points in time. A possible solution I could imagine is to make use of

graph.views. But then again, how should I include the data for edge/vertice

creation or removal in a property map?

I suspect this is a question which does not have just one straight forward

answer, but I appreciate any suggestions, tips or links to where to find

more on this issue. And maybe I have even overlooked the solution in the

documentation... Sorry in advance for that.

Thanks a lot and all the best,

marcus