sourcedoc: xuPurple-D6

hide references

xuPurple-D6

=== 12.09.12

XANADU PURPLE OPEN DEFINITION (preliminary)

(We assume the reader already knows our basic concepts; this enumerates and specifies the current version.)

Theodor Holm Nelson, Founding Designer

Project Xanadu

XanaduÆ is a registered trademark of Project Xanadu. TransLitô is a claimed trademark of Project Xanadu.

This is an open definition of the current Xanadu software design. Anyone is free to program to these specifications. It is a simplified version of earlier Xanadu systems, designed to work in today's file and network environment without the special servers or addressing of its predecessors, but also without their special search abilities.

UNDERSTANDING THE NAME. Predecessors of this name include--

- Xanadu Green (also known as Udanax Green or Xanadu 88.1), designed in 1979, and still underway under open source at Udanax.com

- Xanadu Gold (also known as Udanax Gold or Xanadu 92.1), designed in 1988-92, and archived at Udanax.com

Xanadu Purple is a simplified and adapted version of Xanadu Green.

TRADEMARKS. We reserve the XanaduÆ trademark for our own code and services, and Transliteratureô or TransLitô for the document subset.

(We considered making "TransLit" a certification mark, but found that process far too complicated and uncertain.)

THE DOCUMENT SUBSET-- TRANSLITô. The designation "Translit" refers to the data subset of Xanadu Purple which defines the Xanadu document (xanadoc). We want to assure document compatibility with Xanadu Purple, without regard to storage, methods of creation, publication policies, etc. It is intended to allow people--

- to open and view xanadocs

- to create xanadocs by their own chosen means

- to publish xanadocs by their own chosen means and under policies of their own

Translit thus consists only of--

- document definition

- file types required for this document definition

Others are free to program to TransLit specification, but may not call it TransLit. If you want to point out the compliance of your code, we ask you to say instead:

This is intended to be an implementation of the TransLitô document specification. [and any other comments on compatibility, etc.]

Anyone wishing to program a viewer or editor for these documents by any means is welcome to do so.

THE FULL USER SYSTEM, XANADUÆ PURPLE. The designation "Xanadu Purple" is intended for our whole package of--

- user environment

- internal file types of the user environment

- versioning method

- publishing method

- user content stabilization method (permascrolls)

Others are free to program to this specification, but may not call it Xanadu. If you want to point out the compliance of your code, we ask you to say instead:

This is intended to be an implementation of the XanaduÆ Purple specification. [and any other comments on compatibility, etc.]

=== THE FUNDAMENTAL XANADU CONCEPT: STABILIZED CONTENT

A xanadoc is composed of stabilized content, meaning--

- the content does not change

- the addressses of the content never changes

In other words, all content remains available at fixed addresses that never change. This is not a technical issue but a political and policy issue, to which the Xanadu Project has its own solutions.

To create a xanadoc, you store the content separately and refer to it by EDL, links and ODL, which put together new arrangements and connections of that content.

Any change to a document is made by changing the list of its content, including pointers to new material.

New content is stored elsewhere under the same rules (for example, at the end of a file-- see permascrolls, below).

All the Xanadu and Translit designs are based on this concept.

=== === === TRANSLIT, THE DOCUMENT DEFINITION

TransLit is about a specific kind of document, the xanadoc, built from stabilized indirect content.

A xanadoc has five internal components, in various combinations:

- xanadocID

- EDL

- xanalink

- ODL

- stabilized content (what the other components refer to)

=== xanadocID

This identifies a xanadoc.

The xanadocID consists of three fields, the last optional--

- username (should be unique somehow)

- docID (does not change)

- microversion

The xanadocID identifies a xanadoc uniquely if a microversion is specified. If no microversion is specified, the latest version is assumed.

=== EDL (file type .xanedl, .xanadoc) -- SEE EXAMPLE AT END

The EDL, or Edit Decision List, specifies the content of a document. It is a list of content addresses.

EDLs may change as a document evolves.

=== XANALINK (file type .xanalink) -- SEE EXAMPLE AT END

A xanalink is a coupling among spans of stabilized content.

