Ασκήσεις μελέτης της ενότητας «Σημασιολογική Ανάλυση»

Σχετικά έγγραφα
Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Γλωσσική Τεχνολογία, Διδάσκων: Ι. Ανδρουτσόπουλος

Ασκήσεις μελέτης της 23 ης διάλεξης

Ασκήσεις μελέτης της ενότητας της Γλωσσικής Τεχνολογίας

Ασκήσεις μελέτης της 11 ης διάλεξης

Ασκήσεις μελέτης της ενότητας «Συντακτική Ανάλυση»

Ασκήσεις μελέτης της ενότητας «Συντακτική Ανάλυση»

Επικοινωνία Ανθρώπου Υπολογιστή. Β3. Κατανόηση φυσικής γλώσσας

Τεχνητή Νοημοσύνη. 23η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 9η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνογλωσσία 8 Β' Εξάμηνο. Λογικός Προγραμματισμός Prolog. Άσκηση: Διορθωτής Εκφράσεων

Ασκήσεις μελέτης της 6 ης διάλεξης

Τεχνητή Νοημοσύνη. 21η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη ( )

Συστήματα κ Τεχνολογίες Γνώσης Εργασίες στην Επεξεργασία Φυσικής Γλώσσας

Ασκήσεις ανακεφαλαίωσης στο μάθημα Τεχνητή Νοημοσύνη

Γλωσσική Τεχνολογία. 5 η Ενότητα: Συντακτική ανάλυση. Ίων Ανδρουτσόπουλος.

Τεχνογλωσσία 8 Β' Εξάμηνο Λογικός Προγραμματισμός Prolog

Ασκήσεις μελέτης της 19 ης διάλεξης

Ασκήσεις μελέτης της 16 ης διάλεξης

ΑΣΚΗΣΗ ΜHΧΑΤΡΟΝΙΚΗΣ. Τέλος όταν εισάγετε ένας σωστός συνδυασμός η ένδειξη του display να μηδενίζετε.

Ασκήσεις μελέτης της 8 ης διάλεξης

Περιεχόμενα Πρόλογος 1. Εισαγωγή 2. Τα Βασικά Μέρη ενός Προγράμματος Prolog

Τεχνητή Νοημοσύνη. 7η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΑΣΚΗΣΗ 11: ΕΠΕΞΕΡΓΑΣΙΑ ΦΥΣΙΚΗΣ ΓΛΩΣΣΑΣ - ΣΥΝΤΑΚΤΙΚΗ ΑΝΑΛΥΣΗ (PARSING)

Printed November 5, 2012 at 8:37

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Εργαστηριακές σημειώσεις για το μάθημα: «Εισαγωγή στην Μηχατρονική»

Εισαγωγή στην Αριθμητική Ανάλυση

Υπηρεσία «NT Bulk SMS» Οδηγίες Χρήσεως

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

Τεχνητή Νοημοσύνη. 10η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

SPSS Statistical Package for the Social Sciences

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΣΥΝΤΑΞΗ: ΟΡΘΟΛΟΓΙΚΗ ΠΡΟΣΕΓΓΙΣΗ (FORMAL SYNTAX)

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

ΤΕΧΝΟΓΛΩΣΣΙΑ VIII ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΔΑΣΚΟΝΤΕΣ: ΜΑΪΣΤΡΟΣ ΓΙΑΝΗΣ, ΠΑΠΑΚΙΤΣΟΣ ΕΥΑΓΓΕΛΟΣ ΑΣΚΗΣΗ: ΔΙΟΡΘΩΣΗ ΕΚΦΡΑΣΕΩΝ (Β )

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 4 ο : Συντακτική ανάλυση. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Συντακτική Ανάλυση. Ίων Ανδρουτσόπουλος.

Τμήμα Λογιστικής & Χρηματοοικονομικής

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend

@ BY AVENUES PRIVATE INSTITUTE JUNE 2014

Γραµµατικοί κανόνες Κανόνες µεταγραφής συµβόλων

ΚΑΤΗΓΟΡΗΜΑΤΙΚΟΣ ΛΟΓΙΣΜΟΣ Ι

