Skip to content

Linguistische Feldforschung in Potato: Glossieren mit FLEx, Toolbox, Praat und ELAN

FLEx- oder Toolbox-Texte in Potato importieren, interlineare Glossen anhand der Leipziger Regeln prüfen und als FLExText, Toolbox oder LaTeX exportieren; dazu TextGrid- und ELAN-Tiers.

Potato 2.12.0 importiert interlineare Texte aus FieldWorks Language Explorer (FLEx) und Toolbox, lässt Annotatoren jeden Satz in einem Schema vom Typ interlinear_gloss prüfen, das die Leipziger Ausrichtungsregeln kontrolliert, und exportiert die korrigierten Glossen zurück ins selbe Format. Praat-TextGrid- und ELAN-Dateien werden auf dieselbe Weise importiert, als zeitlich ausgerichtete Tiers.

Die Analyse liegt meist bereits in FLEx oder Toolbox vor, und die Arbeit besteht darin, sie zu prüfen und zu korrigieren, oft mit mehreren Personen, die verschiedene Texte durchsehen. Potato ergänzt den Prüfschritt: die Zuweisung von Texten an Prüfende, eine Ausrichtungsprüfung für jedes Wort und eine Aufzeichnung darüber, wer jeden Satz bestätigt hat.

FLEx- oder Toolbox-Texte importieren

bash
# A FLEx interlinear export (FLExText)
potato import -i stories.flextext -o glossing-project/
 
# A Toolbox or Shoebox text database
potato import -i texts.txt -f toolbox -o glossing-project/

-i kann auch ein Verzeichnis mit .flextext-Dateien oder mit Toolbox-Dateien (.txt, .sfm, .db, .tbx, .toolbox) sein. Das Format wird am Inhalt erkannt: Eine FLExText-Datei hat <interlinear-text>-Elemente, und eine Toolbox-Datei hat \ref-Datensätze mit einer Textzeile und einer Morphem- oder Glossenzeile. -f flextext oder -f toolbox wählt das Format explizit.

Eine FLExText-Datei, die nicht gelesen werden kann, wird mit Angabe des Grundes ausgelassen: Sie ist binär oder kein UTF-8-Text, sie ist kein wohlgeformtes XML, oder sie definiert XML-Entitäten, was hochgeladene Dateien nicht dürfen.

Jede FLEx-Phrase und jeder Toolbox-Datensatz wird zu einem Item. Die bestehende Analyse wird in die eigenen Felder des Items geschrieben (words, morphemes, glosses, translation und pos, wenn die Quelle Wortarten enthält), und das erzeugte Schema liest sie als Ausgangspunkt. Nichts zählt als Antwort einer Person, bis ein Annotator Next drückt oder das Item bearbeitet, sodass ein Export vor der Prüfung nur die Sätze enthält, die jemand geprüft hat.

FLExTextPotato
Titel von interlinear-textFeld text_title, beim Export wiederverwendet
paragraph, segnum der PhraseFelder paragraph, phrase
txt des WortsEin Wort. punct-Wörter bleiben im Satztext, werden aber nicht glossiert
txt (oder cf) und type des MorphsDie Segmentierung, wobei - oder = aus den eigenen Markierungen der Form oder aus dem Typ übernommen wird
gls des MorphsDie Glosse dieses Morphems, wobei Leerzeichen zu . werden
pos des Worts oder msa des StammsDer Tier pos
gls der PhraseDie freie Übersetzung
language der Objekt- und der Analysesprachelanguage und metalanguage des Schemas

Toolbox-Datensätze beginnen bei \ref, und die interlinearen Zeilen werden spaltenweise gelesen, so wie Toolbox sie schreibt. Von Hand bearbeitete Dateien sind oft nicht ausgerichtet, daher werden zuerst zwei Lesarten nach Reihenfolge versucht: Morpheme, die anhand ihrer eigenen Markierungen zu Wörtern gruppiert werden, und Glossen, die der Reihe nach Morphemen zugeordnet werden. Der Importer liest \tx oder \t für den Text, \mb oder \m für Morpheme, \ge oder \g für die Glosse, \ps oder \p für die Wortart und \ft oder \f für die freie Übersetzung. Andere Marker in einem Datensatz, etwa \nt, werden im Feld sfm_extra des Items aufbewahrt und beim Export zurückgeschrieben.

