Γλώσσες Προγραµµατισµού 2 Άσκηση 2

Σχετικά έγγραφα
Γλώσσες Προγραµµατισµού 2 Άσκηση 6

ΠΑΡΑ ΕΙΓΜΑΤΑ ΣΤΗ ΓΛΩΣΣΑ PROLOG ΠΑΡΑ ΕΙΓΜΑ 1

Απλές ασκήσεις για αρχάριους μαθητές 3

Ρήματα λέγονται οι λέξεις που φανερώνουν ότι ένα πρόσωπο, ζώο ή πράγμα ενεργεί ή παθαίνει κάτι ή βρίσκεται σε μία κατάσταση.

Λόγιοι σχηματισμοί ρημάτων σε ούμαι και -ώμαι

Το ρήμα λύω στην Οριστική Ε.Φ. Επιμέλεια: Ευθυμιάδου Ευφροσύνη

ΟΙ ΧΡΟΝΟΙ ΤΩΝ ΡΗΜΑΤΩΝ

ΓΡΑΜΜΑΤΙΚΗ ΣΥΝΤΑΞΗ ΕΙΣΑΓΩΓΗ

Ηλεκτρονικό Λεξικό Ρηµάτων Αρχαίας Ελληνικής Γλώσσας. Περίληψη

ΤΑ ΠΑΡΕΠΟΜΕΝΑ ΤΟΥ ΡΗΜΑΤΟΣ ΦΩΝΗ ΣΥΖΥΓΙΑ ΔΙΑΘΕΣΗ ΧΡΟΝΙΚΗ ΒΑΘΜΙΔΑ ΠΟΙΟΝ ΕΝΕΡΓΕΙΑΣ

Γλώσσες Προγραµµατισµού 2 Άσκηση 3

Προτεινόμενος Προγραμματισμός κατά ενότητα

ΡΗΜΑΤΑ. Στην πρώτη περίπτωση κάποιος ενεργεί (ρήμα) και η ενέργειά του αυτή ασκείται σε ένα άλλο πρόσωπο ή πράγμα έξω από αυτόν.

ΚΟΛΛΕΓΙΟ ΑΘΗΝΩΝ Σχολικό έτος: ΤΜΗΜΑ ΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ ΓΥΜΝΑΣΙΟ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

Τα ουσιαστικά. Ενικός αριθµός Πληθυντικός αριθµός

ΚΟΛΛΕΓΙΟ ΑΘΗΝΩΝ Σχολικό έτος: ΤΜΗΜΑ ΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ ΓΥΜΝΑΣΙΟ

Εισαγωγή στην πληροφορική

ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ

Γνωριµία µε τη Microsoft Access


Γλώσσα. Φύλλα εργασίας. Για παιδιά E ΗΜΟΤΙΚΟΥ. Τεύχος Α. Παίζω, Σκέφτοµαι, Μαθαίνω. σελίδες

Θέµατα Μορφολογίας της Νέας Ελληνικής Ι. Κώστας Δ. Ντίνας Πανεπιστήµιο Δυτικής Μακεδονίας

Α. ΣΥΓΚΡΙΣΗ ΚΛΑΣΜΑΤΩΝ

Προγραµµατιστικές τεχνικές

Εφαρµογή EXTRA. ιαδικασία ιαχείρισης Εκτύπωσης Ισοζυγίου Γενικού - Αναλυτικών Καθολικών

Νέα ελληνικά-πανεπιστήμιο Stendhal Grenoble 3 Επίπεδο A2 Β εξάμηνο-επιλογή /επιμέλεια Μ. Ζουμπουλίδου Γραμματικό. Πηγές Πηγές περιεχόμενο

Γραμματική και Συντακτικό Γ Δημοτικού ανά ενότητα - Παρασκευή Αντωνίου

