[Top][All Lists]

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

[Axiom-developer] RE: lattice drawing program

From: Page, Bill
Subject: [Axiom-developer] RE: lattice drawing program
Date: Tue, 20 Jul 2004 19:28:55 -0400


On Tuesday, July 13, 2004 8:14 AM you wrote:
> Remember the problem of drawing the algebra lattice?
> I've looked into it a bit more...

When you get a chance I would really appreciate your opinions
about my first attempts to draw and navigate through Axiom's
algebra lattice (actually, directed graph) using TouchGraph as
part of MathAction, the Axiom Wiki. It is sort of like the old
Axiom hyperdoc (only better, I think :) 

The graph is built automatically by the interface to TouchGraph
based on the Axiom Algebra Database. I hope to get some help
from other people to complete this Project to convert the
algebra pamphlet and spad files to AxiomWiki page format. The
conversion is not difficult but there are a lot of files, so
it is quite time consuming - as you so very well know Tim!

Anyway, so far I have only about 15 of the major Axiom
categories and a few domain. But already you can get a good
idea of how this might work.

Please take a look here:

This will start the Axiom wiki with a graphical "navigator" in
the top panel. Later you will probably want to increase the size
of the panel containing the graph. You can do this by positioning
the cursor just under the top horizontal slider bar until you
see the cursor change to a up-down arrow. Hold the left mouse
button down and drag the border down to make the top panel bigger.

Double-clicking on a node of the graph in the upper panel will
cause the contents of the lower panel to change. You can also use
a "right-click" on the node to hide, expand, re-center etc. the
node. You can click-and-hold a node to drag it to another part
of the panel. The graph will respond like a network of springs
with the edges stretching and then relaxing into a new shape.
Clicking and holding somewhere else on the upper panel other
than a node will "drag" the whole graph up-down or left right
so that you can pan into a new area. The slider bar at the
bottom of the top panel changes the scale. It takes a little
practice to play with this, but it is rather fun!

Now do a search for say, 'semigroup' by typing that word in the
box at the to right of the lower panel. Pressing Enter will
perform a search for any pages contain the word. Click on the
link labelled 'SemiGroup' under the heading Page Names.

Notice how the graph in the top panel changes - re-centering
on the page that you selected. One of the prominent features
you will notice right away is the Integer node with what seems
like a "pin-cushion" of links surrounding it. Since this is
detail we don't need right now, use a "right-click" on the
Integer node to hide it. Now you will see a reasonable sized
graph centred on the 'SemiGroup' category.  The graph displays
the relationships between the other categorys, domains and
packages "near" SemiGroup.

The links between the nodes are build automatically by parsing
the autoloading messages generated by the Axiom compiler. Some
of the nodes will also be "documentation" nodes as well as the
library code nodes themselves. Documentation nodes can make
reference to different parts of the graph and serve as a
further add to navigating the structure.

Axiom commands that are run using the option

  )set message autoload on

will also generate hyperlink references to the packages,
domains and categorys required by the code. I have also set
up the other parts of the web site

so these hyperlink references point back to the nodes in
the Axiom algebra database in the MathAction wiki.

   etc. etc. ...

I've probably already spent too much time having fun playing
with this, so I am interested to hear what other people think.
Will this be a useful tool to help manage the complexity of
Axiom's algebraic structures?

So everyone, please give it a try and give me some feedback...

Bill Page.

reply via email to

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