Author: Christian Wittern, Taipei -- Created: 00-07-05, Last change: 00-07-20
URL of this document: http://www.chibs.edu.tw/~chris/smart/layered.htm

Technical note:

SMART: Layered Markup

Overview

Requirements for layered markup

Information to be contained in a markup atom

DTD for markup atoms

Usage of markup atoms within SMART

Overview

The SMART project tries to build an environment where collaborators can remotely add markup, comments, references etc. to a common base text. The markup shall be added independently and with no necessary implied reference to each other.

Layered markup as discussed here is based on the presumption that markup of a text can be meaningful divided into structural markup (markup of the textual structure and common references) and content markup (markup of the content of the text as relevant to different domains). This follows very closely the model of a map, where different special-purpose maps (i.e. topographical, political, climatic, distribution of population, language, religion etc.) are layered on the same basic outline of a territory.

The TEI Guidelines discuss only a 'flat' model of markup to be used for text interchange, but they do not elaborate on a notion of layered markup. I will try to outline the requirements I see for layered markup and their envisioned relationship to TEI compatible markup.

Requirements for layered markup

Markup is layered upon a base text. The base text contains TEI compatible markup to identify structural parts of a document. The markup contained in the base text will be common to all views of a text. It should reflect only the basic divisions of a text, including elements like chapter headings, footnotes image captions etc., that are clearly marked in the text and beyond any reasonable doubt. In this scenario, the base text is expected to follow the rules layed out in Tim Bray, Jean Paoli, and C.M. Sperberg-McQueen, editors Extensible Markup Language (XML) 1.0. World Wide Web Consortium, 1998. (See http://www.w3.org/TR/REC-xml.)

Layered markup is stored separately from the base text. It uses the XPointer language (see http://www.w3.org/TR/xptr to establish a pointer between the markup atom (one single element to be layered on the base text) and the base text.

Information to be contained in a markup atom

A markup atom contains markup information for one single element to be layered on the base text. It contains the following information:

A markup atom itself is a valid XML document.

When markup atoms are layered upon a base text, the resulting document (a specific 'view' of the document) should be a valid XML document. If it is used for information interchange, the view should be a conforming TEI document. To achieve this, in some cases it might be necessary to use extensions and a generic empty SPAN element, that records beginning and end of a markup atom.

DTD for markup atoms

Preliminary DTD for markup atoms

<!-- 2000/07/07:  Created atom.dtd -->
<!ELEMENT atom           (element, comment?, XPGroup? )>
<!ATTLIST atom           ref    CDATA  #REQUIRED
                         resp   CDATA  #REQUIRED
                         creationdate   CDATA  #REQUIRED
                         modificationdate CDATA  #REQUIRED
                         permission CDATA #REQUIRED
>

<!ELEMENT element        (attribute?)>
<!ATTLIST element        gi  CDATA #REQUIRED
                         teiform CDATA #REQUIRED
>
<!ELEMENT attribute      EMPTY>
<!ATTLIST attribute      key    CDATA #REQUIRED
                         value  CDATA #REQUIRED
>
<!ELEMENT comment        (#PCDATA)>
<!ELEMENT XPGroup        (xpointer+)>
<!ELEMENT xpointer       EMPTY>
<!ATTLIST xpointer       ref CDATA #REQUIRED
>

Usage of markup atoms within SMART

Users in SMART are not allowed to change the base text. All changes to the base text have to be requested and will be executed by the editor. Users will change their view of texts and the information they contain by using markup atoms. Every user can belong to one or more working groups. The visibility of markup atoms to other users can be controlled by setting its permissions to the owner, one or more working groups or everybody.