Friday, September 5, 2008

Flare gets DDV

I have learned much from the work Stuart Card and Jeffrey Heer. It was their research on graph layout algorithms that made possible the modularization of graphing capabilities in software. Heer's premier software implementation of this research is Prefuse. Computer Science taught us Graph Theory and the structure, manipulation, and traversal of nodes and edges. Prefuse taught us Radial Tree, Force-directed Graph, and Degree-of-Interest Tree. And Prefuse is excellent not just because it good at graphics and layouts but because it is also document-driven, i.e., it runs on XML. Sure, there's a Java API, and that's probably what most developers focus on. But the fact that it parses XML, that it recognizes a vocabulary and language for visualization, and that this language can be expressed as documents is what I think makes Prefuse special.

After Prefuse came Flare. Flare is a wonderful application of prefuse ported to ActionScript.

Flare really gets document-driven visualization. I was just browsing through the source when I unfolded the data/converters package:


See also (emphases added by me):


ClassDescription

ConvertersFactory class for looking up the appropriate IDataConverter for a given data format.

DelimitedTextConverterConverts data between delimited text (e.g., tab delimited) and flare DataSet instances.

GraphMLConverterConverts data between GraphML markup and flare DataSet instances.

JSONConverterConverts data between JSON (JavaScript Object Notation) strings and flare DataSet instances.
This is certainly familiar.