- This article is about the tumbler data structure used in Project Xanadu, not connected with the Tumblr website.
Tumblers are a system of numeric addressing used in Project Xanadu to address objects ranging from entire collections of documents to specific places within a document, in a manner that lets an address be permanent even when things change.
A tumbler is a series of decimal integers separated by the dot (.) character. This format resembles IP addresses, but the numbers are not limited to the 0-255 range and there can be an unlimited number of them chained together.
A tumbler used for Xanadu addressing has this structure:
The first number in the sequence is 1 to signal the beginning of an address tumbler. This is followed by the four hierarchical elements: node, user, document, and element, separated by zeroes. Each of these elements can have any number of numbers, with each successive number narrowing down or subdividing the item being referred to.
A node is a server that is part of the Xanadu system. To reference the node as a whole (rather than a specific item stored on it), you would use a tumbler that ends with the node part.
A user is an account on a node; to reference one, you would use a tumbler that ends with that part, consisting of a node and user portion.
A document is a particular item stored under a user account on a node. Each time a user creates a document it is assigned a number, and successive versions of the document are stored with version numbers that are appended as the next number in the dotted sequence after the document number (which allows the entire revision history of the document to remain online and addressable).
An element is a linkable part of a document. The first number of its dotted sequence designates what type of part it is, with 1 meaning a character (of a text document) or byte (of a binary one) that is counted from the start of the document, 2 refers to a link (counting the hyperlinks from the start of the document), and other numbers for different types of things that can be referred to. Subsequent numbers specify the particular item.