Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt Tutorium „Prolog für Linguisten“ 12 Sebastian Golly 29. Januar 2013 Sebastian Golly Tutorium „Prolog für Linguisten“ 12 1 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt Plan für heute Fürs Langzeitgedächtnis Zusammenfassung des letzten Seminars Übungsblatt Sebastian Golly Tutorium „Prolog für Linguisten“ 12 2 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt Fürs Langzeitgedächtnis I DCG = Differenzlistenparser! I I I Woran sieht man das? Anfrage: ?- s([na,los], []). Benutzerdefinierte Stellen stehen vorne! I I Anfrage: ?- s(Uebersetzung, [na,los], []). Und wenn ich mir das nicht merken kann? I I I listing/0 zeigt die interne Repräsentation der gesamten Datenbasis an: ?- listing. listing/1 zeigt die interne Repräsentation eines Prädikats an: ?- listing(s). phrase/2 nimmt linke Regelseite (wie im Quellcode) und Eingabeliste als Argumente: ?- phrase(s(Uebersetzung), [na,los]). Sebastian Golly Tutorium „Prolog für Linguisten“ 12 3 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt Themen des letzten Seminars (1) I Trennung von Lexikon und Grammatik I I I Weiterentwicklung des Lexikons I I I I I lexicon.pl ! gramm5.pl in der Grammatik: :- [lexicon]. eigenname(anna). nomen(hundes,kng(gen,sg,mask)). nomen(ziegen,kng(_,pl,fem)). nomen(baum,kng(Kasus,sg,mask)):member(Kasus,[nom,akk,dat]). Lexikalische Einsetzung I I im Lexikon: verb(liebt). in der Grammatik: v(v/[-Verb])--> [Verb], {verb(Verb)}. Sebastian Golly Tutorium „Prolog für Linguisten“ 12 4 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt Themen des letzten Seminars (2) I Kongruenz durch Merkmalsperkolation I Kongruenz (Agreement) im Deutschen I I I I Artikel–Nomen (Kasus, Numerus, Genus) ,→ komplexer Term kng(Kasus,Numerus,Genus) im Lexikon Subjekt–Prädikat (Person und Numerus) ,→ komplexer Term agr(Person,Numerus,Kasus) in NP-Regel ,→ bei nominaler NP: 3. Person wird „synkategorematisch“ eingeführt: np(np/[ArtBaum,NBaum],agr(3,Numerus,Kasus))--> ... Merkmalsperkolation Weitere Themen? Sebastian Golly Tutorium „Prolog für Linguisten“ 12 5 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt 1 Wishtree-Notation Notiere den folgenden Baum als Term im Wishtree-Format: S VP NP Det N RelS the man whistling V NP tunes N pianos s/[np/[det/[-the], n/[-man], rels/[-whistling]], vp/[v/[-tunes], np/[n/[-pianos]]]] Sebastian Golly Tutorium „Prolog für Linguisten“ 12 6 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt 2 Arithmetische Ausdrücke – Konzeption Schreibe eine Grammatik, die einfache arithmetische Ausdrücke aus Zahlen zwischen 0 und 9, den Klammern ( und ) sowie den Operatoren +, -, * und / erkennt. Beispiel: (1+2) und ((3*4)-5) Tipp: Schreibe nicht sofort eine Prolog-DCG, sondern überlege dir erst einmal in Ruhe, wie sich die Menge aller arithmetischen Formeln definieren lässt (Stichwort: induktive Definition). Wie kann nun diese Definition in eine Grammatik umgesetzt werden? Was sind die Terminale? Sebastian Golly Tutorium „Prolog für Linguisten“ 12 7 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt 2 Arithmetische Ausdrücke – Umsetzung Für die Grammatik sind diese Ausdrücke dann natürlich in Listenform zu bringen. Weiterhin müssen die Klammern in Hochkommata eingeschlossen werden, damit keine Syntaxfehler entstehen: ['(',1,+,2,')'] und ['(','(',3,*,4,')',-,5,')']. Nenne deine syntaktische Kategorie für arithmetische Ausdrücke bitte arith_expr. Beispielanfrage: ?- arith_expr(['(','(', 3, *, 4, ')', -, 5, ')'], []). true . Sebastian Golly Tutorium „Prolog für Linguisten“ 12 8 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt 2 Arithmetische Ausdrücke – Erweiterung Erweitere die Grammatik so, dass sie die arithmetischen Ausdrücke auch auswerten kann. Erweitere dazu die DCG um eine Argumentstelle für den Wert des jeweiligen Ausdrucks. Die Berechnung erfolgt bottom-up, d. h. zuerst werden die Terminale ausgewertet, danach die direkt aus den Terminalen zusammengesetzten Ausdrücke, danach wiederum die „nächstgrößeren“ Ausdrücke und so weiter. Du brauchst, um Prolog rechnen zu lassen, das eingebaute Prädikat is/2. Beispielanfrage: ?- arith_expr(Wert, ['(','(', 3, *, 4, ')', -, 5, ')'], []). Wert = 7 . Sebastian Golly Tutorium „Prolog für Linguisten“ 12 9 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt 2 Arithmetische Ausdrücke – Gretchenfrage Warum ist es hier so wichtig, dass die Ausdrücke geklammert sind? Was passiert, wenn du die Klammern weglässt? Warum? Sebastian Golly Tutorium „Prolog für Linguisten“ 12 10 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt 3 Übersetzen auf Bäumen – Konzept Schreibe ein Prädikat uebersetzer/2, das einfache deutsche Nebensätze (ganz naiv) in englische Nebensätze übersetzen kann. Dabei ist uns neben dem Lexikon als einziger Unterschied die Wortstellung wichtig: Betrachten wir nur pronominale Subjekte und Objekte, ergibt sich im Deutschen immer eine SOV-Stellung: dass ich ihn sehe. Im Englischen ist es hingegen SVO: that I see him. Der zu übersetzende Satz soll als Baumterm im Wishtree-Format im ersten Argument gegeben sein, das zweite Argument soll Prolog dann mit einem Wishtree-Baum instantiieren. Beispielanfrage: ?- uebersetzer(cp/[c/[-weil], s/[np/[pron/[-ich]], vp/[np/[pron/[-ihn]], v/[-sehe]]]], Engl). Engl = cp/[c/[-because], s/[np/[pron/[-i]], vp/[v/[-see], np/[pron/[-him]]]]] . Sebastian Golly Tutorium „Prolog für Linguisten“ 12 11 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt 3 Übersetzen auf Bäumen – Details Die Regeln, mit denen die Bäume erzeugt werden konnten, sind: CP → C S, S → NP VP, NP → Pron, VP → NP V VP → V NP. bzw. Das Lexikon sollte mindestens folgende Wortpaare umfassen: Deutsch ich sehe kenne ihn dich dass weil Sebastian Golly Englisch i see know him you that because Tutorium „Prolog für Linguisten“ 12 12 / 13 Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt Noch Fragen? Sebastian Golly Tutorium „Prolog für Linguisten“ 12 13 / 13