# TEI Simple

<teiHeader> <fileDesc> <titleStmt> </titleStmt> <publicationStmt> <publisher>TEI Consortium</publisher> <availability> Distributed under a Creative Commons Attribution-ShareAlike 3.0 Unported License

Copyright 2014 TEI Consortium.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

<list> <item>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</item> <item>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</item> </list>

This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium.

</availability> </publicationStmt> <sourceDesc>

created ab initio during a meeting in Oxford

</sourceDesc> </fileDesc> </teiHeader> <text> <front> <titlePage> <docTitle> TEI Simple </docTitle> <docAuthor>Sebastian Rahtz</docAuthor> <docAuthor>Brian Pytlik Zillig</docAuthor> <docAuthor>Martin Mueller</docAuthor> <docDate>Version 0.1: 30th November 2014</docDate> </titlePage> </front>
Summary

The <hi>TEI Simple</hi> project aims to define a highly-constrained and prescriptive subset of the Text Encoding Initiative (TEI) Guidelines suited to the representation of early modern and modern books, a formally-defined set of processing rules which permit modern web applications to easily present and analyze the encoded texts, mapping to other ontologies, and processes to describe the encoding status and richness of a TEI digital text. This document describes the constrained subset

Background

The Text Encoding Initiative (TEI) has developed over 20 years into a key technology in text-centric humanities disciplines, with an extremely wide range of applications, from diplomatic editions to dictionaries, from prosopography to speech transcription and linguistic analysis. It has been able to achieve its range of use by adopting a descriptive rather than prescriptive approach , by recommending customization to suit particular projects, and by eschewing any attempt to dictate how the digital texts should be rendered or exchanged. However, this flexibility has come at the cost of relatively limited success in interoperability. In our view there is a distinct set of uses (primarily in the area of digitized ‘European’-style books) that would benefit from a prescriptive recipe for digital text; this will sit alongside other domain-specific, constrained TEI customizations, such as the very successful Epidoc in the epigraphic community. TEI-Simple may become a prototype for a new family of constrained customizations. For instance, a TEI Simple MS for manuscript based work could be built on top of the ENRICH project, drawing on many of the lessons and some of the code for TEI Simple.

The TEI has long maintained an introductory subset (TEI Lite), and a constrained customization for use in outsourcing production to commercial vendors (TEI Tite), but both of these permit enormous variation, and have nothing to say about processing. The present project can be viewed in some ways as a revision of TEI Lite, re-examining the basis of the choices therein, focusing it for a more specific area, and adding a "cradle to grave" processing model that associates the TEI Simple schema with explicit and standardized options for displaying and querying texts. This means being able to specify what a programmer should do with particular TEI elements when they are encountered, allowing programmers to build stylesheets that work for everybody and to query a corpus of documents reliably.

This project, TEI Simple, focuses on interoperability, machine generation, and low-cost integration. The TEI architecture facilitates customizations of many kinds; TEI Simple aims to produce a complete 'out of the box' customization which meets the needs of the many users for whom the task of creating a customization is daunting or seems irrelevant. TEI Simple in no way intends to constrain the expressive liberty of encoders who do not think that it is either possible or desirable to follow this path. It does, however, promise to make life easier for those who think there is some virtue in travelling that path as far as it will take you, which for quite a few projects will be far enough. Some users will never feel the need to move beyond it, others will outgrow it, and when they do they will have learned enough to do so.

A major driver for this project is the texts created by phase 1 of the EEBO-TCP project, which were placed in the public domain on 1 January 2015. Another 45,000 texts will join over the following five years, creating by 2020 an archive of 70,000 consistently encoded books published in England from 1475 to 1700, including works of literature, philosophy, politics, religion, geography, science and all other areas of human endeavor. When we compare the query potential of the EEBO TCP texts in their current and quite simple encoding with flat file versions of those text, it is clear that the difference in query potential is very high, especially if you add to that coarse encoding simple forms of linguistic annotation or named entity tagging that can be added in a largely algorithmic fashion. During 2012 and 2013 extensive work has been undertaken at Northwestern, Michigan and Oxford to enrich these texts and bring them into line with the current TEI Guidelines (where necessary working with the TEI to modify the Guidelines). TEI Simple uses this corpus as a point of departure and will provide its users with a friendlier environment for manipulating EEBO texts in various projects. But TEI Simple should not be understood as an EEBO specific project. We believe that, given the extraordinary degree of internal diversity in the EEBO source files, a project that starts from them can, with appropriate modifications, accommodate a wide range of printed texts differing in language, genre, or time and place of origin.

