Graphviz
Just played a bit with graphviz and made some simple graphs. Graphviz is an open source suite of programs for generating graph diagrams from a number of text formats, the simplest of which is the dot format.
Dot format is a simple language that is used to describe the graph that will be generated. Here I created a very simple directed graph (that’s a graph with arrows) using login ids for some friends on Twitter:
digraph G {
a2c -> IanMLewis -> Voluntas;
a2c -> jbking -> IanMLewis;
}
Essentially the parser will look over all of the strings of text and create a node for each unique string. It then links the nodes that were linked together in the text. Here IanMLewis shows up twice but only one node is created and it’s linked to twice, by jbking and a2c.
So you can generate the graph image for this by running one of a few command line tools. Each one generates graphs in different styles. The dot tool, generates a graph in a linear fashion based on what unique node names it sees first. I generated the following diagram with this command:
dot -Tgif test.dot -o out.gif
neato is another tool which will generate a diagram from the same file but it generates it a bit differently. Instead of a directional diagram it tries to generate a graph with the least energy configuration. That is to say, it chooses a relatively pleasing arrangement for the graph.
neato -Tgif test.dot -o out2.gif
It essentially looks like the area where graphviz would be most useful is for mashups with other applications where you would generate graphviz dot formatted files based on some data from the application. One example application listed on the website is generating diagrams from sourcecode automatically using doxygen. Others might include dynamically generating network diagrams.