ΕΡΓΑΣΤΗΡΙΟ CLIPS ΑΣΚΗΣΗ 1

Σχετικά έγγραφα
Οικονόμου Παναγιώτης. Οι διαφάνειες παρουσιάζονται κατόπιν άδειας της Δρ. Ελπινίκης Παπαγεωργίου.

ΕΡΓΑΣΗΡΙΟ CLIPS ΑΣΚΗΣΗ 6

ΕΡΓΑΣΗΡΙΟ CLIPS ΑΣΚΗΣΗ 4

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Συναρτήσεις στο CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

ΕΡΓΑΣΗΡΙΟ CLIPS ΑΣΚΗΣΗ 3

CLIPS Σύντομη Εισαγωγή - Περιγραφή του Μηχανισμού Εκτέλεσης

Εισαγωγή στο κέλυφος ανάπτυξης έµπειρων συστηµάτων του CLIPS

ΕΡΓΑΣΤΗΡΙΟ CLIPS ΑΣΚΗΣΗ 2

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Το Σύστημα Κανόνων CLIPS. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

ΣΧΕ ΙΑ ΑΠΟΦΑΣΕΩΝ ΕΠΙ ΤΩΝ ΘΕΜΑΤΩΝ ΤΗΣ ΗΜΕΡΗΣΙΑΣ ΙΑΤΑΞΗΣ ΤΗΣ ΤΑΚΤΙΚΗΣ ΓΕΝΙΚΗΣ ΣΥΝΕΛΕΥΣΗΣ ΤΗΣ 9/9/2019

Χρησιμοποιώντας συναρτήσεις

ΣΕΜΙΝΑΡΙΟ JAVA. 2 η ιάλεξη

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Equase Κωδικός διανοµής :

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Σχεσιακή Άλγεβρα. Κεφάλαιο 4. Database Management Systems, R. Ramakrishnan and J. Gehrke

Ελάχιστη Α αιτούµενη Α αρτία: 20% του συνόλου των κοινών, µετά δικαιώµατος ψήφου, µετοχών εκδόσεως της εταιρείας

1 Η ΕΝΟΤΗΤΑ 1. Τι ονομάζεται επ ικοινωνία; Τι κοινό χρειάζεται για να επ ιτευχθεί;

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Ευφυής Προγραμματισμός

Οδηγίες εγκατάστασης και χρήσης Java σε προσωπικό υπολογιστή

Σηµειώσεις Θεωρίας και Μέθοδοι. Κεφάλαιο: Παράγωγοι. και Cgδυο συναρτήσεων f και g εργαζόµαστε ως εξής: x,f(x ) και ( ) ó a

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Προτεραιότητα Κανόνων και Στρατηγικές Επίλυσης Συγκρούσεων

ΣΕΜΙΝΑΡΙΟ JAVA. 2 η ιάλεξη

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

H.Q.A.A. Α. Ι.Π. ιασφάλιση Ποιότητας στην Ανώτατη Εκπαίδευση ΠΑΡΑΡΤΗΜΑ Οδηγός εφαρµογής της διαδικασίας Εσωτερικής Αξιολόγησης

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Εργαστήριο 9 - Άσκηση - Ανάλυση

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

2. Κάντε κλικ στο παράθυρο όψης Top για να το ενεργοποιήσετε, ώστε να σχεδιάσετε το πάτωµα του δωµατίου.

Κατασκευή λογισµικού: ηµήτριος Χάρµπας Πυθαγόρα 24, Χολαργός Τηλ: ηλ-ταχ: Οδηγίες εγκατάστασης

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ

ΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ι λωµατική εργασία µε θέµα:

Ηλεκτρονική Έρευνα Ικανοποίησης Χρηστών Βιβλιοθήκης και Κέντρου Πληροφόρησης Πανεπιστηµίου Ιωαννίνων

ΑΞΙΟΛΟΓΗΣΗ ΤΟΥ ΕΚΠΑΙ ΕΥΤΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ALMA

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΙΟΙΚΗΣΗΣ ΣΤΟΧΑΣΤΙΚΑ ΜΟΝΤΕΛΑ

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

Visual Basic Γλώσσα οπτικού

Οµιλία Προέδρου Κ.Ε..Ε Γ. Πατούλη στο Συνέδριο των ΦΟΣ Α

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

