The TEI Tite
author: Perry Trolard
edition published: Spring 2006
language: en

The TEI Tite
A standard for off-site text encoding

Perry Trolard
December 2006

Introduction

This document specifies how the Tite standard should be applied. Its organizing model is roughly the structure of a TEI document itself, and it proceeds from high-level features to low, starting with general requirements, text structure, directions on when to group texts, considerations about type of text (genre and format), continuing down to instructions on marking phrase-level features, reference systems, and so forth. In its original ODD (one document does-it-all) format, this document can generate everything necessary for working in Tite: both documentation (this Tite-specific prose as well as the full TEI technical documentation for relevant elements) and schemas in either W3C Schema, RelaxNG, or XML DTD. The Roma web tool can generate all of these.

Tite-encoded documents are TEI documents, and the Tite standard, with the exception of convenience elements (<b>, <i>, <ul>, <sup>, <sub>, <smcap>, <cols> and <ornament> all of which can be converted back to canonical TEI), is a pure subset of the TEI. That is, it was created primarily by removing elements and attributes from the TEI, and not from extensive modification. Thus as part of the TEI family, Tite inherits TEI semantics, and ambiguity in this specification should be resolved with reference to the TEI Guidelines. What makes Tite distinct is that where the TEI in general is famously tolerant of multiple methods of encoding a given feature, Tite seeks uniformity of encoding through constraint, constraint via its stripped-down tag set and via this specification.

Tite can be used to encode printed prose, poetry, drama, newspapers, and anything else which can be described with the basic TEI building-blocks of divisions, paragraphs, line groups, and speeches.

A note on terms: I use document to refer generally to the item (book, pamphlet, newspaper, etc.) to be encoded and text as either linguistic material (as opposed to graphic or imagistic) or a logically distinct literary unit.

General Requirements

What to Capture

All printed material should be captured: all text (that is, printed characters) should be transcribed and the presence of graphical items or other non-transcribable elements should be indicated with markup. Normally text is understood to mean text in a Western character set, but this will be negotiated for each job. The presence of text in character sets outside the current scope should be indicated with the <gap> element.

End-of-line Hyphens

A distinction should be maintained in the electronic transcription between end-of-line or soft hyphens (an artifact of page layout) and hard hyphens (a linguistic feature). In the rare case of coincidence of the two types, the hyphen should be marked as hard (as it is not properly an end-of-line hyphen at all in this case).

Character Encoding

Texts should be encoded in UTF-8. For non-keyboard characters, each project should decide what kind of entities will serve best (mnemonic, numerical, etc.).

Accuracy and Verification

The standard for accuracy of transcription should be 99.99% (1 error in 10,000 characters). The sample size for verification should be 5% of the total text.

Documenting the Encoding Process

Almost unavoidably, difficult encoding situations will arise whose resolution may not be covered by these guidelines, common sense, or anything else close to hand. In any case like this where there is doubt or difficulty, it is important to document the markup choices that are made. To this end each encoded text should be accompanied by a document with such notes. These notes should reference both features of a document that seem remarkable to encoders (and how these were handled) and remarkable or non-obvious encoding decisions made by encoders.

Global Text Structure

TEI text structure

The basic structure of a TEI text is as follows:

<TEI>
 <teiHeader> [ TEI Header information ] </teiHeader>
 <text>
  <front> [ front matter ... ] </front>
  <body> [ body of text ... ] </body>
  <back> [ back matter ... ] </back>
 </text>
</TEI>

Thus there are two basic components: the (marked-up) text and its catalog-like description in the header. Tite is really only concerned with the text; it simply reproduces the <teiHeader> content model from the TEI Lite.

The <teiHeader>

Normally the client institution maintains responsibility for the header. The header can be sent to the off-site location to be kept with the encoded text, or no header may be sent. In the latter case a unique identifying number should be given as the @xml:id attribute of the <text> element. For validation of header-less <text>s, if an XML DTD is being used as the schema, simply replace the <TEI> element with <text> as the root element in the document type declaration. (I.e.
<!DOCTYPE text PUBLIC . . .
      >
.) If using RELAX NG, <TEI> and <text> are valid root elements.

