TEI Constrained: Yet Another Presentation System

Authorship
  1. 1. Syd Bauman

    Women Writers Project - Brown University

Work text
This plain text was ingested for the purpose of full-text search, not to preserve original formatting or readability. For the most complete copy, refer to the original conference program.

The Text Encoding Initiative Consortium1 claims that its
new Guidelines (P5)2 can be customized for almost any
purpose, including writing new documents (as opposed to
transcribing existing ones). This author regularly teaches
workshops on text encoding using the Text Encoding Initiative
Guidelines, and believes it is important that TEI advocates “eat
our own dog food” — that is, we should use TEI to encode the
documents used to teach TEI. This includes the slides displayed
during a presentation or lecture, and any associated handouts.
Initially the author’s workshops were written in TEI Lite and
the slides were created using Sebastian Rahtz’s stylesheets for
slides provided by the TEI Consortium. Quite quickly it became
clear that a more reliable, better documented, and easier to use
system was needed; the hallmark feature of such a system would
be a highly constrained schema tailored to the needs of a
workshop presentation.
Such a highly constrained schema tailored to the particular
purpose has several important advantages. First, it makes
authoring much easier. A large variety of elements that make
no sense in the context of a workshop slide are available in TEI
Lite, e.g. <gap> or <interpGrp>. When writing slides for
the workshop, the author needs to pick and choose from among
the available elements, including those which make no sense.
Eliminating these makes the author’s encoding task much
simpler. Second, the semantics of elements can be expressed
more explicitly. E.g., a <slide> element can be used instead
of <div type="slide"> . This may seem like a minor
point, but the third advantage requires it: that constraints
required for the purpose can be enforced in the schema. E.g.,
in TEI Lite the <head> element is an optional child of a
<div>, whereas it can be made a required child of a <slide>,
and still be an optional child of a <div>.
In order to ascertain how difficult it is to create such a highly
constrained, specialized schema using P5, a new system was
developed using the TEI’s new ODD (one document does it
all) system.3 Because there are already quite a few presentation
systems available to the workshop instructor, both proprietary
and open, both XML-based and others, the new system is called
Yet Another Presentation System, or “yaps”. Accordingly, its
icon is a dog. Yaps provides the capability to write a single document for a presentation, and from that document create
slides, notes intended for the lecturer, and notes intended to be
part of a hand-out for participants. The system is well
documented, with an intended audience being a person who is
familiar with TEI and is generally technologically savvy, but
may not have much direct experience with complex
transformations and stylesheets. Many such TEI users use the
commercial XML editor oXygen, which includes most of the
needed software packages (e.g., xmllint and Saxon 8) built-in.
Therefore instructions are provided for using the system from
within oXygen, as well as from the command-line.
The system comprises (in order of academic interest):
• An extensive TEI customization which provides a TEI
markup language for presentations, and documentation for
the use of that language.
• An XSLT stylesheet that transforms a document conforming
to the markup language described by the ODD to XHTML.
• CSS stylesheets for viewing both the source and the various
outputs in a browser.
• A shell script front-end (for GNU/Linux, Mac OS X, or
similar systems) for executing the commands necessary to
generate the system documentation and schemas from the
ODD file. This relies on roma.sh, the ODD processing tool
written for the TEI by Sebastian Rahtz.4
• A shell script front-end (for GNU/Linux, Mac OS X, or
similar systems) for executing the commands necessary to
apply the XSLT transformations to a source yaps file,
generating multiple linked XHTML files.
TEI customization
The TEI customization or ODD file that defines both the
yaps schema and its documentation is large (currently
almost 2000 lines) and thorough. It demonstrates several
interesting features (e.g., deletion of classes, use of
Schematron). But more controversially, the documentation
therein is not only for the language described, but is also the
documentation for its use. This is certainly not a “pure” or
intended use of TEI ODD, and some might even say it is
inappropriate. On the other hand, ODD provides a reasonable
place for such documentation, and TEI provides a reasonably
rich and familiar language with which to write such
documentation.
The markup language described by the ODD is much smaller
and far more structured than the TEI most of us are used to.
From the beginning the goal has been to create a markup
language that would be easy to use (because the authors using
it are already well versed in TEI), but constructed specifically
for the production of slides and associated materials to be used
during a presentation. The language is deliberately highly
constrained. For example, even in cases where order would be
irrelevant as far as processing is concerned, a particular order
is required by the schema primarily for the benefit of the author,
who has to make fewer guesses about what should come next,
and make few if any decisions between equivalent encodings.
The yaps language was not designed as a standalone language
and then retrofitted to TEI, but neither were significant
compromises to the desired language made to make it easy to
express it as a TEI language. Thus the customization ODD is
somewhat complicated in order that the end result be a simple,
applicable language. For example, the <body> element with
its <div>s is replaced by a <presentation> element which
has nothing but <section> (or <sectionGrp>) children.
It would have been easier to design a customization which used
<div type="section">. While this would have been
semantically equivalent, it is not possible (in ODD) to provide
the desired syntactic constraints on <div>, whereas it is easy
to provide such constraints on <section>.
There are only three possible children of a <section>: one
for a slide, one for instructor’s notes, and one for an
accompanying handout. There are currently only 96 elements
defined in this language, many of which are metadata elements
used in the <teiHeader>. As an example of its simplicity,
there are only 14 elements available to an author writing the
content of a <slide>; there are well over twice that many
available to the author of a TEI Lite document using <div
type="slide">.
XSLT
The stylesheet is a single parameterized XSLT 2.0
stylesheet that is over 1000 lines long. It creates relatively
abstract valid XHTML output (i.e., most of the input YAPS
elements are represented by XHTML <span> elements that
make use of the class= attribute). I am hopeful that it is of
high enough quality to be a useful example for beginners;
simultaneously I am hoping XSLT experts will be able to
provide pointers and advice on improvements.
Further Features
Although the system is quite usable in its current state (Julia
Flanders, Christian Wittern, and I have all made use of
it for workshops) there are, of course, a lot of improvements
still to be made. Many of these improvements I expect to have
in place before the conference.
• Make locations of stylesheets, etc., more generalized
• Make licensing conditions (e.g., GPL) more explicit
• Update documentation to match current release of oXygen Consider use of a configuration file that would make
customization of some of the CSS features easy
• Consider creation of a transform to/from APXL (Apple’s
schema for Keynote)
• Generate PDF as well as XHTML (not expecting to do this
before conference)
1. See <http://www.tei-c.org/>, in particular <http
://www.tei-c.org/Consortium>.
2. As of this writing the current alpha release (0.6) is available both
via the TEI website and on Sourceforge. See <http://sour
ceforge.net/project/showfiles.php?group
_id=106328&package_id=141127> or <http://
www.tei-c.org/P5/>.
3. For the definition of the ODD system, see Chapter 27
“Documentation Elements,” Guidelines for Electronic Text
Encoding and Interchange, ed. Syd Bauman, Lou Burnard, & C.
M. Sperberg-McQueen (Text Encoding Initiative Consortium,
2006).<http://www.tei-c.org/release/doc/t
ei-p5-doc/html/TD.html>. For a tutorial on the ODD
system, see Rahtz & Burnard, "One Document Does it all",
presented at the TEI annual Members’ Meeting 2005, Sofia,
Bulgaria. <http://www.tei-c.org/Talks/2005/
Sofia/odds.pdf>. For an overview and discussion of the
theoretical implications, see Bauman & Flanders, "Odd
Customizations", presented at Extreme Markup Languages 2004,
Montreal, Canada. <http://www.idealliance.org
/papers/extreme/proceedings/html/2004/B
auman01/EML2004Bauman01.html>. For a variety of
samples of ODD in use, see Bauman et al., “An Odd Basket of
ODDs”, presented at DH 2006, Paris, France.
4. Available on Sourceforge at <http://sourceforge.ne
t/project/showfiles.php?group_id=106328
&package_id=141128>.

If this content appears in violation of your intellectual property rights, or you see errors or omissions, please reach out to Scott B. Weingart to discuss removing or amending the materials.

Conference Info

Complete

ADHO - 2007

Hosted at University of Illinois, Urbana-Champaign

Urbana-Champaign, Illinois, United States

June 2, 2007 - June 8, 2007

106 works by 213 authors indexed

Series: ADHO (2)

Organizers: ADHO

Tags
  • Keywords: None
  • Language: English
  • Topics: None