Soweli Lukin

                         Hypertext In Gopher
                             2 June 2018


The concept of hypertext is something that I find deeply intrigu- ing. It always brings me romantizied fantasies of sci-fi or alien technology. I want to explore possibilities of writing hypertext on Gopher. Here I will not be advocating such things as deliver- ing HTML files via Gopher rather than HTTP; Instead I will talk about the general ideas behind hypertext, and if they can at all be applied to Gopher.


The classical definition of hypertext is text that is non-linear. In normal texts we read things sequentially, from the beginning to the end. Hypertext was invented to go beyond the limitations of a fixed sequence (hence the prefix "hyper"), allowing the reader to choose his own pathways through the text.[1]

Typically this is achieved by dividing content into nodes. Each node contains just a single idea or concept, and the nodes are linked to other nodes. The collection of these nodes forms the whole text, and the nodes are not considered seperate documents. As an example, let us say we wanted to write about the history of computers. Instead of writing a gigantic list of things, we in- stead could put each key person, each computer, and each new tech- nological innovation into it's own node.

The interesting thing is that hypertext isn't constrained to so- phisticated programs or even computers. Books like "Choose your own adventure" are a good example of this. Hypertext can be writ- ten in any medium, as long as the writing is non-linear. The im- plications of this is that hypertext in Gopher is feasible.


Hypertext poses many new problems that do not come about when writing in a linear fashion. If done incorrectly, the hypertext will become a tangled mess of spaghetti. I recommend reading Davida Charney's essay [5] for a more detailed explanation of prob- lems that can arise. Issues to keep in mind when writing hyper- text are:


My solution to these problems is a technique I call "presequenc- ing". It is a sort of compromise between linear and non-linear writing.

Content is still divided into nodes, each holding a single idea. But instead of each node containing multiple reading paths (i.e. internalized organization), nodes are organized externally. The author divides up his content and presents the reader with a mul- titude of carefully chosen paths through the writing, effectively reshuffling what he has written to suit different readers.

                           | Node A |------.
                           ----------       \
                           /        \        \
                          /          \        |
                     ----------  ----------   |
                     | Node B |  | Node C |   |
                     ----------  ----------   |
                          \          /        |
                           \        /        /
                           ----------       /
                           | Node D |------'
              Fig 1. Normal Hypertext Organization

            Sequence 1   Sequence 2   Sequence 3
                ----------   ----------   ----------
                | Node A |   | Node B |   | Node A |
                ----------   ----------   ----------
                    |            |            |
                ----------   ----------   ----------
                | Node B |   | Node D |   | Node C |
                ----------   ----------   ----------
                    |            |            |
                ----------   ----------   ----------
                | Node C |   | Node A |   | Node E |
                ----------   ----------   ----------
                    |                         |
                ----------                ----------
                | Node D |                | Node G |
                ----------                ----------
                                          | Node J |
                  Fig 2. Presequencing

This technique can solve all of the issues listed above. Readers won't get lost as they are in a specific place in a sequence of nodes. They can have a sense of closure if multiple conclusions are written for each sequence. And best of all the reader doesn't have to sort out everything himself, all the organization is done be the writer.

The main advantage of presequencing is that nodes can be reused. An author can draw upon any nodes he has created and can use nodes that other writers have created to make new sequences of text.


So how can we use presequencing in Gopher?

First of you would create a Gopher menu that has the title of the work, a short description or summary of the subject, and a "table of paths" (instead of a table of contents).

The table of paths would have links to path menus and a descrip- tion of what kind of reader each path is for. Path menus would just be a list of links to nodes. You could achieve this be mak- ing a new gophermap file or even just be adding a bunch of sym- links into a folder.

Nodes themseleves could either be plain text files or Gopher menus (if you want automatic references).


Now I share a loathing of the modern Web with the rest of Go- pherspace, and it indeed deserves every ounce of criticism and contempt. But the web doesn't suck because it is hypertext, it sucks because of the privacy issues, the advertisements, and the bloat. Ever since it's creation in the early 90s, the web has drifted further and further away from the original vision of hy- pertext.

I want to see more informational reasources being put up on Go- pher, I want to see Gopher become a viable alternative to the Web. Perhaphs adding some hypertexual features like presequencing could help acheive that goal.



[1] The Electronic Labyrinth: Hypertext By: Christopher Keep, Tim McLaughlin, & Robin Parmar

[2] Gopherpedia: Transclution gopher://

[3] Musings on the problems of Transclusion gopher://

[4] Hypertext in the Web - a History By: Robert Cailliau & Helen Ashman

[5] The Impact of Hypertext on Processes of Reading and Writing By: Davida Charney

Soweli LukinIssuesAlex Schroeder