Διαβάστε προσεκτικά το παρακάτω κείμενο και σημειώστε αν οι προτάσεις που ακολουθούν συμφωνούν (Σ) ή όχι (Λ) με τo κείμενo.

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

Εισαγωγή στην πληροφορική

[Ένας φίλος που...τρώγεται]

Ηλεκτρονικό Λατινικό Λεξικό Ρηµάτων. Περίληψη

ΚΕΦΑΛΑΙΟ Web Services

Ουσιαστικά. Ενικός αριθµός Πληθυντικός αριθµός

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΚΟΛΛΕΓΙΟ ΑΘΗΝΩΝ Σχολικό έτος: ΤΜΗΜΑ ΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ ΓΥΜΝΑΣΙΟ ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ Β ΓΥΜΝΑΣΙΟΥ. Προγραμματισμός κατά ενότητα

Α. Ερωτήσεις Ανάπτυξης

METΡΗΣΗ ΤΗΣ ΕΠΙΤΑΧΥΝΣΗΣ ΤΗΣ ΒΑΡΥΤΗΤΑΣ ΜΕ ΤΟ ΑΠΛΟ ΕΚΚΡΕΜΕΣ

Επεξεργασία Αρχείων Κειµένου

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Γλώσσα. Φύλλα εργασίας. Για παιδιά ΣΤ ΗΜΟΤΙΚΟΥ. Τεύχος Α. Παίζω, Σκέφτοµαι, Μαθαίνω. σελίδες

ΟΜΟΙΟΙ ΚΑΙ OMOHXΟΙ ΤΥΠΟΙ

Pascal. 26 Οκτωβρίου 2011

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή

Η παθητική σύνταξη και το ποιητικό αίτιο

ΟΜΟΙΟΙ ΚΑΙ OMOHXΟΙ ΤΥΠΟΙ

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

[Ένας φίλος που...τρώγεται]

ΕΝΟΤΗΤΑ 20 - ΕΠΑΝΑΛΗΨΗ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Εκπαιδευτικός Οµιλος ΒΙΤΑΛΗ

Για κάθε φάση του σχεδίου διδασκαλίας προτείνονται δύο στάδια δραστηριοτήτων:

Page 1

4.4 Ερωτήσεις διάταξης. Στις ερωτήσεις διάταξης δίνονται:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΤΑ ΡΗΜΑΤΑ Τα ρήματα Έχουν δύο φωνές: την ενεργητική και την παθητική Ενεργητική φωνή: ω. Παθητική φωνή: -μαι. Οι καταλήξεις των ρημάτων, ω, -άβω

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

επιµέλεια Θοδωρής Πιερράτος

Στάδια Ανάπτυξης Λόγου και Οµιλίας

Πρόβληµα : Πώς θα λύναµε αυτό το πρόβληµα αν είχαµε µόνο χαρτί και µολύβι, και κάποιος µας έλεγε τους αριθµούς προφορικά?

ΠΑΡΑΚΡΑΤΗΣΕΙΣ ΦΟΡΟΥ ΒΕΒΑΙΩΣΕΙΣ ΑΠΟΔΟΧΩΝ ΣΥΝΔΕΣΗ CALCULUS PBS, PAYCHECK PBS

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Excel (dashboards, συγκεντρωτικοί πίνακες)

Οδηγίες για άνοιγµα καρτέλας υποψηφίου στο ηλεκτρονικό σύστηµα της Infotest και της Certiport

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

ΛΑΤΙΝΙΚΑ Β Λ ΠΡΟΕΤΟΙΜΑΣΙΑ Γ Λ. ΠΑΡΑΤΗΡΗΣΕΙΣ Β1. Να γράψετε τους τύπους που ζητούνται για καθεμία από τις παρακάτω λέξεις:

7η Σειρά Ασκήσεων. Μπορείτε, αν θέλετε, να χρησιμοποιήσετε τον τύπο string της ΗΡ Pascal και τις αντίστοιχες συναρτήσεις (κεφ 10.1 των σημειώσεων).

