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.
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.
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.
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 >