Welcome to Sunless-Sea Two roads diverged in a wood, and I -- I took the one less traveled by, And that has made all the difference.  
 
SITENAV
 meetings
 what's new?
 whiteboards
 post article
 frontpage
 downloads

ORIENTATION
 legalisms
 history
 glossary
 participants

BACK-ENDS
 udanax-green
 udanax-gold

ALGORITHMS
 coordspaces
 enfilade
 ent

OLD MANUALS
 XIA

HELPING
 puzzles
 needs
 funding
Like the site? Click to donate!

 site-traffic
 admin


Chapter 3 The Xanadu Information Architecture

All information stored in the Xanadu system is built from a small number of basic elements, which are collectively known as the Xanadu Information Architecture. The basic components of this architecture are:

  • Works and Editions: the objects that define the identity, structure and content of documents in the Xanadu repository.
  • RangeElements: the bottom-level objects that hold the actual content (characters, pictures, or sounds) of a Xanadu document
  • The Club System: the mechanism for authentication and access control.
  • Transclusion: the mechanism by which information in the Xanadu system is interconnected.
This chapter provides an overview of the Xanadu Information Architecture. The rest of the Developer Overview explores each area in greater detail.

Because the Xanadu Information Architecture is new, the Xanadu Developer Overview is necessarily incomplete. For information on usage idioms, recommended conventions, and implementation issues, the Xanadu Technical Notes are the best source of guidance. Over time, this information will be consolidated into other documents

Works and Editions

In the Xanadu Information Architecture, we make a distinction between the identity and the content of a document. This distinction is crucial to versioning, access control, and linking. The name "Treasure Island" is the identity of a particular sequence of words (the text written By Robert Louis Stevenson). The sequence of words that we mean when we use that name is the content of Treasure Island.

This separation of identity and content is particularly useful when we talk about documents that change over time. Most companies have a document called a Hiring Policy. Over time, the content of this Document changes but there is never any confusion about what we mean when we refer to the hiring policy document.

In the Xanadu system, the identity/content distinction is captured by Works and Editions. Editions contain the text, pictures, and sounds that make up the content of a Xanadu document. Works represent the identity of a document. A Work points to the current Edition of a document, and is modified to point to another Edition whenever the document is revised. Editions themselves are never changed, but become obsolete over time and eventually fade away.

Note: We use the terms Work and Edition as technical terms throughout the Xanadu Developer Overview to refer to particular components of the Xanadu Information Architecture. Most of the time, this choice of names appeals to our intuitive understanding of how documents vvork, and allows us to use terminology that is already familiar. To avoid confusion, these terms are invariably capitalizcd vvhen we use them as technical terms.

Editions

Editions are the content of a document. More precisely, Editions provide the structure to which the individual pieces of a document are attached. Editions contain the characters, pictures, and sounds that make up the content of the Work, and encapsulate the relationships between these various pieces.

Editions Contain RangeElements

At the simplest level, Editions contain integral and floating point values. The interpretation of these values depends on the type of the Edition. In addition, Editions may contain Works, IDs, and other Editions. Each of these five basic content types is a type of RangeElement. A sixth type, PlaceHolders, is discussed below in the discussion of the transclusions() operation.

By far the most common type of Edition is the TextEdition, which holds a sequence of characters. Tvpically, all of the characters in a document are kept in a single textEdition:

 
when  in  the  course

Other types af Editions are used to describe links and club membership.

Editions are Immutable

As in the real world, Editions are never modified. Once a Work has been published, readers may make copies of it. These copies are themselves Works, and there is no way to destroy the Editions they name or modify their content. In the Xanadu Information Architecture, Editions are immutable. Once an Edition is no longer referenced by any Work, the Xanadu repository will delete it automatically.

The fact that Editions are immutable doesn't stop you from modifying a document. You are always free to create a new Edition based partly on the content of an old one, and revise the Work to point to the new Edition. Internally, the Xanadu server will optimize the operation to make efficient use of storage.

Editions are Mappings

Each Edition maps from a set of indices to the lndividual elements of the content. TextEditions, for example, have indexes that start at 0 and extend to the size of the text string. In the Xanadu Information Architecture, these indices are referred to as Positlons. For every position in an Edition there is an associated range element.

For every object contained by an Edition there is at least one associated position. For example, each character that is contained by a TextEdition has an associated position within the TextEdition:

0123456 789101112 131415161718 192021222324 25
Ea ch  Letter  has  a  Position

Collectively, all of the positions of an Edition are its domain, and the set of items contained by an Edition are its range. Every Edition has an associated coordinate space, which describes the positions that are legal for that edition.

