Dear Pedro,
> Long ago I promised something I never quite finished, which
> was to implement D. Knuth's "The Stanford Graphbase" algorithms in
> lisp/maxima...
do you have a reference (on the web, maybe) for that?
> 1) Allow graphs to be more than "1-dimensional". That is,
> work with polytopes instead of graphs. This is for usability in say,
> singularity theory (my area), topology... And define all standard
> operations for "n-dimensional" structures. In Lisp this is almost
> straightforward. In C you would get mad. I mean, in an n-graph you are
> supposed to be able to have the following "1-"dimensional structure
>
> a-b
> | |
> c d
>
> and adding "edge" c-d does not mean (necessarily) adding "face" [a,b,c,d],
> while adding "face" [a,b,c,d] does add "edge" c-d and (optionally) changes
> the weights of the vertices-edges... Sounds complicated but a discussion
> on the subject could be enlightening for everybody.
I believe this is the same as the hypergraph model.
A hypergraph is a set of vertices together with a set of hyperedges, each
of which is a subset of the vertex set. I.e., a 2-graph is an ordinary
graph.
> 2) DO NOT compute things if the user does not ask for them.
> Usually, (s)he is going to do a number of "graph" operations and then
> ask for, say, the adjacency matrix, etc... I think it is always better
> to wait for the user's request to do any hard computations.
Yes, this is why I talked about delayed computation. I only meant that it
is somewhat wasteful to throw away the collection of perfect matchings
just because the user deleted an edge.
> 3) You can "download" (via http://pfortuny.sdf-eu.org/graph.mac)
> a possibly outdated version of a small part of a package I am using for
> singularities of space curves. Right now I have left it for a while due
> to health reasons, but feel free to edit/modify/change/delete/forget
> anything. It is obviously oriented towards my problem, but ideas 1) and
> 2) are in germ there.
Done
> Hope this helps,
Yes it does. Sorry that my reply is so short, but I'm running out of time.
MArtin