On Sun, Aug 04, 2002 at 11:13:48AM +0900, Hal E. Fulton wrote:
> > You are thinking in terms of bidirectional links between objects.
> > Take a look at the ZigZag concept, you'll find lots of food for
> > thought. :-)
> 
> OK, Massimiliano, now you've done it -- you've
> mentioned ZigZag!

Sounds like you'd been waiting for this. :-)

> I've read about it, though I'm still trying to
> assimilate it. It sounds like it's just a 
> specialized form of a directed graph with a 
> few constraints on it.

From what I've gathered, I might add: a graph where links are
organized in separate sets, each set with a different meaning or
domain.

> Or is ZigZag the app itself? I thought it was
> a kind of data structure...

It is (or at least I don't know of any homonym or eponym application).

> Are there good practical uses for it, 

Quoting myself from 42686:

<quote>
> > I just could not figure out *any* case where a ZigZag would help
> > me...

> The case brought up in this thread, for instance.  When a different
> way of navigating through the database is needed, a new web of links
> is created instead of reorganizing the database.

> > Navigating in a ZigZag is not quite something you can relate
> > to any other navigational experience you may have had before.

> Why, it's relatively easy.  Think of browsing a hypertext by theme:
> load it, choose ``Computer Science'' from a menu, and the words that
> get activated as links are those that lead to documents in the
> ``Computer Science'' web; choose ``Politics'' and the words that get
> activated are those that lead to documents in the ``Politics'' web.
> In other words, each node (the document) of the web can have more
> than just one group of ways out (links to other documents).
</quote>

> and has
> anyone here done anything with it (especially
> in Ruby)?

Experimenting with it has been on my todo list not from my Ruby day #0
but quite close to that.  I think I've applied something like that in
my tiny spreadsheet tool `ecalc': it lets you define relations between
numeric data in form of equations, and then choose what data insert
and what data calculate on the fly, instead of hardcoding formulas
into cells; a number of calculations can be put in sequence and named,
then a sequence can be called an calculated at once.  Three and
multi-dimensional spreadsheets is something else I'd like to explore.

Massimiliano