TEI Verarbeitung in c#

Um eine TEI Datei programmatisch verarbeiten zu können, habe ich zwei kleine c# Programme geschrieben, die diese verarbeiten können. Als Erstes stellt sich natürlich die Frage, woher man umfangreiche TEi annotierte Dateien bekommt. Zum Glück gibt es große Dateien aus der "Digitalen Bibliothek" der Textgrid Initiative. Daraus habe ich einen Schiller Corpus genommen, siehe Quellenangaben unten!

Abbildung der TEI Kopf Struktur

Das erste Beispiel zeigt, wie man anhand von Klassen die grobe Kopfstruktur des TEI Standards "nachbilden" kann. Die Links zur TEI Spezifikation für die einzelnen Elemente wurde im Quelltext als Kommentar hinzugefügt. Natürlich ist die Klassenstruktur nicht wirklich vollständig, es erlaubt aber im Debug- Modus von Visual Studio 2010 sich das ganze einmal grob anzuschauen, siehe Screenshot.

Für solche TEI Dateien nimmt am besten einen XML-Editor wie Oxygen der eine viel bessere Darstellung erlaubt, als irgendein Texteditor, siehe auch diesen Screenshot dafür!

LINQ zu XML für Abfragen im TEI Dokument

Ausgehend von dem Schiller Corpus sollen nun folgende Abfragen in .net programmiert werden:

Über wen und was ist das TEi Dokument denn?

Dafür wird folgende LINQ Abfrage benutzt:

var query = from t in tei.Root.Elements(ns + "teiHeader")
        .Elements(ns + "fileDesc")
        .Elements(ns + "titleStmt")
    select t;

Ausgabe:

Titel: Werke
Über den Autor: Schiller, Friedrich

Wieviele Korpora sind denn vorhanden?

Folgender Befehl sucht sich alle vorhandenen Korpora heraus - per .Count() wird dann die Anzahl ausgegeben!

var query2 = from t in tei.Root.Descendants(ns + "teiCorpus")
        .Elements(ns + "TEI")
    select t.Attribute("n");

Ausgabe:

Gezählte Korpora: 991

Weitere Informationen

Ich habe noch weitere Abfragen programmiert, beispielsweise eine Angabe ob "Maria Stuart" existiert. Dieser Korpus existiert, also wird die komplette Personenliste ausgegeben, sowie eine Zählung der Redeanteile der "Sprecher" (TEI-Tag "speaker").

Quellen

Das erste Programm, welches nur die Kopf Struktur nachbildet, findet man hier!

Die LINQ zu XML Abfragen sind in diesem kleinen Programm enthalten. Die Ausgabe gibt es hier zu sehen!

Im Rahmen des DataMunging am Centrum für Informations- und Sprachverarbeitung der Ludwig-Maximilians-Universität München sind noch weitere Informationen über TEi auf der Kursseite zu finden!

Den TEI annotierten Schiller Corpus findet man hier finden kann (Bitte die Lizenz in der TEI Datei beachten!).