Auto-detection of clusters in Graphviz *.gv files


I've released GraphViz2::Marpa::PathUtils V 1.01, which now offers an algorithm that performs auto-detection of clusters in Graphviz *.gv files, via the find_clusters() method.

Download, or read the docs at the usual place:


Peruse the demo.

The most complex input file I tested ran foul of a bug in Graphviz itself, which I've reported. I am using Graphviz V 2.26.3, and the bug has been kindly confirmed by Ryan Schimdt in 2.28.0 and 2.29.20121022.0445 on OS X. So, that image is not yet on the demo page.

Note: An option in the code allows outputting the resultant *.gv file, hence making it available for further processing, and the format of the (optional) output image (svg, png, ...) is also an option (which is passed to 'dot').

Note: Nodes and edges using ports are not yet supported.

Thanx to Ron Newman (on the Graphviz mailing list) for the suggestion to implement this (despite the complexity of the code I had to write :-).

Lastly, the previous algorithm in the module (in V 1.00), accessed via the find_fixed_length_paths() method, finds all paths of a given length starting from a given node. Demo output is included in the above URL.

Leave a comment

About Ron Savage

user-pic I try to write all code in Perl, but find I end up writing in bash, CSS, HTML, JS, and SQL, and doing database design, just to get anything done...