What is TEI all about?
Text Encoding and markup for the Humanities

University College London

6 November 2009

Edward Vanhoutte

edward.vanhoutte@kantl.be

Royal Academy of Dutch Language and Literature

TOC | First


I. Introduction

How I could have appeared

previous table of contents next
(c) Edward Vanhoutte 1 of 2 [96]

Who is Edward Vanhoutte?

previous table of contents next
(c) Edward Vanhoutte 2 of 2 [96]
  • Director of Research in the Royal Academy of Dutch Language and Literature in Belgium
  • Director of the Centre for Scholarly Editing and Document Studies (CTB) http://www.kantl.be/ctb/
  • Manages ca. 10 electronic projects in the humanities.
  • Associate Editor of LLC. The Journal of Digital Scholarship in the Humanities http://llc.oxfordjournals.org/
  • Former member of the TEI technical council
  • taught courses on XML, TEI, and Electronic textual editing in Europe and Africa
  • Blog The Mind Tool: Musings and research notes on Humanities Computing http://edwardvanhoutte.blogspot.com
  • URI: http://www.edwardvanhoutte.org
  • email: edward.vanhoutte@kantl.be

II. Objectives

Objectives

previous table of contents next
(c) Edward Vanhoutte 1 of 1 [96]
After this lecture you should be able to
  • Discuss the importance of text encoding for the humanities
  • Explain what TEI stands for
  • Assess the value of TEI for your project
  • Start on a TEI encoding project

III. OverviewI

Overview

previous table of contents next
(c) Edward Vanhoutte 1 of 1 [96]
  • Part 1: History and Theory
    • Textual Modelling
    • History
    • XML
    • TEI
  • Part 2: Demonstration
    • Electronic scholarly editions
    • Digital Archive of Letters in Flanders
    • James Joyce Timeline: Finnegans Wake Notebooks
    • TEI by Example

IV. Textual Modelling

Let's talk about these objects for a minute

previous table of contents next
(c) Edward Vanhoutte 1 of 28 [96]

Variety: Location

previous table of contents next
(c) Edward Vanhoutte 2 of 28 [96]
FranceNigeria

Variety: Location

previous table of contents next
(c) Edward Vanhoutte 3 of 28 [96]
PortugalEstonia

Variety: Location

previous table of contents next
(c) Edward Vanhoutte 4 of 28 [96]
VietnamUSA

Variety: Time

previous table of contents next
(c) Edward Vanhoutte 5 of 28 [96]
Past

Variety: Time

previous table of contents next
(c) Edward Vanhoutte 6 of 28 [96]
Future

Question: What are they?

previous table of contents next
(c) Edward Vanhoutte 7 of 28 [96]
How do you know?

Concept: Cognitive Model

previous table of contents next
(c) Edward Vanhoutte 8 of 28 [96]
→ 'bicycleness'

Application: Where can a bike be used?

previous table of contents next
(c) Edward Vanhoutte 9 of 28 [96]
  • Geographically
  • Topographically

Application: When can a bike be used?

previous table of contents next
(c) Edward Vanhoutte 10 of 28 [96]
  • Time
  • Age
  • Purpose

Use: Who can use a bike?

previous table of contents next
(c) Edward Vanhoutte 11 of 28 [96]
  • Gender
  • Race
  • Religion
  • Ability

Conclusion

previous table of contents next
(c) Edward Vanhoutte 12 of 28 [96]
The concept 'bicycle' is generally recognized as an instantiation of a cognitive model.
It names a specific means of transportation that can be used
  • by everyone
  • everywhere
  • for every purpose

Even this is recognized as a bike

previous table of contents next
(c) Edward Vanhoutte 13 of 28 [96]

Let's talk about these objects for a minute

previous table of contents next
(c) Edward Vanhoutte 14 of 28 [96]

Variety: Location

previous table of contents next
(c) Edward Vanhoutte 15 of 28 [96]
FrancePortugal

Variety: Location

previous table of contents next
(c) Edward Vanhoutte 16 of 28 [96]
EstoniaVietnam

Variety: Location

previous table of contents next
(c) Edward Vanhoutte 17 of 28 [96]
USA

Variety: Time

previous table of contents next
(c) Edward Vanhoutte 18 of 28 [96]
Past

Variety: Time