As above, the content model for Tite is taken verbatim from the TEI Tite, thus maintaining full flexibility for the client institution while at the same time not imposing undue burden: a valid header can include as little as a title (<titleStmt>), publication statement (<publicationStmt>), and a description of the source document (<sourceDesc>).

Groups of Texts

A document should be encoded as a group of texts only when each potential member of the group contains its own front or back matter (most often, a separate title page). In this case the <group> element should replace the <text> element, and should contain child <text> elements each containing a <front>, <body>, and <back> (each <text> need not have both front and back matter, but should have at least one). Note that this group of texts will still have its own front and back matter. When dealing with a group of texts, the basic TEI text structure is modified to look like:

<TEI>
 <teiHeader> [ header information for the group ] </teiHeader>
 <text>
  <front> [ front matter for the group ] </front>
  <group>
   <text>
    <front> [ front matter of first text ] </front>
    <body> [ body of first text ] </body>
    <back> [ back matter of first text ] </back>
   </text>
   <text>
    <front> [ front matter of second text ] </front>
    <body> [ body of second text ] </body>
    <back> [ back matter of second text ] </back>
   </text>
         [ more texts or groups of texts here ]
  </group>
  <back> [ back matter for the group ] </back>
 </text>
</TEI>

In cases where a document appears to contain a group of texts but the above condition is not met, encode each unit as a <div> with an appropriate @type attribute.

Structural Divisions

Tite uses numbered <div> elements: <div1> through <div7>, which stand for levels of nesting within a text. <div1>s nest inside or are contained by the <front>, <body>, and <back> elements, <div2>s nest inside or are contained by <div1>s, etc. The document's table of contents is often a good place to find cues about where structural divisions start and end; other cues can be blank pages, recurring typographical or ornamental features, or a numbering system ("Chapter 5" etc.). Also, the presence of a heading will often indicate the beginning of a division.

The @type attribute should be used to express the type of division being marked. Where present, use the unit name given in the document itself. Though any constrained enumerated list of @type values will have to be determined on a job-by-job basis, some examples of appropriate division types are:

- "act"
- <article>
- "book"
- "chapter"
- "essay"
- "letter"
- "part"
- "scene"
- "section"
- "subsection"

For a good example of extensive use of enumerated lists to constrain possible types, see the University of Virginia Library's DLPS vendor specification.

The @n attribute should be used to record sequential labels associated with a structural division (numbers, numerals, letters). When present, these labels should also be transcribed within the <head> tag. For instance:

<div n="III" type="part">
 <head>III: It Awakes</head>
 [...]
</div>

When a heading is present, encode it with the <head> tag. If there is more than one heading at the beginning of a given division, encode each heading separately, using the @type attribute to distinguish them. Appropriate values are:

- "main"
- "sub" (subtitle)
- "alt" (alternate)
- "desc" (descriptive)

False Indicators

A divisional title is a page that resembles a half-title page: it displays the title or heading of a major structural unit on an otherwise blank page. Divisional titles should be encoded not with a separate <div> element, but as a <head> within the appropriate <div>. For half-title pages and similar fly-title pages see the section on Front Matter.

Another potential false indication of a new structural division is an ornament used as an informal division: a printer's ornament of some sort, a string of asterisks or periods, or a horizontal line. Mark these with the special <ornament> element. If the ornament is a horizontal line or printer's device or otherwise not transcribable, make the element empty and include an appropriate @type attribute ("line" or "ornament"); if the ornament is made up of characters, transcribe the characters into the <ornament>'s content.

Front and Back Matter

Front and back matter should be encoded with the <front> and <back> elements, respectively. <div1> elements should contain the major sections and should be characterized by @type attribute values. The exception, however, is the title page, which should be encoded with the <titlePage> element. The <titlePart> element should have @type attributes like for <head> but with one addition ("volume"):

