From: Massimiliano Mirra Date: 2002-06-15T05:13:45+09:00 Subject: ZigZag (was: Re: [OT] Re: Application server & web developement enviroment) On Sat, Jun 15, 2002 at 12:46:58AM +0900, Austin Ziegler wrote: > > If you change the hierarchy of the database, all the code written > > for the old hierarchy will have to change to reflect the new > > hierarchy. > > This is so, and why I don't like XMLDB and OODB systems. In my > experience, data has value *outside* of how it is manipulated in a > particular program. If the data is forced to be structured in a > particular way because you've chosen a particular object model and > that model is replicated in your data store, it is often difficult > to turn that data upside down and look at it a different way. Which reminds me of ZigZag. [*] Anyone knows of real life uses of ZigZag? It looks like either an great solution or a bigger problem (with nothing inbetween). Massimiliano [*] Frequently Asked Questions about GZigZag, with answers. $Id: FAQ,v 1.7 2001/02/09 05:59:36 ajk Exp $ [...] http://gzigzag.sourceforge.net [...] 2. What is ZigZag? ZigZag, an invention of Ted Nelson, is a new type of data structure. For mathematicians, the key words would be - discrete - multidimensional - locally euclidean - with global directions (coordinate axes) and for non-mathematicians, these are explained below: Discrete: the information is stored in cells, kind of like a spreadsheet. Multidimensional: instead of two dimensions, X and Y, that a spreadsheet has, a ZigZag space can have any number of dimensions which are distinguished by strings. Locally Euclidean: a spreadsheet is globally euclidean, i.e. it is a lattice. ZigZag is only locally euclidean, so the neighborhood of (i.e. the cells next to) a given cell looks euclidean: if you go up and come down, you are back where you were before. But if you start from location 1, and go up, left, down and right, you might not get back to where you were, let's say you are at location 2. But if you then go left, up, down and right from location 2, you get back to location 1. The connections in ZigZag are user-alterable so you can connect any two cells along any given dimension, but because of the local euclidean constraint, each cell can be connected to only one cell in the positive and one cell in the negative direction on each dimension. Computer scientists might note that ZigZag is an interesting special case of graphs.