The Accusative Case. A Target for the Action. A lesson for the Paideia web-app Ian W. Scott, 2015

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΣΗΜΑΣΙΟΛΟΓΙΑ - SEMANTICS

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων

STARTING STEPS IN GRAMMAR, FINAL TEST C TERM 2012 UNITS 1-18

Κεφάλαιο 2: Τυπικές γλώσσες

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Εισαγωγή στη Γλωσσολογία Ι

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

(α) Ζητείται να αναπαρασταθεί η παραπάνω γνώση σε Prolog, ώστε να δημιουργηθεί αντίστοιχο πρόγραμμα.

S, (5, -3, 34, -23, 7) ( *, _

Λεκτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εργαστήριο 10 Πίνακες. Πίνακες. Η έννοια της δόμησης δεδομένων στη PASCAL. Σκοπός

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

Κλιμάκιο Πληροφορικής Σεμινάρια για τα λογισμικά κλειστού τύπου Κύκλος Α

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

LESSON 16 (ΜΑΘΗΜΑ ΔΕΚΑΕΞΙ) REF : 102/018/16-BEG. 4 March 2014

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

Εργαστήριο 3ο. Ιδιότητες Πεδίων Κλειδιά Πινάκων. Τύποι Δεδομένων. Ιδιότητες Πεδίων

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΤΕΙ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού

true (1) αν και οι δύο είσοδοι είναι true (1) true (1) αν τουλάχιστον μια είσοδος είναι true (1)

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΔΗΜΗΤΡΙΟΥ ΑΘ. ΚΡΟΝΤΣΟΥ ΘΕΜΑ: ΓΡΑΜΜΑΤΙΚΗ-ΣΥΝΤΑΚΤΙΚΗ ΑΝΑΛΥΣΗ ΤΗΣ ΝΕΑΣ ΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ ΕΙΣΗΓΗΤΗΣ: ΙΩΑΝΝΗΣ ΡΕΦΑΝΙΔΗΣ

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

Συστήματα Αναμονής (Queuing Systems)

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 5 ο : Σημασιολογική ανάλυση. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

ΜΑΘΗΜΑ: Μεταγλωττιστές

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Εισαγωγή στον Προγραμματισμό

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Διαδικασιακός Προγραμματισμός

Μηχανική Μετάφραση Αριθμητικών

Αντικειμενοστραφής Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

Γλώσσες Χωρίς Συμφραζόμενα

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα

ΣΠΟΥΔΑΣΤΗΣ: ΑΝΔΡΕΑΣ Η. ΡΟΚΟΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ : ΠΑΝΤΕΛΗΣ ΜΑΛΑΤΕΣΤΑΣ

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Μοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις

Τεχνητή Νοημοσύνη. 12η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

(1) Επιλέξτε την εντολή QUERIES για να μπείτε στο περιβάλλον δημιουργίας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

Χρονικές σειρές 3 o μάθημα: Εισαγωγή στη MATLAB

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Συντακτικές λειτουργίες

Transcript:

Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Διδάσκων: Ι. Ανδρουτσόπουλος, 2016 17 Ασκήσεις μελέτης της ενότητας «Σημασιολογική Ανάλυση» Παραδώστε μια αναφορά (το πολύ 5 σελίδων) για την άσκηση 9 και επιδείξτε τη λειτουργία της γραμματικής DCG του τελευταίου σκέλους. Μπορείτε να εργαστείτε σε ζεύγη. 1. Παραστήστε σε πρωτοβάθμια κατηγορηματική λογική τις παρακάτω προτάσεις. Μπορείτε να παραστήσετε με x = y το ότι οι μεταβλητές x και y παριστάνουν το ίδιο αντικείμενο. (i) Ο Γιάννης είναι φοιτητής. (ii) Κάθε φοιτητής είναι έξυπνος. (iii) Κάθε φοιτητής που έχει περάσει την Τεχνητή Νοημοσύνη είναι έξυπνος. (iv) Ο Γιάννης έχει περάσει τουλάχιστον ένα μάθημα. (v) Ο Γιάννης έχει περάσει ακριβώς ένα μάθημα. (vi) Κάθε φοιτητής που έχει περάσει τουλάχιστον ένα μάθημα είναι έξυπνος. (i) Student(John) (ii) x (Student(x) Clever(x)) (iii) x ((Student(x) Passed(x, AI)) Clever(x)) (iv) x (Course(x) Passed(John, x)) (v) x (Course(x) Passed(John, x) y ((Course(y) Passed(John, y)) (x = y)) ) (vi) x ((Student(x) y (Course(y) Passed(x, y))) Clever(x)) 2. Παραστήστε σε πρωτοβάθμια κατηγορηματική λογική τα ακόλουθα. i. Ο Μίλος και ο Σούζος είναι σκύλοι. ii. Η Ψίτα και η Ράνα είναι γάτες. iii. Η Ψίτα συμπαθεί το Μίλο. iv. Τη Ράνα τη δάγκωσε ο Μίλος ή ο Σούζος. v. Κάποιος σκύλος δάγκωσε κάποια γάτα. vi. Καμία γάτα δε συμπαθεί το Σούζο. vii. Αν κάποιος σκύλος δάγκωσε κάποια γάτα, τότε καμία γάτα δε συμπαθεί αυτό το σκύλο. (i) (Dog(Milos) Dog(Suzos)) (ii) (Cat(Psita) Cat(Rana)) (iii) Likes(Psita, Milos) (iv) (Bite(Milos, Rana) Bite(Suzos, Rana)) (v) x y (Dog(x) Cat(y) Bite(x, y)) (vi) y (Cat(y) Likes(y, Suzos)) (vii) x ((Dog(x) y (Cat(y) Bite(x, y))) z (Cat(z) Likes(z, x))) 3. Παραστήστε σε πρωτοβάθμια κατηγορηματική λογική τη σημασία των αντιστοίχων ελληνικών προτάσεων. Υπάρχει μία γάτα που την αγαπά ο Μίλος. y (Cat(y) Loves(Milos, y)) Όλες οι γάτες νιαουρίζουν.

x (Cat(x) Miaou(x)) Κάθε γάτα που νιαουρίζει φοβάται έναν (πιθανώς διαφορετικό) σκύλο. x ((Cat(x) Miaou(x)) y (Dog(y) AfraidOf(x, y))) Υπάρχει τουλάχιστον ένας σκύλος που τον φοβούνται (τον ίδιο όλες) οι γάτες που νιαουρίζουν. y (Dog(y) x ((Cat(x) Miaou(x)) AfraidOf(x, y))) Κάθε σκύλος αγαπά ακριβώς μία (πιθανώς διαφορετική ανά σκύλο) γάτα. y (Dog(y) x (Cat(x) Likes(y, x) z (Cat(z) Likes(y, z) z = x))) 4. Μετατρέψτε τη γραμματική της άσκησης 2(α) της προηγούμενης ενότητας (Συντακτική Ανάλυση) σε γραμματική DCG της Prolog, φροντίζοντας η γραμματική να υπολογίζει και το μήκος της συμβολοσειράς εισόδου, όπως στο παρακάτω παράδειγμα:?- phrase( s(length), [a, a, b, b, b, c, c]). Length = 7?- phrase( s(length), [a, a, b, b, b, c]). no s(newvalue) --> [a], p(value), [c], {NewValue is Value + 2}. p(newvalue) --> [a], p(value), [c], {NewValue is Value + 2}. p(value) --> q(value). q(1) --> b. q(newvalue) --> b, q(value), {NewValue is Value + 1}. 5. Τροποποιήστε τη γραμματική της άσκησης 6(β) της προηγούμενης ενότητας (Συντακτική Ανάλυση), ώστε αν τη δώσουμε στην Prolog μαζί με το στόχο: phrase(s(action, Agent, Object), [ο, σκύλος, κυνήγησε, τη, γάτα]). η Prolog να απαντήσει: Action = chase, Agent = dog, Object = cat, ενώ στην περίπτωση του στόχου: phrase(s(action, Agent, Object), [ο, σκύλος, δάγκωσε, τη, γάτα]). η Prolog να απαντήσει: Action = bite, Agent = dog, Object = cat. s(action, Agent, Object) --> np(agent), vp(action, Object). np(entity) --> det(gender), n(entity, Gender). vp(action, Object) --> v(action), np(object). det(masc) --> [ο]. det(fem) --> [η].

det(masc) --> [το]. det(fem) --> [τη]. n(dog, masc) --> [σκύλος]. n(dog, masc) --> [σκύλο]. n(cat, fem) --> [γάτα]. v(chase) --> [κυνήγησε]. v(bite) --> [δάγκωσε]. 6. Τροποποιήστε τη γραμματική DCG της διαφάνειας «Σημασιολογία αριθμητικής γλώσσας», ώστε να επιτρέπει αριθμητικές πράξεις μεταξύ αριθμών από το μηδέν ως και το 9.999. Ως απλούστευση, το δέκα να γράφεται ως [one, ten], το δώδεκα ως [one, ten, two], το 23 ως [two, ten, three], το εκατό ως [one, hundred], το 110 ως [one, hundred, one, ten], το 123 ως [one, hundred, two, ten, three], το 1000 ως [one, thousand], το 1123 ως [one, thousand, one, hundred, two, ten, three] κ.ο.κ. Για παράδειγμα, η ακόλουθη εντολή:?-phrase(expression(v), [open, two, thousand, three, hundred, five, ten, two, plus, two, ten, one, close]). θα πρέπει να επιστρέφει: V = 2373 και η εντολή:?-phrase(expression(v), [open, open, two, thousand, three, hundred, five, ten, two, plus, two, ten, one, close, minus, one, thousand, seven, ten, close]). V = 1303 digit(0) --> [zero]. digit(2) --> [two]. digit(4) --> [four]. digit(6) --> [six]. digit(8) --> [eight]. digit(1) --> [one]. digit(3) --> [three]. digit(5) --> [five]. digit(7) --> [seven]. digit(9) --> [nine]. number(value) --> digit(value). number(newvalue) --> digit(value1), [ten], number(value2), {Value2 < 10, NewValue is Value1 * 10 + Value2}. number(newvalue) --> digit(value1), [ten], {NewValue is Value1 * 10}. number(newvalue) --> digit(value1), [hundred], number(value2), {Value2 < 100, NewValue is Value1 * 100 + Value2}. number(newvalue) --> digit(value1), [hundred], {NewValue is Value1 * 100}. number(newvalue) --> digit(value1), [thousand], number(value2), {Value2 < 1000, NewValue is Value1 * 1000 + Value2}. number(newvalue) --> digit(value1), [thousand], {NewValue is Value1 * 1000}. expression(value) --> number(value). expression(newvalue) --> [open], expression(value1), [plus], expression(value2), [close], {NewValue is Value1 + Value2}. expression(newvalue) --> [open], expression(value1), [minus], expression(value2), [close], {NewValue is Value1 - Value2}. 7. Γράψτε μια γραμματική DCG που να επιτρέπει προτάσεις όπως:

[άνοιξε,τα,παράθυρα,του,σαλονιού], [κλείσε,το,μικρό,παράθυρο,του,σαλονιού], [σβήσε,το,μεγάλο,φως,της,μικρής,κουζίνας], [άναψε,τα,φώτα,των,μικρών,μπάνιων] αλλά να μην επιτρέπει προτάσεις με ασυμφωνία γένους, αριθμού ή πτώσης, όπως οι παρακάτω: Χ [άνοιξε,το,παράθυρα,του,σαλονιού], Χ [κλείσε,το,μικρή,παράθυρο,του,σαλονιού], Χ [σβήσε,το,μεγάλου,φως,της,μικρής,κουζίνας], Χ [άναψε,τα,φώτα,το,μικρού,μπάνιων] και να απαιτεί τα ρήματα «ανάβω» και «σβήνω» να χρησιμοποιούνται μόνο με φώτα, ενώ τα «ανοίγω» και «κλείνω» μόνο με παράθυρα. Για παράδειγμα, να μην επιτρέπονται προτάσεις όπως: Χ [σβήσε,το,μικρό,παράθυρο,του,σαλονιού], Χ [άνοιξε,το,μεγάλο,φως,της,μικρής,κουζίνας] Για τις επιτρεπόμενες προτάσεις, θέλουμε η γραμματική να μπορεί να χρησιμοποιηθεί όπως φαίνεται στα παρακάτω παραδείγματα:?- phrase(s(action, Type1, Size1, Number1, Type2, Size2, Number2, [άνοιξε,τα,μεγάλα,παράθυρα,του,μικρού,σαλονιού]). Action = open, Type1 = window, Size1 = large, Number1 = plur, Type2 = livingroom, Size2=small, Number2 = sing?- phrase(s(action, Type1, Size1, Number1, Type2, Size2, Number2, [άναψε,τα,φώτα,των,μικρών,μπάνιων]). Action = on, Type1 = light, Size1 = unknown, Number1 = plur, Type2 = bathroom, Size2=small, Number2 = plur?- phrase(s(action, Type1, Size1, Number1, Type2, Size2, Number2, [κλείσε,τα,παράθυρα]). Action = close, Type1 = window, Size1 = unknown, Number1 = plur, Type2 = unknown, Size2=unknown, Number2 = unknown s(action, Type1, Size1, Number1, Type2, Size2, Number2) --> vp(action, Type1, Size1, Number1, Type2, Size2, Number2). vp(action, Type, Size, Number, uknown, uknown, unknown) --> v(action, Type), np(gender, Number, Case, Type, Size). vp(action, Type1, Size1, Number1, Type2, Size2, Number2) --> v(action, Type1), np(gender1, Number1, Case1, Type1, Size1), np(gender2, Number2, gen, Type2, Size2). np(gender, Number, Case, Type, Size) --> det(gender, Number, Case), nominal(gender, Number, Case, Type, Size). nominal(gender, Number, Case, Type, Size) -->

adj(gender, Number, Case, Size), n(gender, Number, Case, Type). nominal(gender, Number, Case, Type, unknown) --> n(gender, Number, Case, Type). v(on, light) --> [άναψε]. v(open, window) --> [άνοιξε]. det(neut, sing, acc) --> [το]. det(neut, sing, gen) --> [του]. det(gender, plur, gen) --> [των]. v(off, light) --> [σβήσε]. v(close, window) --> [κλείσε]. det(neut, plur, acc) --> [τα]. det(fem, sing, gen) --> [της]. n(neut, sing, acc, window) --> [παράθυρο]. n(neut, plur, acc, window) --> [παράθυρα]. n(neut,sing,acc, light) --> [φως]. n(neut, plur, acc, light) --> [φώτα]. n(neut, sing, gen, livingroom) --> [σαλονιού]. n(neut, plur, gen, livingroom) --> [σαλονιών]. n(neut, sing, gen, bathroom) --> [μπάνιου]. n(neut, plur, gen, bathroom) --> [μπάνιων]. n(fem, sing, gen, kitchen) --> [κουζίνας]. n(fem, plur, gen, kitchen) --> [κουζινών]. adj(neut, sing, acc, small) --> [μικρό]. adj(neut, sing, gen, small) --> [μικρού]. adj(fem, sing, acc, small) --> [μικρή]. adj(fem, sing, gen, small) --> [μικρής]. adj(gender, plur, gen, small) --> [μικρών]. adj(neut, sing, acc, large) --> [μεγάλο]. adj(neut, sing, gen, large) --> [μεγάλου]. adj(fem, sing, acc, large) --> [μεγάλη]. adj(fem, sing, gen, large) --> [μεγάλης]. adj(gender, plur, gen, large) --> [μεγάλων]. 8. Δίνουμε στην Prolog την ακόλουθη γραμματική DCG: v(event(saw, we, What, How)) --> [είδαμε]. det --> [τον]. det --> [το]. n(entity(scientist, Specifier)) --> [επιστήμονα]. n(entity(telescope, Specifier)) --> [τηλεσκόπιο]. pn(paris) --> [παρίσι]. prep(with) --> [με]. prep(from) --> [από]. pp(specifier(psem, NPSem)) --> prep(psem), np(npsem). nominal(nsem)--> n(nsem). nominal(entity(type, Specifier)) --> n(entity(type, Specifier)), pp(specifier).

np(nominalsem) --> det, nominal(nominalsem). np(pnsem) --> det, pn(pnsem). vp(event(type, Who, NPSem, How)) --> v(event(type, Who, NPSem, How)), np(npsem). vp(event(type, Who, NPSem, How)) --> v(event(type, Who, NPSem, How)), np(npsem), pp(how). s(vpsem) --> vp(vpsem). Γράψτε τις απαντήσεις που θα επιστρέψει η Prolog για τη μεταβλητή Sem, όταν της δώσουμε το στόχο: phrase(s(sem), [είδαμε, τον, επιστήμονα, με, το, τηλεσκόπιο]). Παραστήστε με «_» μεταβλητές που δεν θα έχουν συγκεκριμένες τιμές. Εξηγήστε πώς προκύπτουν οι απαντήσεις. Προκύπτουν δύο συντακτικά δέντρα και δύο απαντήσεις, όπως δείχνουν τα παρακάτω σχήματα. Οι δύο απαντήσεις είναι: Sem = event(saw, we, entity(scientist, specifier(with, entity(telescope, _))), _) Sem = event(saw, we, entity(scientist, _), specifier(with, entity(telescope, _)))

Μπορείτε (από περιέργεια) να δοκιμάσετε τη γραμματική και με την πρόταση «είδαμε τον επιστήμονα με το τηλεσκόπιο από το Παρίσι».

9. (α) Τροποποιήστε τη γραμματική των διαφανειών 12 και 15, ώστε να επιτρέπεται επίσης το ρήμα «θέλει», καθώς και τα επίθετα «φτηνή» και «ακριβή» (δεν χρειάζεται να επιτρέπονται περισσότερα από ένα επίθετα ανά ουσιαστικό). Για παράδειγμα, η πρόταση «Κάθε πελάτης θέλει μια φτηνή πτήση» να απεικονίζεται στον ακόλουθο λογικό τύπο. Δεν πειράζει αν χρησιμοποιούνται τύποι με ποσοδείκτες (π.χ. x Customer(x)) ως όροι. Wants ( x Customer(x), y (Flight(y) Cheap(y))) (β) Τροποποιήστε τώρα τους κανόνες του λεξικού για τα ρήματα, ώστε να εισάγουν μεταβλητές γεγονότων (βλ. διαφάνεια 22) και οι προτάσεις «Κάθε πελάτης θέλει μια πτήση» και «Κάθε πελάτης θέλει μια φτηνή πτήση» να απεικονίζονται στους ακόλουθους τύπους. e (Want(e) Agent(e, x Customer(x)) Wanted(e, y Flight(y))) e (Want(e) Agent(e, x Customer(x)) Wanted(e, y (Flight(y) Cheap(y))) (γ) Σχεδιάστε συντακτικό δέντρο (σαν εκείνο της 16 ης διαφάνειας) που να δείχνει και τον τρόπο υπολογισμού της σημασιολογικής παράστασης της πρότασης «Κάθε πελάτης θέλει μια φτηνή πτήση», με τις τροποποιήσεις του προηγούμενου σκέλους. (δ) Μετατρέψτε σε DCG τη γραμματική του δεύτερου σκέλους και δείξτε ότι παράγει όντως τους επιθυμητούς λογικούς τύπους. Προαιρετικά φροντίστε η γραμματική DCG να επιστρέφει και τα συντακτικά δέντρα (βλ. διαφάνειες 62 64 της ενότητας «Συντακτική Ανάλυση» και αρχείο tree_structure.pl στα παραδείγματα γραμματικών DCG στο e-class), μαζί με τη σημασιολογική παράσταση κάθε κόμβου (όπως στο προηγούμενο σκέλος).