- "main"
- "sub" (subtitle)
- "desc" (descriptive title)
- "alt" (alternate title)
- "volume" (volume information)

<titePart type="volume"> should be used to encode volume information wherever it is found on the title page, even if it is separated from the other title information. Here is the element class that forms the <titlePage> content model:
<!ENTITY %
       model.titlepagePart "graphic | byline | epigraph | docTitle | titlePart |
       docAuthor | docEdition | docImprint | docDate | figure | ornament"
       >

Information on the verso of the title page should be included as well (after a <pb>).

Common items to encode in front and back matter -- and therefore common @type attribute values for <front> and <back> divisions are:

- acknowledgements
- advertisement
- castlist
- contents
- dedication
- fly-title
- foreword
- introduction
- preface
- appendix (back)
- bibliography (back)
- colophon (back)
- glossary (back)
- index (back)

Half-title and fly-title pages may be encountered in the front matter. A half-title page precedes the title page proper and sometimes includes volume or series information; a fly-title page comes at the very end of the front matter, just before the body. In the case of half-titles, encode these as <div1 type="half-title"> (with <titlePart> elements as appropriate); in the case of fly-titles, encode them likewise with
<div1
      type="fly-title">
, making sure to make the fly-title division the last part of the front matter (and not the first part of the body, as may seem reasonable as well).

Types of Text

Tite is equipped to support basic encoding of several types of text: in terms of genre, it supports prose, verse, and drama, and in terms of format, it supports books, newspapers, pamphlets, and other similar printed material. Tite has special tags for letters, verse, drama, and newspapers.

Letters

<opener> and <closer> are elements designed to encode the beginning and ending sections of letters, prefaces, diary entries, or other personal types of writing. Both elements contain:

- <dateline>: for recording time and place of composition; use <date> with @type value (formatted yyyy-mm-dd) to record date information
- <signed>: for recording a signature
- <salute>: for recording salutation at the beginning ("Dear Roger,") or end ("Yours truly,")

<opener> contains additional elements that are not intended for use with letters:

- <argument>: for a summary that precedes a division
- <byline>: for a statement of responsibility for the document

However, the last <opener>-specific element, <epigraph>, will often be useful in the context of a letter. When encoding an epigraph, make sure to encode the content as you would any other feature, marking line groups, bibliographical elements, etc.

Verse

All verse should be encoded within at least one <lg> tag, even when there are no distinct stanzas or when the verse is interspersed with prose. If it is known, use the @type attribute to express the type of line group. Sometimes within a poem there is a question about what should be tagged as a <lg> or as a separate <div>. As a rough rule of thumb, if there is a title accompanying the division, use the <div> element; otherwise, use <lg>.

Each line of verse should be encoded with the <l> tag, and care should be taken to distinguish these logical lines of verse from lines motivated by page layout. The latter should be encoded as <lb>s. Thus

AS virtuous men pass mildly away,
  And whisper to their souls to go,
Whilst some of their sad friends do say,
  "Now his breath goes," and some say, "No."

should be encoded as

<lg type="stanza">
 <l>AS virtuous men pass mildly away,</l>
 <l rend="indent1">And whisper to their souls to <lb/> go,</l>
 <l>Whilst some of their sad friends<lb/> do say,</l>
 <l rend="indent1">"Now his breath goes," and <lb/> some say,
  "No."</l>
</lg>

Also, as in the example above, use the @rend attribute to mark when a line is indented more than its siblings. Using numbered indent values (e.g. "indent1", "indent2", etc.) makes clear different levels of indentation.

Drama

The standard TEI elements for drama should be used: <sp>, <stage>, <speaker>. If the @who attribute is used on <sp>, also transcribe who is given as the speaker, in whatever form it is written, in the <speaker> tag. Short pieces of stage direction that accompany the speaker designation may be included in the <speaker> tag.

Scenes and acts should be encoded as appropriately nested <div> elements with @type attributes of "scene" or "act", respectively. Cast lists can likewise be encoded using <div> and type="castlist".

