Computerlinguistik II, WS 2004/05 Aufgabenblatt 4 -------------------------------------------------------------- Ausgabe: Mi, 29.11.06 Abgabe: Di, 05.12.06 Aufgabe 6: ---------- Die Datei Grammatik/saetze.pl enthält Regeln für Prädikativsätze der Form ist und analog für Verberst- und Verbletzt-Stellung, mit Einschrän- kungen der Definitheiten und der anderen Formmerkmale. Ergänzen Sie die Datei um Regeln für Prädikativsätze mit dem Hilfsverb "haben" (in der 3.Person Singular Präsens Indikativ), für Sätze der Form hat von für Beispiele wie (1) der Uranus hat einen Durchmesser von 50000 km (2) jeder Planet, der den Durchmesser von 50000 km hat (3) haben Monde des Uranus einen Durchmesser von 200 km Wir behandeln noch Regeln für Massangaben in der Vorlesung. Für die Lösung der Aufgabe können Sie einfach die Kategorie massangabe(Zahl,Einheit) mit den Regeln massangabe(50000,km) ---> ['50000'], [km]. massangabe( 200,km) ---> ['200'], [km]. benutzen. Geben Sie für die Beispiele (1)-(3) a) die zusätzlichen Grammatikregeln in Grammatiken/saetze.pl (8 Punkte) b) die zusätzlichen Einträge in Beispiele/testlexikon.pl, und (6 Punkte) c) die Syntaxbäume, die parse/0 (nach Laden von 'grammatiktest.pl') (3 Punkte) für (1) - (3) liefert, an. (Die Merkmale sollten so sein wie bei den bisherigen Prädikativ- sätzen.) Bemerkung. Die *Grammatik*regel 'n(Art,Form) --> rn(Art,Form)' (mit passenden Art,Form von Folie 76) habe ich von Grammatik/np.pl zu den *Lexikon*-Regeln Beispiele/testlexion.pl getan, um folgendes Problem zu vermeiden: Prolog macht sowohl aus der Grammatikregel (*) n(Art,Form) --> rn(Art,Form). als auch aus einer Lexikonregel wie (**) n(Art,Form) --> ['Stern']. eine Klausel n(Art,Form,Baum,I,J) :- ... für n/5. Aber: wenn die DCG-Regeln aus Dateien D.1 und D.2 stammen, werden die aus den n-Regeln von D.1 erzeugten Klauseln von den aus den n-Regeln von D.2 erzeugten Klauseln *überschrieben*., und man verliert die Klauseln zu den n-Regeln aus D.1. Da wir aber alle Klauseln brauchen, habe ich die Regel (*) zu den Regeln (**) in die Datei Beispiele/testlexikon.pl' aufgenommen. Aufgabe 7: ---------- Wir hatten in der letzten Vorlesungsstunde gesehen, daß in einer DCG "linksrekursive" Regeln wie die zur Nominal- phrasenkoordinierung, d.h. np --> np, [und], np. in Prolog zu einer endlosen Suche führen. Um die Endlossuche zu verhindern, kann man in einem Merkmal die "Koordinations- tiefe" festhalten, d.h. mitzählen, wie oft die Regel nacheinander ver- wendet wurde. Dazu hatten wir ad hoc die Regeln np([indef,3,Gen],[pl,Kas]) --> np([indef,3,Gen,0],[pl,Kas]). np([indef,3,Gen,Tiefe],[pl,Kas]) --> { Tiefe < 2, NeueTiefe is Tiefe + 1 }, np([indef,3,Gen,NeueTiefe],[pl,Kas]), [und], np([indef,3,Gen],[pl,Kas]). np([indef,3,Gen,2],[pl,Kas]) --> n([Gen],[pl,Kas]). geschrieben. Das terminiert zwar, leistet aber noch nicht ganz, was wir wollen. Geben Sie bessere Regeln dieser Art an, die die folgende intuitive Idee verwirklichen: a) Jede Nominalphrase hat eine Tiefe n mit 0 <= n <= 5. b) Eine Nominalphrase der Koordinationstiefe 0 enthält *keinen* Koordinator [und] oder [oder]. c) Eine Nominalphrase der Koordinationstiefe n+1 ist eine Koordi- nation zweier Nominalphrasen (mit [und] oder [oder]), von denen die linke die Koordinationstiefe n hat. Formuliere das so, daß in den bisherigen (np- und s-) Regeln der Grammatik die Kategorie np nicht verändert wird (kein Merkmal ergänzt wird)? Punkte 8