Σύνδεση. Χρήση Ηλεκτρονικών Υ ολογιστών. Username και Password. Ηλεκτρονικοί Υ ολογιστές

EVITA ΙΑΤΗΡΗΣΗ ΕΠΑΦΩΝ / ΗΜΙΟΥΡΓΙΑ ΕΜΠΙΣΤΟΣΥΝΗΣ. Σαντορίνη 28/04/2011 Βασίλειος Πα ανικολάου

Π1 Το Σύστηµα Κανόνων CLIPS

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Α ό 28 µε έκ τωση 35% µόνο 18 µε Φ.Π.Α

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ: Εντολές κίνησης και στροφής στο προγραμματιστικό περιβάλλον Scratch. ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Εισαγωγή στο Προγραμματισμό με τη PASCAL & τη Matlab Εξαμηνιαία Εργασία 2014 Μετατρέποντας AC σε DC Τάση Μέρος Β : Πορεία Εργασίας

Η ΤΗΛΕΟΡΑΣΗ ΣΤΟ ΠΛΑΙΣΙΟ ΤΗΣ ΣΥΓΚΛΙΣΗΣ ΤΩΝ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ, ΤΩΝ ΜΕΣΩΝ ΜΑΖΙΚΗΣ ΕΝΗΜΕΡΩΣΗΣ ΚΑΙ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΩΝ 1

Δια γράφοντας... κλωνάρια

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΑΤΤΙΚΗΣ Αγ. Στέφανος ΗΜΟΣ ΙΟΝΥΣΟΥ Αριθ. Πρωτ.: ΙΕΥΘΥΝΣΗ ΟΙΚ. ΥΠΗΡΕΣΙΩΝ

Λειτουργικά Συστήματα

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Περιορισμοί στις Συνθήκες Κανόνων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

ΣΚΟΠΟΙ ΒΗΜΑ 1 Ο. Θα εμφανιστεί το λογότυπο του προγράμματος.. ..και μετά από λίγο ένα παράθυρο με τίτλο Προβολές CMap Tools. [1]

Εργαστήριο 7 - Άσκηση - Ανάλυση

Εισαγωγή στην Tcl. Τί είναι η Tcl;

ηµιουργία Αρχείου Πρότζεκτ (.qpf)

SPSS Statistical Package for the Social Sciences

16PROC

ΣΕΜΙΝΑΡΙΟ JAVA. 5 η ιάλεξη

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

Hase οδηγίες χρήσης.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΙΟΙΚΗΣΗΣ ΣΤΟΧΑΣΤΙΚΑ ΜΟΝΤΕΛΑ

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

Λειτουργικά Συστήματα

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 23 Νοεµβρίου 2010

ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ. Κέρκυρα, 14/11/2013 Αρ. Πρωτ:834 ΑΠΟΦΑΣΗ

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

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

Λειτουργικά Συστήματα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

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

Όνομα(τα): Όνομα Η/Υ: Τμήμα: Ημερομηνία:

Θέµα 3: Dynamic Time Warping (DTW). Hidden Markov Models (HMM).

Να σταλεί και µε

KΕΦΑΛΑΙΟ ΣΧΕ ΙΑΣΜΟΣ ΙΕΠΑΦΗΣ ΧΡΗΣΤΗ

Ρυθµ θ ίσ ί ε σ ις ς e-mai a l i dsp s ei e ra r i a a.gr g

Hase οδηγίες χρήσης.

ΠΡΟΟΔΕΥΤΙΚΗ ΑΡ. Μ.Α.Ε. 602/06/Β/86/04 ΓΕΜΗ Π Ρ Ο Σ Κ Λ Η Σ Η ΤΩΝ ΜΕΤΟΧΩΝ ΤΗΣ ΑΝΩΝΥΜΟΥ ΕΤΑΙΡΕΙΑΣ ΜΕ ΤΗΝ ΕΠΩΝΥΜΙΑ

FAIL PASS PASS οριακά

Πριν α ό την έναρξη της συνεδρίασης ο Πρόεδρος δια ίστωσε ότι α ό τα εννέα (9) µέλη της Οικονοµικής Ε ιτρο ής ήταν:

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

ΑΝΑΡΤΗΤΕΑ. Προς: Πίνακας α οδεκτών. εξετάσεων και δοκιµασιών ροσόντων και συµ εριφοράς υ οψηφίων οδηγών και

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

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Πέτρα Ψαλίδι - Χαρτί. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