previous table of contents next
(c) Edward Vanhoutte 19 of 28 [96]
Modern

Question: What are they?

previous table of contents next
(c) Edward Vanhoutte 20 of 28 [96]
How do you know?

Concept: Cognitive Model

previous table of contents next
(c) Edward Vanhoutte 21 of 28 [96]
→ 'Textness'

Application: Where can a text be used?

previous table of contents next
(c) Edward Vanhoutte 22 of 28 [96]
  • Geographically
  • Topographically

Application: When can a text be used?

previous table of contents next
(c) Edward Vanhoutte 23 of 28 [96]
  • Time
  • Age
  • Purpose

Use: Who can use a text?

previous table of contents next
(c) Edward Vanhoutte 24 of 28 [96]
  • Gender
  • Race
  • Religion
  • Ability

Conclusion

previous table of contents next
(c) Edward Vanhoutte 25 of 28 [96]
The concept 'text' is generally understood as an instantiation of a cognitive model.
It names a specific means of transportation of language that can be used
  • by everyone
  • everywhere
  • for every purpose

Even this is recognized as a text

previous table of contents next
(c) Edward Vanhoutte 26 of 28 [96]

Textual Modelling: the battle for market share

previous table of contents next
(c) Edward Vanhoutte 27 of 28 [96]
  • Proprietory
  • Incompatibility
  • Paying for licences
  • Procedural markup

Textual Modelling: the battle for textual data

previous table of contents next
(c) Edward Vanhoutte 28 of 28 [96]
  • Non-proprietory
  • Compatibility
  • Open Source & free
  • Descriptive markup
→ XML
→ Allows anyone to ride on the right and the left side of the road, wherever you are at every time.

V. History

Computing in the Humanities: 1949-1970

previous table of contents next
(c) Edward Vanhoutte 1 of 10 [96]
  • ad hoc programming in projects
  • project-specific markup languages
  • some sort of standardization: e.g. COCOA

Computing in the Humanities: 1970-1985

previous table of contents next
(c) Edward Vanhoutte 2 of 10 [96]
  • method oriented program packages: e.g. SPSS (Statistical Package for the Social Sciences)
  • OCP (Oxford Concordance Program) takes COCOA as input

Computing in the Humanities: 1985-1993

previous table of contents next
(c) Edward Vanhoutte 3 of 10 [96]
  • PC revolution
  • standard software
  • dBase, Access
  • SGML ISO 8879:1986 (Standard Generalized Markup Language)

The Text Encoding Initiative (TEI): 1987-1993

previous table of contents next
(c) Edward Vanhoutte 4 of 10 [96]
11-12 November 1987: Vassar College, Poughkeepsie (NY)
→ 32 humanities scholars
Principles:
  • Platform-independent
  • Software-independent
  • Endurability
  • Re-usability
  • Accessibility
  • Language-independent
  • For all of the Humanities disciplines
→ SGML ISO 8879:1996
  • 1990: P1 : SGML
  • 1992: P2 : SGML

Computing in the Humanities: 1993-1999

previous table of contents next
(c) Edward Vanhoutte 5 of 10 [96]
  • 1993: launch of the WWW
  • computer as presentational medium
  • computer as web tool
  • HTML technology
  • SGML technology

The Text Encoding Initiative (TEI): 1993-1999

previous table of contents next
(c) Edward Vanhoutte 6 of 10 [96]
→ SGML ISO 8879:1996
  • 1994: P3 : SGML : 600 + elements
  • 1995: TeiLite : SGML : 131 elements
  • 1999: P3rev : SGML

SGML ISO 8879:1996

previous table of contents next
(c) Edward Vanhoutte 7 of 10 [96]
Difficulties:
  • Difficult to implement
  • Unpredictable: OMITTAG
  • Expensive: encoding and DTD development
→ XML eXtensible Markup Language (1999)

Computing in the Humanities: 1999-2009

previous table of contents next
(c) Edward Vanhoutte 8 of 10 [96]
  • 1999: XML (eXtensible Markup Language)
  • computer as presentational medium
  • computer as web tool
  • distributed computing
  • XML technology

The Text Encoding Initiative (TEI): 1999-2009

previous table of contents next
(c) Edward Vanhoutte 9 of 10 [96]
→ XML
  • 2000: TEI Consortium
  • 2001: P4 : XML comp
  • 2001: TeixLite : XML
  • 2005: P5 : XML
  • 2007: P5 version 1
