|
|
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 site-traffic admin
|
Chapter 3 The Xanadu Information ArchitectureAll 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:
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 EditionsIn 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.
EditionsEditions 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 RangeElementsAt 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:
Other types af Editions are used to describe links and club membership.
Editions are ImmutableAs 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 MappingsEach 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:
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.
WorksWorks 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 ProtectionA Work has three associated authorities that convey the right to perform various operations on the Work:
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.
SponsorshipA 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 HistoryWorks 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.
TransclusionThe 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:
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:
Transclusions are BidirectionalThere 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 astransclusions(), 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
This structure makes Xanadu links uniquely flexible:
Revision ComparisonJust as transclusion can be used as the basis for finding other Editions, it can be used as the basis for comparing two Editions. ThesharedWith() 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 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 SystemConnecting 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 MembershipOne 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:
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 ClubClubs 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 ClubsEvery Xanadu system is shipped with four predefined clubs.
SummaryThis 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. |