While it isn't necessary to understand the details of the mathematics to use Editions, it may be useful to know that the operations vou can do on an Edition are defined by the coordinate space of the Edition. The architects of the Xanadu system have used this fact to ensure that these operations are precisely defined, which helps to ensure that they are consistent and correct.

Works

Works capture the identity of a document. A Work points to the top-level Edition of a document. In addition, Works are the place where access protections and accounting information is registered. Finally, a Work can maintain a history of the revisions that have been made to it.

Access Protection

A Work has three associated authorities that convey the right to perform various operations on the Work:
  • The Read Club identifies the users who are entitled to ask the Work for its current Edition.
  • The Edit Club identifies the users who are entitled to revise the work to point to a new Edition.
  • The Owner Club identifies the users who are entitled to change or remove the clubs associated With the Work.
  • The History Club is used to determine who can read items added to the History Trail.

For now, it suffices to think of a Club as a group of users. Clubs are described in greater detail below.

The Xanadu system makes a distinction between changing a Club associated with a Work and removing it. Once a Club has been removed, it can never be replaced. Thus, to guarantee that a document is frozen forever, the owner can remove the Edit Club from the Work. The absence of this Club is visible to users of the Work, who know as a result that the Work can never be changed again. Such Works are referred to as Frozen Works. A finished document such as Treasure Island would most likely be published as a frozen Work.

Sponsorship

A sponsor is someone who has expressed interest in keeping a document in the Server. Every Work in the Xanadu system has an associated collection of sponsors. Works which have no sponsor are evicted from the repository as space becomes needed.

Revision History

Works can maintain a history of the changes that have been made to them. The revision trail tracks the time, sequence, and content of each revision made to the Work. If revision tracking is enabled, the information held by the Work is copied into a frozen Work each time the Work is revised, and this frozen Work is added to the revision trail. The revision trail is an Edition that contains a sequence of frozen Works, in the order they were created.

Transclusion

The second major concept in the Xanadu architecture is transclusion. Where Editions are the objects that structure the individual pieces of the document, Transclusion is the glue that connects the pieces to the Edition. When an Edition contains a RangeElement, we say that it transcludes that RangeElement. The reason we say transcludes instead of includes is that multiple Editions may contain the same RangeElement, and the relationship is fully symmetrical.

A simple example of transclusion occurs whenever spelling is corrected in a document. The original document is a single Edition with some characters in it, in this case representing a misspelled word:

'T' 'h' 'e' 'r'

When the spelling is corrected by introducing a new letter, a new Edition is created to hold the repaired word. The individual characters themselves are shared:


'T' 'h' 'e' 'i' 'r'

In addition, two positions in a single edition may transclude the same RangeElement, possibly as a result of a cut and paste operation in a Xanadu client:


'T' 'h' 'e' 'r' 'e'

Transclusions are Bidirectional

