Kategorien
Allgemein

Ein Einblick in Textencoding mit TEI/XML

Normalerweise programmiert man mittels einer Markup-Sprache, wie beispielsweise HTML, die Darstellung eines Textes auf dem Computer. Man positioniert den Text, gibt die Schriftart und Grösse an und bezeichnet Titel und Untertitel. Die Text Encoding Initiative (TEI) mit XML als Basis zeigt, dass es auch einen ganz anderen Ansatz gibt, eine andere Denkweise – vom Papierdokument zur digitalen Codierung.

Textencoding für Geisteswissenschaften – Warum?

Am 27. September wurde im Rahmen der Ringvorlesung des Digital Humanities Instituts ein Crashkurs zu TEI/XML von Peter Dängeli geleitet. Die Kursteilnehmenden stammten aus ganz verschiedenen Bereichen der Geisteswissenschaften. Ich für meinen Teil studiere Informatik und bin bis zu diesem Crashkurs noch nicht mit XML in Berührung gekommen. Ich wusste zwar, dass es sich bei XML um eine HTML ähnliche Markup-Sprache handelt, aber über die TEI hatte ich keine Kenntnisse. Deshalb interessierte mich zwar der technische Aspekt des Kurses (das Lernen von XML), aber auf TEI/XML als Schnittstelle für digitale Edition war ich umso gespannter. Ich konnte mir nicht recht vorstellen wozu man dieses “Tool” eigentlich nutzen könnte. Reichte es nicht Originaltexte einzuscannen und deren Inhalt zu transkribieren?
Um die Antwort vorweg zu nehmen: Nein. TEI als Tool zielt nicht darauf ab eine digitale Reproduktion eines Quelldokuments zu produzieren sondern vielmehr ein Textencoding zu erhalten, das für diverse Zwecke weiterverwendet werden kann. Das heisst mittels dem Vokabular das einem TEI/XML bietet, können ForscherInnen hoch-expressive und kritische Versionen von Texten verfassen, welche sowohl von Menschen als auch von Maschinen gelesen werden können. So können diese Texte nicht nur in einer plattformunabhängigen Form digital gespeichert und transportiert werden, sondern an ihnen kann auch beispielsweise mittels Natural Language Processing geforscht werden. Die TEI ist somit eine der wichtigsten Grundlagen für die Digital Humanities. Doch was ist die TEI eigentlich?

Die Text Encoding Initiative und was sie mit XML zu tun hat

Gemäss Peter Dängeli handelt es sich bei der Text Encoding Initiative um einen quelloffenen, community-basierten, mehrsprachigen (Quasi-)Standard für die digitale Forschung an und mit Texten. TEI verwendet die Markup-Sprache XML und deren erweiterbaren Charakter zur Umsetzung. Dank dem erweiterbaren Charakter von XML (XML steht für EXTENSIBLE Markup Language) können unter anderem eigene Tags (zum Beispiel ein <Fussnote></Fussnote> Tag) hinzugefügt werden. Diese Eigenschaft von XML bedingt die TEI: Durch die TEI-Guidelines werden hunderte von Konzepten (Elemente aber auch Hierarchien) definiert, wodurch es gelingen soll auf die Bedürfnisse der Forschenden möglichst genau einzugehen. Da die TEI quelloffen und community-basiert ist entwicklen sich diese Guidelines seit der Entstehung der TEI in den 80er Jahren immer weiter. So können in der Community Bedürfnisse geäussert werden, welche dann diskutiert und, falls sie für sinnvoll empfunden werden, auch implementiert werden können.
Betrachtet man XML als Basis für die TEI gibt es neben dem erweiterteren Charakter noch weitere Gründe warum sich – das auf den ersten Blick etwas komplex wirkende – XML gut für die Forschung an Texten eignet. Eine TEI/XML Datei muss immer wohlgeformt und korrekt sein, da sie sonst vom Prozessor nicht verarbeitet werden kann. Das heisst wenn ein Text erst mal als XML codiert wurde, ist er auch korrekt. Im Gegensatz dazu akzeptiert HTML gewisse Syntaxfehler, also kann man sich bei der Frage der Korrektheit der Daten nicht sicher sein. Mit TEI/XML hat man als Forschende also ein sehr mächtiges Tool um Texte digital zu verarbeiten beziehungsweise Textencoding zu betreiben. Doch wie sieht das Arbeiten mit TEI/XML in der Praxis aus?

