axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] touchgraph, hypertex, hypergraph


From: Bill Page
Subject: [Axiom-developer] touchgraph, hypertex, hypergraph
Date: Thu, 20 Jan 2005 00:52:43 -0500

Tim,

On Wednesday, January 19, 2005 11:53 PM you wrote:
> 
> I've downloaded the TouchGraph software. 
> I want to use it to browse the hypertex pages pile.

What are you planning to use as a browser? Unless radically
modified, the TouchGraph program expects to run as an applet
within a web browser.

> I'm in the process of rewriting the pages and it would
> be great to have an overview.

I have a feeling you are not going to find this as easy as you
would like. One simple way maybe would be if you can find a
way to load the hypertex pages themselves onto MathAction.
You would have to do some conversion of the links between
pages because the syntax wont correspond to what Zwiki/LatexWiki
is going to expect by maybe the LaTeX code in the pages could
be rendered in a viewable manner.

> 
> How do I feed this thing data for the graph? 
> There are no docs, just java source.
> 

I agree that documentation for TouchGraph is really sketchy
and I didn't find it of much use.  There are more complaints
on the web about the poor quality of the documentation for
TouchGraph then there is documentation. Luckily there was a
fairly easy recipe for using TouchGraph with ZWiki written by
the developers of the "LiverWiki" web site. But it tells you
very little about how it works. The tweaks that I did to it
were all quite limited.

One thing that I did look at though was the Python code which
runs under Zope to produce the graph layout data. It is called
by XMLRPC (XML remote procedure call) which is one of the
standard protocols that Zope supports. The data is returned to
the java applet in a TouchGraph-specific XML format.

If you want, I can find this code and send it to you. But a
warning: decoding everything you need to run TouchGraph on
it's own is not likely to be easy. And the web site information
for the original developers of TouchGraph doesn't seem to have
been updated since 2002, so I am not sure how easy it would
be to find help on the web. There was some serious discussion
about TouchGraph at

http://tikiwiki.org

Try searching for "touchgraph".

----------

There is another project called HyperGraph that is quite similar
to TouchGraph but uses a hyperbolic layout. See

http://hypergraph.sourceforge.net

You might find it more useful for your purposes and a little
better documented. HyperGraph uses a standard graph file format
called GraphXML. Yes, it is another XML based standard! :) But it
is quite simple.

I played with HyperGraph recently in yet another attempt to draw
the Axiom algebra dependency graph. It works for simple graphs
like this:

http://page.axiom-developer.org/algebra/my-graph.html

But when I gave it the full 1300 node graph, what it drew was
a graph so dense that all the edges overlapped into something
that looked just like a big ball of wool and the program took
a very long time to redraw the graph if you even touched it
anywhere - even on the 3.2 GHz machine I was using for the
test. If you are adventuresome and have a fast computer you
can try (not recommended):

http://page.axiom-developer.org/algebra/index.html

Clearly in order to draw the Axiom algebra graph, we are going
to have to do it in some hierarchical manner but hopefuly one
that can be computed from the structure of the graph - not
imposed manually like the current layers in the Axiom makefiles.
Some day real soon now I hope to find a source for some cookbook
graph theory programs what can manipulate graphs of this size,
find strongly connected component, prune redundant edges, etc.

--------

The "my-graph" input file looks like this

http://page.axiom-developer.org/algebra/my-graph.xml

<?xml version="1.0"?>
<!DOCTYPE GraphXML SYSTEM "GraphXML.dtd">
<GraphXML>
<graph id="My First Graph" directed="1">

<!-- Here come your nodes -->
<node name="node1">
<label>node 1</label>
</node>

<node name="node2">
<label>node 2</label>
</node>
<node name="a">
    <label>a</label>
</node>
<node name="b">
    <label>b</label>
</node>
<node name="c">
    <label>c</label>
</node>
<!-- Here come the edges -->
<edge source="a" target="b" />
<edge source="a" target="c" />
<edge source="node1" target="node2" />
<edge source="c" target="a" />
<edge source="node1" target="a" />
</graph>
</GraphXML>

----------

You can add hyperlinks, colors etc. as XML attributes.

Here is the graph data for the Axiom algebra (2.2 Mb)

http://page.axiom-developer.org/algebra/algebra.xml

Regards,
Bill Page.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]