The TEI Simple schema
The TEI infrastructure
The header

The default set of elements for the header are loaded using the <term>header</term> module. In addition, elements from other modules are loaded, if they are tagged in the classification as being needed for the header only.

Elements which are only intended to be used in the header are banned from the <gi>text</gi>, using a Schematron rule.

Transcription

In order to support the <gi>sourcedoc</gi> and <gi>facsimile</gi> elements, the basic transcriptional elements are loaded, and two attribute classes.

Attribute classes

The <term>tei</term> module brings with it a default set of attribute classes. We need some more specialist ones from other modules, and to delete some default ones which we don't plan to use.

Some uncommon attributes are removed from global linking.

<attList> </attList>

URLs have a constraint that a local pointer must have a corresponding ID.

<attList> <constraint> Error: Every local pointer in "" must point to an ID in this document () </constraint> </attList>

Constrained value lists are added to attribute classes where possible.

<attList> <desc>above the line</desc> <desc>below the line</desc> <desc>at the top of the page</desc> <desc>at the top right of the page</desc> <desc>at the top left of the page</desc> <desc>at the top center of the page</desc> <desc>at the bottom right of the page</desc> <desc>at the bottom left of the page</desc> <desc>at the bottom center of the page</desc> <desc>at the foot of the page</desc> <desc>underneath a table</desc> <desc>in the outer margin</desc> <desc>in the left margin</desc> <desc>in the right margin</desc> <desc>on the opposite, i.e. facing, page.</desc> <desc>on the other side of the leaf.</desc> <desc>at the end of the volume.</desc> <desc>at the end the current division.</desc> <desc>at the end the current paragraph.</desc> <desc>within the body of the text.</desc> <desc>in a predefined space, for example left by an earlier scribe.</desc> <desc>formatted like a quotation</desc> </attList> <attList> <desc>characters</desc> <desc>lines</desc> <desc>pages</desc> <desc>words</desc> <desc>centimetres</desc> <desc>millimetre</desc> <desc>inches</desc> </attList> <constraint> Error: Each of the rendition values in "" must point to a local ID or to a token in the Simple scheme () </constraint> <constraint> Error: Every local pointer in "" must point to an ID in this document () </constraint> <attList> <desc>all capitals</desc> <desc>black letter or gothic typeface</desc> <desc>bold typeface</desc> <desc>marked with a brace under the bottom of the text</desc> <desc>border around the text</desc> <desc>centred</desc> <desc>cursive typeface</desc> <desc>block display</desc> <desc>strikethrough with double line</desc> <desc>underlined with double line</desc> <desc>initial letter larger or decorated</desc> <desc>floated out of main flow</desc> <desc>with a hyphen here (eg in line break)</desc> <desc>inline rendering</desc> <desc>italic typeface</desc> <desc>larger type</desc> <desc>aligned to the left or left-justified</desc> <desc>marked with a brace on the left side of the text</desc> <desc>letter-spaced</desc> <desc>upright shape and default weight of typeface</desc> <desc>normal typeface weight</desc> <desc>aligned to the right or right-justified</desc> <desc>marked with a brace to the right of the text</desc> <desc>rotated to the left</desc> <desc>rotated to the right</desc> <desc>small caps</desc> <desc>smaller type</desc> <desc>strike through</desc> <desc>subscript</desc> <desc>superscript</desc> <desc>marked with a brace above the text</desc> <desc>fixed-width typeface, like typewriter</desc> <desc>underlined with single line</desc> <desc>underlined with wavy line</desc> </attList>
Model classes

A set of unused model classes are removed.

Elements

The main part of Simple is the set of selected elements.