Erste Schritte mit TEI/XML

Der Crashkurs von Peter Dängeli war auf AnfängerInnen ausgerichtet und startete mit den Basics. Als Entwicklungsumgebung (IDE) haben wir den Oxygen XML Editor verwendet. Beim Erstellen eines neuen TEI/XML Dokuments muss zuerst das richtige Encoding (Unicode-Zeichen Codierung) und das richtige “Root” Element angegeben werden (in unserem Fall, dass es sich um ein TEI Dokument handelt).

<?xml version="1.0" encoding="UTF-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<!-- here beginns the magic -->
</TEI>

Diese ersten Schritte erledigte für uns die IDE, den beim Erstellen einer neuen Datei kann man auswählen ob es sich um eine TEI/XML-Datei handeln soll. Das heisst mein erster “Learning Outcome” (wie schon so oft in Programmierkursen) war: Wenn man noch keine Ahnung hat immer eine IDE wie den Oxygen Editor verwenden. Dank der IDE und natürlich auch der Einführung von Peter Dängeli konnten wir nun also mit dem Textencoden beginnen. Damit wir an einem einfachen Beispiel üben konnten empfahl uns Peter Dägneli die Seite europeana, wo man unter anderem alte Postkarten herunterladen kann. Er hat uns auch ein sehr elegantes und fertiges Beispiel einer mit TEI/XML codierten Postkarte gezeigt. Dieses Beispiel hat den Sinn und Zweck von TEI/XML meiner Meinung nach sehr eindrücklich illustriert. Das Warum hatte ich nun endlich verstanden und ich war motiviert es nun selbst auszuprobieren. Übrigens das Postkartenbeispiel und viele weitere spannende Beispiele sind auf dem Handout des TEI Crashkurses zu finden.
Doch wie immer ist aller Anfang schwer. Ich habe auf europeana eine Postkarte gewählt und wollte mit dem Encoden beginnen, doch womit ich nicht gerechnet habe, war wie schlecht ich eigentlich Handschriften lesen konnte. Bei diesem Aspekt des Textencoding hatten die Geisteswissenschaftler mir gegenüber definitiv einen Vorteil. Das Gute ist, das ich durch meine Unfähigkeit Handschriften zu gelesen den “unclear” Tag kennengelernt habe.

Postkartennachricht

Nachrichtsencoding mittel TEI/XML

<div type="message">
  <p>Many Happy <unclear>Returs</unclear> of the day </p>
</div>

Da ich die Schrift auf der Postkarte nur schlecht entziffern konnte habe ich mich darauf konzentriert mein TEI/XML Dokument zu gliedern ohne den Text einzusetzen. So habe ich mittels den “recto/verso” Elementen die Postkarte in eine Vorder-und
Rückseite aufgeteilt und die Nachricht als “message” markiert.

Encoding der Vorder-und Rückseite der Postkarte

<div type="verso">
  <cb n="1" />
    <div type="message">
      <p>Many Happy <unclear>Relirnuns</unclear> of the day </p>
    </div>
</div>
<div type="recto">
</div>

Ich habe ausserdem sogenannte Milestone-Elemente (<cb n="1"/> cb steht für “column beginning”) verwendet, welche bei grösseren Texten umso wichtiger sind. Milestone-Elemente können nämlich dabei helfen die bei TEI/XML zwingende hierarchische Struktur des Encodings zu umgehen. So können durch Milestones Paragraphen oder Kapitel dargestellt werden welche sich über mehrere Seiten erstrecken.

Beispiel aus dem Crashkurs zum Thema Milestones

<body xml:lang="en">
    <pb n="42"/>
    <p>This paragraph begins on the page numbered 42...
    <!-- lots more text here -->
    <pb n="43"/>
    <!-- yet more text here --> ... and finishes half way down the page numbered 43.</p>
    <p>This much shorter paragraph begins and ends on page 43. </p>
