[HN Gopher] A Gentle Introduction to Ted Nelson's ZigZag Structu...
       ___________________________________________________________________
        
       A Gentle Introduction to Ted Nelson's ZigZag Structure (2002)
        
       Author : breck
       Score  : 68 points
       Date   : 2021-05-19 15:25 UTC (7 hours ago)
        
 (HTM) web link (www.nongnu.org)
 (TXT) w3m dump (www.nongnu.org)
        
       | dang wrote:
       | Seems like this is the first real HN thread about this, but it
       | has come up in comments over the years, including by people who
       | worked on it:
       | 
       | https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
        
       | nabla9 wrote:
       | Lukka and others wanted to bring Ted Nelson's dream into reality
       | using open source (GZigZag). Ted Nelson fucked them over. After
       | giving permission he suddenly started to assert trademark and
       | patent rights.
       | 
       | "It is a sad story. It is an infuriating story." http://lambda-
       | the-ultimate.org/node/233#comment-1715
        
         | mindcrime wrote:
         | FWIW, some portion of what was Xanadu apparently finally made
         | it to the OSS world. See:
         | 
         | http://open.xanadu.com/
         | 
         | I haven't looked at it much, so not sure quite what the state
         | of it all is.
        
           | astrange wrote:
           | I wasn't expecting a site from 1999 from that "finally".
        
         | tangentstorm wrote:
         | Happily, Nelson's patent has finally expired. :)
         | 
         | https://patents.google.com/patent/US6262736
        
           | joshgrib wrote:
           | I was thinking this was a data structure, but based on the
           | patent it's actually more a user interface design to explore
           | data
           | 
           | > What is claimed is:
           | 
           | > 1. A method for visualizing data on a display, comprising:
           | 
           | > ...
           | 
           | In other words it seems like it could replace a spreadsheet
           | as a way to explore data, but not _necessarily_ by storing
           | the data any differently
        
       | Greek0 wrote:
       | 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.
        
         | jerf wrote:
         | "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.
        
         | aphextron wrote:
         | >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.
        
         | cjohnson318 wrote:
         | > 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.
        
         | lou1306 wrote:
         | > 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.
        
         | herodoturtle wrote:
         | > 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 wrote:
         | Thank you for summarizing. I wasn't even sure I wanted to read
         | this, but now I'm sure I do.
        
         | codebje wrote:
         | 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 wrote:
           | 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.")
        
       | cjohnson318 wrote:
       | This helped me understand the dimensions better:
       | 
       | http://profs.etsmtl.ca/mmcguffin/research/zigzag/
        
       | vincent-toups wrote:
       | Gonna be honest: everything about this screams "inescapable
       | morass."
        
       | winkywooster wrote:
       | Here's a video of Ted Nelson describing the idea:
       | https://www.youtube.com/watch?v=n22A-Say7do
        
       | gota wrote:
       | Wait, I just glanced at the material - is this someone
       | (re/independently) inventing graphs?
        
         | uxp100 wrote:
         | No, but also not just someone, Ted Nelson. I highly recommend
         | Geeks Bearing Gifts or Computer Lib/Dream Machines. He is a
         | crank, who has never been involved in a successful software
         | project as far as I am aware. He is also great.
        
           | prionassembly wrote:
           | Every crank is a visionary, but not every visionary is a
           | crank.
           | 
           | Some visionaries prove to be prophets and seers. Some have
           | ideas that are bogus. Due to the nature of visionary ideas,
           | this is most of the time unknown -- e.g. Julian Jaynes's
           | bicameral mind.
           | 
           | A crank is a visionary whose ideas are knowably bogus: e.g.
           | Rupert Sheldrake. (A charlatan is unlike a crank because he
           | has no idee fixe, no vision -- he moves opportunistically. A
           | conspiracist is similarly unlike a crank because it bites at
           | anything that moves.)
           | 
           | Whether Ted Nelson is a crank is left as an exercise for the
           | reader.
        
         | cratermoon wrote:
         | See Nelson's paper "A File Structure for the Complex, the
         | Changing and the Indeterminate"
         | https://andymatuschak.org/files/papers/Nelson1965.pdf
         | 
         | Edit to add: I just noticed that the last update to that page
         | was in 2002. When I hit the box about CSS, Mozilla, Netscape
         | Navigator 4.7, and WML I did hard double-take.
        
         | DennisP wrote:
         | It's a "subset of general graphs - the restriction is that a
         | node may have only one incoming and one outgoing edge with a
         | given edge label. So structures are organized as lists/strings
         | of nodes, which makes it easier to visualize than general
         | graphs"
         | 
         | http://lambda-the-ultimate.org/node/233#comment-1706
        
         | feanaro wrote:
         | zzstructures are both graphs where you can have many edges (of
         | different types) between any two nodes and a method of visual
         | presentation and navigation of that structure.
        
         | JKCalhoun wrote:
         | Sort of.
         | 
         | From Wikipedia: "He coined the terms hypertext and hypermedia
         | in 1963 and published them in 1965."
        
       ___________________________________________________________________
       (page generated 2021-05-19 23:01 UTC)