sourcedoc: xuPurpMinMin-D7

hide references

xuPurpMinMin-D7

=== 14.03.23

For discussion:

MINIMAL DEFINITION OF XANADU® PURPLE DATA

Theodor Holm Nelson, Founding Designer, Project Xanadu

Note: "Xanadu" and "ZigZag" are registered trademarks

 of Project Xanadu.

Xanadu data structure was designed for

 visibly connected pages, but is intended

 more generally-- for a different kind of

 generalized media connection.

It is inside-out from conventional markup languages,

 since neither content nor links are contained

 in the main file.

Xanadu Purple is a dumbdown of Xanadu Green,

 mapping it to conventional files instead of tumbler addresses

 (note: tumbler addressing is now defined in Wikipedia).

Xanadu Purple is intended for eventual mix-and-match

 operability with Xanadu Green.

(The following separate definitions all have a single

 unified form in the elegant Xanadu Green,

 which this mapping to conventional files will not allow.)

=== OPTIMIZATION

The following formats are far from optimized.

 This is not a current priority.

=== SPANPOINTER, A MINIMAL MAIN UNIT

A spanpointer is a pointer to clean raw content

 stored at some network location. The spanpointer

 consists of a URL, starting point and length.

The problem has been: how to make it a simple

 clean unit. We want it to be a single item,

 simpler than having three consecutive items

URL=

START=

LENGTH=

We could concatenate them as (URL,START,LENGTH),

 but then we get the bothersome problem of

 parsing the whole URL to fight our way through

 to START and LENGTH.

The solution: Concatenate them with the URL last,

 as START,LENGTH,URL (which we can call SLU format).

 

This means that parsing is just peeling off

integer

comma

integer

comma

and what's left is the URL.

The normal syntax to find a span of content is then

SourceContent = [spanpointer, in SLU format]

=== WHOLE XANADOC (EDIT DECISION LIST), type .xanadoc

This is a list of content to bring in and concatenate,

 and a list of xanalinks to bring in and apply to

 the concatenated content.

It is of the form:

SourceContent = [spanpointer]

SourceContent = [spanpointer]

SourceContent = [spanpointer]

xanalink = [URL of xanalink]

xanalink = [URL of xanalink]

xanalink = [URL of xanalink]

...

=== XANALINK-- A MEDIA CONNECTOR, type .xanalink

A xanalink is a free-standing connection table,

 stored at its own URL,

 which connects media in some way.

Xanalinks can have many types, representing

 literary relations and other structure.

 We will be defining these types gradually.

A xanalink has 1 or more facets, each with

 a specific sub-meaning within that connection type.

 For author's convenience these may be specifed

 in the link table itself.

Example: file 001.xanalink

TYPE = COMMENT

DEFINED-AT = [URL of official definition]

FACET-1_MEANING = "Commented-on content, commentandum" [phrase from official definition at URL]

FACET-2_MEANING = "Comment itself" [phrase from official definition at URL]

A facet can have any number of fields,

 specifying connections having that sub-meaning

 that are part of that particular link.

Example: facet 1 of a comment (the commented-on content)

 may have a number of parts in different places.

 These will each be specified by a separate

 xanalink field.

=== XANALINK FIELDS CAN BE OF VARIOUS TYPES

= pointer to entire sourcedoc [sourcedoc URL]

FORMAT:

WholeSourcedoc= [URL of sourcedoc]

= pointer to entire xanadoc

FORMAT:

WholeXanadoc = [URL of xanadoc]

= classical xanalink connection,

 to span of clean content in sourcedoc

FORMAT:

SourceContent= [spanpointer]

= pointer to source content as shown

 in a particular xanadoc (if that xanadoc

 contains that content, or any part of that content)

TWO-PART FORMAT:

ShowInXanadoc = [xanadoc URL]

[FOLLOWED BY]

SourceContentInXanadoc= [spanpointer]

= pointer to xanalink

FORMAT:

Xanalink= [URL of xanalink]

=30=

raw

span:

References

There are no documents that refer to this sourcedoc.