Tumbler (Project Xanadu)


In the design of the Xanadu computer system, a tumbler is an address of any range of content or link or a set of ranges or links. According to Gary Wolf in Wired, the idea of tumblers was that "the address would not only point the reader to the correct machine, it would also indicate the author of the document, the version of the document, the correct span of bytes, and the links associated with these bytes." Tumblers were created by Roger Gregory and Mark Miller.
They were used in the Xanadu FEBE protocol in a manner similar to the use of URIs between web browsers and servers.

Concept and implementation

The idea behind tumblers comes from transfinite numbers. A tumbler is a unique numerical address of any interesting artifact. It resembles an IP address, but is much larger and has much more detailed structure. The structure looks like this.
1. < node >.0. < user >.0. < document >.0. < element >
The leading "1." is used in order to mark the start of a new address. The individual fields of the address are divided with ".0." so that they can be arbitrarily long. Each < element > has the format "n. n..... n", a hierarchy of subaddresses.
The last element denotes the type of data the tumbler refers to, for example:
  1. Text/Bytes
  2. Links
  3. Bitmaps etc.
The 9287th byte of this version of the document would be 1.2368.792.6.0.6974.383.1988.352.0.75.2.0.1.9287 and the 356th link would be 0.2.356 on the end instead.
A tumbler can be issued only once and never changes. The type of structure can grow at will, so the address space is infinite.
Nelson also introduces the concepts of direction and a "span", which is a part of a document that is semantically meaningful for the document. For example, one can speak of "2 chapters back" or "300 bytes forward".