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



Σχετικά έγγραφα
Ευφυής Προγραμματισμός

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

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

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

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

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

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

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

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

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

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

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

Το πρόβλημα: Πρόβλεψη επιτυχίας σε εξετάσεις

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

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

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

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

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

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

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

Πανεπιστήµιο Πατρών Τµήµα Μηχ/κών Η/Υ & Πληροφορικής ΜΠΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΥΦΥΗ ΣΥΣΤΗΜΑΤΑ ΑΠΟΦΑΣΕΩΝ. Ι.

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Ανάπτυξη και Σχεδίαση Λογισμικού

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

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

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

Υπολογισμός - Εντολές Επανάληψης

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

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

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

Computing. Νοέμβριος Έκδοση 1.0

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

ΕΠΛ 012. JavaScripts

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κανόνες & Μετά κανόνες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

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

Rule Based systems Συστήματα Βασισμένα σε κανόνες

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Προγραμματισμός PASCAL

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Λογισµικό (Software SW) Γλώσσες

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

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

Συναρτήσεις και Πίνακες

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

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

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

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

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

Υπολογισμός - Εντολές Ελέγχου

char name[5]; /* define a string of characters */

ιαχείριση Πληροφοριών στο ιαδίκτυο

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Η Αντικειμενοστραφής Γλώσσα Προγραμματισμού COOL του CLIPS

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

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

Εισαγωγή στους. Υπολογιστές

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

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

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

Θέματα Προγραμματισμού Η/Υ

ΗΥ-150. Προγραμματισμός

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

ΗΥ-150. Προγραμματισμός

Pascal, απλοί τύποι, τελεστές και εκφράσεις

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Βασικά Στοιχεία της Java

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

Περιεχόμενα. Πρόλογος... 17

ικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) ιάλεξη #8η: Javascript: Τεχνικές εντοπισμού/διόρθωσης λαθών, τελεστές, δομές ελέγχου, βρόχοι επανάληψης

Visual Basic Βασικές Έννοιες

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

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

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα

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

Transcript:

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

Το περιβάλλον του CLIPS Πανεπιστήµιο Πατρών 2

Τι είναι το CLIPS To CLIPS µπορεί να θεωρηθεί σαν ένα γενικό εργαλείο ανάπτυξης συστηµάτων λογισµικού. To CLIPS εµπεριέχει ένα κέλυφος έµπειρου συστήµατος, διότι διαθέτει τα βασικά µέρη ενός έµπειρου συστήµατος Λίστα γεγονότων (fact-list) Βάση κανόνων (rule-base) Μηχανισµός εξαγωγής συµπερασµάτων (inference engine) Πανεπιστήµιο Πατρών 3

οµή Κελύφους ΕΣ του CLIPS Χρήστης (User) ιεπαφή Χρήστη (User Interface) Λίστα Γεγονότων (Fact List) Μηχανισµός Εξαγωγής Συµπερασµάτων (Inference Engine) Ατζέντα (Agenda) Βάση Κανόνων (Rule Base) Πανεπιστήµιο Πατρών 4

Κύκλος Λειτουργίας Εξαγωγής Συµπερασµάτων Ο κύκλος λειτουργίας είναι ο τυπικός κύκλος λειτουργίας ενός συστήµατος παραγωγής: 1. Εύρεση όλων των κανόνων των οποίων οι συνθήκες ικανοποιούνται και προσθήκη τους στην ατζέντα (agenda - conflict set). 2. Av η ατζέντα είναι κενή ή ο µέγιστος αριθµός πυροδοτήσεων έχει συµπληρωθεί τότε η εκτέλεση τερµατίζεται. 3. ιάταξη των κανόνων στην ατζέντα µε βάση τη στρατηγική επίλυσης συγκρούσεων (conflict resolution). 4. Πυροδότηση του πρώτου κανόνα στην ατζέντα. 5. Επιστροφή στο βήµα 1, εκτός αν υπάρχει εντολή τερµατισµού (halt). (Το CLIPS ακολουθεί την ορθή αλυσίδωση σαν µέθοδο εξαγωγής συµπερασµάτων.) Πανεπιστήµιο Πατρών 5