Xanalinks are not embedded.

LINK TYPES. There may be many link types. To avoid ambiguity, a link points to its type definition as well as its endsets. (SEE EXAMPLE AT END.)

A xanalink has one or more prongs or endsets. Each endset may in turn have any number of spanpointers to content.

A xanalink is a free-standing first-class object which is published as a separate file (if it is published).

Xanalinks, once published, are expected to remain published. A xanalink is removed from a document by changing that document's ODL.

=== ODL (file type .xanodl) -- SEE EXAMPLE AT END

The ODL, or Overlay Decision List, is a list of addresses of the links to be brought in to a document.

ODLs may change as a document evolves.

=== === === Translit USER CLIENT UNDEFINED

SCREEN APPEARANCE. We are saying almost nothing about appearance, since we do not simulate paper and thus any possible view is legitimate. (Under the motto WYSIWYNC, What You See Is What You Never Could.)

However, there are several key visualizations we recommend--

- side-by-side visible connection (when two xanadocs are connected, or a xanadoc is connected to a conventional document)

- link beams or straps for two-sided links

- propellers for multisided links

- transclusion beams or straps for two-sided transclusions

- propellers for multisided transcusions

=== === === XANADU PURPLE SPECIFICATION

Xanadu Purple is a text system-- a user environment for creating, studying and integrating xanadocs.

This means holding various structures, manipulating and maintaining them.

=== Xanadu Purple open definition: DATA FOR DOCUMENTS

Same as for TransLit, plus

- hypertime oplist, registering every edit operation (cumulative)

- permascroll, registering all user input

- caching of content from elsewhere

And the operations and conventions to make these work.

These are all discussed elsewhere.

=== Xanadu Purple Open Definition-- MODULES

DOCID module

new doct

open doct "show document"

step in document

EDIT MODULE

insert new or from clipboard

rearrange

INTERACTION module

handles screen presentations,

 user input

 and delivers edit ops to other modules

HYPERVERSION module

Oplist/ backtrack, sidetrack

 version ID

Permascroll Module

 -append edit

PUBLISH MODULE

opens content from

 permacroll, makes it public

extended and newly- redacted permascroll

 replaces old permascroll

 on publishing site

links go to pub.site

edl, odl go to pub.site

=== THE ACT OF PUBLICATION:

The act of publication has a number of steps.

- The xanadocID is published, along with its current EDL and ODL.

- new links are published

New content is published as follows:

 The public permascroll is updated

 from the private permascroll, unmasking

 any newly-published content.

 This naturally includes--

- any new published content at the end

 of the permascroll

- any newly-published content which was

 previously lurking unpublished

 at earlier positions in the permascroll

=== === === APPENDIX 1: SERVICES AND POLICIES

The official plan of Project Xanadu has always been to offer offer long-term storage and publishing services.

Xanadu publishing has several parts and concerns, especially long-term availability. (Content stabilization is not a technical issue; it is a policy issue, which is essentially political.)

If others replicate our software, we cannot, of course, control what they do about availability, but they will have to deal with these same policy issues.

=== === === APPENDIX 2: FILE TYPE SPECIFICATIONS

=== EDL

NAME OF FILE:

whatever.xanedl, whatever.xanadoc

CONTENTS:

xanadocID = whatever.microversion

spanpointer

spanpointer

spanpointer

...

=== XANALINK

(The link's creator and document of origin are defined by the xanadocID of the folder it's in.)

NAME:

whatever.xanalink

CONTENTS:

xanadocID = whatever.microversion

LINK TYPE = whatever

DEFINED AT = spanpointer

ENDSET 1= e.g. COMMENTED-ON

spanpointer

spanpointer

spanpointer

...

DEFINED AT = spanpointer

ENDSET 2= e.g. COMMENT

spanpointer

spanpointer

spanpointer

...

=== ODL

CONTENTS:

xanadocID = whatever.microversion

linkaddress

linkaddress

linkaddress

...

=== STABILIZED CONTENT

User permascrolls

Content from elsewhere, cached and stabilized

=30=

raw

span:

References

There are no documents that refer to this sourcedoc.