Prologues and epilogues can be treated as <sp>s of their own, unless their structure would be better represented by nesting these in <div> tags.

Newspapers

Tite includes the elements <cols> and <cb> which are well suited for the multi-column layout of newspapers. Decisions about how to render the layout in markup may not be well addressed here, but as an example of project-specific specifications see the University of Virginia Library's documentation.

Block-level Features

Block Quotations

Use the <q> element to encode block quotations, but not inline quotations. A block quotation is indicated by its being set off from surrounding text either with extra line-spacing or margins or with a different typeface. If necessary, an entire quoted text can go inside of a <q> tag, in which case a secondary TEI <text> hierarchy should nest inside of the quotation. This is preferable to employing an ambiguous use of <div> elements (where it is not clear whether the <div> is a structure in the containing text or the quoted text). Thus this is desirable:

<div1 type="intro">
 <p>[ . . . ]</p>
 <q>[ here's a poem ]</q>
 <p>[ . . . ]</p>
</div1>

and this is not:

<div1 type="introduction">
 <div2 type="stuff-before-the-poem">
  <p>[ . . . ]</p>
 </div2>
 <div2 type="poem">
  <q>
    <lg>
     <l>here's a poem</l>
    </lg>
  </q>
 </div2>
 <div2 type="stuff-after-the-poem">
  <p>[ . . . ]</p>
 </div2>
</div1>

A <q> tag should not have any affect on the presence of quotation marks: if they are there, transcribe them.

Figures

If a figure has a heading or caption, encode it with the <head> tag. If there is associated text, simply use a <p> to encode it.

Tables and Lists

If a cell in a table is a heading or a label, use the @role attribute on the <cell> tag and set it to "label"; if the cell contains data, there is no need to use @role: "data" is the default. If a cell or row spans more than one column or row, use the @rows or @cols attributes set to the number of columns or rows that it spans.

If unsure about whether a structure is best encoded as a list or table, record it as a table only if it would not be properly understood without tabular layout.

TEI lists are either sequences of <items> or <label>-<item> pairs. If a list has the latter structure, be sure to explicitly encode each part.

Notes

Both the reference to the note in the running text and the note itself must be encoded. Use <ptr> or <ref> to encode the reference. If there is no reference in the text (often the case for marginal notes), supply a <ptr> element in a reasonable place in the text running beside the note. If there is a reference (number, symbol, etc.), use the <ref> element and include the reference text as the content. In both cases, a @target attribute must be supplied which contains the @xml:id value of the associated <note>.

When encoding the note itself with the <note> tag, the @xml:id and @place attributes must be supplied. See the TEI documentation for acceptable values for @place; the most common will be "foot", "end", "margin-left (-right, -top, -bot)".

Transcribe the note directly after it is referenced in the document. In the case of notes without explicit reference (pointed to with <ptr>), set the @anchored attribute to "false".

divWrapper Elements

Elements that can appear at the beginning and end of structural divisions, such as <argument>, <epigraph>, and <opener>, are called divWrapper elements in the TEI class system. An argument is a summary of what is to come; be sure to distinguish this from a heading, which is a title for the division. If an epigraph comes with bibliographic or simple citation material, encode this as well. For example:

<epigraph>
 <cit>
  <q>"I have sworn upon the altar of God eternal hostility against every
   form of tyranny over the mind of man."</q>
  <bibl>
   <author>Thomas Jefferson.</author>
  </bibl>
 </cit>
</epigraph>

Uncertain Blocks

In rare cases where the logical identity of a block-level element is hard to discern, use the TEI element <ab> (anonymous block) instead of applying a <p> or <div> tag. In these cases, be sure to document this decision in accompanying notes. Applying this element should be viewed as a last resort.

The <gap> element should be used when for some reason the document being transcribed contains illegible text (smudged, torn, missing, etc.) or something outside the scope of transcription for a given project: characters in an unsupported character set, for instance. <gap> indicates that something is omitted. When using <gap>, set the @reason attribute to an appropriate value. (See <unclear> below.)

Phrase-level features

Typographical Changes

There are six elements in Tite that capture specific typographical features:

<b>
- for bold-face glyphs
<i>
- for italicized glyphs
<ul>
- for underlined glyphs
<smcap>
- for glyphs in small-caps
<sub>
- for glyphs in subscript
<sup>
- for glyphs in superscript

These mark the physical change, and are agnostic about a logical motivation for it. There are two exceptions to this approach, however: marking foreign words and titles. In the case of foreign words, use the <foreign> tag; in the case of titles, use the <title> tag only if certain that the word or phrase in question is a title. If a phrase is, say, italicized but you are uncertain about its being a title, use the <i> tag instead. Foreign words should be marked only if they are typographically distinguished from surrounding text.

If there is a typographical feature not covered by the above elements, the TEI <hi> tag is still available in Tite. Enumerated lists of attribute values for <hi>'s @rend attribute should be negotiated job-by-job.

Alignment and Indentation

If the alignment of an element seems remarkable, set the element's @rend attribute to an appropriate value (normally "center", "right", "left", etc.). However, exhaustive description of alignment is not necessary. Headings, for instance, do not need to be marked as being centered, etc.

Punctuation

Standard keyboard punctuation marks should suffice for transcribing document punctuation except in the case of the ampersand, which must be represented with the entity reference &mp; in an XML document.

Uncertain Segments

The <seg> element is the phrase-level analogue to the <ab> tag. If a phrase-level feature seems to be present but its identity is hard to fathom, use this tag. This, again, is a kind of last resort.

Alternately, when a passage of text is for some reason too hard to discern, use the <unclear> element, setting the @reason attribute to an appropriate value. When using <unclear>, surround the entire word with the tag if any part of it is unclear (not just the illegible letter, say).

Reference Systems

Encode page breaks (<pb>) at the start of each page, and encode breaks even for blank pages. If the page is numbered, include the page number as the value of the @n attribute and, again, no matter where the page number is printed on the page, place the <pb> tag at the "top."

If marking column breaks, follow the same rules as for page breaks. Column breaks are imagined to appear at the top of the column, at the beginning of the column's text. The <cols> element exists to record a change in columnar layout. If such a change occurs, mark the beginning of the new layout with <cols> and supply the new number of columns as the value for the @n attribute.

If line breaks are to be captured, use the <lb> element.

Appendixes

Substantive changes from P4

The TEI Tite conforms to the TEI P5 Guidelines, which makes a number of changes from the TEI P4 Guidelines. The following brief list indicates some of the major changes in P4 encoding practice which will need to be employed for P5 conformance.

- At P5, a TEI document must declare a namespace of http://www.tei-c.org/ns/1.0
- The attributes @id and @lang are replaced by the attributes @xml:id and @xml:lang respectively. Values for the latter attribute must conform to RFC 3066
- all pointing and linking mechanisms now use the same W3C-defined mechanism: there is no longer any distinction between internal and external pointing elements
- the content model of <change> has changed significantly (this only concerns the header)

Formal specification

With the exception of two added elements and six easily convertible convenience elements, the TEI Tite is a pure subset of the TEI, modelled by stripping down the TEI Lite. All of the elements defined in it are taken from the following standard TEI modules: tei, core, header, textstructure, figures, and linking.

The following elements from those modules are excluded from the schema in both the TEI Lite and Tite: <alt>, <altGrp>, <altIdent>, <analytic>, <attDef>, <attList>, <attRef>, <biblItem>, <biblStruct>, <binaryObject>, <broadcast>, <cb>, <classSpec>, <classes>, <content>, <correction>, <datatype>, <defaultVal>, <desc>, <distinct>, <div0>, <egXML>, <elementSpec>, <equipment>, <equiv>, <exemplum>, <fsdDecl>, <headItem>, <headLabel>, <hyphenation>, <imprimatur>, <interpretation>, <join>, <joinGrp>, <link>, <linkGrp>, <listRef>, <macroSpec>, <measure>, <meeting>, <memberOf>, <metDecl>, <metSym>, <moduleRef>, <moduleSpec>, <monogr>, <normalization>, <postBox>, <postCode>, <quotation>, <quote>, <recording>, <recordingStmt>, <remarks>, <schemaSpec>, <scriptStmt>, <segmentation>, <series>, <specDesc>, <specGrp>, <specGrpRef>, <specList>, <state>, <stdVals>, <street>, <stringVal>, <tag>, <timeline>, <valDesc>, <valItem>, <valList>, <variantEncoding>, <when>.

Tite excludes the modules analysis and tagdocs where Lite includes some elements from these modules. Therefore Tite is less those elements as well.

The following elements are excluded in the TEI Lite but included in Tite: <ab>, <div1>, <div2>, <div3>, <div4>, <div5>, <div6>, <div7>.

The following are the elements that Tite excludes from the TEI Lite: <add> <altIdent>, <biblFull>, <choice>, <corr>, <del>, <divGen>, <emph>, <expan>, <gloss>, <imprint>, <index>, <mentioned>, <orig>, <reg>, <rs>, <sic>, <soCalled>, <teiCorpus>, <term>, <div> <anchor>.

Finally, the following are the elements that Tite adds to the TEI: <b>, <i>, <ul>, <smcap>, <sub>, <sup>, <cols>, and <ornament>.

Here is the TEI Tite schema itself:

<altGrp>

<alt>

<analytic>

<biblItem>

<biblStruct>

<binaryObject>

<broadcast>

<correction>

<distinct>

<equipment>

<equiv>

<fsdDecl>

<handNote>

<headItem>

<headLabel>

<hyphenation>

<imprimatur>

<interpretation>

<joinGrp>

<join>

<linkGrp>

<link>

<measure>

<meeting>

<metDecl>

<metSym>

<m>

<monogr>

<namespace>

<normalization>

<phr>

<postBox>

<postCode>

<quotation>

<quote>

<recording>

<recordingStmt>

<rendition>

<schemaSpec>

<scriptStmt>

<segmentation>

<series>

<state>

<stdVals>

<street>

<tagsDecl>

<tagUsage>

<timeline>

<variantEncoding>

<when>

<b>
(bold) for capturing typographical feature: bold glyphs.

<i>
(italics) for capturing typographical feature: italicized glyphs.

<ul>
(underline) for capturing typographical feature: underlined glyphs.

<sub>
(subscript) for capturing typographical feature: subscript glyphs.

<sup>
(superscript) for capturing typographical feature: superscript glyphs.

<smcap>
(smallcaps) for capturing typographical feature: glyphs in small capitals.

<cols>
(columns) with the "n" attribute (denoting new number of columns) is used to mark where a document changes columnar layout.
@ed
indicates the edition or version in which the change in columnar layout is located at this point

<ornament>
for capturing typographical feature: printer's ornament, horizontal line, strings of asterisks or periods, etc, indicating an informal division that does not call for a new <div> element. If a horizontal rule or printer's ornament, use appropriate @rend attribute and leave the element empy; if the ornament can be represented with characters, include these in the element.

<add>

<altIdent>

<biblFull>

<choice>

<corr>

<del>

<divGen>

<emph>

<expan>

<gloss>

<imprint>

<index>

<mentioned>

<orig>

<reg>

<rs>

<sic>

<soCalled>

<teiCorpus>

<term>

<div>

<anchor>

<figDesc>

att.authorialIntervention
@hand
@status
@type

att.declarable
@default

att.divLike
@org
@sample
@part

att.editLike
@cert
@resp
@evidence

att.global
@rendition

att.global.linking
@corresp
@synch
@sameAs
@copyOf
@next
@prev
@exclude
@select

att.segLike
@type
@function
@part

att.typed
@subtype

<gap>
@hand
@agent
@extent
@cert
@resp
@evidence

<unclear>
@hand
@agent
@cert
@resp
@evidence