Xanadu Camelot specification
There are three item types within xanadu: xanadocs, links and source documents.
All items are stored with permanent addresses. In this implementation of Xanadu items are encoded in UTF-8 and addressed using URLs.
Source documents are stored as plain text files with no special formatting.
Span pointers refer to part of a source document. They consist of the source document address, an offset from the start of the document and a length. The start position and length are defined in terms of characters, not as bytes.
For example, given a document with the URL http://xu.pub/user/article, the span pointer for the first 10 characters of the document is: http://xu.pub/user/article,start=0,length=10
Each xanadoc consists of one or more EDL sections. The EDL can contain span pointers to source documents and links.
Links are normally assigned a type, but type-less links are also supported. Each link can contain multiple facets, the order and number of facets depends on the type of link, for example:
italics: 1 facet
title: 2 facets
comments: 2 facets
The items within a facet can be a sourcedoc, a xanadoc, a link or a span pointer. Each facet can be stored with a name, but the way that the facets are parsed is defined by the type, the facet name does not change the parsing.
A link with the type title is known as a title link, it gives a title to something. The title link has two facets, facet 1 points to the thing which is being titled, it could be a sourcedoc, a xanadoc, another link or a span pointer. The facet 2 is always a span pointer, it points to the title within a source document. The title link and the item specified in facet 1 are not required to have the same author. A thing can have multiple titles, that is multiple title links can point to the same thing in facet 1.