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