ΘΕΜΑ : ΑΙΤΗΣΗ ΥΠΟΒΟΛΗΣ ΣΦΡΑΓΙΣΜΕΝΗΣ ΠΡΟΣΦΟΡΑΣ για τη διαχείριση Α οβλήτων Λι αντικών Ελαίων της ΣΤΑ.ΣΥ. Α.Ε.

Οδηγίες για την εγκατάσταση του πακέτου Cygwin

ΑΝΑΚΟΙΝΩΣΗ υ ' αριθµ. ΣΜΕ 1/2012 για τη σύναψη ΣΥΜΒΑΣΗΣ ΜΙΣΘΩΣΗΣ ΕΡΓΟΥ. Ο ήµος Θεσσαλονίκης

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρόγραμμα Διαχείρισης καταστάσεων ανάγκης σε συγκρότημα κτηρίων

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

ΚΕΦΑΛΑΙΟ 20 ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

Transcript:

ΑΣΚΗΣΗ 1 Το εργαλείο CLIPS είναι ένα εριβάλλον κατάλληλο για ρογραµµατισµό µε κανόνες, συναρτήσεις και αντικείµενα. Στόχος της ρώτης εργαστηριακής άσκησης είναι η εξοικείωση µε το εριβάλλον αυτό µέσω της χρήσης κά οιων α λών ρογραµµάτων. Το CLIPS εκκινεί σε εριβάλλον ΜS Windows µε την εκτέλεση του αρχείου CLIPSWin.exe, το ο οίο µ ορείτε να βρείτε και να κατεβάσετε στην αρακάτω διεύθυνση (ε ιλέγετε clipswin_executable_6241.zip): http://clipsrules.sourceforge.net/ Μετά την εκτέλεση του CLIPSWin.exe εµφανίζεται το γραφικό εριβάλλον της γλώσσας: Στην αρχή είναι ανοιχτό µόνο το Παράθυρο ιαλόγου (Dialog Window) αλλά µ ορούµε να ανοίξουµε και τα Status Windows µέσα α ό το µενού Window. Αλληλε ίδραση µε το CLIPS Ό ως αναφέρεται και στις σηµειώσεις του µαθήµατος, η σύνταξη της γλώσσας του CLIPS θυµίζει σε αρκετά σηµεία την σύνταξη της LISP, την ο οία έχετε διδαχθεί. Η κατάλληλη χρήση αρενθέσεων είναι κι εδώ α αραίτητη όταν δίνονται εντολές. Αφού ανοίξει το Παράθυρο ιαλόγου και εµφανιστεί το prompt: CLIPS> µ ορούµε να ξεκινήσουµε να δίνουµε άµεσα εντολές στο CLIPS (top level commands). 1

Πληκτρολογήστε τις αρακάτω εντολές στο εριβάλλον CLIPS και σηµειώστε τα α οτελέσµατα ου εκτυ ώνονται: 1. (+ 3 4) 2. (printout t I am bored! ) 3. (defglobal?*x* = 3) 4.?*x* 5. (>= 7 7 5 3 1) 6. +12 7. (deftemplate person (slot name) (slot age)) 8. -32.3e-7 9. (one two three) 10. (create$ one two three) 11. (or (> 2 3) (< 5 4)) 12. Hello 13. (printout t I am crlf still bored! crlf) 14. (+ 3 (* 8 9) 4) 15. (and (bind?x 10) (printout t The next of?x is (+?x 1) crlf) 16. (-?*x* 2) 17.?*x* 18. (eq foo Foo) 19. (symbolp @+=-%) 20. (* 5 6.0 2) 21. "a and b" 22. (floatp 3) 23. (* 8 + 3 (* 2 3 4) 9) * 3 4)) 24. (assert (person Panagiotis 24 musician)) 2