Κεφάλαιο 9 ο Κ 5, 4 4, 5 0, 0 0,0 5, 4 4, 5. Όπως βλέπουµε το παίγνιο δεν έχει καµιά ισορροπία κατά Nash σε αµιγείς στρατηγικές διότι: (ΙΙ) Α Κ

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Υπολογιστική Λογική και Λογικός Προγραμματισμός

ΟΝΟΜΑ: 7 ο ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΓΛΩΣΣΑ

ιεύθυνση Πρωτοβάθµιας Εκπαίδευσης Καρδίτσας Γραφείο Σχολικού Συµβούλου Μουζακίου ΦΥΛΛΑ ΑΞΙΟΛΟΓΗΣΗΣ Γλώσσα Μαθηµατικά

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

ΕΝΟΤΗΤΑ 23 - ΠΑΡΟΥΣΙΑΣΕΙΣ - ΓΡΑΦΗΜΑΤΑ

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Μάθηµα 1. Κεφάλαιο 1o: Συστήµατα. γ R παριστάνει ευθεία και καλείται γραµµική εξίσωση µε δύο αγνώστους.

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Βασικές οδηγίες χρήσης συστήµατος ProTeAS

ΧΡΗΣΙΜΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ ΣΤΑ ΛΑΤΙΝΙΚΑ ΚΕΙΜΕΝΑ

Η έννοια του συναρτησιακού (functional).

ΕΙΜΙ= είμαι, υπάρχω. ΥΠΟΤΑ- ΚΤΙΚΗ ω ης η ωμεν. ισθι εστω. εσοίμην εσοιο εσοιτο εσοίμεθα εσοισθε εσοιντο ΑΡΣΕΝΙΚΟ ΘΗΛΥΚΟ ΟΥΔΕΤΕΡΟ. ο υσης ο υσ η ο υσαν

Απλές ασκήσεις για αρχάριους μαθητές 5

ΕΝΟΤΗΤΑ 22 ΙΑΦΗΜΙΣΗ-ΜΑΡΚΕΤΙΝΓΚ-ΑΝΤΑΓΩΝΙΣΜΟΣ-ΣΤΡΑΤΗΓΙΚΗ

Εκπαιδευτικός Οµιλος ΒΙΤΑΛΗ

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

The G C School of Careers

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών.

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

Συνάρτηση f, λέγεται η διαδικασία µε βάση την. Παρατηρήσεις - Σχόλια f

Οδηγίες για άνοιγµα καρτέλας υποψηφίου στο ηλεκτρονικό σύστηµα της Infotest και της Certiport

Ι, Α. Ερωτήσεις ανοικτού τύπου ή ελεύθερης ανάπτυξης

x - 1, x < 1 f(x) = x - x + 3, x

Γενική Ισορροπία. Notes. Notes. Notes. Notes. Κώστας Ρουµανιάς. 19 Απριλίου 2013

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Ηλεκτρονικών Υπολογιστών Γλώσσες Προγραµµατισµού 2 Άσκηση 2 Μάρτιος 2004 Τζάννες Αλέξανδρος