→ TEI Consortium (eds.) (2007). TEI P5. Guidelines for Electronic Text Encoding and Interchange. http://www.tei-c.org/Guidelines/P5/

TEI Short History

previous table of contents next
(c) Edward Vanhoutte 10 of 10 [96]
  • 1987: Vassar College, Poughkeepsie
  • 1990: P1 : SGML
  • 1992: P2 : SGML
  • 1994: P3 : SGML : 600 + elements
  • 1995: TeiLite : SGML : 131 elements
  • 1999: P3rev : SGML
  • 2000: TEI Consortium
  • 2001: P4 : XML comp
  • 2001: TeixLite : XML
  • 2005: P5 : XML
  • 2007: P5 version 1

VI. XML

SGML - TEI - XML

previous table of contents next
(c) Edward Vanhoutte 1 of 29 [96]

SGML - TEI - XML

previous table of contents next
(c) Edward Vanhoutte 2 of 29 [96]

SGML - TEI - XML

previous table of contents next
(c) Edward Vanhoutte 3 of 29 [96]

Why would you want to learn about XML?

previous table of contents next
(c) Edward Vanhoutte 4 of 29 [96]
→ XML is not the end of the world, and won't solve all your problems, but:
  • It's a good approximation
  • It works (fairly well)
  • It's widely supported
  • It's a W3C recommendation

Why would you want to learn about XML?

previous table of contents next
(c) Edward Vanhoutte 5 of 29 [96]
→ XML will not live forever, but:
  • Migration will be supported
  • Migration will create more jobs

Why would you want to learn about XML?

previous table of contents next
(c) Edward Vanhoutte 6 of 29 [96]
→ It's fun.

XML: Five Essential Components

previous table of contents next
(c) Edward Vanhoutte 7 of 29 [96]

XML: Five Essential Components

previous table of contents next
(c) Edward Vanhoutte 8 of 29 [96]
  1. Processing Instructions: <?xml version="1.0" ?>
  2. Elements: <title> or </title>
  3. Attributes (optional): <title type="journal" >
  4. Entity References: &eacute; = &#233; = é
  5. CDATA: <![CDATA[This text escapes the XML processor]]>
→ XML is case sensitive in the naming of elements
<title> is not <TITLE> is not <Title> is not <tItle> etc.

XML comes in 2 flavours

previous table of contents next
(c) Edward Vanhoutte 9 of 29 [96]

XML comes in 2 flavours

previous table of contents next
(c) Edward Vanhoutte 10 of 29 [96]
  1. Well-formed XML
  2. Valid XML

Well-formed XML

previous table of contents next
(c) Edward Vanhoutte 11 of 29 [96]
  1. XML is case sensitive
  2. At least one element
  3. There is always a root element
  4. All logical and physical structures nest properly
  5. Correspondence of element names in start- and end-tags
  6. Attribute names only appear once in a start-tag
  7. Attribute values are quoted
  8. Attribute values do not refer to external entities
  9. Entities are declared
  10. No entity reference contains the name of a non-parsed entity

Valid XML

previous table of contents next
(c) Edward Vanhoutte 12 of 29 [96]
  • Well-formed XML
  • Conforms to a Document Type Definition (DTD)
  • Or to a valid Schema

Document Type Definition

previous table of contents next
(c) Edward Vanhoutte 13 of 29 [96]
→ The formal specification for the structure of an XML document
<?xml version="1.0" ?>
<greeting>
    <salutation>hello</salutation>
    <target>world</target>
</greeting>
               

Document Type Definition

previous table of contents next
(c) Edward Vanhoutte 14 of 29 [96]
→ The formal specification for the structure of an XML document
<?xml version="1.0" ?>
<greeting>
    <salutation>hello</salutation>
    <target>world</target>
</greeting>
               