<rendition>color: green; text-decoration: underline;</rendition> <rendition>margin-top: 2em; margin-left: 2em; margin-right: 2em; margin-bottom: 2em;</rendition> <rendition>white-space: nowrap;</rendition> <rendition>margin-bottom: 0.5em;</rendition> <constraint> Element "<name/>" may not be empty. </constraint> <modelSequence> </modelSequence> <desc>Insert list. </desc> <desc>Insert item, rendered as described in parent list rendition. </desc> <rendition>list-style: ordered;</rendition> <desc>Insert table cell. </desc> <constraint> Element "<name/>" must have at least two child elements. </constraint> <constraint> Element "<name/>" must have corresponding corr/sic, expand/abbr, reg/orig </constraint> <desc>Insert cit. </desc> <rendition>margin-top: 1em; margin-left: 1em; margin-left: 1em;</rendition> <desc>Omit, if handled in parent choice. </desc> content: '['; content: ']'; <rendition> text-decoration: line-through; <rendition>border: 1px solid black; padding: 5px; <desc>Omit if located in teiHeader. </desc> <desc>Omit if located in teiHeader. </desc> <desc>Omit if located in teiHeader. </desc> <desc>Omit if located in teiHeader. </desc> <desc>Omit if located in teiHeader. </desc> <rendition>font-size: large; content: '[..'; content: '..]'; <rendition>color: grey;font-style:italic; <rendition> display: block; border-top: solid 1pt blue; border-bottom: solid 1pt blue; <rendition> margin: 6pt; border: solid black 1pt; <rendition>font-style:italic; <rendition>color: grey; content: '[..'; content: '..]'; <rendition>color: grey; content: '[...]'; <rendition>font-style: italic; <rendition>font-style: italic; <rendition>font-style: italic; <rendition>font-weight: bold; <rendition>font-style: italic; <rendition>font-style: italic; <rendition> margin-left: 1em; <rendition>margin-left: 10px;margin-right: 10px; font-size:smaller; content:" ["; content:"] "; <rendition>font-size:small; <desc>Omit, if handled in parent choice. </desc> <rendition>text-align: justify; <constraint> please make sure pb elements are not at the start or end of mixed content </constraint> <rendition> display: block; color: grey; float: right; content: '[Page '; content: ']'; <desc>Omit if located in teiHeader. </desc> <desc>Omit if located in teiHeader. </desc> <rendition>margin-left: 10px; margin-right: 10px; content: '‘'; content: '’'; <rendition>margin-left: 10px; margin-right: 10px; <desc>If it is inside a paragraph then it is inline, otherwise it is block level</desc> content: '‘'; content: '’'; <desc>If it is inside a paragraph then it is inline, otherwise it is block level</desc> <rendition>margin-left: 10px; margin-right: 10px; <desc>Omit, if handled in parent choice.</desc> <rendition>font-weight: bold; <desc>Insert table row. </desc> content: '{'; content: '}'; <rendition> text-align: right; <rendition> font-style: italic; <rendition> font-style:italic; <rendition>font-style: italic; content:"<"; content:">"; content:"["; content:"]"; content:"("; content:")"; content:"{"; content:"}"; <rendition> font-size: smaller; background-color: #F0F0F0; <rendition> max-width: 80%; margin: auto; font-family: Verdana, Tahoma, Geneva, Arial, Helvetica, sans-serif; <rendition>color: red; font-size: 2em; <rendition>font-style: italic; <rendition>font-style: italic; <rendition>font-style: italic; <rendition>font-style: italic; <rendition> text-align: center; <rendition>color: green; content: ' [?] ';

A small number of elements have constrained value lists added.

<attList> <desc>Using TeX or LaTeX notation</desc> </attList> <attList> </attList> <attList> <desc>data cell</desc> <desc>label cell</desc> <desc>row or column sum data</desc> <desc>table total data</desc> </attList> <attList> <desc>data cell</desc> <desc>label cell</desc> <desc>row or column sum data</desc> <desc>table total data</desc> </attList> text-transform: uppercase; font-family: fantasy; font-weight: bold; padding-bottom: 2pt; border-bottom: dashed gray 2pt; padding: 2pt; border: solid black 1pt; text-align: center; font-family: cursive; text-decoration: line-through; color: red; text-decoration: underline; color: red; font-size : 6em; font-family: cursive; font-weight : bold; vertical-align: top; height: 1em; line-height: 1em; float : left; width : 1em; color : #c00; margin: 0em; padding: 0px; float:right; display: block; font-size: smaller; clear: right; padding: 4pt; width: 15%; display:inline; display:block; font-style: italic; font-size: larger; text-align: left; padding-left: 2pt; border-left: dotted gray 2pt; letter-spacing: 0.5em; font-style:roman; font-weight:normal; text-align: right; padding-right: 2pt; border-right: dotted gray 2pt; -webkit-transform: rotate(90deg); transform: rotate(90deg); -webkit-transform: rotate(-90deg); transform: rotate(-90deg); font-variant: small-caps; font-size: smaller; text-decoration: line-through; vertical-align: bottom; font-size: smaller; vertical-align: super; font-size: smaller; padding-top: 2pt; border-top: dotted gray 2pt; font-family:monospace; text-decoration: underline; text-decoration: underline; text-decoration-style: wavy;
</text>