Βασικά Στοιχεία (1) 1. Τύποι δεδοµένων Σύµβολα (symbols): Οποιαδήποτε ακολουθία εκτυπώσιµων χαρακτήρων που δεν ξεκινά από <, I, &, (, ), $,?, +, - και δεν περιέχει κανένα από τους <, I, &, (, ), ; Αλφαριθµητικά (strings): Οποιαδήποτε ακολουθία εκτυπώσιµων χαρακτήρων ανάµεσα σε διπλά εισαγωγικά. Π.χ. "This is a program", 2A Αριθµοί (numbers): 23, -23, +23 (integers) 23.34, +23.0, 23e4, -23.2e-5 (floats) Σχόλια: από ";" µέχρι το τέλος της γραµµής Πανεπιστήµιο Πατρών 6

Βασικά Στοιχεία (2) 2. Μεταβλητές Μονότιµες (singlevalue) : ξεκινούν µε? (Π.χ.?x,?day). Τιµές: 32, flight34, mary, a12 Πολλαπλών τιµών (multivalue) : ξεκινούν µε $?. Π.χ. $?days. Τιµές : (28 29 30 31), (mon tues wedn) Καθολικές µεταβλητές (global variables) Προσπελάσιµες από παντού: (defglobal?*<σύµβολο>* = <έκφραση>) Π.χ. (defglobal?*x* = 0) Τοπικές µεταβλητές (local variables) Προσπελάσιµες µόνο µέσα από τη δοµή (π.χ. κανόνας, συνάρτηση) που χρησιµοποιούνται. Πανεπιστήµιο Πατρών 7

Βασικά Στοιχεία (3) 3. Γεγονότα (facts) ιατεταγµένα: Λίστες από τιµές, που παριστάνουν σχετικάαπλάγεγονότα, όπου η σειρά των τιµών παίζει ρόλο: (flight 734 DELTA), (person George), (class A1 1995) Μη διατεταγµένα ή προτύπου: Ονοµατοποιηµένες λίστες που περιέχουν λίστες δύο στοιχείων, οι οποίες σχετίζονται µε αντίστοιχο πρότυπο γεγονότων (fact template), και παριστάνουν πιο σύνθετα γεγονότα: (student (age 19) (year a) (sex male)) 4. Πρότυπα Γεγονότων (Fact Templates) οµές για αναπαράσταση σύνθετων γεγονότων. Πανεπιστήµιο Πατρών 8

Βασικά Στοιχεία (4) 5. Κανόνες (rules) οµές της µορφής: if (συνθήκες) then (ενέργειες) που αναπαριστούν ευρετική γνώση (heuristic knowledge) στη βάση γνώσης. 6. Συναρτήσεις (functions) Τµήµατα προγράµµατος για την αναπαράσταση διαδικαστικής γνώσης (procedural knowledge). Συνήθως επιστρέφουν κάποια τιµή, ως πλευρικό αποτέλεσµα. Πανεπιστήµιο Πατρών 9

Γεγονότα (1) Εισαγωγή γεγονότων assert: Εισαγωγή ενός γεγονότος Παράδειγµα: (assert (water-tank empty)) (assert <fact>) deffacts: Εισαγωγή πολλών γεγονότων Παράδειγµα: (deffacts pref-cars (car AlfaRomeo156 1600 16 nai idrayliki 22910) (car AudiA4 1600 8 nai idrayliki 25700) (car FordMondeo 1800 16 nai idrayliki 19289) (car NissanPrimera 1600 16 oxi idrayliki 17990) (car VWPassat 1600 8 oxi idrayliki 18910)) (deffacts <όνομα> <σχόλιο> <fact1> <fact2> <factn>) Πανεπιστήµιο Πατρών 10