2. κανόνες φραστικής δοµής (phrase structure rules) α. Χρησιµοποιώντας τον φορµαλισµό των κανόνων φραστικής δοµής (PS) σχεδιάστε µια γραµµατική µε την οποία να παράγονται οι αρχικοί χρόνοι των Ελληνικών ρηµάτων µε βάση τους τύπους του γράφω (γράφω, έγραφα, θα γράψω, έγραψα, έχω γράψει, θα έχω γράψει). Υπόδειξη: Να χρησιµοποιήσετε όσο το δυνατόν λιγότερη πληροφορία ώστε να εξασφαλίσετε όσο γίνεται µεγαλύτερη γενικότητα στη γραµµατική σας. Για παράδειγµα, η δηµιουργία του Παρατατικού θα µπορούσε να δηµιουργείται µε κανόνα του τύπου: Παρατατικός ε Ενεστωτικό_Θέµα α β. Το µοντέλο της γραµµατικής σας αντιµετωπίζει τα ρήµατα τρώω, λέω ; Αν όχι πώς µπορεί να τα αντιµετωπίσει; Υποδείξτε πιθανές αλλαγές. Θα χρησιµοποιήσουµε για κάθε ρήµα ως µόνη πληροφορία το ατελές θέµα (πιο γνωστό ως ενεστωτικό θέµα ) και το τέλειο θέµα (πιο γνωστό ως θέµα αορίστου ). Οι κανόνες για το σχηµατισµό των αρχικών χρόνων µε χρήση των δύο αυτών θεµάτων ακολουθούν σε φορµαλισµό DCG σε prolog: enestwtas --> ateles_thema, [w]. paratatikos --> [e], ateles_thema, [a]. mellontas_eksakolou8itikos --> [tha], [-], ateles_thema, [w]. mellontas_stigmiaios --> [tha], [-], teleio_thema, [w]. aoristos --> [e], teleio_thema, [a]. parakeimenos --> [exw], [-], teleio_thema, [ei]. ypersintelikos --> [eixa], [-], teleio_thema, [ei]. syntelesmenos_mellontas --> [tha], [-], [exw], [-], teleio_thema, [ei]. Αυτοί οι κανόνες δεν περιλαµβάνουν τους διάφορους φωνολογικούς κανόνες, οπότε δεν µπορούν να περιλάβουν όλες τις περιπτώσεις ρηµάτων. Μια κατηγορία που δεν αντιµετωπίζεται έτσι είναι τα συνηρηµένα ρήµατα. Για κάθε ρήµα πρέπει να προσθέσουµε κανόνες της ακόλουθης µορφής : %Grafw rima(grafw, graf, graps). ateles_thema --> [graf]. teleio_thema --> [graps]. %Lynw rima(lynw, lyn, lys). ateles_thema --> [lyn]. teleio_thema --> [lys]. %Klebw rima(klebw, kleb, kleps). ateles_thema --> [kleb]. teleio_thema --> [kleps].

Σε κάθε τριάδα κανόνων, ο πρώτος συνδέει το ρήµα µε τα δύο θέµατά του και οι άλλοι δύο προσδιορίζουν τι είδους θέµα είναι το καθένα, σε φορµαλισµό DCG. Έχουµε τρία ρήµατα για το παράδειγµά µας, τα γράφω λύνω και κλέβω. Ορίζουµε και κάποιες βοηθητικές συναρτήσεις για τα παραδείγµατά µας: printlist(list) : Εκτυπώνει µια λίστα στην οθόνη enestwtas(x): Εκτύπωση του ενεστώτα του ρήµατος X paratatikos(x): Εκτύπωση του παρατατικού του ρήµατος X mellontas_eksakolou8itikos(x): Εκτύπωση του εξ. µέλλοντα του ρήµατος X mellontas_stigmiaios(x): Εκτύπωση του στ. µέλλοντα του ρήµατος X aoristos(x): Εκτύπωση του αορίστου του ρήµατος X parakeimenos(x): Εκτύπωση του παρακειµένου του ρήµατος X ypersintelikos(x): Εκτύπωση του υπερσυντέλικου του ρήµατος X syntelesmenos_mellontas(x): Εκτύπωση του συντ. µέλλοντα του ρήµατος X all(r): εκτύπωση των αρχικών χρόνων του ρήµατος R member(h,list): Απαντά στην ερώτηση αν το H είναι µέλος της λίστας List Παράδειγµα εκτέλεσης:?- all(grafw). grafw egrafa tha grafw tha grapsw egrapsa exw grapsei eixa grapsei tha exw grapsei?- all(klebw). klebw ekleba tha klebw tha klepsw eklepsa exw klepsei eixa klepsei tha exw klepsei?- all(lynw). lynw elyna tha lynw tha lysw elysa exw lysei eixa lysei tha exw lysei