There is another aspect of transclusion which is unusual. Given an Edition it is possible to find all of the Editions that transclude its content. This operation is known as transclusions(), because it returns all of the Editions that transclude the same content as a given Edition (subject to the limitations of the requestor's access rights). The transclusions operation can be constrained by Edition type. Thus, it is possible to locate all of the TextEditions that share content with a given Edition.

Transclusion is the basic mechanism on which links and version comparison are built. In Xanadu, a link is simply a Work that points to a HyperLink. Every HyperLink contains one or more HyperRefs. The HyperRefs in turn transcludes the content of the HyperLink. Thus, to find all of the links onto the text of a document, you can simply use transclusions() to ask for all of the HyperRefs that transclude the content of your document. HyperLinks and HyperRefs are simply types of Editions.

This structure makes Xanadu links uniquely flexible:

  • Xanadu links may be any size: a character, a word, a section, a document, or the entire library. A link may be onto a single pixel of a bitmap.
  • Xanadu links can have more than two ends. You can build a link from a single statement to all of the documents that the statement refutes.
  • Xanadu links can be added to a document by a reader, without modifying the document A reader can attach a note to a document, and other readers can find the note if they wish to.

Revision Comparison

Just as transclusion can be used as the basis for finding other Editions, it can be used as the basis for comparing two Editions. The sharedWith() operation takes two Editions and returns the subset of the first Edition that is transcluded by the second Edition.

Among other uses, this operation is the basis of version comparison. Instead of asking how two documents are different, in the Xanadu system you ask how two documents are the same. No difference analysis programs are needed to compare two documents, because the common portions are intrinsically known to the server.

The sharedWith() operation returns an Edition known as a transclusion trail. The transclusion trail contains all of the Editions that share content with the original.

Actually, the transclusion trail may contain all of the Editions that will ever share content with the original. To do this, the transclusion trail takes advantage of the mathematics of coordinate spaces. The transclusion trail initially contains an infinite number of PlaceHolders. As more transcluders become known to the Xanadu server, these PlaceHolders turn into other RangeElements. In fact, the defining characteristic of a PlaceHolder is that it can become any other RangeElement.

A FillDetector is an object that can be pointed at a transclusion trail and will notify you whenever a PlaceHolder has been filled in. A common use of FillDetectors would be in an electronic mail system, where mail is sent by linking the message to the mailbox. The mail reader can arrange to be notified about the arrival of new mail by using a FillDetector.

The Club System

Connecting to a Xanadu system does not require logging in. Any person may obtain a connection at any time. Documents, however, are protected by Clubs. Clubs are the mechanism that provides authority to act in a Xanadu system. To access a document that is readable to the DocReaders club, the user must first obtain the authority to act on behalf of that club.

Locksmiths and Club Membership

One way to obtain the authorities of a Club is by logging in to the club. To support this, every Club has an associated Locksmith.

A Locksmith is a provider of Locks. Locks are objects that support a given authentication policy. If you are able to satisfy the requirements of the Lock, you can log in to the corresponding Club. Every connection has an associated current KeyMaster that holds the connection's active authorities.

The Xanadu system provides three types of Locks:

  • The Boo Lock allows anyone to log in ("just say boo!").
  • The Wall Lock rejects all attempts to log in ("like beating your head against a wall").
  • The Match Lock provides for password authentication.
  • The Challenge Lock provides for challenge-response authentication, as used in RSA and several other authentication technologies.
Each type of Lock has an associated type of Locksmith. In order to make sure that no one can log into a Club, for example, you make the Club's locksmith be the Wall Locksmith. If a Club has a Wall Locksmith, then only listed members can act with the authority of that club.

You don't always need to log in to a Club in order to exercise the authorities at the Club. A Club may list other Clubs as members. If Club A lists Club B as a member, it is in effect saying: "Anyone in Club B may act with the authorities of Club A."   Clubs may have an arbitrary number of members.

Rights on a Club

Clubs are a special type of Work. Every Club therefore has a Read Club, Edit Club, and Owner Club. The Edit Club conveys the right t o change the membership list or locksmith of the Club. The Read Club conveys the right to examine these fields. The Owner Club conveys the right to change any of the Clubs.

In addition to the Read, Edit, and Owner Clubs, every Club has a Signature Club. The Signature Club identifies the Club members who are entitled to use the Club to create endorsements or perform revisions to documents.

In the Xanadu System, the right to perform a revision is determined by a Work's Edit Club, but every revision must have an accompanying "signature" for the audit trail. In order to use a Club for signature purposes, the signer must be a member of that Club's Signature Club. This implies that you can grant someone the authority to modify a document while retaining a proper audit trail of who actually performed each revision.

Standard Clubs

Every Xanadu system is shipped with four predefined clubs.
  • The Universal Public Club is accessible to anyone. Access rights to the Public Club cannot be changed.
  • The System Admin Club has the authority to shut down the Xanadu Server.
  • The System Archive Club has the authority to read and recreate any Work or Edition.
  • The System Access Club controls which Clubs can be used to perform an initial login to the Xanadu server.
  • The Universal Empty Club is not accessible to anyone. Access rights to the Universal Empty Club cannot be changed.
The Admin and Backup clubs are sensitive, and access to them should be carefully controlled. The right to shut down a server or subvert the authentication mechanism is powerful, and should be treated accordingly.

Summary

This chapter has introduced the most critical parts of the Xanadu Information Architecture. Each area is expanded in subsequent chapters, providing more detail, examples of how features are used, and additional architectural elements not covered by this discussion.
Reading List
As We May Think, 1945 Vannevar Bush
Augmenting Human Intellect:A Conceptual Framework, 1962 Doug Engelbart
Literary Machines, 1981, 87, 93 Ted Nelson
Engines of Creation, Chapter 14 The Network of Knowledge, 1986, 87 K. Eric Drexler
Hypertext Publishing and the Evolution of Knowledge, 1986 K. Eric Drexler
SF:EarthWeb, 1999 Marc Stiegler

Quick Links
www.udanax.com
www.xanadu.com
www.xanadu.com.au
Udanax List Archive
Xanadu® List Archive

All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest ©2001 Jeff Rush.