Γεγονότα (2) ιαγραφή γεγονότων retract: ιαγραφή ενός ή όλων των γεγονότων Παράδειγµα: (retract 2) (retract <fact-index>) (retract *) Συνήθως όµως, σ ένα κανόνα δεν ξέρουµε τον αριθµό του γεγονότος. Τότε χρησιµοποιούµε τον ειδικό τελεστή <-. Παράδειγµα:?x <- (car AudiA4 1600 8 nai idravliki 25700) (retract?x) Πανεπιστήµιο Πατρών 11

Πρότυπα γεγονότων (1) Ορισµός (deftemplate <όνοµα προτύπου> (slot/multislot <slot-name1> <constraint-form>*) (slot/multislot <slot-name2> <constraint-form>*) (slot/multislot <slot-namen> <constraint-form>*)) Πανεπιστήµιο Πατρών 12

Πρότυπα γεγονότων (2) Constraint forms Τύπου (type <type>), όπου <type> {SYMBOL, STRING, LEXEME, INTEGER, FLOAT, NUMBER,?VARIABLE} Απαρίθµησης τιµών (allowed-<type> <value1> <valuen>), όπου <type> {symbols, strings, lexems, integers, floats, numbers, values} και τα <valuei> είναι αντίστοιχου τύπου. Περιοχής τιµών (range <init-val> <final-val>), όπου <init-val>, <final-val> µπορεί να είναι?variable (για ανοικτό κάτω, πάνω όριο) Εξ ορισµού/προκαθορισµένης τιµής (default <value>), όπου <value> συγκεκριµένη τιµή ή?derive ή?none (απαιτεί την εισαγωγή τιµής) Πλήθους τιµών (cardinality <min> <max>), ελάχιστος και µέγιστος αριθµός τιµών µιας multislot. Πανεπιστήµιο Πατρών 13

Πρότυπα γεγονότων (3) Παράδειγμα (deftemplate student (slot name (type STRING) (default?none)) (slot sex (type SYMBOL) (allowed-symbols male female)) (slot age (type INTEGER) (range 18 40)) (multislot courses (type SYMBOL) (cardinality 1 4))) Πανεπιστήµιο Πατρών 14

Πρότυπα γεγονότων (4) Εισαγωγή γεγονότων Παραδείγματα (assert (student (name petros mixos ) (sex male) (age 19))) (assert (student (name giannis panou ) (sex male) (courses ai db))) (assert (student (sex female) (age 20))) ERROR!!! (λόγω name) Επίσης και με deffacts κατά παρόμοιο τρόπο εισάγουμε πολλά γεγονότα μαζί. Πανεπιστήµιο Πατρών 15

