CLUE Computerlinguistik Uni Erlangen

Vorher Zurück Weiter
Weiter: 4. Sätze mit einem finiten Vollverb Zurück: 3. Zur Begriffsklärung der links-assoziativen Grammatik Vorher: 3.1. Theorie der links-assoziativen Grammatik

3.2. Der links-assoziative Parser LAP

Die Komponenten von LAP sind eine LA-Grammatik (Morphologie und Syntax), ein Regelcompiler, der die Regeln der Grammatik übersetzt, ein Lexikon mit kategorisierten Wortformen, eine Funktion, die das Lexikon in eine trie-structure überführt, und ein Motor, der die Regeln abarbeitet, nachdem eine Eingabe erfolgt ist, und das Ergebnis der Analyse ausgibt. Der Motor, der Regelcompiler und die Funktion zur Erzeugung der trie-structure sind für alle LA-Grammatiken gleich. Unterschiede ergeben sich also nur dadurch, daß für andere Sprachen eine andere LA-Grammatik und ein anderes Lexikon erstellt werden müssen.

Um die Regeln der LA-Grammatik zu prüfen und um eine automatische Analyse eines Satzes durchzuführen, müssen die Regeln der Grammatik in maschinenlesbarer Form vorliegen. Die Regeln der LA-Grammatik die in LAP verarbeitet werden können, sind in der Programmiersprache M1 geschrieben, die eigens für LAP entwickelt wurde. 48

Die formale Regel für die Verbindung eines Artikels mit einem Nomen, wie sie im vorherigen Kapitel beschrieben wurde, hat die folgende Form:

det_nomen: [ Nomen Valenz Nomen ] ==> [ { vorfeld_fverb } Valenz ]

In der Programmiersprache M1 sieht sie dann folgendermaßen aus:

RULE det_nomen
#
  #      START             NEXT       RESULT
  surf:  "${OS}"           "${ON}"    "${OS} ${ON}"
  cats:  "~{NOM} ${VAL}"   "${NOM}"   "${VAL}"
  sem:   "${SS}"           "${SN}"    "NP"
  rules: vorfeld_fverb
#
END

Eine Regel beginnt also mit dem Schlüsselwort RULE, hinter dem der Regelname steht. Darauf folgen drei Zeilen, die mit den Schlüsselworten surf (Oberfläche), cats (Kategorie) und sem (Semantik) anfangen und in denen die Operationen für Satzanfang, nächstes Wort und den daraus resultierenden neuen Satzanfang beschrieben werden. Darauf folgt die Zeile, die mit dem Schlüsselwort rules eingeleitet wird, und in der die Regeln des Regelpakets stehen, mit denen dann, nach einer erfolgreichen Verarbeitung durch diese Regel, fortgefahren werden kann. Abgeschlossen wird eine Regel in M1 mit dem Schlüsselwort END. Kommentarzeilen, die mit dem Zeichen "#" eingeleitet werden, können überall stehen. Sie dienen dazu, eine Regel zu erklären und sie übersichtlicher zu gestalten.

Hauptbestandteile der Regeln sind aber die Operationen in den drei Zeilen surf, cats und sem. Diese werden daher noch ausführlicher erläutert. Die Oberflächenzeile (surf) und die Semantikzeile (sem) haben in dieser Arbeit meist das gleiche Aussehen, da sie nur sehr selten verwendet werden. Die Oberflächenzeile wird nur gebraucht, um bestimmte Präpositionen auszuwählen, die Semantikzeile, um in einigen Regeln Abfragen nach dem Tempus zu ermöglichen, welches bis zu diesem Zeitpunkt noch in der Semantik codiert ist. Wesentlich für eine syntaktische LA-Grammatik ist aber die Kategorienzeile (cats), da aus den Kategorien die syntaktischen Informationen für den Zusammenbau von Sätzen abgeleitet werden können. Deshalb werde ich jetzt nur beschreiben, wie die Kategorienzeile abgearbeitet wird.

Die START-Operation prüft den Inhalt des Satzanfangs. Dort können explizit Kategoriensegmente angegeben werden, mit denen der Satzanfang dann direkt übereinstimmen muß. Es kann dort aber auch eine Variable stehen, die zwischen zwei geschweifte Klammern geschrieben wird. In diesem Fall muß der Satzanfang mit einem der Werte, den die Variable annehmen kann, übereinstimmen, woraufhin sich das Programm diesen Wert 'merkt'. Es können auch mehrere Variablen benutzt werden, dann versucht das Programm, den Satzanfang so aufzuteilen, daß dieser mit den Werten, den die Variablen annehmen können, übereinstimmt. Auch hier 'merkt' sich das Programm die verschiedenen Werte. Es ist ebenfalls möglich, Variablen und explizit angegebene Kategoriensegmente zu mischen.

Für die NEXT-Operation, die den Inhalt des nächsten Worts prüft, gilt dasselbe. Wenn hier aber die gleiche Variable verwendet wird wie bei der START-Operation, prüft das Programm die Werte, welche die Variable in beiden Fällen annehmen soll. Dabei kann entweder auf Identität geprüft werden (vor der Variablen steht das Zeichen "$") oder auf Kongruenz (vor der Variablen steht das Zeichen "~"). Bei der Identitätsprüfung müssen die beiden Werte übereinstimmen, bei der Kongruenzprüfung müssen nur die in einer Kongruenztabelle aufgestellten Übereinstimmungen vorhanden sein. So kongruiert beispielsweise S3 für 3. Person Singular mit S13 für 1. oder 3. Person Singular. Bei Identität hätte in beiden Variablen S3 stehen müssen.

Die RESULT-Operation nimmt die ausgewerteten Variablen und setzt sie in die Ausgabe, wobei diese auch wieder durch explizit angegebene Kategoriensegmente erweitert werden kann.


Vorher Zurück Weiter
Weiter: 4. Sätze mit einem finiten Vollverb Zurück: 3. Zur Begriffsklärung der links-assoziativen Grammatik Vorher: 3.1. Theorie der links-assoziativen Grammatik
Für Kommentare, Anregungen und Kritik senden Sie bitte eine E-Mail an: Jörg Schreiber