</body>

Auch ohne viel Textverständnis konnte ich mit dieser Methode zumindest einige Aspekte der Postkarte codieren. Was mich besonders begeistert hat, war die Möglichkeit im Header den Absender (“George Sharp”) und den Empfänger (“John Thomas Sharp”) als Personen auflisten und weiter unten im “body” des TEI/XMLs markieren zu können. Diese Art von Markierungen gibt es nicht nur mit Personen sondern auch mit Orten und anderen “named Entities” und ist für die digitale Forschung an Texten extrem wichtig.

Nennung von Personen im Header und Markierung im Body

<teiHeader>
  <listPerson>
    <person xml:id="johnSharp">
      <persName>
        <surname>Sharp</surname>
        <forename>John Thomas</forename>
        </persName>
      </person>
      <person xml:id="georgeSharp">
        <persName>
          <surname>Sharp</surname>
          <forename>George</forename>
        </persName>
      </person>
  </listPerson>
</teiHeader>

<text>
  <body>
    <cb n="2"/>
      <div type="address">
      <l>to</l>
      <l><name type="person"><rs type="person" ref="#johnSharp">John</rs></name></l>
      <l>From</l>
      <l>Daddy<name type="person"><rs type="person" ref="#georgeSharp">John</rs></name><l>
      </div>
  </body>
</text>

Eine weitere Erfahrung die ich auch in der kurzen Zeit des Kurses gemacht habe, war das TEI/XML-Dokumente extrem detailiert sein können. Ins Detail gehen macht auch extrem Spass, doch wie uns Peter Dängeli und auch Tobias Hodel aus eigener Erfahrung mittteilten, ist diese Detailverliebtheit nicht praktikabel. So muss man eine Balance zwischen detailierter Codierung und Effizienz finden.
Bei all diesem Encoding ist es auch mal zu einem Fehler gekommen (der Oxygen Editor macht einem netterweise mit einer roten Markierung darauf aufmerksam), wer dann kein Peter Dängeli oder Tobias Hodel im Raum hat, welche einem gleich mit Rat zur Seite stehen, soll sich ganz nach dem Prinzip “Google is my friend and helper” ans Internet wenden. Als besonders hilfreiche Ressourcen habe ich vor allem das bereits oben verlinkte Handout und die “Heimat der TEI” empfunden. Auf der “Heimat der TEI” habe ich persönlich die Beispielblöcke besonders spannend gefunden.

Zusammenfassend kann man sagen, dass ich dank dem Crashkurs einerseits einen technischen Einblick in TEI/XML gewinnen konnte, aber nun auch die Bedeutung dieses Tools für die Digital Humanities besser verstehe. So weiss ich nun, dass das TEI/XML-Dokument das bevorzugte Speichermedium für einen digitalen Text ist und somit ein extrem wichtiger Aspekt für die Forschung an Ihnen darstellen. Beispielsweise sind die Texte in der digitalen Humbolt Edition alle als TEI/XML- Dateien gespeichert, womit die digitale plattformübergreifende Weiterverarbeitung erst ermöglicht wird. Ich persönlich hatte per Zufall kurz nach dem Crashkurs wieder mit TEI/XML zu tun: Ich musste nämlich mittels Python automatisierte Textanalysen durchführen wofür sich TEI/XML-Datein als Basis natürlich am besten eigneten.
Wer nun Lust bekommen hat TEI/XML selbst auszuprobieren dem empfehle ich es (mit Peter Dängelis Handout) an einem Beispiel einfach selbst auszuprobieren. Wer Oxygen nicht brauchen will oder kann, dem epfehle ich den Opensource Texteditor Atom, wer der Community beitreten will der kann dies beispielsweise mittels der TEI-L Mailingliste tun. Mir hat dieses erste Arbeiten mit TEI/XML auf jeden Fall sehr Spass gemacht und ich bin gespannt wann ich das nächste mal auf TEI/XML treffen werde, meine Intuition sagt mir das es wahrscheinlich sehr bald sein wird.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.