DTD:
<!ELEMENT greeting (salutation, target)>
<!ELEMENT salutation (#PCDATA)>
<!ELEMENT target (#PCDATA)> 

Document Type Definition

previous table of contents next
(c) Edward Vanhoutte 15 of 29 [96]
A DTD specifies the vocabulary and the syntax of a markup language
It defines:
  • names for all your elements
  • names and default values for their attributes
  • rules about how elements can nest
  • names for re-usable pieces of data (entities)
  • and a few other things
A DTD does not specify anything about what elements "mean"

Defining an element in a DTD

previous table of contents next
(c) Edward Vanhoutte 16 of 29 [96]
<!ELEMENT name contentModel>
               
  • name is the name of the element (GI)
  • contentModel defines valid content for the element:
    • #PCDATA
    • EMPTY
    • other elements
    • mixed content combining PCDATA and other elements

previous table of contents next
(c) Edward Vanhoutte 17 of 29 [96]

previous table of contents next
(c) Edward Vanhoutte 18 of 29 [96]

previous table of contents next
(c) Edward Vanhoutte 19 of 29 [96]

Theoretical problem with the DTD

previous table of contents next
(c) Edward Vanhoutte 20 of 29 [96]
  • DTDs are written in a formal language different from the XML documents.
→ XML Schema
  • A self-declarative way of documenting the formal specification for the structure of an XML document
  • Expressed in XML itself
Schema can deal with namespaces and DTDs can not
An XML namespace is a collection of names, identified by a URI reference, which are used in XML documents as element types and attribute names.
e.g.: <table> in doc1 is not necessarily the same as <table> in doc2

Problems with Schema

previous table of contents next
(c) Edward Vanhoutte 21 of 29 [96]
→There are a couple of Schema languages around:
  • W3C XML Schema: http://www.w3.org/XML/Schema
  • Relax NG: http://www.relaxng.org
  • XML-Data (XDR)
  • Document Content Description (DCD)
  • Schema for Object-oriented XML (SOX)
  • Document Definition Markup Language (DDML)
  • Schematron
  • Datatypes for DTDs (DT4DTD)
  • Document Structure Description (DSD)
  • Regular Language Description for XML (RELAX)
  • TREX (Tree Regular Expressions for XML)
  • Examplotron
  • Hook
  • Document Schema Definition Language (DSDL)
  • STEP/EXPRESS and XML

Book DTD

previous table of contents next
(c) Edward Vanhoutte 22 of 29 [96]

<!ELEMENT   book    (chapter+)>
<!ELEMENT   chapter (section+)>
<!ELEMENT   section (p+)>
<!ELEMENT   p       (#PCDATA)>

               

Book Schema (Relax NG Simple notation)

previous table of contents next
(c) Edward Vanhoutte 23 of 29 [96]

<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
>

 <start>
      <ref name="book" />
  </start>

  <define name="book">
    <element>
      <name>book</name>
      <oneOrMore>
        <ref name="chapter" />
      </oneOrMore>
    </element>
  </define>

 <define name="chapter">
    <element>
      <name>chapter</name>
      <oneOrMore>
        <ref name="section" />
      </oneOrMore>
    </element>
 </define>

 <define name="section">
    <element>
      <name>section</name>
      <oneOrMore>
        <ref name="p" />
      </oneOrMore>
    </element>
 </define>

 <define name="p">
    <element>
      <name>p</name>
      <text />
    </element>
 </define>

</grammar>

               

DTD and Schema

previous table of contents next
(c) Edward Vanhoutte 24 of 29 [96]

<!ELEMENT   book   (chapter+)>
                        

<define name="book">
   <element>
      <name>book</name>
      <oneOrMore>
         <ref name="chapter" />
      </oneOrMore>
   </element>
</define>
                        

<!ELEMENT   chapter   (section+)>
                        

<define name="chapter">
   <element>
      <name>chapter</name>
      <oneOrMore>
         <ref name="section" />
      </oneOrMore>
   </element>
</define>
                        

<!ELEMENT   section   (p+) >
                        

<define name="section">
   <element>
      <name>section</name>
      <oneOrMore>
         <ref name="p" />
      </oneOrMore>
   </element>
</define>
                        

<!ELEMENT  p   (#PCDATA)>
                        

<define name="p">
   <element>
      <name>p</name>
      <text />
   </element>
</define>

                        

Why a DTD/Schema?

previous table of contents next
(c) Edward Vanhoutte 25 of 29 [96]
  • A DTD/Schema is very useful at data preparation time: validating editors only allow you to input correct markup
  • Useful for consistent encoding in projects
  • Guarantees longevity and interchangeability of semantics and structure in encoded texts
  • We need it for validation
  • Useful for software development and operability

Valid XML

previous table of contents next
(c) Edward Vanhoutte 26 of 29 [96]
A valid XML document will reference a Document Type Declaration
A Document Declaration contains the reference to a Document Type Definition (DTD) or a Schema
<!DOCTYPE TEI PUBLIC "-//TEI//DTD TEI Lite 1.0//EN"
 "../dtd/teixlite.dtd" [ ]>
               
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

Validating XML

previous table of contents next
(c) Edward Vanhoutte 27 of 29 [96]
XML can be validated when we have:
  • an XML document
  • a DTD or Schema
  • a validating parser

Writing DTDs or Schema

previous table of contents next
(c) Edward Vanhoutte 28 of 29 [96]
→ Bad news
  • Difficult
  • Time Consuming
  • Expensive

Writing DTDs or Schema

previous table of contents next
(c) Edward Vanhoutte 29 of 29 [96]
→ Bad news
  • Difficult
  • Time Consuming
  • Expensive
→ Good news
  • The work has been done for you

VII. TEI

Text Encoding Initiative (TEI)

previous table of contents next
(c) Edward Vanhoutte 1 of 25 [96]
a standard for the representation of textual material in digital form through the means of text encoding.
  • provides DTD subsets, Schema modules, and elements for the encoding of:
    • texts in any natural language
    • of any date
    • in any literary genre or text type
    • without restrictions on form or content
  • treats both continuous materials ('running text') and discontinuous materials such as dictionaries and linguistic corpora.
  • supports the encoding of all kinds of features of all kinds of texts studied by researchers
  • is application independent
→ It's free!

What does the TEI offer you?

previous table of contents next
(c) Edward Vanhoutte 2 of 25 [96]
The TEI has produced a number of DTD subsets/Schema fragments which can be combined according to the needs for a particular project in the humanities.
  • Vocabulary (elements)
  • Tuning tools (attributes)
  • Syntax (content models and nesting rules)
  • Modification and extension guidelines

For which purposes?

previous table of contents next
(c) Edward Vanhoutte 3 of 25 [96]
  • Edit texts (e.g. word processors, syntax-directed editors)
  • Edit, display, and link texts in hypertext systems
  • Format and print texts using desktop publishing systems, or batch-oriented formatting programs
  • Load texts into free-text retrieval databases or conventional databases
  • Unload texts from databases as search results or for export to other software
  • Search texts for words or phrases
  • Perform content analysis on texts
  • Collate texts for critical editions
  • Scan texts for automatic indexing or similar purposes
  • Parse texts linguistically
  • Analyze texts stylistically
  • Scan verse texts metrically
  • Ink text and images
→ The aim has been to make the TEI Guidelines useful for encoding the same texts for different purposes.

How does the TEI offer this to you?

previous table of contents next
(c) Edward Vanhoutte 4 of 25 [96]
  • Website http://www.tei-c.org
  • On-line reference documentation: Guidelines
  • Print reference documentation: Guidelines
  • On-line schema/DTD generator: ROMA
  • On-line tutorials: TEI by Example http://www.teibyexample.org
  • Free software
  • Free stylesheets
  • Community of practitioners: TEI-L maillist
  • Experience of projects
  • Opportunity to participate through SIG's
  • Conferences

TEI Modules

previous table of contents next
(c) Edward Vanhoutte 5 of 25 [96]
  1. TEI Infrastructure
  2. TEI Header
  3. Elements Available in All TEI Documents
  4. Default Text Structure
  5. Representation of Non-standard Characters and Glyphs
  6. Verse
  7. Performance Texts
  8. Transcriptions of Speech
  9. Dictionaries
  10. Manuscript Description
  11. Representation of Primary Sources
  12. Critical Apparatus
  13. Names, Dates, People, and Places
  14. Tables, Formulae, Graphics
  15. Language Corpora
  16. Linking, Segmentation, Alignment
  17. Simple Analytical Mechanisms
  18. Feature Structure
  19. Graphs, Networks, Trees
  20. Certainty and Responsibility
  21. Documentation Elements

A TEI-conformant document

previous table of contents next
(c) Edward Vanhoutte 6 of 25 [96]
comprises a header followed by a text

<teiHeader>

previous table of contents next
(c) Edward Vanhoutte 7 of 25 [96]
The header is essential for:
  • bibliographic control and identification
  • resource documentation and
  • processing (see later)

<teiHeader>

previous table of contents next
(c) Edward Vanhoutte 8 of 25 [96]

<text>

previous table of contents next
(c) Edward Vanhoutte 9 of 25 [96]

Textual Phenomena

previous table of contents next
(c) Edward Vanhoutte 10 of 25 [96]
  1. Structural
  2. Renditional
  3. Logical & Semantic
  4. Analytical

Structural Features

previous table of contents next
(c) Edward Vanhoutte 11 of 25 [96]
  • Prose: paragraphs <p>, divisions <div>, headings <head>, lists <list>, listitem <item>, quotations <q>, page breaks <pb>, segments <seg>, figures <figure>, and tables <table>.
  • Verse: linegroups <lg> and lines <l>.
  • Drama: divisions <div>, speeches <sp>, paragraphs <p>, linegroups <lg>, lines <l>. and segments <seg>.

Structural Features: Prose

previous table of contents next
(c) Edward Vanhoutte 12 of 25 [96]

Structural Features: Verse

previous table of contents next
(c) Edward Vanhoutte 13 of 25 [96]

Structural Features: Drama

previous table of contents next
(c) Edward Vanhoutte 14 of 25 [96]
A customer enters a pet shop.
Customer: 'Ello, I wish to register a complaint.
The owner does not respond.
Customer:'Ello, Miss?
Owner: What do you mean "miss"?
Customer: I'm sorry, I have a cold. I wish to make a complaint!
Owner: We're closin' for lunch.
Customer: Never mind that, my lad. I wish to complain about this parrot what I purchased not half an hour ago from this very boutique.

Structural Features: Titlepage

previous table of contents next
(c) Edward Vanhoutte 15 of 25 [96]

Renditional Features: Highlighting

previous table of contents next
(c) Edward Vanhoutte 16 of 25 [96]

Logical Features

previous table of contents next
(c) Edward Vanhoutte 17 of 25 [96]
Commonly Highlighted
  • Emphasis <emph>, foreign words <foreign> and other linguistically distinct uses <distinct> of highlighting
  • The use quotation marks in the representation of speech and thought <said>, quotation <quote>, cited quotation <cit>. words or phrases mentioned <mentioned> and words or phrases for which the author or narrator indicates a disclaiming of responsibility <soCalled>.
  • Technical terms <term>, glosses <gloss> or documentation of XML elements, attributes and classes with <altIdent>, <desc>, <equiv/>

Logical Features

previous table of contents next
(c) Edward Vanhoutte 18 of 25 [96]
Commonly not highlighted
<title>, <name>, <num>, <measure>, <date>, <address>, <abbr> and <expan>.

Analytical Features

previous table of contents next
(c) Edward Vanhoutte 19 of 25 [96]
  • Ommissions, deletions, additions: <gap>, <del>, <add>, <supplied>, <unclear>, <damage>
  • Regularization: <reg>, <orig>
  • Editorial interventions: <corr>, <sic>

The multiple hierarchy

previous table of contents next
(c) Edward Vanhoutte 20 of 25 [96]
problem
  • XML allows only one hierarchy at a time
  • Is a document
    • chapter-paragraph-phrase
    • gathering-page-leaf
    • or both?
  • discontinuous segments
  • links and milestones

But what are we doing with this?

previous table of contents next
(c) Edward Vanhoutte 21 of 25 [96]

Putting it al together

previous table of contents next
(c) Edward Vanhoutte 22 of 25 [96]

Losing the Pedals? → TEILite

previous table of contents next
(c) Edward Vanhoutte 23 of 25 [96]
  • one of many possible views of the TEI DTD
  • small and simple
  • designed to meet 90% of the needs of 90% of the TEI user community
  • 128 elements
  • was devised as a didactic stepstone to the full flavour TEI, but began a life of its own
  • realistic for existing texts and for document production
→ TEI Lite: Encoding for Interchange: an introduction to the TEI Revised for TEI P5 release.

Losing the Pedals? → TEI By Example

previous table of contents next
(c) Edward Vanhoutte 24 of 25 [96]

Webliography: TEI

previous table of contents next
(c) Edward Vanhoutte 25 of 25 [96]