Ακολουθεί ο κώδικας : enestwtas --> ateles_thema, [w]. paratatikos --> [e], ateles_thema, [a]. mellontas_eksakolou8itikos --> [tha], [-], ateles_thema, [w]. mellontas_stigmiaios --> [tha], [-], teleio_thema, [w]. aoristos --> [e], teleio_thema, [a]. parakeimenos --> [exw], [-], teleio_thema, [ei]. ypersintelikos --> [eixa], [-], teleio_thema, [ei]. syntelesmenos_mellontas --> [tha], [-], [exw], [-], teleio_thema, [ei]. %Grafw rima(grafw, graf, graps). ateles_thema --> [graf]. teleio_thema --> [graps]. %Lynw rima(lynw, lyn, lys). ateles_thema --> [lyn]. teleio_thema --> [lys]. %Klebw rima(klebw, kleb, kleps). ateles_thema --> [kleb]. teleio_thema --> [kleps]. printlist([]):- nl. printlist([h T]):- H='-', write(' '), printlist(t),!. printlist([h T]):- write(h), printlist(t). enestwtas(x):- enestwtas(x, []), printlist(x). paratatikos(x):- paratatikos(x, []), printlist(x). mellontas_eksakolou8itikos(x):- mellontas_eksakolou8itikos(x, []), printlist(x). mellontas_stigmiaios(x):- mellontas_stigmiaios(x, []), printlist(x). aoristos(x):- aoristos(x, []), printlist(x). parakeimenos(x):- parakeimenos(x, []), printlist(x). ypersintelikos(x):- ypersintelikos(x, []), printlist(x). syntelesmenos_mellontas(x):- syntelesmenos_mellontas(x, []), printlist(x). all(r):- rima(r, X, Y), enestwtas(x1, []), member(x, X1), printlist(x1), paratatikos(x2, []), member(x, X2), printlist(x2), mellontas_eksakolou8itikos(x3, []), member(x, X3), printlist(x3), mellontas_stigmiaios(y1, []), member(y, Y1), printlist(y1), aoristos(y2, []), member(y, Y2), printlist(y2), parakeimenos(y3, []), member(y, Y3), printlist(y3), ypersintelikos(y4, []), member(y, Y4), printlist(y4), syntelesmenos_mellontas(y5, []), member(y, Y5), printlist(y5). member(h,[h T]). member(x,[h T]) :- member(x,t).

