Typpruefung Durch Feature Deklarationen

Description

Lexikoneinträge können Features enthalten, die Zahlen, Strings oder Listen sind, aber die Eingabesprache hat kein Mittel, um konsistente Typung von Features zu deklarieren. Daher kann sie auch nicht überprüft werden. Das hat zur Folge, daß die meiste Typüberprüfung zur Laufzeit stattfinden muß; jeder Aufruf von evalFormula() oder funcMatch() muß viele Typüberprüfungen jedesmal wiederholen.

Wäre von Anfang an klar, daß das Feature `cat' immer existiert und als Wert immer einen String hat, so könnte man die Formel `X%AT%cat = NN' einmal statisch prüfen und dann nie wieder. Daher soll folgende Änderung programmiert werden:

  • Eine Syntax ist zu schreiben, mit der wenigstens Bedingungen wie die folgenden ausgedrückt werden können:
    1. Das Feature `cat' muß immer vorhanden sein.
    2. Das Feature `cat' muß immer ein String sein.
    3. Wenn die Kategorie `NN' ist, muß das Feature `case' vorhanden sein.

  • die deutsche Grammatik muß diese Deklarationen tatsächlich vornehmen.

  • Das Programm muß erkennen, wenn ein notwendiges Feature fehlt oder ein nicht definiertes Feature auftritt.

  • analog zu (oder gleichzeitig mit) inputCheckArities() soll soweit möglich der Typ aller Ausdrücke statisch überprüft werden. Dynamische Typprüfungen sollen wo immer möglich entfernt werden.

Möglicherweise müssen für diese Aufgabe weitere Bedingungen an die Eingabesprache gestellt werden, z.B. `Elemente von Lookup-Tabellen müssen immer Strings sein'. Nach Rücksprache mit Kilian können auch solche weitere Bedingungen an die Constraintsprache sinnvoll sein, wenn sie Erfolg versprechen.

Comments

 

 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback