Computerlinguistik II, WS 2005/06 Aufgabenblatt 1 -------------------------------------------------------------- Abgabe: Do, 9.11.05 für Aufgabe 1 a), b), und Aufgabe 2. Mi,16.11.05 für Aufgabe 1 c). Aufgabe 1: Schreiben Sie ein Flexionsprogramm für Nomen im Deutschen. --------- a) Was sind die Merkmale, von der die Form eines Nomens abhängt? Definieren Sie die möglichen Formen durch form(nomen,-Formmerkmale). analog zu form(vfin,Formmerkmale) aus verbflexion_vlex.pl. Der Numerus soll die Werte sg (Singular) und pl (Plural) haben, der Kasus die Werte nom (Nominativ), gen (Genitiv), dat (Dativ) und akk (Akkusativ). Die Formmerkmale sollen als Liste [Numerus,Kasus] angegeben werden. Punkte 2 b) Schreiben Sie ein Deklinationsprogramm für ein Vollformenlexikon: 1. Geben Sie die Nomen-Einträge für ein Vollformenlexikon wort(Stammform,Formmerkmale,Vollform) für die Nomen 'Planet' und 'Mond' an. Bem.: Benutzen Sie einfache Anführungszeichen, also 'Planet', damit ihre Nomen nicht als Prolog-Variable behandelt werden. 2. Geben Sie ein Programm nomenflexion_vlex(+Stammform) an, das die Formen des Nomens mit der angegebenen Stammform am Bildschirm ausgibt. (Die Stammform sei die im Singular, Nominativ.) Punkte 2 c) Schreiben Sie ein Deklinationsprogramm für ein Stammformenlexikon: 1. Geben Sie den Deklinationsklassen, nach denen die Beispiele 'Planet' und 'Mond' dekliniert werden, einen Namen und geben Sie die Endungstabellen als Prädikat deklination(+Deklinationsklasse,+Formmerkmale,-Endung) an. 2. Schreiben Sie damit ein Programm dekliniere(+Deklinationsklasse,+Stammform,+Formmerkmale,-Vollform) das die Vollform aus der Stammform und der passenden Endung zusammensetzt. 3. Geben Sie --analog zu flexion_slex:verbflexion/2-- ein Programm nomenflexion(Deklinationsklasse,Stammform) an, daß ein in seiner Stammform eingegebenes Nomen entsprechend der angegebenen Deklinationsklasse in alle Vollformen setzt und diese am Bildschirm ausgibt. Wer noch keine Erfahrung mit Prolog hat, sollte die Programme (analog zu den in der Vorlesung behandelten Beispielen zur Verbflexion) schreiben, ohne sie in Prolog zu testen. Wer Prolog schon benutzt hat, sollte seine Programme an den beiden Beispielwörtern auch testen. Punkte 3 Aufgabe 2 --------- Verbessern Sie das Konjugationsprogramm fuer unregelmaessige Verben, sodass auch die Aenderungen im Verbstamm bei der 2. und 3. Person Singular Indikativ beruecksichtigt werden: Beispiel: Die Ablautreihe (e,a,e) von geben - gab - gegeben - - - erfasst nicht, dass es z.B. konjugiere(urg(0,+Ablautreihe,3),geben,[3,sg,praes,ind], gibt) - heissen muss (statt: gebt). a) Erweitere die Ablautreihe um die Lautung der 2./3. Person Singular Praesens Indikativ, z.B. (e,i,a,e) fuer geben-gibt-gab-gegeben, in den Stammlexikoneintraegen. b) Passe verbform/4 so an, dass die Vollformen fuer die 2. und 3. Person Singular Praesens Indikativ gemaess der geaenderten Ablautreihe erzeugt werden c) Erzeuge mit erzeuge_Vollformenlexikon(+Ausgabedatei) aus dem geanderten flexion_slex.pl und dem geaenderten Stammlexikon die Vollformen der Verben und gib das Ergebnis an. Punkte 9