Gordon Woodhull
softs, etc.


Dinograph is experimental software for browsing huge graphs by looking at a small area of the graph and then exploring outward. It utilizes a search language which is itself a graph language, making it easy to edit using Dynagraph.

For example, you might want to start at a node, then expand the view to include all its connected edges and nodes, then expand the view at another node, and so on.

The problem is that this quickly leads to very big views, and becomes difficult to read, and slow for Dynagraph to draw.

The next obvious step is to let parts of the graph disappear if they haven't been looked at for a long time. So, let it collapse a node's neighborhood if the node isn't one of the last 10 clicked. Also, certain important areas of the graph must always be shown, and must stay connected to the current area of exploration...

I have written a search language and graph server for this kind of exploration. Unfortunately, as with cleaning one's room, the mess often has to get a lot worse before it gets better. The actual query language is too difficult to use: right now all you get is a cryptic program for writing queries in the graph language and running them.

When I showed the software to Stephen and Emden, they were aghast at how much work it takes to write a simple query, and at all of the confusing "graph query program graphs"* that fill almost half of the browser!

These days I am working with the Dyna group at Johns Hopkins University on a visualizer/debugger for their dynamic programming language. I think their approach to large graph browsing is much more general than what I described above. Stay tuned!

* Naming things is also a serious problem in computer science.