Die Glossen prüfen

bash
python potato/flask_server.py start glossing-project/config.yaml -p 8000

Annotatoren sehen jeden Satz mit der importierten Analyse an ihrem Platz. Jedes Wort, dessen Segmentierung und Glosse nicht übereinstimmen, ist beim Öffnen der Seite markiert, sodass Fehler, die schon in der Quelle stecken, bei der ersten Prüfung sichtbar werden. Interlinear glossierter Text listet die Prüfungen und die Tastatursteuerung auf.

Die Prüfungen folgen den Leipzig Glossing Rules von Bernard Comrie, Martin Haspelmath und Balthasar Bickel:

  • Beispielzeile und Glossenzeile sind Wort für Wort ausgerichtet.
  • Innerhalb eines Worts trennt - Affixe und = Klitika, und die Glosse hat dieselben Trennzeichen an denselben Stellen, sodass Morphem und Glosse durch Abzählen einander zugeordnet werden können.
  • Steht ein Morphem für mehrere Bedeutungen, werden diese mit einem Punkt verbunden: NOM.SG, put.in.bag. Ein Punkt ist keine Grenze und wird nicht mitgezählt.
  • Person und Numerus dürfen ohne Punkt zusammengeschrieben werden, wie in 3SG.
  • Grammatische Kategorien sind Abkürzungen in Großbuchstaben, gedruckt in Kapitälchen.
  • Ein Infix wird in beiden Zeilen mit spitzen Klammern abgesetzt, und seine Glosse steht neben der Glosse des Stamms.

Zurück nach FLEx, Toolbox oder LaTeX exportieren

bash
python -m potato.export --config glossing-project/config.yaml --format flextext --output out/
python -m potato.export --config glossing-project/config.yaml --format toolbox --output out/
python -m potato.export --config glossing-project/config.yaml --format igt --output out/
  • flextext schreibt <annotator>.flextext, eine Datei pro Annotator, gruppiert in die Texte und Absätze, die der Import aufgezeichnet hat. Die Morphtypen werden aus den Grenzen abgeleitet: Das erste Morphem mit einer kleingeschriebenen (lexikalischen) Glosse ist der Stamm, Morpheme davor sind Präfixe oder Proklitika, und die danach sind Suffixe oder Enklitika.
  • toolbox schreibt <annotator>.txt mit spaltenweise ausgerichteten Zeilen und den ursprünglichen \ref-Werten.
  • igt schreibt igt.txt, mit drei ausgerichteten Zeilen und der Übersetzung pro Beispiel, und igt.tex für das LaTeX-Paket gb4e.

Ein erneuter Import einer exportierten Datei ergibt dieselben Wörter, Segmentierungen, Glossen, Übersetzungen und Wortarten. Was den Hin- und Rückweg nicht übersteht:

  • FLEx-GUIDs und Lexikonverknüpfungen, weil der Export kein Lexikon enthält.
  • FLEx-Interpunktionswörter, die im Satztext des Items bleiben, aber nicht als punct-Wörter zurückgeschrieben werden.
  • Der Morphtyp eines Morphems, das weder der Stamm ist noch an einer markierten Grenze steht, etwa eine zweite Wurzel in einem Kompositum.
  • Andere Tiers als pos in FLExText. In Toolbox werden sie als zusätzliche Zeilen geschrieben, die nach dem Tier benannt sind.

Praat-TextGrids und ELAN-Dateien

bash
potato import -i recordings/ -o my-project

recordings/ enthält .TextGrid- oder .eaf-Dateien, jede mit einer gleichnamigen Audio- oder Videodatei daneben. Jede Datei wird zu einem Item, dessen Medien nach media/ kopiert werden, jeder Tier wird zu einem Tier eines tiered_annotation-Schemas, und jedes nicht leere Intervall wird zu einem Segment, das Annotatoren korrigieren können. Ein Tier mit höchstens 30 verschiedenen Werten, etwa Phone oder Sprechercodes, erhält diese als Labels. Die Exporter textgrid und eaf schreiben die korrigierten Tiers wieder hinaus. Projekte importieren enthält die Details.

Weiterführende Informationen

Implementierungsdetails finden Sie in der Quelldokumentation.