β. Το µοντέλο της γραµµατικής µας δεν αντιµετωπίζει ρήµατα όπως το τρώ(γ)ω και το λέ(γ)ω γιατί όπως είπαµε δεν αντιµετωπίζει γενικά την περίπτωση συναιρέσεων. Επειδή είναι αρκετά δύσκολο να οριστούν φωνολογικοί κανόνες το πιο απλό που µπορούµε να κάνουµε είναι να έχουµε ένα θέµα για κάθε χρόνο. Αυτό προσθέτει βέβαια πολύ πληροφορία στη βάση γνώσης του προγράµµατος (τώρα για κάθε ρήµα έχουµε 9 αντί για 3 γραµµές που είχαµε προηγουµένως δηλαδή τριπλασιάζεται το µέγεθος του αρχείου!) αλλά ασήµαντες αλλαγές σε όλα τα άλλα µέρη του προγράµµατος όπως φαίνεται από τον κώδικα που ακολουθεί : enestwtas --> thema_enest, [w]. paratatikos --> [e], thema_parat, [a]. mellontas_eksakolou8itikos --> [tha], [-], thema_mel_eks, [w]. mellontas_stigmiaios --> [tha], [-], thema_mel_stig, [w]. aoristos --> [e], thema_aor, [a]. parakeimenos --> [exw], [-], thema_parak, [ei]. ypersintelikos --> [eixa], [-], thema_ypers, [ei]. syntelesmenos_mellontas --> [tha], [-], [exw], [-], thema_synt_mel, [ei]. %Grafw rima(grafw, graf, graf, graf, graps, graps, graps, graps, graps). thema_enest --> [graf]. thema_parat --> [graf]. thema_mel_eks --> [graf]. thema_mel_stig --> [graps]. thema_aor --> [graps]. thema_parak --> [graps]. thema_ypers --> [graps]. thema_synt_mel --> [graps]. %Lynw rima(lynw, lyn, lyn, lyn, lys, lys, lys, lys, lys). thema_enest --> [lyn]. thema_parat --> [lyn]. thema_mel_eks --> [lyn]. thema_mel_stig --> [lys]. thema_aor --> [lys]. thema_parak --> [lys]. thema_ypers --> [lys]. thema_synt_mel --> [lys]. %Klebw rima(klebw, kleb, kleb, kleb, kleps, kleps, kleps, kleps, kleps). thema_enest --> [kleb]. thema_parat --> [kleb]. thema_mel_eks --> [kleb]. thema_mel_stig --> [kleps]. thema_aor --> [kleps]. thema_parak --> [kleps]. thema_ypers --> [kleps]. thema_synt_mel --> [kleps]. %Trww rima(trww, trw, trwg, trw, fa, fag, fa, fa, fa). thema_enest --> [trw].

thema_parat --> [trwg]. thema_mel_eks --> [trw]. thema_mel_stig --> [fa]. thema_aor --> [fag]. thema_parak --> [fa]. thema_ypers --> [fa]. thema_synt_mel --> [fa]. %lew rima(lew, le, leg, le, p, ip, p, p, p). thema_enest --> [le]. thema_parat --> [leg]. thema_mel_eks --> [le]. thema_mel_stig --> [p]. thema_aor --> [ip]. thema_parak --> [p]. thema_ypers --> [p]. thema_synt_mel --> [p]. % printlist([]):- nl. printlist([h T]):- H='-', write(' '), printlist(t),!. printlist([h T]):- write(h), printlist(t). enestwtas(x):- enestwtas(x, []), printlist(x). paratatikos(x):- paratatikos(x, []), printlist(x). mellontas_eksakolou8itikos(x):- mellontas_eksakolou8itikos(x, []), printlist(x). mellontas_stigmiaios(x):- mellontas_stigmiaios(x, []), printlist(x). aoristos(x):- aoristos(x, []), printlist(x). parakeimenos(x):- parakeimenos(x, []), printlist(x). ypersintelikos(x):- ypersintelikos(x, []), printlist(x). syntelesmenos_mellontas(x):- syntelesmenos_mellontas(x, []), printlist(x). all(r):- rima(r, Xa, Xb, Xc, Ya, Yb, Yc, Yd, Ye), enestwtas(x1, []), member(xa, X1), printlist(x1), paratatikos(x2, []), member(xb, X2), printlist(x2), mellontas_eksakolou8itikos(x3, []), member(xc, X3), printlist(x3), mellontas_stigmiaios(y1, []), member(ya, Y1), printlist(y1), aoristos(y2, []), member(yb, Y2), printlist(y2), parakeimenos(y3, []), member(yc, Y3), printlist(y3), ypersintelikos(y4, []), member(yd, Y4), printlist(y4), syntelesmenos_mellontas(y5, []), member(ye, Y5), printlist(y5). member(h,[h T]). member(x,[h T]) :- member(x,t).

Παραδείγµατα εκτέλεσης για τα δύο νέα ρήµατα (τρώω και λέω) :?- all(lew). lew elega tha lew tha pw eipa exw pei eixa pei tha exw pei?- all(trww). trww etrwga tha trww tha faw efaga exw faei eixa faei tha exw faei