I had some opportunity to play with Ted Nelson's #ZigZag data structure, as described on the Project Xanadu webpage. Nelson described ZigZag as a possible alternative to relational #database so of course that caught my interest.
ZigZag zzstructure is described as multi dimensional and idk I think that misses the point a bit? It is really not very complicated.
Imagine you are on a webpage. The webpage is a member of possibly multiple webrings. You can click prev-next buttons to navigate in each webring. That is all that ZigZag zzstructure is! ZigZag calls each webring a "dimension", and ZigZag viewers tend to be 2D or 3D spreadsheet-looking programs that automatically follow the webring links so you can get a grid visualization of part of the linked graph. You can select which "dimension" (webring) to put on the X dimension and which to put on the Y dimension.
Nelson killed the leading open source ZigZag viewer due to disagreements. So it is not easy to play with ZigZag these days. The two viewers I found are very old and both had bugs. This online one written in early aughts javascript miraculously still works mostly. So I started playing with it.
One of the examples was a calendar/agenda, so I started modeling my own agenda. One thing I quickly encountered is that many:many relationships, and even 1:many relationships, are difficult to represent, like something as basic as having the same person in multiple meetings. There are various workarounds (Ctrl+F "Many to one reference") but this seemed to still be an open problem when Nelson chased the users away and the idea faded out.
I guess this shouldn't be surprising: ordinary hypertext is also bad at modeling many:many relationships, and hypertext does not apply the regimented restrictions on links that zzstructure does. The difference is that zzstructure's ring topology runs out of gas before you even get 1:many relationships, which hypertext handles just fine.
Nelson's patent expired in 2019 so I was thinking of building my own implementation to play with, but the limitations are very stark and imo the multidimensional zzstructure is not comfortable for me to navigate.
#hypertext #retrocomputing #database