12.2.  Entwicklung

12.2.1.  Tools

Nutzen von klassischen Software-Engineering-Tools 

Versionskontrolle: Z.B. CVS (www.nongnu.org/cvs) oder git

Nutzen von klassischen Software-Engineering-Tools 

Systemkompilation: Z.B. GNU make (www.gnu.org/software/make)

Makefile-Beispiel 

make-Regel im Deutsch-Morphologieprojekt für Binärkompilation


%.xfst.bin: %.xfst
    xfst -e ’source $<;’ -e ’save defined $@’ -stop

Falls eine Komponente eine Datei mit der Endung .xfst.bin (sog. target) benötigt: Schaue, ob eine Datei ohne Endung .bin (sog. prerequisite) existiert. Überprüfe (rekursiv) die Abhängigkeiten der prerequisite und generiere sie allenfalls neu. Falls das target älter ist als die prerequisite, führe folgenden UNIX-Shell-Befehl aus ($@ ist Platzhalter für target und $< für prerequisite):

xfst -e ’source $<;’ -e ’save defined $@’ -stop

Beispiel 12.2.1 (Aufruf von make).
$ make adj.xfst.bin löst den Befehl aus:
xfst -e ’source adj.xfst’ -e ’save defined adj.xfst.bin’ -stop

12.2.2.  Inhalt

Linguistische Analyse und Planung 

Formale linguistische Analyse

Ein Morphologiesystem benötigt eine möglichst gründliche vorangehende linguistische Analyse, welche die Klassen, Regeln und Ausnahmen möglichst detailliert zur Verfügung stellt.

Abstraktion und systematisches Wissen

“The ability to speak multiple languages, though admirable, doesn’t make one a formal linguist any more than having a heart makes one a cardiologist.”

[BEESLEY und KARTTUNEN 2003b, 283]

Unterspezifikation linguistischer Beschreibung

Bei der Implementation handgeschriebener Regelsysteme ergeben sich immer unvorhergesehene Überraschungen trotz aller Planung : Unsicherheiten, Ungenauigkeiten, Unvollständigkeiten. Dies ist auch bei handgeschriebenen wissenschaftlichen Grammatiken der Fall.

Linguistische Analyse 

Repräsentation der lexikalischen Seite

Die exakte Form der Lemmata ist eine Design-Entscheidung des Lexikographen.

Linguistische Analyse 

Repräsentation der lexikalischen Seite

Die Anzahl, Form und Abfolge von morphologischen Tags ist eine Design-Entscheidung des Lexikographen.

Empfohlene Tags nach Xerox-Konvention  
Im Anhang G [BEESLEY und KARTTUNEN 2003a], welcher im gedruckten Buch keinen Platz mehr fand, sind diverse sprachübergreifende morphologische Tags mit ihrer linguistischen Bedeutung aufgeführt.

Beispiel 12.2.2 (Xerox-Mehrzeichensymbol-Tags im +-Format).

+Noun    ! noun(house)  
+Prop    ! proper noun(John)  
+Art     ! article (like English the and a)  
+Det     ! determiner (like this,that,those)  
+Dig     ! digit-based word  
+Aug     ! augmentative  
+Dim     ! diminutive  
...

Die Laufzeit-Applikation lookup zur morphologischen Analyse behandelt Tags mit der +-Konvention defaultmässig effizient als Mehrzeichensymbole.

12.2.3.  Applikationen

Ein Kernsystem mit mehreren Runtime-Applikationen 

Gemeinsames Kernsystem

Runtime-Anwendungen

Runtime-Anwendungen 

Beispiel 12.2.3 (Modifikation von Kern-System durch Ersetzungsregeln).

read regex StrictGermanCoreNetwork  
.o. [ü (->) u e ] .o. [ö (->) o e ]  
.o. [ä (->) a e ] .o. [ß (->) s s ];

Relaxierung von Kern-Systemen zur Laufzeit

Das lookup-Tool erlaubt morphologische Analysestrategien, welche fehlerorientiert relaxieren und zur Laufzeit die Komposition von Transduktoren simulieren:

Klein-/Grossschreibung 

Beispiel 12.2.4 (Grossschreibung).
Wie kann man Grossschreibung von normalerweise kleingeschriebenen Wörtern erlauben?

Beispiel 12.2.5 (Kapitalisierung).
Wie kann man durchgängige Grossschreibung erlauben wie in “Dieses Verhalten ist KRANK!!!”?

lookup-Strategien mit “virtueller” Komposition [BEESLEY und KARTTUNEN 2003b, 433]

Scheiternsabhängige Alternativ-Analysen

Analysen mit Relaxierung sollen nur dann gemacht werden, wenn keine “normale” Analyse möglich ist.

  1. FST-Variablen: deaccent   allow-deaccentuation.fst normalize    allow-allcaps.fst analyser   deutsch.fst
  2. Virtuelle Komposition: Hintereinanderschreiben der FST-Variablennamen
  3. Strategien
    analyser # Versuche zuerst normale Analyse
    allcap analyser # Sonst entkapitalisiere zuerst
    deaccent allcap analyser # Sonst normalisiere Spezialzeichen vor Entkapitalisierung