Computerlinguistik II, WS 2004/05 Aufgabenblatt 3 -------------------------------------------------------------- Ausgabe: Di, 14.11.06 Abgabe: Di, 21.11.06 Aufgabe 4: --------- Die Grammatik in Beispiele/programmierer.pl berücksichtigt die im Deutschen notwendige Kongruenz morphologischer Merkmale nicht. Dann hatten wir diese Grammatik um eininge Merkmale erweitert: % ----------Beispiele/dcg.merkmale.pl------------------------- % Nur Pers = 3, daher ignoriert. startsymbol(s([_Temp])). % für später s([Temp]) --> np([_Gen],[Num,nom]), vp([Temp,Num]). np([Gen],[Num,Kas]) --> det([Gen,Num,Kas]), n([Gen],[Num,Kas]). vp([Temp,Num]) --> ( v([Temp,Num]) ; v([Temp,Num]), np([_Gen],[Num,akk]) ). det([Gen,sg,Kas]) --> ( [der], { Gen = mask, Kas = nom } ; [das], { Gen = neut, (Kas = nom; Kas = akk) } ). n([mask],[Num,Kas]) --> ['Programmierer'], { (Num = sg ; Num = pl), (Kas = nom; Kas = akk) }. n([neut],[sg,Kas]) --> ['Programm'], { (Kas = nom; Kas = akk) }. v([praes,sg]) --> [steht]. v([praet,sg]) --> [schrieb]. % ------------------------------------------------------------ a) Ergänze eine Regel für den Artikel 'die' im Plural, die alle korrekten Genus- und Kasusmöglichkeiten erfaßt, und eine Regel für die Verbform 'schrieben' (ohne Pers-Merkmal). (Punkte 3) b) Ergänze die Kategorie v um ein Merkmal zur Unterscheidung von Verbarten (durch die Angabe der Komplementrahmen [nom] bei intransitiven bzw. [nom,akk] bei transitiven Verben). Passe die v-Regeln und die vp-Regel so an, daß intransitive Verben nur ohne Objekt-np und transitive nur mit Akkusativ-Objekt verwendbar sind (Punkte 3) c) Geben Sie die Prolog-Klausel an, in die die vp-Regel beim Einlesen der Datei (nach Laden von Parser/term_expansion.pl) übersetzt wird. (Punkte 3) d) Geben Sie die Ausgabe (Aufruf und Syntaxbaum) an, die durch tokenizer:parse/0 für die Eingaben die Programmierer schrieben das Programm. das Programm schrieben die Programmierer. erzeugt wird. (Punkte 4) Aufgabe 5: --------- a) Erzeuge mit den in der Vorlesung erklärten Programmen aus dem Verzeichnis Parser/ eine Übersetzung der Grammatikregel e --> (a,b ; c),d in eine Prolog-Klausel mit Baumausgabe- und Differenzlisten- Argumenten. Gib die entstandene Klausel an. (Punkte 2) b) Erkläre am Ergebnis von a), warum die eingebauten append-Aufrufe nicht bei der Übersetzung der Regel ausgeführt werden können. Was würde schiefgehen, wenn man diese Aufrufe beim Übersetzen der Regel in eine Klausel ausführen würde? D.h. wie sähe die Klausel dann aus, und warum würde sie beim Parsen nicht funktio- nieren? (Punkte 4) Tip: Um sicher zu sein, wie die Klausel aussähe, können Sie ja addTree:translate2/3 anpassen und die Grammatikregel von Prolog neu übersetzen lassen.