Computerlinguistik II, WS 2004/05 Aufgabenblatt 5 -------------------------------------------------------------- Ausgabe: Di, 6.12.05 Abgabe: Mi, 14.12.05 Aufgabe 8 --------- Von den Beispielen aus Grammatiken/testsaetze.txt (bis Mi 7.12 nur auf den Folien) wird die Eingabe ein Stern, den einige Astronomen entdeckten. nicht erkannt. Welche Regel muss korrigiert werden, damit diese Eingabe erkannt wird, und wie lautet die korrekte Form der Regel? 4 Punkte Aufgabe 9 --------- a) Schreibe ein Prolog-Prädikat knoten(+Baum,-Knotenliste), das für einen Baum in der von parse/2 benutzten Darstellung Baum = [Wurzel | Teilbaumliste] alle Wurzeln der Teilbäume sammelt. (Sie können sich auf den Fall beschränken, wo ein Baum höchstens 3 direkte Teilbäume hat, da das bei unseren Syntaxbäumen meistens der Fall ist.) 12 Punkte Hinweis: Sammeln Sie mit einem Hilfsprädikat knoten(+Baum,+Hilfsliste,-Knotenliste) die Knoten eines Baums in einer Hilfsliste, in die Sie zuerst die Baumwurzel aufnehmen, dann die Knoten des linkesten direkten Teilbaums, dann die des zweitlinkesten direkten Teilbaums, usw. Es sollte also z.B. herauskommen: knoten([np,[det,der],[ap,[a,flache]],[n,baum]], [np,det,der,ap,a,flache,n,baum]). b) Modifizieren Sie das Programm aus a) so, dass die Blätter des Baums nicht gesammelt werden. 4 Punkte Aufgabe 10 ---------- Man schreibe ein Programm % korrektheitstest(+Baum,-Fehlerknotenliste) die den von parse(+Eingabe,-Baum) ausgegebenen Syntaxbaum darauf überprüft, ob alle Knoten (ausser den Blättern) den Absichtser- klärungen % kategorie(+Kategorienterm) aus der bisher unbenutzten Datei 'Grammatik/kategorien.pl' ent- sprechen. Dazu soll eine Liste der Wurzeln der Teilbäume ausgege- ben werden, die *keine* Kategorien im Sinne der Definition kategorie/1 ist. Hinweis: Sie dürfen annehmen, dass Sie ein Programm wie in Aufgabe 9 b) schon haben. 4 Punkte