[ANN] GraphViz for Squeak

John Pierce john.raymond.pierce at gmail.com
Sat Mar 5 14:11:02 UTC 2005


> So I see in the GraphViz package that you are using the shell to call
> graphviz, it should be not difficult to port it for unix.

Exactly!  It is a "very thin" wrapper around the command-line graphviz
-- but even implementing a little facade like this really gives me the
feeling like I am working solely in Squeak (which I like).

> For the
> scaling, graphviz is more efficient to deal with thousands of nodes
> and edges since it's written in C, but we could imagine to write some
> plugins in C to have a more efficient rendering for the other types of
> layout.

Well, there really is only one scaling issue I'm worried about here. 
Certainly C can generate the graph of hundreds or thousands of nodes
and edges much faster -- not a big surprise nor a big problem for me.

What I'm really worried about is rendering the graph to the screen for
display and navigation.  I have been generating my GraphViz graphs to
"SVG" (scalable vector graph) format and using ZGRViewer (a free Java
program) to render and move in and around the graph.

So your graphing package -- does it only render to Morphic?  And how
could one navigate around a large graph?  Do you have a zoomable user
interface to handle such large graphs?

As for future direction and/or integration with your graph package I
could just shell out to GraphViz to generate the node and edge
placement and then post-process the XML output file and display the
output in Morphic as native widgets, but then I'd have to write a ZUI
(zoomable user interface) in Morphic and that's more than I can bite
off right now, but for small graphs it would work just fine.

> But as far as I understand, once the graph is displayed, you
> cannot interact with the nodes ? i.e change the layout dynamically,
> inspect the nodes, and so one...

Yes -- the only downside to using an opaque external system is that
the objects are not dynamic -- GraphViz generates just pictures.

Let me take a hard look at the Graphs package and see if it makes
sense to integrate my GraphViz module.

Regards,

John



More information about the Squeak-dev mailing list