I want (and may try to create an outliner that will concurrently render
graphs of the outlines (visualized as I'd like them to be
visualized)
This led me to re-explore what's out there in the way of outliners, visualizers etc.
There are interesting new packages out there. see http://tikiwiki.org/directory57
Compendium-TA's feature list has most of what I want, but its a windows -only package.
AiSee is an impressively powerful commercial closed-source graph visualization program that seems to work.
Tintfu is a front end to a graphviz server. (Thanks to the Matt Payne for his help.)
GraphOpt is an impressive-sounding and fast-loading visualizer that is said to handle large graphs well ...
 |
|
...but I can't get it to work. The layout approach is interesting and interestingly described:
Each node is given mass and an electric charge, and each edge is represented
as a spring. Node mass, electric charge, optimal spring length, and the spring
constant are tweakable in the gui in realtime.
For most graphs, this is all that is needed - hit 'go' and the graph organizes
itself much as the analagous real-life system would if constrained to two
dimensions. For more complex graphs, some fiddling with the physical
parameters at different stages of optimization usually does the trick.
To accomodate very large graphs, an additional mechanism called layering was
added. When a graph is loaded, nodes are assigned to layers based on their
relative positions. During optimization, you can choose to hide any number of
layers. Any nodes assigned to a layer lower than the selected layer are not
only hidden, but neither their electric charges nor the forces of the springs
attached to them are figured into the forces acting on the visible nodes. In
effect, those nodes cease to exist, and a smaller graph is allowed to lay
itself out without being constrained by an excessive number of nodes.
Layers are assigned iteratively until all nodes belong to a layer. In each
pass, all leaf nodes are assigned to the current layer. If there are no leaf
nodes, then nodes that point to only one other node are taken. If there are
no nodes that point to only one other node, nodes that point to only two other
nodes are taken (and so on...).
And I have finally found a python-extensible, outlining editor that I might build upon: JEdit with jython plugin.
It takes forever to load (I may have gotten greedy installing plugins) but seems to have real promise.
6:39:49 PM
|
|