Κανόνες (1) Σύνταξη (defrule <rule-name> <comments> (condition-1) (condition-2) LHS (condition-n) => (command-1) RHS (command-m) Παράδειγµα (defrule pick-up-cube pick up a free cube (free hand) (on table?x)?n1 <- (free hand)?n2 <- (on table?x) => (assert (hand contains?x)) (retract?n1) (retract?n2) Πανεπιστήµιο Πατρών 16

Τύποι Συνθηκών 1. Προτύπου (pattern) Κανόνες (2) Το πρώτο στοιχείο είναι πάντα ένα σύµβολο που καθορίζει αν η συνθήκη προτύπου εφαρµόζεται σε διατεταγµένα γεγονότα ή γεγονότα προτύπου. Στα υπόλοιπα µπορούν να χρησιµοποιηθούν σταθερές τιµές τα?, $? σαν wildcards µεταβλητές (µονότιµες ή πολλαπλών τιµών) περιορισµοί λογικής σύνδεσης ( &,, ~ ) περιορισµοί κατηγορήµατος ( :<κλήση-συνάρτησης> ) περιορισµοί επιστρεφόµενης τιµής ( = <κλήση-συνάρτησης> ) Πανεπιστήµιο Πατρών 17

2. ιεύθυνσης προτύπου Κανόνες (3) Ανατίθεται η τιµή της διεύθυνσης ενός γεγονότος σε µια µεταβλητή: <µεταβλητή> <- <συνθήκη προτύπου> 3. Εκτιµήσιµες Για περιπτώσεις που έχουµε ως υποθέσεις συγκρίσεις αριθµητικών τιµών: (test <κλήση-συνάρτησης>) 4. Λογικά Συνδεόµενες Χρήση των λογικών συνδετικών (and, or, not) για δηµιουργία σύνθετων συνθηκών. Πανεπιστήµιο Πατρών 18

Κανόνες (4) (deffacts data-facts (data 1.0 blue red ) (data 1 green) (data 1 blue red) (data 1 gray RED) (data 1 blue red 6.9 05 )) (deftemplate person (slot name) (slot age) (multislot friends)) (deffacts people (person (name paul) (age 20)) (person (name john) (age 20)) (person (name paul) (age 30)) (person (name niki) (age 35) (friends maria helen))) (data 1 green) (person (name paul)) (person (name paul) (age 20)) (data? blue red $?) (person (name?) (age 20)) (person) (data?x blue red $?y) (data 1 ~blue&~green $?) (data 1?x~blue&~green $?y) (data 1 gray green $?y) (person (name?y&~paul) (age 20)) (data?x&:(floatp?x) blue $?y) (data 1 blue $?x&:(> (length$?x) 2)) (person (name paul) (age?z&:(>?z 20))) Πανεπιστήµιο Πατρών 19

Κανόνες (4) (deffacts data-facts (data 1.0 blue red ) (data 1 green) (data 1 blue red) (data 1 gray RED) (data 1 blue red 6.9 05 )) (deftemplate person (slot name) (slot age) (multislot friends)) (deffacts people (person (name paul) (age 20)) (person (name john) (age 20)) (person (name paul) (age 30)) (person (name niki) (age 35))) (defrule example-1 (person (name paul) (age?y)) (test (>?y 20)) => (printout t this paul is?y crlf)) (defrule example-2 (person (name paul) (age?x)) (person (name?y) (age?z&:(>?z?x))) => (printout t?y is older than pauls crlf)) (defrule example-3 (or (and (temp high) (valve closed)) (and (temp low) (valve open))) => (printout t there is a problem crlf)) Πανεπιστήµιο Πατρών 20

Οι Συναρτήσεις του CLIPS (1) Ηκλήσηµιας συνάρτησης γίνεται µε τηνδήλωση: (<όνοµα-συνάρτ.> όρισµα1 όρισµα2.. όρισµαν) Για παράδειγµα ανµέσα σε ένα πρόγραµµα CLlPS υπάρχει η εντολή (assert (The number is (+ 2 3))) τότε το γεγονός το οποίο θα αποθηκευτεί στη µνήµη θα είναι το (The number is 5). Πανεπιστήµιο Πατρών 21

Οι Συναρτήσεις του CLIPS (2) Αριθµητικές +, -, *, / Σύγκρισης <, >, =, >=, <=, <> Λογικές and, or, not, eq, neq Ελέγχου τύπου numberp, symbolp, floatp, integerp, stringp Πανεπιστήµιο Πατρών 22

Οι Συναρτήσεις του CLIPS (3) Εξόδου (printout <συσκευή> <έκφραση>) Π.χ. (printout t The day is?type crlf) The day is sunny Εισόδου (read) Ανάθεσης (bind <µεταβλητή> <τιµή>) Π.χ. (bind?name (read)) Πανεπιστήµιο Πατρών 23

Οι Συναρτήσεις του CLIPS (4) Ελέγχου Ροής (while (συνθήκη) do (εντολή 1) (εντολή ν)) (if (συνθήκη) then (εντολή 1) (εντολή ν) else (εντολή 1) (εντολή µ)) Πανεπιστήµιο Πατρών 24

Οι Συναρτήσεις του CLIPS (5) Ορισµός Συνάρτησης (deffunction <όνοµα-συν> (<µεταβλητές>) (εντολή 1) (εντολή ν)) Πανεπιστήµιο Πατρών 25