25. (stringp abcd) 26. (symbolp abcd ) 27. (bind?y 30) 28. (facts) Ό ως αρατηρούµε, µια εντολή στο CLIPS µ ορεί να είναι είτε κλήση κά οιας συνάρτησης, είτε ορισµός κά οιας δοµής, είτε κά οια καθολική µεταβλητή είτε, τέλος, κά οια σταθερά. Όταν καλείται µια συνάρτηση εκτιµάται η ε ιστρεφόµενη τιµή της (return value) και εκτυ ώνεται. Ο ορισµός δοµής έχει σαν α οτέλεσµα την δηµιουργία µιας δοµής κά οιου συγκεκριµένου τύ ου. Όταν εισάγεται µετά το prompt µια καθολική µεταβλητή εκτυ ώνεται η τιµή της ενώ όταν εισάγεται σαν toplevel εντολή µια σταθερά εκτυ ώνεται η ίδια η σταθερά (κάτι ου δεν έχει ιδιαίτερη χρησιµότητα). Με βάση αυτά: 1. Ποιες α ό τις ροηγούµενες εντολές α οτελούν κλήσεις συναρτήσεων; Για καθεµία σηµειώστε τον αριθµό της. 2. Ποιες α ό τις ροηγούµενες εντολές α οτελούν ορισµούς δοµής; Για καθεµία σηµειώστε τον αριθµό της. 3. Ποιες α ό τις ροηγούµενες εντολές α οτελούν καθολικές µεταβλητές; Για καθεµία σηµειώστε τον αριθµό της. 4. Ποιες α ό τις ροηγούµενες εντολές α οτελούν σταθερές; Για καθεµία σηµειώστε τον αριθµό της. 5. Για κάθε α άντηση στο 1, βρείτε τον τύ ο της αντίστοιχης συνάρτησης. Οι ιθανές κατηγορίες συναρτήσεων του συστήµατος είναι οι εξής: αριθµητική, σύγκρισης, λογική, ελέγχου τύ ου, χειρισµού ολλα λών τιµών, εισόδου, εξόδου, ανάθεσης, ελέγχου ροής και ελέγχου εριβάλλοντος. Τι αρατηρείτε σχετικά µε την σύνταξη των συναρτήσεων. 6. Για κάθε α άντηση στο 4, βρείτε τον τύ ο δεδοµένων της αντίστοιχης σταθεράς. 7. Σχολιάστε το α οτέλεσµα της εντολής 9. 8. Υ άρχουν λανθασµένες εντολές (εκτός α ό την 9) στο σύνολο εντολών της ροηγούµενης άσκησης; Αν ναι, οιες είναι και γιατί είναι λανθασµένες; Προσθέστε ότι λεί ει σε καθεµία για να διορθωθεί. Στη συνέχεια, σηµειώστε το α οτέλεσµα της διορθωµένης εντολής. 9. Πού χρησιµο οιείται το crlf και οιος είναι ο ρόλος του; Τι σηµαίνει το t ; 3

