top | item 27212393

(no title)

Greek0 | 4 years ago

Brief summary, please correct me if I'm wrong.

A ZigZag structure is an undirected graph. Nodes are arranged in an n-dimensional space. For each coordinate axis, every node can only have one edge in the plus-1-along-coordinate direction, and one edge in the minus-1-along-the-coordinate. I.e. no diagonal connections, and max one connection in each "cardinal direction" (+ and - in n dimensions = 2n directions).

In its simplest form, a ZigZag structure can be an n-dimensional grid, where each node is connected to its direct neighbors in the grid. In 2D, that would give you a spreadsheet. However, ZigZag can do more: you can have loops along any axis, e.g. a spreadsheet where the columns "wrap around". Furthermore, ZigZag supports looping the columns of only one particular row: a normal 2D spreadsheet, except that row 13 only has 4 columns, and those columns are wrapped up in a loop. You could also have sparse grids - where nodes are missing, and the edges skip over the missing node.

The idea is to have something that locally, if you look only at the surrounding nodes, always looks like a neat n-dimensional grid. But the global topology can be totally whacky.

I have no idea what you would use such a thing for.

discuss

order

jerf|4 years ago

"I have no idea what you would use such a thing for."

Presenting graph-structured data in a way that the graph has sufficient restrictions on it to be representable usefully in a UI.

In some sense all data structures are just restrictions on graph data structures. So why not just use graphs directly more often? Because the full freedom of graphs can result in a lot of situations that are pathological for both algorithms and UIs, such as graphs that mostly have one node connected to one node, except suddenly there's a node with 1,000,000 connections, which raises obvious UI issues.

To the extent this is not used today, it's probably because in the end it's still too general and has been outcompeted by all the other UI widgets we have that take more advantage of all the menagerie of local structures we have identified. It turns out that we are generally willing to do the work to create specialized representations for those things. We do lose some generality, but, again, we seem willing to do the work to specialize, so it all mostly works out. Only a very few people are out there working with data with so little such specialized support that they are reduced to working with raw graphs directly, and they already mostly have no choice but to learn to deal with the graphs directly and would be as frustrated trying to jam them into this structure as they would any other structure that restricts graphs.

DennisP|4 years ago

Nelson's inability to deliver a product, and use of his patent to keep others from delivering a product, might also have something to do with the idea not catching on.

codebje|4 years ago

It sounds exactly like a DikuMUD zone, where each place has an exit to another place in four cardinal directions plus up or down, but those exits do not need to be symmetrical. Loops, warps, multiple exits into the same place. The graph is not necessarily even connected as portals and triggers can teleport you into otherwise unreachable places.

chipotle_coyote|4 years ago

That's more or less what I was thinking -- in fact, every text adventure system I'm aware of, going all the way back to mainframes and microcomputers in the 1970s, implement a version of this. Nelson's "cells" are rooms, and "connections" are exits.

Many of the oldest microcomputer ones, like Scott Adams' adventure games (and from your description, DikuMUD), are exactly what's described here, except as you note, with more than four directions: typically there are either six or ten (adding NW, NE, SW, SE to N, W, E, S, Up, Down), and I remember some that added "IN" and "OUT" as unique exit names. Other systems allow an arbitrary number of connections defined within the node, such as MUCK rooms or links between Twine nodes. Basically, these are multi-cardinal linked lists.

At risk of editorializing, I get this sort of feeling from a lot of my encounters with Ted Nelson's work: he and his more ardent defenders are very, very insistent about how visionary he is, but I often come away with "that's neat but not terribly practical" or, like here, "aren't these new names for stuff that already existed?" (Also, about 100% of the time I read about the history of his work, I'm left with "he would have had something there if he'd been willing/able to play nicely with others.")

hcs|4 years ago

The point (as I think jerf explained helpfully) is that it restricts a general graph structure so that it can be more easily navigated, so no one-way teleports or multiple exits to the same place. I think the analogy to an adventure game space is apt, otherwise. There are additional dimensions, but with these restrictions navigation is hopefully comprehensible. (I'm just reading up on this today, hopefully not too far off.)

lou1306|4 years ago

> The idea is to have something that locally, if you look only at the surrounding nodes, always looks like a neat n-dimensional grid. But the global topology can be totally whacky.

That sounds similar to the mathematical definition of a manifold: something that locally looks like an Euclidean space, but globally isn't.

aphextron|4 years ago

>I have no idea what you would use such a thing for.

This can be said for pretty much all of Ted's work. Interesting and thought provoking, nonetheless.

tylorr|4 years ago

I've had this idea to use ZigZag for forum or chat threads. Each axis represents a different theme, you would be able to branch off the conversion into a different theme without derailing the original conversation.

cjohnson318|4 years ago

> I have no idea what you would use such a thing for.

Ditto. Every few years I look at this again, and I never can figure out what to use it for. At any rate, yours is a very good summary, thank you.

herodoturtle|4 years ago

> The idea is to have something that locally, if you look only at the surrounding nodes, always looks like a neat n-dimensional grid. But the global topology can be totally whacky.

Reminds me of those "Choose Your Own Advenuture" children's novels from the 80s.

rendall|4 years ago

Thank you for summarizing. I wasn't even sure I wanted to read this, but now I'm sure I do.