10. Σχολιάστε το α οτέλεσµα της ακολουθίας εντολών 16,17. Ποια εντολή θα έ ρε ε να δώσουµε για να αλλάξουµε την τιµή του?*x*; 11. Ανοίξτε το Status Window Facts α ό το µενού Window µε την ε ιλογή Facts (για να ανοίξουν ταυτόχρονα όλα τα status windows ε ιλέγουµε Show Status Windows αλλά για την ώρα δεν µας α ασχολούν τα υ όλοι α αράθυρα). Σχολιάστε το εριεχόµενό του. Ποια εντολή ευθύνεται για αυτό; Τι ρόλο αίζει το αράθυρο Facts; Εκτελέστε τώρα την εντολή: (retract 0). Σχολιάστε το όρισµα ου δέχεται και το α οτέλεσµά της. Με την χρήση της εντολής εριβάλλοντος (clear-window) ή µε την ε ιλογή Clear Dialog Window α ό το µενού Window, καθαρίστε το Παράθυρο ιαλόγου α ό τις top-level εντολές ου εκτελέσατε ως τώρα. Με χρήση της συνάρτησης ανάθεσης bind δώστε σε µια µεταβλητή?x την τιµή 20. Στην συνέχεια, δοκιµάστε να εκτυ ώσετε την τιµή της?x ως εξής: (printout t The value of the variable?x is?x crlf) Τι συµβαίνει; Εξηγείστε το µήνυµα ου εµφανίζεται. Για να καταλάβετε καλύτερα γράψτε την αρακάτω εντολή και αρατηρήστε το α οτέλεσµα: (and (bind?x 20) (printout t The value of the variable?x is?x crlf)) Ποια είναι η διαφορά τώρα (στην ο οία οφείλεται η ε ιτυχηµένη εκτύ ωση); (Παρατηρήστε ότι εδώ η συνάρτηση and ροκαλεί την εκτέλεση των δύο εντολών-ορισµάτων της ροκειµένου να ικανο οιήσει την λογική λειτουργία της) Εισάγετε στο CLIPS τα αρακάτω σύµβολα και σχολιάστε τα α οτελέσµατα: 1. JsQs<sld 2. 3JsQs>sld 3. me&you 4. <x1000 5. 23+25 6. k$s 7. etc 8. nice(job Ποια α ό τα αρα άνω θεωρούνται σύµβολα και οια όχι; Σηµειώστε τους χαρακτήρες ου ευθύνονται για τα λανθασµένα σύµβολα. Ποιο είναι το α οτέλεσµα αυτών των χαρακτήρων; Υ άρχει κά οια εξαίρεση; Τι εριµένετε να εκτυ ώσει το CLIPS όταν εισάγετε τα αρακάτω και γιατί; CLIPS> one two three 4

Ποιο εριµένετε να είναι το α οτέλεσµα των αρακάτω συναρτήσεων χειρισµού ολλα λών τιµών και ελέγχου τύ ου: 1. (create$ friends bill elina) 2. (create$ a (create$ 2 3) b (create$ 4 5) c) 3. (member$ 2 (1 2 3)) 4. (member$ abc (create$ abc 2 4 5)) 5. (member$ a (create$ a b ac a )) 6. (symbolp (first$ (create$ o p q r))) 7. (first$ (rest$ (create$ o p q r))) 8. (eq (nth$ 1 (create$ a b c)) (first$ (create$ a b c))) 9. (symbolp (nth$ 1 (create$ a b c))) Εκτελέστε τις αρα άνω εντολές στο CLIPS και δείτε αν ε αληθεύονται οι α αντήσεις ου δώσατε. Αν κά οια είναι λάθος διορθώστε την. Με βάση τα α οτελέσµατά τους εριγράψτε την λειτουργία καθεµιάς α ό τις συναρτήσεις ου εµφανίζονται εδώ. Μετατρέψτε την λίστα (Ι don t have a name) σε string χρησιµο οιώντας κατάλληλη εντολή του CLIPS. Στη συνέχεια κάνετε το αντίστροφο, δηλαδή µετατρέψτε το string I don t have a name σε λίστα. Γράψτε µια εντολή ου θα έχει σαν α οτέλεσµα την εκτύ ωση του αρακάτω: I m fine! the man said. Don t worry Τώρα θα δούµε οια είναι η λειτουργία των αραθύρων Facts και Agenda ου αντιστοιχούν στην µνήµη εργασίας και στην στοίβα κανόνων, αντίστοιχα (βλ. σηµειώσεις µαθήµατος σελ.92-93). Με την ε ιλογή File- >New δηµιουργείστε ένα νέο αρχείο και αντιγράψτε τους δύο αρακάτω ορισµούς σε αυτό: (deffacts interestes (interested popi in tango) (interested john in music) (interested andronikos in music) (interested andronikos in tango)) (defrule print-matches?fid1 <- (interested?sb in?something)?fid2 <- (interested?sb2 in?something) => (if (neq?sb?sb2) then (assert (matches?sb?sb2)) (retract?fid1) (retract?fid2))) Σώστε το αρχείο µε ό οιο όνοµα θέλετε αλλά χωρίς να ξεχάσετε να βάλετε την σωστή ε έκταση:.clp. 5

Στο αρχείο ου µόλις δηµιουργήσαµε ορίζεται µια λίστα α ό γεγονότα ου εριγράφουν την αρχική κατάσταση του ροβλήµατός µας. Κάθε γεγονός δηλώνει ως κά οιο άτοµο ενδιαφέρεται για κάτι. Στη συνέχεια ορίζεται ένας κανόνας ο ο οίος µε βάση τα ενδιαφέροντα κά οιων ατόµων βρίσκει οια α ό αυτά ταιριάζουν µεταξύ τους και εισάγει στην µνήµη την νέα ληροφορία µε την µορφή γεγονότων της µορφής (matches <άτοµο1> <ατοµο2>) διαγράφοντας αράλληλα την ληροφορία (γεγονότα) ου χρησιµο οίησε και ου δεν µας χρειάζεται ια. Με τα γεγονότα και τους κανόνες θα ασχοληθούµε εκτενέστερα στις ε όµενες εργαστηριακές ασκήσεις, ο ότε αυτή τη στιγµή δεν µας α ασχολεί και τόσο η σύνταξη των αρα άνω ορισµών. Αυτό ου µας ενδιαφέρει εδώ είναι η γενική διαδικασία ου ακολουθούµε για να δηµιουργήσουµε και να εκτελέσουµε ένα αρχείο µε κώδικα CLIPS, καθώς και ο ρόλος των δύο βασικότερων status windows. Αφού, λοι όν, δηµιουργήσαµε και σώσαµε το αρχείο µας ρέ ει ό,τι ορίσαµε µέσα σε αυτό να φορτωθεί µε κά οιον τρό ο στα κατάλληλα µέρη του CLIPS. Θυµίζουµε την βασική δοµή του CLIPS: Λίστα Γεγονότων (Facts) Βάση Κανόνων Στοίβα Ενεργο οιηµένων Κανόνων (Agenda) Μηχανισµός Εξαγωγής Συµ ερασµάτων. Ανοίγουµε α ό το µενού Window τα status windows Facts και Agenda. Χρησιµο οιούµε την ε ιλογή File->Load για να φορτώσουµε το αρχείο µας. 1. Τι αλλαγές αρατηρείτε στα windows Facts και Agenda µετά την φόρτωση του αρχείου; Τι θα έ ρε ε να συµβαίνει; 2. Εισάγετε την εντολή (reset) µετά το prompt στο Dialog Window ή ε ιλέξτε Execution->Reset. Τι αρατηρείτε; Τι κάνει η εντολή reset; Πληκτρολογήστε την εντολή (facts) και δείτε τι κάνει. 3. Μετά το (reset) και την καταχώρηση των γεγονότων ου ορίσαµε στην µνήµη εργασίας, αρατηρούµε µια αλλαγή και στo αράθυρο Agenda. Πού οφείλεται αυτή η αλλαγή; Προσ αθήστε να εξηγήσετε τα εριεχόµενα της ατζέντας. Παίζει κά οιο ρόλο η σειρά τους και αν ναι οιόν; 4. Ένας κανόνας ενεργο οιείται όταν ικανο οιούνται όλες οι συνθήκες του. Η ενεργο οίηση ενός κανόνα αρκεί για να οδηγήσει στην εκτέλεσή του; Αν όχι, οια είναι η εντολή ου χρειάζεται ώστε να ε ιτρα εί στους ενεργο οιηµένους κανόνες να εκτελεστούν; 5. Προσ αθήστε να φανταστείτε (µε βάση την λειτουργία του κανόνα ου ορίσαµε) οιο θα είναι το α οτέλεσµα της εντολής (run). Στη συνέχεια γράψτε την µετά το prompt ή ε ιλέξτε Execution->Run και αρατηρήστε τι συµβαίνει. 6

6. ώστε ξανά την εντολή (reset). Τι γίνεται; Στην συνέχεια δώστε την εντολή (clear). Ποια είναι η διαφορά της εντολής (clear) α ό την (reset); Παρατηρήστε ως αν µετά την εντολή (clear) ξαναδώσετε την εντολή (reset) δεν θα ξαναφορτωθούν στην µνήµη τα ροηγούµενα γεγονότα. Για να ξαναγίνει αυτό τώρα ρέ ει να ξαναφορτώσουµε το αρχείο ου τα εριέχει. Καθαρίστε ξανά το Παράθυρο ιαλόγου και µε την εντολή εριβάλλοντος (clear) σβήστε κανόνες και γεγονότα α ό την µνήµη. Ε ιλέξτε Turn Dribble On α ό το µενού File. ηµιουργείται ένα αρχείο dribble.txt ου το οθετείται σε ό οιον φάκελο θέλετε. Στην συνέχεια εκτελέστε τις αρακάτω εντολές και αρατηρήστε τι κάνουν: 1. (subsetp (create$ eleni tasos) (create$ bill eleni tasos kate)) 2. (delete$ (create$ hammer drill saw pliers wrench) 3 5)) 3. (replace$ (create$ drill wrench pliers) 3 3 machete) 4. (length$ (create$ a b c d e f g)) Στη συνέχεια, ε ιλέξτε Turn Dribble Off α ό το µενού File. Ανοίξτε το αρχείο dribble.txt και αρατηρήστε την λειτουργία της συγκεκριµένης ε ιλογής του µενού File. Κλείστε το CLIPS είτε µε την εντολή (exit) στο Dialog Window είτε µε File->Exit. 7