Ανάπτυξη Συστήματος Εκτέλεσης Διαδικτυακών

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Ανάπτυξη Συστήματος Εκτέλεσης Διαδικτυακών"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ανάπτυξη Συστήματος Εκτέλεσης Διαδικτυακών Κανόνων RuleML στο Σύστημα Παραγωγής CLIPS Διπλωματική Εργασία της Μόκας Ευαγγελίας (ΑΕΜ: 152) Επιβλέπων Καθηγητής: ΒΑΣΙΛΕΙΑΔΗΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ ΑΠΡΙΛΙΟΣ 2008

2

3 Πρόλογος Ο ρόλος των κανόνων είναι πολύ σημαντικός για την ανάπτυξη του Σημασιολογικού Ιστού. Όμως, εφόσον διαφορετικές εφαρμογές απαιτούν διαφορετικά είδη κανόνων, για την ορθή τους χρήση και την επίτευξη της διαλειτουργικότητας των εφαρμογών χρειάζεται μία οικογένεια γλωσσών κανόνων, όπως η RuleML, που συλλαμβάνει τα πιο κύρια είδη κανόνων. Ανάμεσα σε αυτά τα είδη είναι και οι κανόνες παραγωγής, όπου αν ικανοποιείται ένα σύνολο από συνθήκες, τότε εκτελούνται κάποιες ενέργειες. Για την εκτέλεση κανόνων παραγωγής, αξιοποιείται τo σύστημα CLIPS. Στη συγκεκριμένη διπλωματική εργασία περιγράφεται η υλοποίηση ενός συστήματος που δέχεται κανόνες παραγωγής RuleML, τους μεταφράζει σε κανόνες παραγωγής που μπορούν να εκτελεστούν από το σύστημα CLIPS και επιστρέφει τα αποτελέσματα μετά την εκτέλεσή τους. Το σύστημα αυτό συνδυάζει την εκφραστικότητα και τις δυνατότητες διαλειτουργικότητας της RuleML, με την προγραμματιστική ισχύ του συστήματος CLIPS. Η ανάπτυξη της παρούσας εργασίας έγινε σε συνεργασία με την ερευνητική ομάδα Intelligent Systems and Knowledge Processing (ISKP) του εργαστηρίου Γλωσσών Προγραμματισμού και Τεχνολογίας Λογισμικού του τμήματος Πληροφορικής, της σχολής Θετικών Επιστημών του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. Η παρούσα ερευνητική προσπάθεια ολοκληρώθηκε χάρη στην αμέριστη συμπαράσταση και κατανόηση κάποιων ανθρώπων, που έπαιξαν σημαντικό ρόλο στην πραγματοποίησή της και αισθάνομαι την υποχρέωση να τους ευχαριστήσω. Αρχικά, θα ήθελα να ευχαριστήσω τον Επίκουρο Καθηγητή του Τμήματος Πληροφορικής Νικόλαο Βασιλειάδη, για την εμπιστοσύνη και την ανάθεση της παρούσας διπλωματικής εργασίας, την καθοδήγηση και τη βιβλιογραφία που μου διέθεσε. Επίσης, θα ήθελα να ευχαριστήσω το Στράτο Κοντόπουλο για το ενδιαφέρον, την ηθική υποστήριξη και τη διαρκή βοήθεια του. Τέλος, ευχαριστώ θερμά τους γονείς μου, Δημήτρη και Μαρία, για την υλική και ψυχική στήριξη που μου παρείχαν καθ όλη την διάρκεια της ακαδημαϊκής μου πορείας. Μόκα Ευαγγελία Μάρτιος i

4

5 Περιεχόμενα ΠΡΟΛΟΓΟΣ... I ΠΕΡΙΕΧΟΜΕΝΑ...III 1 ΕΙΣΑΓΩΓΗ ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ ΤΙ ΕΙΝΑΙ ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ Ο ΠΥΡΓΟΣ ΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΥ ΙΣΤΟΥ ΚΑΝΟΝΕΣ Ο ΡΟΛΟΣ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΗ ΜΟΝΟΤΟΝΙΚΩΝ ΚΑΝΟΝΩΝ Ο ΡΟΛΟΣ ΤΩΝ ΚΑΝΟΝΩΝ ΚΑΝΟΝΕΣ ΚΑΙ RULEML RULEML & REACTION RULEML ΓΛΩΣΣΑ ΣΗΜΑΝΣΗΣ RULEML Οικογένεια Από Υπογλώσσες Της RuleML Ταξινόμηση Κανόνων Σύνταξη Της RuleML REACTION RULEML Οι Αρχές Σχεδίασης Της Reaction RuleML Οι Βασικές Δομές Της Reaction RuleML ΚΑΝΟΝΕΣ ΠΑΡΑΓΩΓΗΣ ΣΤΗ REACTION RULEML Παράδειγμα ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΑΣΙΣΜΕΝΟΣ ΣΕ ΚΑΝΟΝΕΣ (CLIPS) ΣΥΝΤΑΞΗ ΚΑΙ ΣΗΜΑΣΙΟΛΟΓΙΑ ΤΑΙΡΙΑΣΜΑ ΠΡΟΤΥΠΩΝ ΔΙΑΔΙΚΑΣΙΑ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ ΔΗΜΙΟΥΡΓΙΑ ΣΥΝΟΛΟΥ ΣΥΓΚΡΟΥΣΗΣ CLIPS ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΚΑΝΟΝΕΣ iii-

6 5.6 ΙΣΤΟΡΙΑ ΤΟΥ CLIPS ΔΟΜΗ ΤΟΥ CLIPS ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΟΥ CLIPS Ο ΚΥΚΛΟΣ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ ΤΑ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΤΟΥ CLIPS Τύποι Δεδομένων Μεταβλητές Γεγονότα Κανόνες Συναρτήσεις ΟΡΙΣΜΟΣ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΣΤΟΙΧΕΙΩΝ ΤΟΥ CLIPS Διατεταγμένα Γεγονότα Πρότυπα Γεγονότων-Μη Διατεταγμένα Γεγονότα Κανόνες Συναρτήσεις ΕΠΙΛΥΣΗ ΣΥΓΚΡΟΥΣΕΩΝ Προτεραιότητα Κανόνων Στρατηγικές Επίλυσης Συγκρούσεων ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΜΕΤΑΤΡΟΠΗΣ ΚΑΝΟΝΩΝ RULEML ΣΕ ΚΑΝΟΝΕΣ CLIPS ΔΗΜΙΟΥΡΓΙΑ ΕΓΓΡΑΦΟΥ XSLT Βασικά στοιχεία του XSLT Ένας απλός κανόνας Ο δεύτερος κανόνας Ο τρίτος κανόνας Ο τέταρτος κανόνας Ο πέμπτος κανόνας Ο έκτος κανόνας Ο τελευταίος κανόνας Εισαγωγή Γεγονότων ΔΗΜΙΟΥΡΓΙΑ ΙΣΤΟΤΟΠΟΥ Αρχική Σελίδα Η Ιστοσελίδα About iv-

7 6.2.3 Η Σελίδα της Περιγραφής Σελίδα Συστήματος ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΈΡΕΥΝΑ...95 ΒΙΒΛΙΟΓΡΑΦΙΑ...99 ΠΑΡΑΡΤΗΜΑ ΕΝΣΩΜΑΤΩΣΗ CLIPS ΑΛΛΑΓΕΣ ΤΗΣ REACTION RULEML Συνοπτικό Λεξιλόγιο Πλεονεκτήματα Της Reaction RuleML v-

8

9 1 Εισαγωγή Η ευρεία χρήση και η ταχύτατη εξάπλωση του Παγκόσμιου Ιστού Πληροφοριών (World Wide Web ή Web) είχε σαν αποτέλεσμα τη μετατροπή του σε μια τεράστια α- ποθήκη πληροφοριών με δισεκατομμύρια σελίδες και περισσότερους από 800 εκατομμύρια χρήστες παγκοσμίως [1]. Αν και το διαδίκτυο συνεχίζει να μεγαλώνει εκθετικά, η ανθρώπινη ικανότητα να εντοπίζει, να επεξεργάζεται και να αντιλαμβάνεται τις πληροφορίες παραμένει πεπερασμένη [2]. Σήμερα το διαδίκτυο θεωρείται ένα από τα πιο σημαντικά μέσα συλλογής, διαμοίρασης και διάδοσης πληροφοριών και υπηρεσιών. Την ίδια όμως στιγμή, ο όγκος των διαθέσιμων πληροφοριών προκαλεί αρκετά προβλήματα που σχετίζονται με τη συνεχώς αυξανόμενη δυσκολία αναζήτησης, εύρεσης, οργάνωσης, πρόσβασης και συντήρησης της αιτούμενης πληροφορίας από τους χρήστες. Το πρόβλημα στις μέρες µας δεν είναι η πρόσβαση στην πληροφορία, αλλά ότι όλο και περισσότεροι άνθρωποι µε διαφορετικές ανάγκες και προτιμήσεις πλοηγούνται μέσα σε περίπλοκες δομές στο Web χάνοντας στην πορεία το στόχο της αναζήτησής τους. Αυτό το γεγονός έχει σημαντικές επιπτώσεις στον τρόπο που σχεδιάζουμε και υλοποιούμε εφαρμογές στο Web και τα συστήματα ηλεκτρονικής μάθησης (e-learning), ηλεκτρονικού εμπορίου (e-commerce) και επιχειρηματικής ευφυΐας (business intelligence) δε θα μπορούσαν να αποτελέσουν εξαίρεση. Η πρόσφατη εμφάνιση του Σημασιολογικού Παγκόσμιου Ιστού Πληροφοριών (Semantic Web), ή απλά Σημασιολογικού Ιστού στοχεύει στην ενσωμάτωση ενός ακόμα επιπέδου ευφυΐας (intelligence) στο περιβάλλον των διαδικτυακών εφαρμογών. Ο Σημασιολογικός Ιστός αποτελεί μια επέκταση του σημερινού διαδικτύου, όπου οι πληροφορίες έχουν σαφώς καθορισμένη σημασία, η οποία συντελεί στην καλύτερη συνεργασία ανάμεσα σε υπολογιστή και άνθρωπο. Αυτός είναι ένας ανεπίσημος ορισμός, που δόθηκε από τον Berner-Lee τον Μάιο του 2001 στο αμερικάνικο άρθρο «The Semantic Web» [3]. Ένας πιο επίσημος ορισμός από το W3C (2005) αναφέρει ότι «ο Σημασιολογικός Ιστός ουσιαστικά είναι η αναπαράσταση των δεδομένων στον Παγκόσμιο Ιστό. Αποτελεί μια προσπάθεια συνεργασίας, καθοδηγούμενη από το W3C με τη συμμετοχή -1-

10 ενός μεγάλου αριθμού ερευνητών και βιομηχανικών συνεταίρων. Βασίζεται στο Πλαίσιο Περιγραφής Πόρων (Resource Description Framework-RDF), το οποίο ενσωματώνει μία ποικιλία εφαρμογών κάνοντας χρήση της Επεκτάσιμης Γλώσσας Σήμανσης (extensible Markup Language -XML) για τη σύνταξη και των Ενιαίων Αναγνωριστικών Πόρων (Uniform Resource Identifiers URIs) για τις ονομασίες» [4]. Η ικανότητα του Semantic Web να προσθέτει νόημα στις πληροφορίες, αποθηκευμένο με τέτοιο τρόπο που να μπορεί να αναζητηθεί και να υποβληθεί σε επεξεργασία, παρέχει πολλές ευκαιρίες επέκτασης για τις διαδικτυακές εφαρμογές [5]. Η μεταστροφή του δικτύου από έναν απλό τόπο στατικής πληροφορίας σε ένα δυναμικό χώρο παροχής υπηρεσιών υπήρξε και εξακολουθεί να είναι ραγδαία [6]. Οι πρώτες σελίδες του διαδικτύου περιείχαν απλά κείμενο. Η ανάγκη για καλύτερη αναπαράσταση της πληροφορίας επέβαλε την ενσωμάτωση στοιχείων πολυμέσων, όπως εικόνα, ήχος, βίντεο, εμπλουτίζοντας με τα στοιχεία αυτά το υπερκείμενο. Κατόπιν, οι δικτυακοί τόποι που αφορούσαν υπηρεσίες πρόβαλαν ως η νέα τάση στο χώρο, καθώς οι χρήστες ενθουσιασμένοι από την ευκολία χρήσης του μέσου θεώρησαν καλή ιδέα να διεκπεραιώνουν έναν αριθμό από καθημερινές πράξεις τους ηλεκτρονικά. Η ανάγνωση εφημερίδων, η αναζήτηση εργασίας και η υποβολή φορολογικών δηλώσεων είναι απλά μερικά χαρακτηριστικά παραδείγματα. Αυτές ακριβώς οι υπηρεσίες είναι που σήμερα ονομάζονται δικτυακές, λόγω φυσικά του ίδιου του μέσου (δίκτυο) όπου χρησιμοποιούνται. Προσδίδοντας έναν ορισμό στη δικτυακή υπηρεσία (web service), θα μπορούσε να γενικευτεί ως ένας δικτυακός τόπος που δεν περιέχει απλά στατική πληροφορία, αλλά στον οποίο μπορεί να εκτελεστεί κάποια πράξη η οποία θα επιφέρει κάποιου είδους αλλαγή [7]. Πρέπει να τονιστεί ότι με τον όρο δικτυακή υπηρεσία ή web service δεν εννοείται το ίδιο με τα XML Web Services, τα οποία αποτελούν προγραμματιστικές διεπαφές που μπορούν να εκτελεστούν δικτυακά. Τα ΧΜL Web Services είναι μια υποκατηγορία των δικτυακών υπηρεσιών και έτσι η γενική θεώρηση για τις υπηρεσίες μπορεί να εφαρμοστεί και σε αυτά. Για παράδειγμα, ένας δικτυακός εκτυπωτής μπορεί να θεωρηθεί μια δικτυακή υπηρεσία αλλά όχι ένα XML Web Service. Αντίθετα, μια υπηρεσία που επιστρέφει τη διαφορά ώρας μεταξύ δύο πόλεων μπορεί να υλοποιηθεί ως, και άρα να θεωρηθεί, ΧΜL Web Service. Η εξέλιξη του χαρακτήρα του διαδικτύου επέφερε και την ανάγκη για προσαρμογή του σχετικού λογισμικού στις νέες απαιτήσεις. Η απλή HTML εμπλουτίστηκε, νέες γλώσσες για περιγραφή και εμφάνιση γραφικών εισήχθησαν, καθώς και νέα πρότυπα -2-

11 για την περιγραφή αλληλεπιδράσεων πολυμέσων. Η στροφή, όμως, στο υπηρεσιακό δίκτυο απαιτούσε μια πιο ριζική αλλαγή στο λογισμικό του διαδικτύου. Ήταν πλέον επιτακτική η ανάγκη να αναθεωρηθεί η φιλοσοφία του τρόπου που κτίζονται οι δικτυακοί τόποι, να γίνει προσπάθεια να διαχωριστεί το τι προσφέρεται από το πώς παρουσιάζεται. Ένας από τους πρωτοπόρους του Internet και θεμελιωτής του World Wide Web, ο Tim Berners-Lee ηγείται της προσπάθειας αναδόμησης του δικτύου. Η στοχευόμενη σε ανθρώπινη κατανόηση διαδικτυακή πληροφορία, συνεπώς συνδεδεμένη με την παρουσίασή της, επιχειρείται να μεταλλαχθεί σε πληροφορία κατανοητή και από μηχανές, άρα πλήρως ανεξάρτητη από το πώς εμφανίζεται. Ο ανανεωμένος αυτός Ιστός γνωστός πλέον και ως Σημασιολογικός [8] βρίσκεται σε πρώιμο στάδιο ακόμα, αλλά λόγω των αναρίθμητων προτερημάτων του γίνεται ήδη προσπάθεια να ενσωματωθούν στοιχεία του σε πλήθος τομέων της επιστήμης των υπολογιστών. Οι απαιτήσεις της αγοράς (π.χ. Β2Β εφαρμογές) ήταν αυτές που έθεσαν σε υψηλή προτεραιότητα την ανάγκη για σημασιολογική περιγραφή των υπηρεσιών. Το δύσκαμπτο μοντέλο αναζήτησης μιας υπηρεσίας με βάση τις λέξεις κλειδιά, τα πολλά και α- νακριβή αποτελέσματα, ο περιορισμένος βαθμός ευελιξίας με βάση ένα πλήθος κριτηρίων και κυρίως η άγνοια για το τι πραγματικά κάνει η υπηρεσία οδηγούν σε ανάγκη για επισταμένη επιθεώρηση του κάθε αποτελέσματος, κάτι που αποτελεί διαδικασία χρονοβόρα και συχνά ακριβή. Με την ενσωμάτωση σημασιολογικών χαρακτηριστικών στην περιγραφή των υπηρεσιών ή δικτυακών τόπων, η αναζήτηση θα γίνεται με βάση το τι πραγματικά κάνει η υπηρεσία και όχι με την αναποτελεσματική σύγκριση συμβολοσειρών [9]. Συνεπώς, κρίνεται επιτακτική η ανάγκη ο Παγκόσμιος Ιστός να εξελιχθεί σε κάτι πολύ παραπάνω από μια απλή πλατφόρμα που επιτρέπει σε χρήστες και οργανισμούς να φιλοξενούν ιστοσελίδες. Είναι ανάγκη να αναπτυχθεί ένας μηχανισμός, ο οποίος θα επιτρέπει στις μηχανές να συλλέγουν περιεχόμενο από διαφορετικές πηγές, να επεξεργάζονται την πληροφορία και να ανταλλάσσουν τα αποτελέσματα με άλλα προγράμματα ηλεκτρονικών υπολογιστών (πράκτορες) και χρήστες [10]. -3-

12

13 2 Σημασιολογικός Ιστός Η ανάπτυξη του Παγκόσμιου Ιστού έγινε με στόχο να δημιουργηθεί ένα πλέγμα πληροφοριών για τους ανθρώπους. Πράγματι, οι σελίδες του Web απευθύνονται αποκλειστικά και μόνο στους ανθρώπους με την έννοια ότι η πληροφορία που περιέχουν είναι αναγνώσιμη και κατανοητή μόνο από αυτούς. Οι μηχανές αναζήτησης προσπαθούν να αυτοματοποιήσουν, σε ένα βαθμό, τη διαδικασία αναζήτησης πληροφοριών στο Web. Όμως, και αυτές λειτουργούν με ορισμένες παραδοχές, όπως: Οι αναζητήσεις γίνονται από ανθρώπους. Τα αποτελέσματα των αναζητήσεων απευθύνονται σε ανθρώπους. Δεν υπάρχει τυποποίηση όσον αφορά τις έννοιες και τον τρόπο που αυτές εκφράζονται. Για παράδειγμα, η λέξη «μοντέλο» μπορεί να αναφέρεται σε κάποιο πρότυπο ή και σε κάποιο όμορφο άνθρωπο. Το W3C, η κοινοπραξία που εξελίσσει τα πρότυπα του Web, στο πλαίσιο μιας συγκεκριμένης δράσης, αναπτύσσει τη λογική του Σημασιολογικού Ιστού. Ο Σημασιολογικός Ιστός θα επιτρέψει στην πληροφορία να είναι κατανοητή και από τους υπολογιστές, καθιστώντας τους ικανούς να αυτοματοποιήσουν σε μεγάλο βαθμό την επεξεργασία της πληροφορίας που υπάρχει στο Web. Έτσι, από μια σελίδα Web, οι άνθρωποι θα μπορούν να διαβάσουν την πληροφορία που περιέχει, αλλά και οι υπολογιστές να κατανοήσουν σημαντικό τμήμα του περιεχομένου της και να προβούν σε συγκεκριμένες ε- νέργειες που έχει ορίσει ο χρήστης [11]. 2.1 Τι Είναι Σημασιολογικός Ιστός Ο Σημασιολογικός Ιστός δεν αποτελεί κάτι εντελώς νέο, με την έννοια ότι δε θα δημιουργήσει ένα ξεχωριστό περιβάλλον εργασίας. Θα αποτελέσει μία επέκταση του σημερινού Web. Το βασικό στοιχείο διαφοροποίησης τους είναι ότι η πληροφορία θα αποκτήσει ένα καλά ορισμένο νόημα, το οποίο θα επιτρέψει την ακόμα καλύτερη συνεργασία μεταξύ ανθρώπων και μηχανών. Ήδη τα πρώτα βήματα της ένταξης του Σημασιολογικού Ιστού στη δομή του WWW είναι σε εξέλιξη. Στο εγγύς μέλλον οι ενέργειες αυ- -5-

14 τές θα επιτρέψουν στις μηχανές να «κατανοούν» και να επεξεργάζονται καλύτερα τα δεδομένα, τα οποία σήμερα απλά παρουσιάζουν. Οι άνθρωποι σήμερα μοιράζονται τη γνώση τους στο Web με τη χρήση μιας γλώσσας που δεν απευθύνεται στο σύνολο των ανθρώπων. Στο Σημασιολογικό Ιστό (ο όρος «σημασιολογικό» αναφέρεται στο νόημα), θα είναι δυνατή η έκφραση με όρους που οι υπολογιστές θα μπορούν να ερμηνεύσουν και να ανταλλάξουν. Επιτυγχάνοντας αυτό, παρέχεται η δυνατότητα επίλυσης προβλημάτων που θεωρούνται χρονοβόρα ή προβλήματα ρουτίνας, βοηθώντας στη γρήγορη εύρεση πληροφοριών, όπως ιατρικές πληροφορίες, κριτική για μια κινηματογραφική ταινία, εντολή παραγγελίας ενός βιβλίου κλπ. Το βασικό χαρακτηριστικό του WWW είναι η καθολικότητά του. Η δύναμη του υ- περκείμενου είναι ότι οτιδήποτε μπορεί να συνδέεται (link) με οτιδήποτε. Κατά συνέπεια το Web δεν ξεχωρίζει ένα απλό κείμενο με τις εντυπώσεις μας από ένα ταξίδι από μια μελέτη ενός αναλυτή για την πορεία της τουριστικής βιομηχανίας. Δεν υπάρχουν για το Web διαφοροποιήσεις για κείμενα που είναι σε διαφορετικές γλώσσες, εκφράζουν διαφορετικές κουλτούρες ή είναι σε διαφορετική μορφή. Οι πληροφορίες διαφέρουν μεταξύ τους σε πολλά σημεία. Ένα από αυτά είναι η διαφοροποίηση μεταξύ της πληροφορίας που παράγεται κυρίως για «κατανάλωση» από ανθρώπους, και αυτής που προορίζεται για τους υπολογιστές. Στην πρώτη περίπτωση περιλαμβάνεται οποιαδήποτε μορφή πληροφορίας, από ένα άρθρο σε εφημερίδα μέχρι ένα ποίημα. Στη δεύτερη περίπτωση περιλαμβάνονται βάσεις δεδομένων και προγράμματα. Ο Σημασιολογικός Ιστός έρχεται να ξεπεράσει την αδυναμία του σημερινού Web στην αυτόματη επεξεργασία δεδομένων και πληροφοριών. Όπως το διαδίκτυο, έτσι και ο Σημασιολογικός Ιστός, είναι όσο το δυνατόν περισσότερο αποκεντρωμένος, με την έννοια ότι δεν ελέγχεται κεντρικά κάπου. Αυτή η μορφή ανάπτυξης προϋποθέτει ορισμένους συμβιβασμούς, όπως για παράδειγμα ότι πάντα θα υπάρχουν ασυνέπειες στις σελίδες. Όμως, οι προοπτικές ανάπτυξης με αυτό το εργαλείο είναι εκθετικές. Για να λειτουργήσει ο Σημασιολογικός Ιστός, οι υπολογιστές πρέπει να έχουν πρόσβαση σε δομημένα σύνολα πληροφοριών, καθώς και σε κανόνες (rules) για το πώς θα ενεργούν αυτόματα σε κάθε περίπτωση. Οι ερευνητές στο χώρο της τεχνητής νοημοσύνης έχουν μελετήσει τέτοια συστήματα πολύ πριν την ανάπτυξη του Web. Η αναπαράσταση της γνώσης, όπως συχνά αναφέρεται η συγκεκριμένη τεχνολογία, βρίσκεται σήμερα στο στάδιο που βρισκόταν το υπερκείμενο πριν την ανάπτυξη του Web: Περιέχει -6-

15 τους σπόρους για σημαντικές εφαρμογές, αλλά για να γίνουν κατανοητές οι πραγματικές προοπτικές πρέπει να εφαρμοστεί σε ένα παγκόσμιο σύστημα. Η προσθήκη γνώσης στο Web, δηλαδή το μέσο να χρησιμοποιηθούν κανόνες για την επίτευξη λογικών συμπερασμάτων, να επιλεχθεί η πορεία για διάφορες δράσεις και να απαντηθούν τα ερωτήματα, είναι ένα έργο που πρέπει να γίνει πριν την ανάπτυξη του Σημασιολογικού Ιστού. Ένα μίγμα μαθηματικών και μηχανικών αποφάσεων ε- μπλέκεται σε αυτό το έργο. Η λογική πρέπει να είναι τόσο ισχυρή ώστε να περιγράφει τα πολύπλοκα χαρακτηριστικά των αντικειμένων, αλλά όχι τόσο πολύπλοκη ώστε να οδηγεί τα αυτόματα συστήματα σε αδιέξοδα, δηλαδή σε αδυναμία να κατανοήσουν και να δώσουν απαντήσεις. Ο Σημασιολογικός Ιστός δεν είναι απλά ένα εργαλείο αυτόματης εκτέλεσης εργασιών. Εάν σχεδιαστεί και υλοποιηθεί σωστά, θα μπορέσει να συμβάλει αποφασιστικά στην ανάπτυξη ολόκληρης της ανθρώπινης γνώσης. Πολλές φορές πρέπει να υλοποιηθούν έργα στα οποία συμμετέχουν πολλές μικρές και ανεξάρτητες ομάδες εργασίας. Μια μικρή ομάδα εργασίας μπορεί να λειτουργεί πιο αποτελεσματικά, αλλά ίσως το έργο της να μην είναι κατανοητό από τις άλλες ομάδες. Προκειμένου να συνεργαστούν οι αμάδες αυτές, απαιτείται αρκετή επικοινωνία. Ο Σημασιολογικός Ιστός θα επιτρέψει την περιγραφή κάθε ιδέας με συγκεκριμένο τρόπο, ώστε αυτή να μπορεί να γίνει κατανοητή από οποιονδήποτε σε οποιαδήποτε γλώσσα. Αυτή η λογική γλώσσα θα επιτρέψει στα νοήματα να διασυνδεθούν μεταξύ τους και να δημιουργήσουν έναν καθολικό ιστό [11]. 2.2 Ο Πύργος Του Σημασιολογικού Ιστού Για την ορθή λειτουργία του Σημασιολογικού Ιστού, οι υπολογιστές πρέπει να έχουν πρόσβαση σε δομημένες συλλογές πληροφοριών και σε σύνολα συμπερασματικών κανόνων, που μπορούν να χρησιμοποιηθούν για την εξαγωγή αυτοματοποιημένων συλλογισμών. Η επόμενη γενιά του Ιστού θα συνδυάζει τις υπάρχουσες τεχνολογίες διαδικτύου με φορμαλισμούς αναπαράστασης γνώσης, ώστε να παρέχει μια υποδομή που θα επιτρέπει να γίνεται η επεξεργασία, η εύρεση και το φιλτράρισμα των δεδομένων στο διαδίκτυο πιο αποτελεσματικά. Ένα σύνολο νέων γλωσσών οργανωμένων σε μια αρχιτεκτονική επιπέδων (layered architecture) θα επιτρέψει στους χρήστες και τις εφαρμογές να συντάσσουν και να διαμοιράζονται πληροφορίες, καθώς επίσης και θα συντελέ- -7-

16 σει στην ανάπτυξη τεχνολογιών και εργαλείων νέας γενιάς. Αυτή η αρχιτεκτονική είναι γνωστή ως ο πύργος του Σημασιολογικού Ιστού (Semantic Web tower) [12]. Ο πύργος του Σημασιολογικού Ιστού (Εικόνα 1), ο οποίος βρίσκεται υπό ανάπτυξη, αποτελείται από επίπεδα που αναπτύσσονται από κάτω προς τα πάνω. Οι γλώσσες που έχουν οριστεί ως τώρα με σειρά από κάτω προς τα πάνω περιλαμβάνουν τις εξής: XML, RDF, RDF Schema και Web Ontology Language OWL. Εικόνα 1: Ο πύργος του σημασιολογικού ιστού Τα βασικότερα επίπεδα του πύργου του Σημασιολογικού Ιστού είναι τα εξής: Unicode και URI επίπεδα: διασφαλίζουν ότι διεθνή σύνολα χαρακτήρων και μέσα χρησιμοποιούνται για την αναγνώριση των αντικειμένων του Semantic Web. XML επίπεδο: αναπαριστά τη δομή των δεδομένων. Το επίπεδο αυτό μαζί με τους ορισμούς namespace (NS) και xmlschemas διασφαλίζουν ότι είναι δυνατή η ενσωμάτωση σημασιολογικών ορισμών με τα άλλα XML πρότυπα. RDF επίπεδο: αναπαριστά τη σημασιολογία των δεδομένων. Με RDF και rdfschema είναι δυνατό να γίνουν οι δηλώσεις για τα αντικείμενα με URIs και να καθοριστούν τα λεξιλόγια που μπορούν να αναφερθούν από URIs. Αυτό εί- -8-

17 ναι το επίπεδο όπου μπορούν να δοθούν οι τύποι στους πόρους και τις συνδέσεις. Ontology επίπεδο: αναπαριστά την επίσημη κοινή «συμφωνία» για το νόημα των δεδομένων. Το επίπεδο αυτό υποστηρίζει την εξέλιξη των λεξιλογίων δεδομένου ότι μπορεί να καθορίσει τις σχέσεις μεταξύ των διαφορετικών εννοιών. Digital signature επίπεδο: το επίπεδο αυτό στοχεύει στην ανίχνευση των αλλαγών των εγγράφων και μαζί με το ontology επίπεδο αποτελούν τα επίπεδα που τυποποιούνται αυτήν την περίοδο από τις ομάδες εργασίας του W3C. Logic, proof και trust επίπεδα: αποτελούν τα ανώτερα επίπεδα της αρχιτεκτονικής. Το επίπεδο λογικής επιτρέπει το γράψιμο των κανόνων, ενώ το επίπεδο απόδειξης εκτελεί τους κανόνες και αξιολογεί μαζί με το μηχανισμό του επιπέδου εμπιστοσύνης για τις εφαρμογές αν θα εμπιστευθεί τη δεδομένη απόδειξη ή όχι [13]. Προς το παρόν, το υψηλότερο επίπεδο το οποίο έχει φτάσει σε ένα ικανοποιητικό επίπεδο ωριμότητας είναι το επίπεδο της οντολογίας. Το επόμενο βήμα στην ανάπτυξη του Σημασιολογικού Ιστού θα είναι τα επίπεδα της λογικής και των αποδείξεων (logic and proof layers), τα οποία ερευνώνται αυτήν την περίοδο, ενώ ήδη υλοποιούνται και απλές εφαρμογές επίδειξής τους. Τα συστήματα κανόνων έχουν δεσπόζων ρόλο σε τέτοιες δραστηριότητες, ενώ μπορούν να αξιοποιηθούν και σε γλώσσες οντολογίας [14]. -9-

18

19 3 Κανόνες Οι κανόνες αποτελούν το επόμενο επίπεδο μετά τις γλώσσες οντολογίας στον πύργο του Σημασιολογικού Ιστού, το οποίο όμως δεν έχει αναπτυχθεί πλήρως ακόμη. Τα επιχειρήματα που υποστηρίζουν την ανάπτυξη των κανόνων στο Σημασιολογικό Ιστό περιλαμβάνουν τα ακόλουθα: Οι κανόνες εμφανίζονται εκ φύσεως σε πολλές εφαρμογές, όπως οι επιχειρηματικοί κανόνες, οι προδιαγραφές των πολιτικών, οι περιγραφές των υπηρεσιών, τα ερωτήματα προς τις βάσεις δεδομένων κ.α. Είναι επιθυμητή η ύπαρξη μιας γλώσσας κανόνων για την έκφραση των κανόνων στις διαδικτυακές εφαρμογές. Οι κανόνες παρέχουν υψηλού επιπέδου περιγραφές, αφαιρώντας τις λεπτομέρειες υλοποίησης, και έτσι γίνονται ακριβείς και απλοί. Είναι επίσης ευρέως γνωστοί, κατανοητοί από τους μη ειδικούς και ενσωματώνονται εύκολα από τις κύριες τεχνολογίες. Οι γλώσσες οντολογίας είναι σχεδιασμένες ώστε να περιγράφουν έννοιες των εφαρμογών, αλλά δεν είναι επαρκώς εκφραστικές για την περιγραφή κάποιων πλευρών των εφαρμογών, που εκφράζονται από τις γλώσσες κανόνων, όπως για παράδειγμα η δημιουργία συσχετίσεων που χρησιμοποιείται εντατικά στις βάσεις δεδομένων. Οι μελέτες σχετικά με τη χρήση κανόνων στο Σημασιολογικό Ιστό δείχνουν πως ίσως χρειάζεται μία οικογένεια γλωσσών κανόνων και όχι μόνο μία γλώσσα, εφόσον διαφορετικές εφαρμογές απαιτούν διαφορετικά είδη κανόνων. Η προσπάθεια για τον καθορισμό τέτοιων γλωσσών και για τη δυνατότητα διαλειτουργικότητας (interoperability) μέσω διαδικτύου ανάμεσα σε διαφορετικά συστήματα κανόνων και εφαρμογές, συντελείται από την Πρωτοβουλία RuleML (RuleML Initiative) [15]. Γενικά, ο ρόλος που αναμένεται να έχουν τα συστήματα κανόνων στην ανάπτυξη του Σημασιολογικού Ιστού είναι διπλός: Εξυπηρετούν ως προεκτάσεις, ή εναλλακτικές, των γλωσσών οντολογίας που βασίζονται στην περιγραφική λογική, και -11-

20 Μπορούν να χρησιμοποιηθούν για την ανάπτυξη επεξηγηματικών δηλωτικών (declarative) συστημάτων που κάνουν χρήση οντολογιών. Πιθανές αλληλεπιδράσεις ανάμεσα στις περιγραφικές λογικές και τα συστήματα μονοτονικών κανόνων μελετώνται στο [16]. Βάσει αυτής, αλλά και άλλων μελετών στην υβριδική λογική (hybrid reasoning) [17], φαίνεται ότι το καλύτερο που μπορεί να γίνει προς το παρόν είναι η τομή της εκφραστικής δύναμης της Horn λογικής και των περιγραφικών λογικών (description logics) [18]. 3.1 Ο Ρόλος Των Συστημάτων Μη Μονοτονικών Κανόνων Ένα από τα θέματα που έχουν προσελκύσει το ενδιαφέρον των ειδικών του Σημασιολογικού Ιστού, είναι η φύση των συστημάτων κανόνων που θα έπρεπε να αναπτυχθούν στο λογικό επίπεδο του πύργου του Σημασιολογικού Ιστού. Τα συστήματα μονοτονικών κανόνων έχουν μελετηθεί ήδη και έχουν γίνει αποδεκτά ως σημαντικό μέρος της διαστρωματωμένης (layered) ανάπτυξης Τα συστήματα μη μονοτονικών κανόνων, από την άλλη μεριά, φαίνεται ότι αποτελούν μια καλή λύση, ειδικά εξαιτίας των εκφραστικών τους ικανοτήτων. Τα βασικά κίνητρα για την αξιοποίηση αυτών των συστημάτων είναι οι εξής: Η λογική με μη πλήρεις πληροφορίες: Στο [19] περιγράφεται ένα σενάριο ό- που οι επιχειρηματικοί κανόνες σχετίζονται με μη πλήρεις πληροφορίες. Με την απουσία συγκεκριμένων πληροφοριών, θα πρέπει να γίνουν κάποιες υποθέσεις που θα οδηγήσουν σε συμπεράσματα, τα οποία δεν υποστηρίζονται όμως από την κλασσική κατηγορηματική λογική. Σε πολλές εφαρμογές του διαδικτύου, τέτοιες υποθέσεις πρέπει να γίνονται επειδή κάποιοι άλλοι χρήστες ίσως να μην μπορούν να παρέχουν πληροφορίες (εξαιτίας προβλημάτων επικοινωνίας για παράδειγμα) ή να μη θέλουν (για λόγους ιδιωτικότητας ή ασφάλειας). Αυτή είναι μια κλασική περίπτωση για τη χρήση μη μονοτονικής λογικής και αναπαράστασης γνώσης [20]. Οι κανόνες με εξαιρέσεις: οι κανόνες με εξαιρέσεις είναι ένας φυσικός τρόπος αναπαράστασης των επιχειρηματικών κανόνων και πολιτικών [21]. Πληροφορίες προτεραιότητας είναι συχνά διαθέσιμες για την επίλυση συγκρούσεων ανάμεσα στους κανόνες. Στις πιθανές εφαρμογές περιλαμβάνονται οι πολιτικές α- -12-

21 σφάλειας [22][23], οι επιχειρησιακοί κανόνες [19], οι εξατομικεύσεις, η χρηματομεσιτική, οι συμφωνίες και οι αυτόματοι πράκτορες διαπραγμάτευσης [24]. Η προκαθορισμένη κληρονομικότητα των οντολογιών: Η προκαθορισμένη κληρονομικότητα είναι ένα γνωστό χαρακτηριστικό συγκεκριμένων φορμαλισμών αναπαράστασης γνώσης. Έτσι, μπορεί να παίξει σημαντικό ρόλο στις γλώσσες οντολογίες, οι οποίες προς το παρόν δεν υποστηρίζουν αυτό το χαρακτηριστικό. Στο [25] παρουσιάζονται κάποιες ιδέες για πιθανές χρήσεις της προκαθορισμένης κληρονομικότητας της οντολογίας. Το ακόλουθο παράδειγμα χρησιμοποιείται για την παρουσίαση της προκαθορισμένης κληρονομικότητας των οντολογιών: Οι ελέφαντες είναι γκρίζοι, με εξαίρεση τους βασιλικούς ελέφαντες, οι οποίοι είναι λευκοί. Μπορούμε να επαναθέσουμε την προηγούμενη δήλωση ως εξής: Οι ελέφαντες είναι γκρίζοι, με εξαίρεση τους βασιλικούς ελέφαντες. Οι βασιλικοί ελέφαντες είναι λευκοί. Όλοι οι βασιλικοί ελέφαντες είναι ελέφαντες. Εφαρμόζοντας έναν αυστηρό τύπο κληρονομικότητας μπορούμε να συμπεράνουμε ότι κάθε αντικείμενο της κλάσης των βασιλικών ελεφάντων πρέπει να είναι γκρίζο, ε- φόσον αποτελεί υποκλάση της κλάσης των ελεφάντων. Όμως, γνωρίζουμε η ιδιότητα χρώμα πρέπει να έχει την τιμή λευκό για κάθε αντικείμενο της κλάσης των βασιλικών ελεφάντων. Αυτή η κατάσταση οδηγεί φυσικά στην ιδέα της προκαθορισμένης κληρονομικότητας. Η προκαθορισμένη κληρονομικότητα μοντελοποιείται μέσω της μη κλασικής λογικής. Για παράδειγμα, η παραπάνω δήλωση μπορεί να αναπαρασταθεί στην προκαθορισμένη λογική ως εξής (Εικόνα 2): Εικόνα 2: Προκαθορισμένη Κληρονομικότητα Ένα φυσικό τρόπο αναπαράστασης της προκαθορισμένης κληρονομικότητας αποτελούν οι κανόνες με εξαιρέσεις μαζί με πληροφορίες προτεραιότητας. Έτσι, τα μη μονοτονικά συστήματα κανόνων μπορούν να χρησιμοποιηθούν από γλώσσες οντολογίας [26]. -13-

22 Συνένωση Οντολογιών: Όταν οντολογίες από διαφορετικούς συγγραφείς ή πηγές συνενώνονται, προκύπτουν αντιφάσεις. Οι φορμαλισμοί που βασίζονται στην κατηγορηματική λογική, συμπεριλαμβανομένων όλων των σημερινών γλωσσών του Σημασιολογικού Ιστού, δεν μπορούν να αντιμετωπίσουν επιτυχώς τις ασυνέπειες. Κάποιες ασυνέπειες, οι οποίες ίσως προκύψουν όταν γίνονται προσπάθειες για τη δημιουργία μίας μοναδικής οντολογίας με τη συνένωση δύο διαφορετικών οντολογιών από τα τμήματα που επικαλύπτονται, είναι: Κάποιες έννοιες αναπαρίστανται από διαφορετικά ονόματα (συνώνυμοι όροι): για παράδειγμα ο όρος «αυτοκίνητο» κάποιας οντολογίας και ο όρος «αμάξι» κάποιας άλλης. Ο ίδιος όρος χρησιμοποιείται με διαφορετική σημασία (ομώνυμοι όροι): για παράδειγμα ο όρος «μηχανή» έχει διαφορετική σημασία όταν γίνεται αναφορά σε οχήματα γενικά από ότι όταν γίνεται αναφορά σε ένα συγκεκριμένο αυτοκίνητο. Οι τιμές των οντολογιών μπορούν να κωδικοποιηθούν σε διαφορετικούς τύπους: για παράδειγμα η απόσταση ίσως περιγράφεται σε χιλιόμετρα ή σε μίλια, ή η ημερομηνία ίσως αναπαρίσταται ως «ηη/μμ/εεεε» ή ως «μμ-ηη-εε». Οι ασυνέπειες ανάμεσα σε μέρη κάποιου πεδίου που καλύπτεται από την οντολογία, ή το επίπεδο λεπτομέρειας στο οποίο μοντελοποιείται αυτό το πεδίο, για παράδειγμα μία οντολογία ίσως μοντελοποιεί αυτοκίνητα, αλλά όχι φορτηγά. Ή κάποια άλλη ίσως αναπαριστά φορτηγά, αλλά να τα ταξινομεί σε λίγες μόνο κατηγορίες. Αν χρησιμοποιούνται γλώσσες που βασίζονται σε κανόνες (πχ η DLP [27]) και αν κάποιοι κανόνες ερμηνεύονται ως αναιρέσιμοι (defeasible) (δηλαδή, αν εμποδίζεται η εφαρμογή τους, ακόμη και αν μπορούν πυροδοτηθούν) τότε πρόκειται για συστήματα μη μονοτονικών κανόνων. Η αναιρέσιμη λογική ακολουθεί τη σκεπτικιστική προσέγγιση στην περίπτωση συγκρούσεων μεταξύ κανόνων, σύμφωνα με την οποία δεν επιτρέπεται η εξαγωγή αντιφατικών συμπερασμάτων. Πολλές φορές χρησιμοποιούνται και οι προτεραιότητες για την επίλυση κάποιων συγκρούσεων ανάμεσα σε κανόνες, οι οποίες θα βασίζονται στη γνώση για την αξιοπιστία των πηγών ή των δεδομένων εισαγωγής του χρήστη. Έτσι, τα μη μονοτονικά συστήματα κανόνων υποστηρίζουν την ενοποίηση οντολογιών [26]. -14-

23 3.2 Ο Ρόλος Των Κανόνων Οι κανόνες βρίσκονται παντού, σε πολλούς τομείς και βιομηχανίες. Οι επιχειρηματικές πολιτικές, κανονισμοί και νόμοι, οδηγίες και βέλτιστες πρακτικές, ορισμοί και αξιώματα, μεταφράσεις σχημάτων βάσεων δεδομένων, ροές εργασίας και τεχνικοί περιορισμοί, όλα τα παραπάνω απαιτούν μία δηλωτική και τμηματοποιημένη προσέγγιση στην ε- φαρμογή τους. Υπάρχει μία προσοδοφόρα εμπορική αγορά σε πολλές οικογένειες κανόνων, συμπεριλαμβανομένων των παραγωγικών κανόνων, αντιδραστικών κανόνων, Prolog, συστημάτων σχεσιακών βάσεων δεδομένων, και άλλα. Όμως, η πρακτική διαλειτουργικότητα ανάμεσα σε αυτά τα συστήματα, ιδιαίτερα ανάμεσα στις διαφορετικές οικογένειες, είναι πολύ περιορισμένη μέχρι σήμερα. Οι κανόνες αποτελούν στοιχείο κλειδί για το όραμα του Σημασιολογικού Ιστού, αφού επιτρέπουν την ενσωμάτωση, την παραγωγή και το μετασχηματισμό δεδομένων από πολλαπλές πηγές. Μπορεί να γίνει διαχείριση των κανόνων ως δεδομένα, που δημοσιεύονται στο διαδίκτυο, και όταν γίνεται χρήση των URIs σε κάποια γλώσσα κανόνων, μπορούν να αποτελέσουν σημαντικούς συνδέσμους ανάμεσα στις βάσεις γνώσης. Σε ένα περιβάλλον διαδικτυακών υπηρεσιών, οι κανόνες προσφέρουν την ευκαιρία για αυτοματοποίηση της επιβολής και σύνθεσης πολιτικών που ελέγχουν τη διανομή της πληροφορίας, την πρόσβαση στις υπηρεσίες ή την εκτέλεση διαδικασιών. Οι κανόνες έχουν τα πλεονεκτήματα της ευελιξίας και της ευχρηστίας. Επιπρόσθετα, η δηλωτική φύση τους αποδίδει μια ιδιαίτερη έλξη ως προγραμματικές προσεγγίσεις αναπαράστασης γνώσης σε ένα κατανεμημένο διαδικτυακό περιβάλλον. Οι κανόνες παρουσιάζουν ποικιλία τυποποιήσεων για διαφορετικές χρήσεις και εφαρμογές. Οι επιχειρηματικοί κανόνες, οι πίνακες και τα δέντρα αποφάσεων χρησιμοποιούνται για την αυτοματοποίηση της επιβολής των επιχειρησιακών πολιτικών και κανονισμών. Οι κανόνες λογικών τύπων, περιορισμών, οντολογιών, συσχετίσεων και μετασχηματισμών χρησιμοποιούνται για την εξαγωγή συμπερασμάτων στην ανάκτηση και ενσωμάτωση πληροφορίας, συμπεριλαμβανόμενων των βάσεων δεδομένων και των αποθηκών μεταδεδομένων, ή σε εφαρμογές ανάλυσης, πρόβλεψης και βελτιστοποίησης. Οι κανόνες έχουν τις ρίζες τους στην τυπική λογική (formal logic), όπου η σημασιολογία μπορεί να αναπαρασταθεί μέσω ενός λογικού μοντέλου και η εξαγωγή συμπερασμάτων μπορεί να βασιστεί στις λογικές αποδείξεις. Το πιο σημαντικό πραγματικό σημασιολογικό πρότυπο αποτελεί η πρώτης τάξης κατηγορηματική ανάλυση, η οποία είναι απαράλλαχτη εδώ και σχεδόν εκατό χρόνια. Κατά τις τελευταίες τρεις δεκαετίες, -15-

24 έχουν εμφανιστεί προγράμματα δηλωτικής λογικής ως συμπληρωματικά της πρώτης τάξης λογικής, και παρέχουν τα θεμέλια για τη σημασιολογία των σχεσιακών βάσεων δεδομένων, καθώς και πολλών γλωσσών κανόνων. Οι αλγοριθμικές τεχνικές και η θεωρία για την τυπική λογική έχουν επεκταθεί ώστε να χειριστούν την προκαθορισμένη κληρονομικότητα, τις προτεραιότητες, την ενημέρωση, τις συγκρούσεις, κα. Για να είναι αποδοτικό, πρακτικό και εφαρμόσιμο, ένα πρότυπο Web κανόνων πρέπει να εστιάζει στις απαιτήσεις των τελικών χρηστών και στις ανάγκες των διάφορων οικογενειών κανόνων [28]. 3.3 Κανόνες και RuleML Οι κανόνες έχουν αποτελέσει δεσπόζουσα τάση για το Web εφόσον οι συμπερασματικοί κανόνες έχουν σημανθεί για το ηλεκτρονικό εμπόριο και αναγνωρίστηκαν ως θέμα σχεδίασης για το Σημασιολογικό Ιστό. Επιπλέον, οι κανόνες έχουν σημαντικό ρόλο στα συστήματα που βασίζονται στη γνώση. Όσοι συμμετέχουν στην πρωτοβουλία της RuleML αποτελούν ένα ανοιχτό δίκτυο ατόμων και ομάδων τόσο από τη βιομηχανία όσο και από την επιστήμη. Δεν ξεκινούν από την αρχή, αλλά έχουν κάνει κάποια προηγούμενη εργασία που σχετίζεται με τη σήμανση κανόνων ή έχουν προτείνει κάποια συγκεκριμένα σύνολα ετικετών για κανόνες. Κύριος στόχος τους αποτελεί η παροχή μιας βάσης για την ενοποιημένη προσέγγιση σήμανσης κανόνων, η οποία θα είναι προνομιούχα για όλους τους εμπλεκόμενους και για όλη την κοινότητα των κανόνων. Αυτό θα επιτευχθεί με τη συνεργασία όλων των συμμετεχόντων στη δημιουργία μεταφράσεων ανάμεσα στα υπάρχοντα σύνολα ετικετών και στην σύγκλιση ενός κοινού λεξιλογίου κανόνων σήμανσης. Αυτή η γλώσσα πυρήνας της RuleML μπορεί να εξυπηρετήσει ως προδιαγραφή για την άμεση ανταλλαγή κανόνων και μπορεί να επεκταθεί σταδιακά. Οι κανόνες μπορούν να δηλωθούν σε φυσική γλώσσα, με κάποιες τυπικές σημάνσεις ή με συνδυασμό αυτών. Στην τρίτη περίπτωση, δηλαδή στην «ημιτυπική» κατηγορία, η πρωτοβουλία της RuleML εργάζεται πάνω σε μια γλώσσα σήμανσης που βασίζεται στην XML και η οποία επιτρέπει την αποθήκευση κανόνων που βασίζονται στο Web, την ανταλλαγή, την ανάκτηση και την ενεργοποίηση ή εφαρμογή τους. Η πρωτοβουλία RuleML έχει κάνει τα αρχικά βήματα για τον ορισμό μιας κοινής Γλώσσας Σήμανσης Κανόνων (RuleML), που επιτρέπει τόσο τους προς-τα-μπρος (forward - από κάτω προς τα πάνω) όσο και τους προς-τα-πίσω (backward- από πάνω προς τα κάτω) κανόνες για εργασίες όπως η αφαίρεση, η εξαγωγή συμπερασμάτων, και ο μετασχηματισμός [28]. -16-

25 4 RuleML & Reaction RuleML Οι γλώσσες σήμανσης κανόνων (όπως η Rule Markup Language - RuleML) θα αποτελέσουν το όχημα για τη χρήση των κανόνων στο Web, καθώς επιτρέπουν την ανάπτυξη, εκτέλεση, επικοινωνία και δημοσίευση των κανόνων στο Web. Ακόμη συγκλίνουν σε μια κοινή γλώσσα για την εξυπηρέτηση της ανταλλαγής κανόνων ανάμεσα σε διαφορετικά συστήματα και εργαλεία. Με τη στενή έννοια, μία γλώσσα σήμανσης κανόνων αποτελεί μια συγκεκριμένη, βασισμένη στην XML, σύνταξη κανόνων για το Web. Με μια πιο ευρεία έννοια, θα έ- πρεπε να έχει πιο αφηρημένη σύνταξη ως κοινή βάση για τον ορισμό ποικίλων συγκεκριμένων υπογλωσσών που εξυπηρετούν διαφορετικούς σκοπούς. Ο στόχος της RuleML είναι να επιτραπεί η επαναχρησιμοποίηση και η ανταλλαγή κανόνων σε ένα υψηλό επίπεδο. Αντί για τη δημιουργία μιας ακόμη γλώσσας κανόνων, η RuleML προσφέρει μία οικογένεια υπογλωσσών μαζί με ένα μοντέλο διαμοιραζόμενων δεδομένων, που μπορεί να επωφεληθεί από τις υπάρχουσες και τις μελλοντικές γλώσσες [29][30]. Γενικά, οι κανόνες αποτελούν μονάδες γνώσης που περιλαμβάνουν κάποιου είδους λογική. Ίσως, για παράδειγμα, να καθορίζουν: Στατικούς ή δυναμικούς περιορισμούς ακεραιότητας (πχ ο περιορισμός του χώρου καταστάσεων ή των ιστορικών των εκτελέσεων ενός συστήματος) Παραγωγές (πχ ο ορισμός παραγόμενων εννοιών) Αντιδράσεις (για τον καθορισμό της αντιδραστικής συμπεριφοράς ενός συστήματος ως απόκριση προς τα γεγονότα) [31]. Στη συνέχεια του κεφαλαίου, ακολουθεί η περιγραφή της οικογένειας γλωσσών κανόνων RuleML, καθώς και της Reaction RuleML η οποία αποτελεί εξέλιξή της και για την οποία δημιουργήθηκε και ένα εργαλείο μετάφρασης σε κανόνες CLIPS. 4.1 Γλώσσα Σήμανσης RuleML Δεδομένου του γλωσσικού πλούτου και των πολύπλοκων δυναμικών των επιχειρησιακών πεδίων, είναι ξεκάθαρο ότι οποιοσδήποτε μαθηματικός υπολογισμός των κανόνων, όπως στις προτάσεις Horn κλασικής λογικής, θα έπρεπε να εκτιμάται ως μια περιορι- -17-

26 σμένη περιγραφική θεωρία, η οποία αποδίδει μόνο ένα μέρος του συνολικού χώρου των κανόνων. Αντιθέτως, κρίνεται αναγκαία μία πιο πλουραλιστική προσέγγιση για τον ε- τερογενή εννοιολογικό χώρο των κανόνων. Επομένως, αυτό ορίζεται στη RuleML, μία οικογένεια γλωσσών που συλλαμβάνει τα πιο κύρια είδη κανόνων. Ενώ αυτές οι γλώσσες συνοδεύονται από μια συνιστάμενη τυπική σημασιολογία, κάποιες από τις βάσεις κανόνων τους ίσως έχουν διαφορετική αποδεκτή σημασιολογία. Αυτό εξυπηρετεί ποικίλους φορμαλισμούς βασισμένους στη μη συμβατική λογική (non-standard logics), που υποστηρίζουν τη χρονική (temporal), την ασαφή (fuzzy), την αναιρέσιμη, και άλλα είδη λογικής [31]. Η RuleML [15] είναι μία γλώσσα σήμανσης βασισμένη στην XML που στοχεύει στην υποστήριξη της ανταλλαγής και διαλειτουργικότητας κανόνων ανάμεσα σε διαφορετικά πεδία. Η RuleML επιτρέπει στους κανόνες να εκφραστούν ως συστατικά αποτελούμενα από υπομονάδες (modular components) με ένα δηλωτικό τρόπο, και κάνει χρήση διακριτών, τυποποιημένων ετικετών XML για να ορίσει μια βάση κανόνων, που αποτελείται από γεγονότα και κανόνες [13]. Με τον όρο γλώσσα σήμανσης ορίζεται η γλώσσα που συνδυάζει το κείμενο με επιπλέον πληροφορίες για αυτό. Οι επιπλέον πληροφορίες, πχ για τη δομή ή την παρουσίαση του κειμένου, εκφράζονται με τη σήμανση, η οποία αναμιγνύεται με το κύριο κείμενο. Τέτοιες γλώσσες σήμανσης είναι η HTML, η RuleML και η XML [32]. Η RuleML, έχει σύνταξη XML και χρησιμοποιείται για τη δημοσίευση και το διαμοιρασμό βάσεων κανόνων στον Ιστό. Καθορίζεται από ένα σύνολο από XSDs και σχηματίζει μία ιεραρχία από υπογλώσσες κανόνων [32] Οικογένεια Από Υπογλώσσες Της RuleML Η RuleML περικλείει μία ιεραρχία κανόνων, που περιλαμβάνει τους αντιδραστικούς κανόνες (reaction rules) (γεγονός-συνθήκη-ενέργεια), τους κανόνες μετασχηματισμού (transformation rules) (λειτουργικοί-εξισωτικοί κανόνες), τους κανόνες εξαγωγής συμπερασμάτων (derivation rules) (επαγωγικοί-συμπερασματικοί κανόνες), κανόνες που εξειδικεύονται σε γεγονότα (κανόνες εξαγωγής συμπερασμάτων χωρίς προϋποθέσεις) και ερωτήματα (queries) (κανόνες εξαγωγής συμπερασμάτων χωρίς συμπεράσματα), όπως επίσης και περιορισμούς ακεραιότητας (integrity-constraints) (κανόνες διατήρησης-συνέπειας). -18-

27 Η ιεραρχία των γενικών κανόνων της RuleML διακλαδώνεται σε δύο βασικές κατηγορίες, στους αντιδραστικούς κανόνες (reaction rules) και στους κανόνες μετασχηματισμού (transformation rules). Στο επόμενο επίπεδο, οι κανόνες μετασχηματισμού εξειδικεύονται στην υποκατηγορία των κανόνων εξαγωγής συμπερασμάτων. Τότε, οι κανόνες εξαγωγής συμπερασμάτων έχουν και άλλες υποκατηγορίες, δηλαδή, τα γεγονότα και τα ερωτήματα. Τελικά, τα ερωτήματα εξειδικεύονται σε περιορισμούς ακεραιότητας (integrity constraints). Περισσότερες υποδιαιρέσεις είναι υπό μελέτη, ιδίως στους αντιδραστικούς κανόνες (reaction rules). Μια γραφική όψη των κανόνων της RuleML φαίνεται στην Εικόνα 3. Εικόνα 3: Η ιεραρχία των κανόνων στη RuleML Οι αντιδραστικοί κανόνες (Reaction rules) μπορούν να απλοποιηθούν σε γενικούς κανόνες που δεν επιστρέφουν καμία τιμή. Οι κανόνες μετασχηματισμού μπορούν να απλοποιηθούν σε γενικούς κανόνες στους οποίους το γεγονός είναι πάντα ενεργοποιημένο. Οι κανόνες εξαγωγής συμπερασμάτων (Derivation rules) μπορούν να απλοποιηθούν σε κανόνες μετασχηματισμού (transformation rules) που επιστρέφουν «αληθής» (true). Τα γεγονότα μπορούν να απλοποιηθούν σε κανόνες εξαγωγής συμπερασμάτων που έχουν μια άδεια σύζευξη προϋποθέσεων (δηλαδή αληθής). Τα ερωτήματα μπορούν να απλοποιηθούν σε κανόνες εξαγωγής συμπερασμάτων που έχουν μια άδεια διάζευξη συμπερασμάτων (δηλαδή ψευδής) ή ένα συμπέρασμα που περιλαμβάνει δεσμευμένες τιμές των μεταβλητών. Οι περιορισμοί ακεραιότητας (Integrity constraints) μπορούν αν απλοποιηθούν σε ερωτήματα που είναι «κλειστά», δηλαδή δεν περιλαμβάνουν δεσμευμένες τιμές των μεταβλητών. -19-

28 Όσον αφορά την κατεύθυνση εφαρμογής των κανόνων κάθε κατηγορίας ισχύουν τα εξής: Οι αντιδραστικοί κανόνες μπορούν να εφαρμοστούν με φυσικό τρόπο μόνο με προς τα εμπρός κατεύθυνση, παρατηρώντας ή ελέγχοντας γεγονότα ή συνθήκες αντίστοιχα και εκτελώντας μία ενέργεια, αν και όταν όλα τα γεγονότα ή οι συνθήκες ικανοποιούνται. Στους κανόνες μετασχηματισμού, από την άλλη, η προς τα πίσω κατεύθυνση προτιμάται. Οι κανόνες εξαγωγής συμπερασμάτων μπορούν να εφαρμοστούν εξίσου και στην προς τα εμπρός κατεύθυνση, όπως επίσης και στην προς τα πίσω κατεύθυνση, στη δεύτερη περίπτωση απλοποιώντας την απόδειξη ενός στόχου (συμπεράσματος) σε απόδειξη όλων των υποστόχων του (προϋποθέσεις). Εφόσον σε διαφορετικές καταστάσεις, ίσως εφαρμοστεί και διαφορετική κατεύθυνση των κανόνων εξαγωγής συμπερασμάτων (προς τα εμπρός, προς τα πίσω ή συνδυασμός τους), η RuleML δεν καθορίζει κανέναν από αυτούς. Για τα γεγονότα ή τις «προτάσεις-μονάδες», δεν είναι καθορισμένη η κατεύθυνση της εφαρμογής. Στην περίπτωση των ερωτημάτων ισχύουν τα εξής: όπως και οι στόχοι με κατεύθυνση από πάνω προς τα κάτω, αποδεικνύονται με κατεύθυνση προς τα πίσω, αλλά μπορούν επίσης να αποδειχθούν και με κατεύθυνση προς τα μπρος μέσω επεξεργασίας από κάτω προς τα πάνω. Οι περιορισμοί ακεραιότητας έχουν συνήθως προς τα μπρος κατεύθυνση, δηλαδή ενεργοποιούνται από γεγονότα ενημέρωσης, κυρίως για λόγους απόδοσης. Αλλά μπορούν να έχουν και προς τα πίσω κατεύθυνση, όταν προσπαθούν να δείξουν (α)συνέπεια ικανοποιώντας συγκεκριμένες συνθήκες (χωρίς την ανάγκη για αναγνώριση κάποιου γεγονότος). Η πιο πρόσφατη έκδοση RuleML είναι η Πολλές γλώσσες κανόνων που έχουν αναπτυχθεί για χρήση στο διαδίκτυο, σχεδιάστηκαν ώστε να ενσωματώσουν το RuleML [26] Ταξινόμηση Κανόνων Οι κύριοι τύποι κανόνων που λαμβάνονται υπόψη από τη RuleML είναι οι κανόνες ε- ξαγωγής συμπερασμάτων (derivation rules), οι περιορισμοί ακεραιότητας (integrity -20-

29 constraints), οι αντιδραστικοί κανόνες (reaction rules), οι κανόνες παραγωγής (production rules) και οι κανόνες μετασχηματισμού (transformation rules), όπως απεικονίζονται και στην Εικόνα 4. Εικόνα 4: Οι κατηγορίες κανόνων στη RuleML Κάθε τμήμα ενός κανόνα αποτελεί κάποιου είδους έκφραση και έχει ένα σημαντικό ρόλο μέσα στον κανόνα. Τα διαφορετικά τμήματα των κανόνων RuleML, μαζί με το ρόλο που έχουν και τον τύπο τους είναι τα εξής (παραλείπονται τα γεγονότα σαν τους κανόνες εξαγωγής συμπερασμάτων με κενά σώματα (body), και τα ερωτήματα σαν τους κανόνες εξαγωγής συμπερασμάτων (derivation rules) με κενή κεφαλή (head)) (Εικόνα 5): Εικόνα 5: Τα τμήματα των κανόνων RuleML και οι αντίστοιχοι τύποι Περιορισμοί Ακεραιότητας Οι κανόνες ακεραιότητας, γνωστοί και ως περιορισμοί ακεραιότητας, αποτελούνται από μία λογική πρόταση (σε κάποια λογική γλώσσα, όπως η κατηγορηματική λογική ή η χρονική λογική). Εκφράζουν ισχυρισμούς που πρέπει να διατηρούν την ισχύ τους σε -21-

30 όλες τις δυνατές καταστάσεις και μεταβάσεις του δυναμικού συστήματος για το οποίο ορίζονται (ας σημειωθεί ότι μία επιχείρηση μπορεί να θεωρηθεί ως ένα συγκεκριμένο δυναμικό σύστημα). Η επιβολή των κανόνων περιορισμών μπορεί να εφαρμοστεί με τη βοήθεια των κανόνων Γεγονός-Συνθήκη-Ενέργεια (ECA), των οποίων η συνθήκη αναφέρεται σε αλλαγές καταστάσεων που θα παραβιάσουν τον περιορισμό και των οποίων η ενέργεια αποτελεί κάποιου είδους προειδοποίηση ή επανορθωτική ενέργεια. Παράδειγμα εφαρμογής τους αποτελεί η περίπτωση των DBMS. Κανόνες Εξαγωγής Συμπερασμάτων Οι κανόνες εξαγωγής συμπερασμάτων (derivation rules) αποτελούνται από μία ή περισσότερες συνθήκες και ένα συμπέρασμα, τα οποία είναι και τα δύο τύπου Logical- Formula. Εκφράσεις χωρίς συνθήκη ή συμπέρασμα αποκαλούνται «γεγονότα» ή «περιορισμοί άρνησης» (denial constraints). Για συγκεκριμένους τύπους κανόνων εξαγωγής συμπερασμάτων, όπως οι προτάσεις Horn, τα είδη των συνθηκών και τα συμπεράσματα περιορίζονται ιδιαιτέρως. Στη RuleML, ένα κανόνας εξαγωγής συμπερασμάτων έχει δύο ρόλους, τη συνθήκη _Condition και το συμπέρασμα _Conclusion. Το δεύτερο είναι ένας ατομικός τύπος κατηγορηματικής λογικής, και το πρώτο είναι ένα σύνολο από τέτοιους τύπους ή ένας λογικός τύπος ελεύθερος από ποσότητες με αδύναμη και ισχυρή άρνηση. Στην αδύναμη άρνηση απουσιάζουν οι θετικές πληροφορίες, ενώ στην ισχυρή άρνηση υπάρχουν σαφείς αρνητικές πληροφορίες, όπως φαίνεται και στην Εικόνα 6. Εικόνα 6: Οι κανόνες παραγωγής στη RuleML -22-

31 Αντιδραστικοί Κανόνες Οι αντιδραστικοί κανόνες (reaction rules) αποτελούνται από ένα υποχρεωτικό γεγονός, μία προαιρετική συνθήκη, μία ενέργεια και μία πιθανή μετα-συνθήκη, οι τύποι των ο- ποίων φαίνονται παρακάτω στην Εικόνα 7. Ενώ η συνθήκη ενός αντιδραστικού κανόνα, ακριβώς όπως και η συνθήκη ενός κανόνα παραγωγής, είναι ένας τύπος ελεύθερος από ποσότητες, η μετα-συνθήκη είναι περιορισμένη σε μία σύζευξη πιθανών προτάσεων άρνησης (negated atoms). Η μετα-συνθήκη ενός αντιδραστικού κανόνα είναι είτε ένας ατομικός τύπος, μία άρνηση ενός ατομικού τύπου ή μία σύζευξη και των δύο. Οι αντιδραστικοί κανόνες θεωρούνται το πιο σημαντικό είδος επιχειρησιακών κανόνων [21]. Εικόνα 7: Η γενική ιδέα ενός αντιδραστικού κανόνα στη RuleML Οι αντιδραστικοί κανόνες έχουν ρόλο κλειδί στην οικογένεια γλωσσών της RuleML. Μπορούν να εφαρμοστούν μόνο στην προς-τα-εμπρός κατεύθυνση με φυσικό τρόπο παρατηρώντας και ελέγχοντας γεγονότα ή συνθήκες και εκτελώντας ενέργειες αν και όταν όλα τα γεγονότα ή οι συνθήκες ικανοποιούνται. Υπάρχουν δύο βασικά είδη αντιδραστικών κανόνων: αυτοί που δεν έχουν μετα-συνθήκη, οι οποίοι είναι γνωστοί ως κανόνες της μορφής Γεγονός-Συνθήκη-Ενέργεια (Event-Condition-Action - ECA) και αυτοί που έχουν και μετα-συνθήκη, γνωστοί και ως ECAP κανόνες. Κανόνες Παραγωγής Οι κανόνες παραγωγής (production rules) οι τύποι των οποίων φαίνονται στην Εικόνα

32 Εικόνα 8: Οι παραγωγικοί κανόνες στη RuleML Αυτοί οι κανόνες έχουν γίνει δημοφιλείς στα «Ευφυή Συστήματα» στη δεκαετία του Όμως, σε αντίθεση με τους κανόνες εξαγωγής συμπερασμάτων (derivation rules) όπως η Prolog, οι κανόνες παραγωγής (production rules) στερούνται θεωρητικών θεμελίων και δεν έχουν τυπική σημασιολογία. Αυτό το πρόβλημα οφείλεται μερικώς στο γεγονός ότι τα πρώιμα συστήματα χρησιμοποιούσαν κανόνες παραγωγής /όμοιους με ECA κανόνες, όπου οι κατηγορίες των γεγονότων και των συνθηκών του αριστερού μέρους ενός κανόνα και οι ενέργειες και τα αποτελέσματα του δεξιού μέρους, αναμιγνύονται. Οι κανόνες παραγωγής δεν αναφέρονται ρητά σε γεγονότα, αλλά τα γεγονότα μπορούν να προσομοιωθούν σε ένα σύστημα κανόνων παραγωγής με εξωτερικούς ισχυρισμούς των αντίστοιχων γεγονότων στη μνήμη. Με αυτόν τον τρόπο, οι κανόνες παραγωγής μπορούν να εφαρμόσουν τους αντιδραστικούς κανόνες. Οι κανόνες παραγωγής μπορούν να εφαρμόσουν επίσης κανόνες εξαγωγής συμπερασμάτων (derivation rules). Ένας κανόνας εξαγωγής συμπερασμάτων μπορεί να προσομοιωθεί από έναν κανόνα παραγωγής της μορφής αν- Συνθήκη- τότε- ισχυρισμός- Συμπέρασμα (If-Condition- then- assert- Conclusion), κάνοντας χρήση της ειδικής ε- νέργειας assert, η οποία αλλάζει την κατάσταση σε ένα σύστημα κανόνων παραγωγής προσθέτοντας ένα νέο γεγονός στο σύνολο των διαθέσιμων γεγονότων. Τα περιβάλλοντα κανόνων παραγωγής αποτελούν την τεχνολογία κανόνων που χρησιμοποιείται περισσότερο από κάθε άλλη στη βιομηχανία των επιχειρησιακών κανόνων. Για αυτό αποτελούν και το είδος κανόνων με το οποίο θα ασχοληθούμε περαιτέρω στη συνέχεια αυτής της εργασίας. -24-

33 Κανόνες Μετασχηματισμού Οι κανόνες μετασχηματισμού (transformation rules) αποτελούνται από ένα αντικείμενο το οποίο θα υποστεί το μετασχηματισμό (transformation invoker), μία συνθήκη και ένα αποτέλεσμα μετασχηματισμού, οι τύποι των οποίων φαίνονται στην Εικόνα 9. Εικόνα 9: Οι κανόνες μετασχηματισμού στη RuleML Οι κανόνες μετασχηματισμού εισήχθηκαν για πρώτη φορά στην RuleML Αν και αυτοί οι κανόνες σε γενικές γραμμές κάνουν χρήση της ίδιας σύνταξης με άλλα είδη κανόνων, και ιδιαιτέρως όσον αφορά το τμήμα της συνθήκης (στο σώμα του κανόνα), εισάγουν επιπλέον και νέες δομές. Το στοιχείο <trans> είναι το στοιχείο που βρίσκεται πάνω από όλα τα άλλα σε έναν κανόνα μετασχηματισμού. Ένας κανόνας μετασχηματισμού κάνει χρήση του αντικειμένου του μετασχηματισμού (transformation invoker) _headf (κεφαλή των συναρτήσεων head of functions), προαιρετικά ακολουθούμενο από μία συνθήκη _body, ακολουθούμενη από ένα αποτέλεσμα μετασχηματισμού (transformation return) _foot. Συχνά χρησιμοποιείται η σειρά _headf, _foot, και προαιρετικά _body. Οποιαδήποτε άλλη διάταξη αυτών των ρόλων είναι επίσης επιτρεπτή. Το στοιχείο «<trans> _headf _body _foot </trans>» αντιπροσωπεύει το «αν ισχύει το _body τότε το _headf μετατρέπεται σε _foot». Χωρίς το προαιρετικό τμήμα του _body, ο μετασχηματισμός από το _headf στο _foot εκτελείται χωρίς συνθήκες [30] Σύνταξη Της RuleML Η RuleML είναι μια γλώσσα σήμανσης που αναπαριστά σχεσιακή πληροφορία όπου όλες οι στήλες αναπαριστώνται από φράσεις φυσικής γλώσσας [33]. Έστω η παρακάτω αγγλική πρόταση: "John Doe s spending has been min 900 euro in the previous year." η οποία συντάσσεται ως εξής στη RuleML (Εικόνα 10): -25-

34 <Atom> <Rel>spending</Rel> <Ind>John Doe</Ind> <Ind>min 900 euro</ind> <Ind>previous year</ind> </Atom> Εικόνα 10: Παράδειγμα RuleML κανόνα Η σύνταξη στη RuleML διαφέρει από υπογλώσσα σε υπογλώσσα. Τα βασικά, όμως, στοιχεία της σύνταξής της είναι τα ακόλουθα: Ο λογικός όρος της σταθεράς αναπαρίσταται με την ετικέτα <Ind>: <Ind>John</Ind> Ο λογικός όρος της μεταβλητής αναπαρίσταται με την ετικέτα <Var>: <Var>amount</Var> Ο όρος της πρότασης αναπαρίσταται με την ετικέτα <Atom> και ενσωματώνει τα παρακάτω: Το όνομα της σχέσης που αναπαρίσταται με την ετικέτα <Rel> Οι λοιπές παράμετροι που αναπαρίσταται με διάφορες ετικέτες, όπως <Ind> και <Var>. Ένας κανόνας αναπαριστάται με την ετικέτα <Implies> και ενσωματώνει τα παρακάτω: Το πρώτο στοιχείο παιδί αποτελεί το σώμα (body) του κανόνα και μπορεί να είναι είτε ένα μοναδικό <Atom> ή κάποιο λογικό σύνολό τους. -26-

35 Το δεύτερο στοιχείο παιδί αποτελεί το κεφάλι του κανόνα [32]. Στην Εικόνα 11 φαίνεται ένα λίγο πιο πολύπλοκο παράδειγμα κανόνα RuleML. 4.2 Reaction RuleML Εικόνα 11: Παράδειγμα κανόνας RuleML Η Reaction RuleML ανήκει στην οικογένεια της RuleML και είναι μια γενική, πρακτική, σύνθετη και φιλική προς το χρήστη, βασισμένη στην XML γλώσσα, η οποία αποτελεί και μέσο για την ανταλλαγή αντιδραστικών κανόνων. Ενσωματώνει διαφορετικά είδη κανόνων παραγωγής, ενεργειών, αντιδραστικών κανόνων, σύνθετων γεγονότων και κανόνων χρονικής λογικής στην RuleML σύνταξη κάνοντας χρήση ενός συστήματος βηματικών προεκτάσεων. Συγκεκριμένα, καλύπτονται διαφορετικά είδη αντιδραστικών κανόνων από διάφορους τομείς, όπως γενικοί κανόνες ECA, παραγωγικοί κανόνες με προς τα μπρος κατεύθυνση, KR χρονικές λογικές της μορφής γεγονός /ενέργεια -27-

36 /επεξεργασία με προς τα πίσω κατεύθυνση, επεξεργασία σύνθετων γεγονότων κ.ά. Οι αντιδραστικοί κανόνες μπορούν να καθοριστούν σε σφαιρικό επίπεδο σε συνδυασμό με άλλα είδη κανόνων, όπως οι κανόνες εξαγωγής συμπερασμάτων ή οι περιορισμοί ακεραιότητας, ή εμφωλευμένοι με άλλους αντιδραστικούς κανόνες ή κανόνες εξαγωγής συμπερασμάτων (Εικόνα 12). Εικόνα 12: Οι εφαρμογές της Reaction RuleML Η Reaction RuleML καλύπτει δομές για σύνθετα γεγονότα, ενέργειες και καταστάσεις/ μεταβολές/ μεταβάσεις (μεταβλητές ιδιότητες και μεταβάσεις) για διαφορετικά προγράμματα κανόνων εξαγωγής συμπερασμάτων (derivation rules), κανόνων παραγωγής (production rules) και αντιδραστικών κανόνων (reaction rules) [34] Οι Αρχές Σχεδίασης Της Reaction RuleML Η Reaction RuleML ακολουθεί τις αρχές σχεδίασης της RuleML και καθορίζει νέους τύπους σε μεμονωμένα modules τα οποία προστίθενται στην οικογένεια της RuleML ως επιπλέον στρώματα πάνω από το στρώμα hornlog της RuleML. Η έκδοση 0.2 γενικεύει τη σύνταξη των ρόλων σε μία μορφοποίηση κανόνων πυρήνα η οποία μπορεί να εξειδικευθεί σε διαφορετικές οικογένειες ρόλων σε διαφορετικά είδη κανόνων, όπως οι κανόνες εξαγωγής συμπερασμάτων (derivation rules), οι κανόνες παραγωγής (production rules), οι αντιδραστικοί κανόνες (reaction rules), καθώς επίσης και μικτές μορφοποιήσεις, όπως σειριακοί κανόνες εξαγωγής συμπερασμάτων (derivation), οι οποίοι περιλαμβάνουν τοπικά εμφωλευμένους αντιδραστικούς κανόνες και δομές της μορφής γεγονός/ενέργεια. Τα επίπεδα δεν είναι οργανωμένα σύμφωνα με την πολυπλοκότητα, αλλά προσθέτουν διαφορετική εκφραστικότητα στον πυρήνα της Reaction RuleML για την αναπαράσταση της συμπεριφοράς των (αντ-)ενεργειών και της KR λογικής της μορφής γεγονός/ ενέργεια. -28-

37 Η γλώσσα ικανοποιεί τα τυπικά κριτήρια του καλού σχεδιασμού, όπως ο μινιμαλισμός, η συμμετρία και η ορθογωνικότητα. Ο μινιμαλισμός σημαίνει ότι η Reaction RuleML παρέχει μόνο ένα μικρό σύνολο από τους απαραίτητους τύπους γλωσσών, επιπλέον των υπαρχόντων τύπων της RuleML, δηλαδή η ίδια έννοια δεν μπορεί να εκφραστεί με διαφορετικό τύπο γλώσσας. Η συμμετρία ικανοποιείται εφόσον ο ίδιος τύπος γλώσσας εκφράζει πάντα την ίδια σημασιολογία, ανεξάρτητα από το περιεχόμενο που χρησιμοποιείται. Η ορθογωνικότητα επιτρέπει την εφαρμογή κάθε συνδυασμού των τύπων μιας γλώσσας που έχει νόημα. Επιπλέον, η Reaction RuleML ικανοποιεί τα τυπικά κριτήρια αναπαράστασης της γνώσης, όπως η επιστημολογική επάρκεια (epistemological adequacy), δηλαδή τα διάφορα πεδία εφαρμογής των αντιδραστικών/δραστικών/ παραγωγικών κανόνων και της KR λογικής της μορφής γεγονός/ ενέργεια: «Μία αναπαράσταση καλείται επιστημολογικά επαρκής για κάποιο άτομο ή μηχάνημα, αν μπορεί να χρησιμοποιηθεί πρακτικά για να εκφράσει τα γεγονότα που κάποιος έχει συγκεντρώσει για τον κόσμο.» (McCarthy/Hayes 1969) [35] Οι Βασικές Δομές Της Reaction RuleML Οι βασικές υπογλώσσες της Reaction RuleML φαίνονται στην Εικόνα 13: -29-

38 Εικόνα 13: Οι υπογλώσσες της Reaction RuleML Η Derivation RuleML: Καθορίζει τη σύνταξη και τη σημασιολογία για τους κανόνες εξαγωγής συμπερασμάτων (Derivation) (Εικόνα 14). Εικόνα 14: Οι κανόνες εξαγωγής συμπερασμάτων στη Derivation Η PR RuleML: Καθορίζει τη σύνταξη και τη σημασιολογία για τους κανόνες παραγωγής (Production rules) (Εικόνα 15). Εικόνα 15: Οι παραγωγικοί κανόνες (production rules) στη PR -30-

39 Η Reaction RuleML: Καθορίζει τη σύνταξη και τη σημασιολογία για τους αντιδραστικούς κανόνες (Εικόνα 16). Εικόνα 16: Οι αντιδραστικοί κανόνες στη Reaction RuleML Η KR RuleML: Καθορίζει τη σύνταξη και τη σημασιολογία για τους φορμαλισμούς της KR λογικής της μορφής γεγονός/ενέργεια και για φορμαλισμούς της λογικής κατάστασης, μετάβασης, επεξεργασίας [34]. 4.3 Κανόνες Παραγωγής Στη Reaction RuleML Οι κανόνες παραγωγής αποτελούν μέρος της Reaction RuleML και περιλαμβάνουν συναλλακτικές πράξεις ενημέρωσης (Assert, Retract) και ενέργειες (do) [37]. Η μορφή των παραγωγικών κανόνων καθορίζεται σε ένα XML schema αρχείο. Σε αυτό το αρχείο καθορίζονται τα ακόλουθα Reaction RuleML στοιχεία (elements) και χαρακτηριστικά: Επανακαθορίζεται η έννοια του κανόνα (Rule) προσθέτοντας ενέργειες με τις λέξεις do και elsedo και μετα-συνθήκες με τις λέξεις after και elseafter. Προστίθενται οι στοιχειώδεις πράξεις ενημέρωσης (Assert, Retract). Επανακαθορίζεται η πράξη Assert προσθέτοντας τα Επανακαθορίζεται η πράξη Retract προσθέτοντας τα Οι πράξεις Assert και Retract μπορούν να χρησιμοποιηθούν και στο μέρος της ε- νέργειας (do) ή με τη μορφή των σειριακών κανόνων Horn στο μέρος του σώματος (if) ενός κανόνα παραγωγής (derivation). -31-

40 Στο PR σχήμα επανακαθορίζεται το στοιχείο Rule και προστίθενται κανόνες παραγωγής και μικτοί κανόνες παραγωγής και κανόνες εξαγωγής συμπερασμάτων (derivation/production rules). ( oid?, label?, scope?, quantification?, ( (if, ( (do, after?, else?, elsedo?, elseafter?) (then, else?, elsedo?, elseafter?) ) ) ) ) Επανακαθορίζονται οι κανόνες, έτσι ώστε οι κανόνες παραγωγής (production rules) να έχουν τη μορφή (if, do, after?, else?, elsedo?, elseafter?) <xs:group name="productionrule.content"> <xs:sequence> <xs:group ref="productionrule.content"/> <xs:element ref="do"/> <xs:element ref="after" minoccurs="0"/> <xs:element ref="else" minoccurs="0"/> <xs:element ref="elsedo" minoccurs="0"/> <xs:element ref="elseafter" minoccurs="0"/> </xs:sequence> </xs:group> Προστίθενται τα elsedo και elseafter έτσι ώστε οι κανόνες εξαγωγής συμπερασμάτων (Derivation) να έχουν τη μορφή: (if, then, else?, elsedo?, elseafter?) -32-

41 <xs:group name="derivationrule.content"> <xs:sequence> <xs:group ref="derivationrule.content"/> <xs:element ref="elsedo" minoccurs="0"/> <xs:element ref="elseafter" minoccurs="0"/> </xs:sequence> </xs:group> Ακόμη, στο PR schema επανακαθορίζεται το στοιχείο (element) Assert και προστίθενται τα προαιρετικά για τις συναλλακτικές = normal transactional; default = = yes no; default = no ( oid?, (formula Rulebase Atom Rule Equivalent Entails Forall Equal Neg)*) <xs:attributegroup name="assert.attlist"> <xs:attributegroup ref="assert.attlist"/> <xs:attributegroup ref="safety.attrib"/> <xs:attributegroup ref="all.attrib"/> </xs:attributegroup> Επιπλέον, στο PR σχήμα επανακαθορίζεται το Retract element και προστίθενται τα προαιρετικά για τις συναλλακτικές ενημερώσεις: <xs:attributegroup name="retract.attlist"> <xs:attributegroup ref="retract.attlist"/> <xs:attributegroup ref="safety.attrib"/> <xs:attributegroup ref="all.attrib"/> </xs:attributegroup> -33-

42 Προστίθενται οι πράξεις Assert, Retract, Update έτσι ώστε το σώμα να έχει τη μορφή: (Atom And Or Equal Naf Neg Assert Retract Update) <xs:group name="body.content"> <xs:choice> <xs:group ref="body.content"/> <xs:group ref="update_primitives.content" /> Προστίθενται οι πράξεις Assert, Retract, Update, έτσι ώστε ο τύπος του περιεχομένου του μοντέλου να είναι: (Atom Naf Neg And Or Equal Assert Retract Update) <xs:group name="formula-and-or.content"> <xs:choice> <xs:group ref="formula-and-or.content"/> <xs:group ref="update_primitives.content" /> </xs:choice> </xs:group> Παράδειγμα Ακολουθεί ένα παράδειγμα ενός κανόνα παραγωγής. Στο συγκεκριμένο παράδειγμα υλοποιείται σε RuleML ο κανόνας: (occurs (heartbeat?service),?t) => (assert ( alive?service,?t)) όπου οι μεταβλητές δηλώνονται με το πρόθεμα «?». Η ετικέτα <Assert> χρησιμοποιείται για την προσθήκη γεγονότων και ενεργειών στη βάση δεδομένων. Συνεπώς, με την πρώτη ετικέτα <Assert> προστίθεται ο συγκεκριμένος κανόνας παραγωγής (style="active"). Οι συνθήκες που πυροδοτούν τον κανόνα συγκαταλέγονται στην ετικέτα <if>. Στον κανόνα του παραδείγματος η συνθήκη αποτελείται από μία μοναδική λογική πρόταση <Atom>. Η πρόταση περιλαμβάνει το κατηγόρημα <Rel> occurs, μια έκφραση <Expr>, η οποία με τη σειρά της περιλαμβάνει τη συνάρτηση <Fun> heartbeat που εφαρμόζεται στη μεταβλητή <Var> Service, και τη χρονική στιγμή Τ, που είναι μεταβλητή (<Var>). Έτσι, σε ελεύθερη μετάφραση, συνθήκη του συγκεκριμένου κανόνα -34-

43 αποτελεί το γεγονός μια υπηρεσία (Service) να παρουσιάζει παλμούς (heartbeat) σε μια χρονική στιγμή Τ. Το τμήμα των ενεργειών στεγάζεται στις ετικέτες <do>. Ο συγκεκριμένος κανόνας παράγει μία μόνο ενέργεια. Η ενέργεια αυτή δηλώνεται με την ετικέτα <Assert>, που δηλώνει ότι η λογική πρόταση που ακολουθεί <Atom> θα προστεθεί στη βάση αν ισχύει η συνθήκη. Ο κόμβος <Assert> περιλαμβάνει ακόμη και την ετικέτα <oid> που δηλώνει και το αναγνωριστικό της ενέργειας, ώστε να είναι δυνατή η απευθείας πρόσβαση σε αυτή μέσα στη βάση γνώσης. Το αναγνωριστικό εδώ είναι η σταθερή τιμή <Ind> availability. Η λογική πρόταση περιλαμβάνει το κατηγόρημα <Rel> alive και τις μεταβλητές <Var> Service και Τ. Συνεπώς, η ενέργεια που αποκαλείται «διαθεσιμότητα», αφορά τη διαθεσιμότητα της υπηρεσίας, και εισάγει στη βάση γνώσης του συστήματος τη λογική πρόταση ότι η υπηρεσία (Service) είναι ζωντανή (alive) τη χρονική στιγμή Τ. -35-

44 <Assert> <Rule style="active"> <if> <Atom> <Rel use="value">occurs</rel> <Expr> <Fun use="value">heartbeat</fun> <Var>Service</Var> </Expr> <Var>T</Var> </Atom> </if> <do> <Assert> <oid><ind>availability</ind></oid> <Atom> <Rel>alive</Rel> <Var>Service</Var> <Var>T</Var> </Atom> </Assert> </do> </Rule> </Assert> -36-

45 5 Προγραμματισμός Βασισμένος Σε Κανόνες (Clips) Οι κανόνες παραγωγής (production rules) είναι μια γλώσσα αναπαράστασης γνώσης. Οι γλώσσες αναπαράστασης γνώσης χρησιμοποιούνται σε ευφυή συστήματα. Ένα ευφυές σύστημα αποτελείται από δύο βασικές μονάδες: τη βάση γνώσης (knowledge base) και τη μηχανή εξαγωγής συμπερασμάτων (inference engine) ( Εικόνα 17). Στη βάση γνώσης (ΒΓ) αποθηκεύονται εκφράσεις που αναπαριστούν τη γνώση γύρω από ένα πρόβλημα (ή μάλλον μια κατηγορία προβλημάτων). Αυτές οι εκφράσεις είναι γραμμένες σε κάποια γλώσσα αναπαράστασης γνώσης, όπως η λογική, οι κανόνες παραγωγής, τα πλαίσια κλπ. Η μηχανή εξαγωγής συμπερασμάτων χρησιμοποιεί τη γνώση στη βάση γνώσης με κάποιο τρόπο (μέθοδο) για την εξαγωγή «νέας» γνώσης (συμπερασμάτων), δηλαδή γνώσης που ενυπάρχει στη βάση γνώσης, αλλά δεν είναι εμφανής. Κάθε γλώσσα αναπαράστασης συνοδεύεται και από τον δικό της μηχανισμό εξαγωγής συμπερασμάτων, που είναι κατάλληλος γι αυτήν. Εικόνα 17: Βασικές Μονάδες Έμπειρου Συστήματος -37-

46 Μια πολύ γνωστή κατηγορία ευφυών συστημάτων είναι τα έμπειρα συστήματα (expert systems), τα οποία συνήθως χρησιμοποιούν κανόνες για την αναπαράσταση γνώσης, οπότε και η βάση γνώσης λέγεται βάση κανόνων (rule base). Δηλ. μια βάση κανόνων (ΒΚ) περιέχει ένα αριθμό από κανόνες, που εκφράζουν τη γνώση με την οποία ένας εμπειρογνώμονας σ ένα πεδίο λύνει προβλήματα αυτού του πεδίου. Εκτός όμως από τους κανόνες, ρόλο στην εξαγωγή συμπερασμάτων παίζουν και τα γεγονότα (facts). Τα γεγονότα αντιπροσωπεύουν είτε αρχικά δεδομένα είτε ενδιάμεσα συμπεράσματα κατά τη διαδικασία της παραγωγής συμπερασμάτων και αποθηκεύονται σε μια ξεχωριστή βάση, που ονομάζεται βάση γεγονότων (fact base) ή μνήμη εργασίας (working memory). Από τους κανόνες παραγωγής (production rules) πηγάζει ένα νέο είδος προγραμματισμού, ο λεγόμενος προγραμματισμός βασισμένος σε κανόνες (rule-based programming), όπως από τη λογική πηγάζει ο λογικός προγραμματισμός (logic programming). Υπάρχουν αρκετές γλώσσες ή εργαλεία προγραμματισμού βασισμένα σε κανόνες, όπως OPS5, CLIPS και JESS. Τα εργαλεία αυτά αποτελούν ταυτόχρονα και γενικές γλώσσες προγραμματισμού και μπορούν να υλοποιήσουν και συμβατικά προγράμματα. Κάθε γλώσσα αναπαράστασης προσδιορίζεται από δύο βασικά στοιχεία, τη σύνταξή της και τη σημασιολογία (semantics) της. Επίσης, συνοδεύεται και από ένα τρίτο στοιχείο, τη μηχανή εξαγωγής συμπερασμάτων. 5.1 Σύνταξη Και Σημασιολογία Η βασική μορφή ενός παραγωγικού κανόνα είναι η ακόλουθη: if <conditions> then <actions>/<conclusions> Υπάρχουν δηλαδή δύο τμήματα. Το πρώτο (τμήμα if) αποτελείται από έναν αριθμό συνθηκών ή υποθέσεων και το δεύτερο (τμήμα then) από μία ή περισσότερες ενέργειες ή συμπεράσματα. Η σημασιολογία ενός τέτοιου κανόνα είναι ότι, αν οι συνθήκες ικανοποιούνται (δηλ. αληθεύουν), τότε εκτελούνται οι ενέργειες ή εξάγονται τα συμπεράσματα. Γενικά υπάρχουν δύο μεγάλες τέτοιες κατηγορίες υλοποιήσεων αυτής της γενικής μορφής. Στη μία, οι σχέσεις μεταξύ κανόνων και γεγονότων είναι προκαθορισμένες και έτσι μια βάση κανόνων μπορεί να παρασταθεί σαν ένα δίκτυο που παριστάνει τις αλληλεξαρτήσεις μεταξύ κανόνων και γεγονότων. Αυτές οι γλώσσες δε χρησιμοποιούν με- -38-

47 ταβλητές στις συνθήκες. Η δεύτερη κατηγορία στηρίζεται στην έννοια του ταιριάσματος προτύπων (pattern matching). Οι σχέσεις μεταξύ κανόνων και γεγονότων σ αυτές τις υλοποιήσεις δεν είναι προκαθορισμένες, αλλά δημιουργούνται κατά τη διαδικασία εξαγωγής συμπερασμάτων και επιπλέον γίνεται χρήση μεταβλητών στις συνθήκες. Οι γλώσσες της δεύτερης αυτής κατηγορίας είναι πιο ευέλικτες, μεγαλύτερων δυνατοτήτων, από αυτές της πρώτης, και καταλληλότερες για προγραμματισμό. Γι αυτό και ό- λες οι γνωστές γλώσσες προγραμματισμού με κανόνες ακολουθούν αυτό το πρότυπο. Σ αυτόν τον τύπο γλωσσών, κάθε συνθήκη ανήκει σε κάποιο πρότυπο (pattern) ή με άλλα λόγια υλοποιεί κάποιο πρότυπο. Ένα πρότυπο είναι μια n-άδα οντοτήτων (ή στοιχείων) που παριστάνουν αντικείμενα, έννοιες, σχέσεις, ιδιότητες κλπ και αποτελεί σημαντική παράμετρο στην αναπαράσταση της γνώσης του πεδίου ενός προβλήματος. Συνήθως ένα πρότυπο χαρακτηρίζεται από το πρώτο στοιχείο του. Ο συλλογισμός για την εξαγωγή συμπερασμάτων στηρίζεται στη συσχέτιση στιγμιοτύπων των προτύπων αυτών. Στη συνέχεια, παρατίθεται η σύνταξη μιας τέτοιας γλώσσας: <rule> := if <conditions> then <conclusions> <conditions> := <condition> {and <condition>}* <conclusions> := <conclusion> {and <conclusion>}* <condition> := <predicate> <pattern> <conclusion> := <action> < pattern > <pattern> := ({<variable>/<constant>}*) <predicate> := is/isnot/greaterthan/lessthan/ <action> := assert <fact> := ({<constant>}*) Ένα παράδειγμα κανόνα που ακολουθεί την παραπάνω σύνταξη είναι το εξής: if is(person?name?age) and greaterthan(?age 12) and lessthan(?age 20) then assert(teenager?name?age) Να σημειωθεί ότι οι μεταβλητές, για να ξεχωρίζουν, έχουν το «?» σαν πρώτο χαρακτήρα. Φυσικά υπάρχουν διάφορες παραλλαγές της παραπάνω σύνταξης. Π.χ. μπορεί -39-

48 να υπάρχουν και τα λογικά συνδετικά or και not στις συνθήκες ή εκτός από το assert να υπάρχει και άλλη ενέργεια, π.χ. retract. 5.2 Ταίριασμα Προτύπων Το ταίριασμα προτύπων είναι μια βασική διαδικασία στο βασισμένο σε κανόνες προγραμματισμό. Η διαδικασία αυτή συνίσταται στον προσδιορισμό των γεγονότων από τη βάση γεγονότων, που ταιριάζουν με μια συνθήκη, δηλαδή στο αν υπάρχουν τιμές για τις μεταβλητές της συνθήκης (που ονομάζονται δεσμεύσεις- binding) που κάνουν ταυτόσημη τη συνθήκη και κάποιο(α) γεγονός(ότα). Ένας ορισμός της διαδικασίας αυτής είναι ο εξής: «Ένα πρότυπο (pattern) ταιριάζει με ένα γεγονός αν υπάρχουν δεσμεύσεις (bindings) για τις μεταβλητές στο πρότυπο τέτοιες που, αν αντικατασταθούν οι μεταβλητές με τις δεσμευμένες τιμές (προσδέσεις) τους, το γεγονός και το πρότυπο γίνονται συντακτικά ταυτόσημα.» Έστω η παρακάτω βάση γεγονότων: ΒΓ={(Yannis Kostas Maria), (Giorgos Kostas Eleni), (Petros Pavlos Maria)} και έστω το παρακάτω πρότυπο (συνθήκη): (?name Kostas Maria) Τότε, μπορεί εύκολα να παρατηρηθεί ότι το πρότυπο αυτό «ταιριάζει» με το πρώτο γεγονός «(Yannis Kostas Maria)», διότι υπάρχει πρόσδεση για τη μεταβλητή «?name»: { (?name Yannis) } οπότε αντικαθιστώντας στο πρότυπο την τιμή «Yannis» στη θέση της μεταβλητής «?name» προκύπτει: (Yannis Kostas Maria) που αποτελεί ένα στιγμιότυπο (instance) ή μια στιγμιοτυποποίηση (instantiation) του προτύπου και είναι ταυτόσημο με το πρώτο γεγονός της βάσης γνώσης. Παρομοίως, για το παρακάτω πρότυπο: (?name Kostas?moth) υπάρχουν οι παρακάτω δεσμεύσεις: { ((?name.yannis), (?moth.maria)) -40-

49 ((?name.giorgos),(?moth.eleni)) } και τα παρακάτω γεγονότα της βάσης ΒΓ με τα οποία ταιριάζει το πρότυπο: (Yannis Kostas Maria) (Giorgos Kostas Eleni). 5.3 Διαδικασία Εξαγωγής Συμπερασμάτων Υπάρχουν δύο μέθοδοι εξαγωγής συμπερασμάτων στο βασισμένο σε κανόνες προγραμματισμό, η κατευθυνόμενη από το στόχο (goal driven) ή ανάστροφη αλυσίδωση (backward chaining) και η κατευθυνόμενη από τα δεδομένα (data driven) ή ορθή αλυσίδωση (forward chaining). Στην ανάστροφη αλυσίδωση, η μηχανή εξαγωγής συμπερασμάτων ξεκινά από το συμπέρασμα ενός κανόνα που ταιριάζει με το στόχο που πρέπει να επιτευχθεί και προχωρά στη διερεύνηση της αλήθειας των υποθέσεων. Αν οι υποθέσεις είναι αληθείς, τότε εξάγεται το συμπέρασμα. Αν η αλήθεια ή το ψεύδος κάποιων (ή όλων των) υποθέσεων είναι άγνωστα, τότε αυτές γίνονται υπο-στόχοι, αναζητούνται κανόνες με αυτούς ως συμπεράσματα κ.ο.κ. έως ότου βρεθούν αληθείς συνθήκες (δηλαδή συνθήκες που ταιριάζουν με γεγονότα της ΒΓ) ή σε κάποιες ψευδείς, οπότε σταματά η διαδικασία. Στην ορθή αλυσίδωση, η μηχανή εξαγωγής συμπερασμάτων ξεκινά από τις υποθέσεις ενός κανόνα και αν είναι αληθείς προχωρά στην εξαγωγή του συμπεράσματός του. Αυτό συνεχίζεται μέχρις ότου εξαχθεί το ζητούμενο συμπέρασμα. Οι γνωστές γλώσσες προγραμματισμού βάσει κανόνων ακολουθούν κατά βάση αυτή τη μέθοδο. Η διαδικασία εξαγωγής συμπερασμάτων έχει ως εξής: 1. Αρχικοποίηση της βάσης γεγονότων 2. Εύρεση κανόνων που ικανοποιούνται (σύνολο σύγκρουσης) 3. Επιλογή ενός κανόνα 4. Εκτίμηση του κανόνα 5. Ενημέρωση της ΜΕ 6. Αν κατάσταση λύσης, σταμάτα. Αλλιώς, πήγαινε στο βήμα 2. και σχηματικά παριστάνεται στην Εικόνα 18. Τα βήματα 2-5 αποτελούν ένα κύκλο, που ονομάζεται κύκλος επιλογής-εκτέλεσης (select-execute cycle). Κατ αρχήν εισάγο- -41-

50 νται στη ΒΓ τα δεδομένα του προβλήματος (δηλαδή τα γνωστά γεγονότα). Στη συνέχεια (βήμα 2) βρίσκονται οι κανόνες των οποίων όλες οι συνθήκες/υποθέσεις ικανοποιούνται, δηλ. ταιριάζουν με γεγονότα στη ΒΓ. Εδώ συνήθως προκύπτουν περισσότεροι του ενός κανόνες, που δημιουργούν ένα σύνολο σύγκρουσης (conflict set), με την έννοια ότι «συγκρούονται» για το ποιος θα επιλεγεί. Από το σύνολο σύγκρουσης επιλέγεται (βήμα 3) ένας κανόνας, ο οποίος και «πυροδοτείται», όπως λέγεται, ή «ενεργοποιείται» (βήμα 4) και παράγει ένα (ενδιάμεσο συνήθως) συμπέρασμα, το οποίο και εισάγεται στη ΒΓ (βήμα 5). Αν αυτό αποτελεί τη ζητούμενη λύση (απάντηση), τότε σταματά η διαδικασία, αλλιώς συνεχίζει από το βήμα 2. Εικόνα 18: Διαδικασία εξαγωγής συμπερασμάτων 5.4 Δημιουργία Συνόλου Σύγκρουσης Ακολουθεί ένα παράδειγμα, που απεικονίζει πώς δημιουργείται ένα σύνολο σύγκρουσης. Έστω η ΒΓ της Εικόνα 19. Εικόνα 19: Βάση κανόνων παραδείγματος Έστω ότι ένας από τους κανόνες της ΒΚ είναι αυτός που φαίνεται στην Εικόνα 20. Για τον έλεγχο αν ο κανόνας αυτός είναι υποψήφιος για πυροδότηση, ή με άλλα λόγια αν κάποια στιγμιότυπά του είναι κανόνες υποψήφιοι για πυροδότηση, αν ανήκουν, δηλαδή, στο σύνολο σύγκρουσης, ακολουθείται η παρακάτω διαδικασία. Αρχικά γίνεται έλεγχος για το αν υπάρχουν στιγμιοτυποποιήσεις της πρώτης συνθήκης. Πράγματι, η πρώτη συνθήκη ταιριάζει με τα εξής γεγονότα της ΒΓ: -42-

51 Εικόνα 20: Κανόνας παραδείγματος (person Yannis Kostas Maria), (person Petros Pavlos Eleni), (person Giorgos Kostas Maria) με τις εξής δεσμεύσεις των μεταβλητών: { ((?name1.yannis), (?fath1.kostas), (?moth1.maria)) ((?name1.petros), (?fath1.pavlos), (?moth1.eleni)) ((?name1.giorgos), (?fath1.kostas), (?moth1.maria)) } Ομοίως, η δεύτερη συνθήκη ταιριάζει με τα εξής γεγονότα της ΒΓ: (person Yannis Kostas Maria), (person Petros Pavlos Eleni), (person Giorgos Kostas Maria) με τις εξής δεσμεύσεις των μεταβλητών: { ((?name2.yannis), (?fath2.kostas), (?moth2.maria)) ((?name2.petros), (?fath2.pavlos), (?moth2.eleni)) ((?name2.giorgos), (?fath2.kostas), (?moth2.maria)) } Οι παραπάνω δύο συνθήκες δεν έχουν κοινές μεταβλητές και επομένως η διαδικασία ταιριάσματος της μιας δε σχετίζεται με αυτή της άλλης. Οι επόμενες συνθήκες, ό- μως, έχουν μεταβλητές που υπάρχουν όλες και στις δύο αυτές συνθήκες. Επειδή η κάθε μια από τις δύο αυτές συνθήκες έχει τρία στιγμιότυπα (τρία γεγονότα δηλαδή με τα ο- ποία ταιριάζει), υπάρχουν εννέα συνδυασμοί τους. Για καθέναν από τους συνδυασμούς αυτούς παράγεται και ένας κανόνας χωρίς μεταβλητές, που ονομάζεται στιγμιότυπο (instance) του αρχικού κανόνα. Δηλαδή προκύπτουν εννέα κανόνες-στιγμιότυπα. Π.χ. για τους συνδυασμούς (α) της πρώτης ομάδας δεσμεύσεων της πρώτης συνθήκης με την τρίτη ομάδα δεσμεύσεων της δεύτερης συνθήκης και (β) της τρίτης ομάδας δεσμεύσεων -43-

52 της πρώτης συνθήκης με την πρώτη ομάδα δεσμεύσεων της δεύτερης συνθήκης προκύπτουν οι παρακάτω κανόνες: if is(person Yannis Kostas Maria) and is(person Giorgos Kostas Maria) and is(equal Kostas Kostas) and is(equal Maria Maria) and isnot(equal Yannis Giorgos) then assert(brother Yannis Giorgos) if is(person Giorgos Kostas Maria) and is(person Yannis Kostas Maria) and is(equal Kostas Kostas) and is(equal Maria Maria) and isnot(equal Giorgos Yannis) then assert(brother Giorgos Yannis ) Αυτοί οι κανόνες είναι και οι μόνοι από τους εννέα οι συνθήκες των οποίων ικανοποιούνται και επομένως αποτελούν στοιχεία του συνόλου σύγκρουσης. 5.5 Clips Και Προγραμματισμός Με Κανόνες To CLIPS (C Language Integrated Production System) είναι ένα περιβάλλον που αναπτύχθηκε από τη NASA και αποτελεί μια χαμηλού κόστους πλατφόρμα ανάπτυξης έ- μπειρων συστημάτων, αντικαθιστώντας τα ήδη υπάρχοντα συστήματα τα οποία βασίζονταν στη γλώσσα LlSP και προσφέρει δυνατότητες για προγραμματισμό με κανόνες, συναρτήσεις και αντικείμενα. Με το CLIPS επομένως είναι δυνατόν να υλοποιηθούν εφαρμογές που βασίζονται σε τεχνικές ευρετικού, διαδικαστικού αλλά και αντικειμενοστραφούς προγραμματισμού. Το CLIPS διαθέτει μια αντικειμενοστρεφή γλώσσα προγραμματισμού, που ονομάζεται COOL (CLIPS Object-Oriented Language). Η τελευταία έκδοση του CLIPS είναι η 6.3. Είναι σημαντικό να σημειωθεί επιπρόσθετα ότι οι διάφορες εκδόσεις του είναι διαθέσιμες στο διαδίκτυο με τη μορφή ανοικτού κώδικα γραμμένες σε γλώσσα C. -44-

53 5.6 Ιστορία Του Clips Η εμφάνιση του Clips χρονολογείται στο 1984 στο Διαστημικό Κέντρο Johnson της NASA. Η ανάγκη για ανάπτυξη εργαλείων ευφυών πρακτόρων χαμηλού κόστους, μεγάλης διαθεσιμότητας και υψηλής διαλειτουργικότητας οδήγησε στην ανάπτυξη του CLIPS, που βασιζόταν στη συμβατική γλώσσα C. Η αρχική έκδοση της CLIPS αναπτύχθηκε το φθινόπωρο του 1985 μέσα σε διάστημα λίγο μεγαλύτερο των δύο μηνών. Ιδιαίτερη προσοχή δόθηκε στη συμβατότητα του εργαλείου με τα έμπειρα συστήματα που αναπτύσσονταν εκείνη την εποχή. Ήδη από την έκδοση 1.0 έγινε προφανές ότι η CLIPS θα ήταν ένα χαμηλού κόστους εργαλείο έμπειρων συστημάτων, ιδανικό για σκοπούς εκπαίδευσης. Φυσικά ακολούθησαν περαιτέρω βελτιώσεις του εργαλείου. Η έκδοση 4.2 της CLIPS, που κυκλοφόρησε το 1988, αποτελούσε μία εξολοκλήρου επανεγγραφή της CLIPS για διάσπαση του κώδικα σε μονάδες. Επίσης, σε αυτήν την έκδοση συμπεριλαμβάνονταν ένα εγχειρίδιο, που παρείχε αναλυτική περιγραφή της αρχιτεκτονικής του λογισμικού της CLIPS και ένα βοηθητικό πρόγραμμα για την επαλήθευση και επικύρωση προγραμμάτων βασισμένων σε κανόνες. Αρχικά, η βασική μεθοδολογία αναπαράστασης της CLIPS αποτελούσε μία γλώσσα κανόνων προς-τα-μπρος αλυσίδας (forward chaining), η οποία βασιζόταν στον αλγόριθμο Rete (για αυτό και το Σύστημα Παραγωγής αποτελεί μέρος του ακρωνυμίου CLIPS). Η έκδοση 5.0 της CLIPS, που κυκλοφόρησε την άνοιξη του 1991, εισήγαγε δύο νέα παραδείγματα προγραμματισμού: Διαδικαστικός προγραμματισμός, όπως συναντάται σε γλώσσες όπως η C και η Ada, και Αντικειμενοστραφής προγραμματισμός, όπως σε γλώσσες σαν την Common Lisp Object System και την Smaltalk. Η αντικειμενοστραφής γλώσσα προγραμματισμού που παρέχονταν με την CLIPS ονομαζόταν CLIPS Object-Oriented Language (COOL). Η έκδοση 6.2, που κυκλοφόρησε την άνοιξη του 2002, πρόσθεσε υποστήριξη για πολλαπλά περιβάλλοντα. Αξίζει να σημειωθεί πως σήμερα είναι διαθέσιμη και η έκδοση 6.3 Beta για τα Windows. Η CLIPS πλέον είναι ένα λογισμικό που διατίθεται και χρησιμοποιείται ανεξάρτητα από τη NASA. -45-

54 Λόγο της φορητότητας, της επεκτασιμότητας, των δυνατοτήτων και του χαμηλού κόστους της, το σύστημα CLIPS τυγχάνει ευρείας αποδοχής από κυβερνήσεις, βιομηχανίες και ακαδημίες. Η ανάπτυξη του CLIPS συντέλεσε στη βελτίωση της ικανότητας διανομής της τεχνολογίας έμπειρων συστημάτων, σε δημόσιους και ιδιωτικούς τομείς για ένα μεγάλο εύρος εφαρμογών και διάφορα υπολογιστικά περιβάλλοντα [39] [40] [41]. 5.7 Δομή Του Clips Το CLIPS μπορεί να θεωρηθεί σαν ένα γενικό εργαλείο ανάπτυξης συστημάτων λογισμικού. Ανάμεσα στα άλλα, τo CLIPS εμπεριέχει ένα κέλυφος έμπειρου συστήματος, και επομένως διαθέτει τα βασικά μέρη ενός έμπειρου συστήματος (Εικόνα 21): Εικόνα 21: Δομή Κελύφους ΕΣ του CLIPS Λίστα γεγονότων (fact-list). Είναι ο χώρος στον οποίο αποθηκεύονται τα γεγονότα (facts), τόσο εκείνα που ορίζονται κατά την εκκίνηση του συστήματος (δεδομένα ή αρχικές συνθήκες), όσο και εκείνα που δημιουργούνται κατά την εκτέλεση του. Κάθε γεγονός παίρνει και ένα χαρακτηριστικό ακέραιο αριθμό με την καταχώρησή του στη λίστα, που το χαρακτηρίζει μοναδικά. Βάση κανόνων (rule-base). Αποτελείται από ένα σύνολο κανόνων, που αναπαριστούν γνώση για την εξαγωγή συμπερασμάτων. Οι κανόνες είναι συνήθως -46-

55 αποθηκευμένοι σε κάποιο αρχείο απλού κειμένου, το οποίο φορτώνεται στο σύστημα. Μηχανισμός εξαγωγής συμπερασμάτων (inference engine). Είναι ο μηχανισμός με τη βοήθεια του οποίου χρησιμοποιούνται οι κανόνες για εξαγωγή συμπερασμάτων. Ο μηχανισμός αυτός υλοποιεί την ορθή αλυσίδωση και προσφέρει αρκετές στρατηγικές επίλυσης συγκρούσεων (conflict resolution strategies). Ατζέντα (agenda). Είναι μια στοίβα στην οποία αποθηκεύονται κάθε φορά οι υποψήφιοι για πυροδότηση κανόνες, δηλ. το σύνολο σύγκρουσης (conflict set). Η τοποθέτηση των κανόνων γίνεται με βάση την ακολουθούμενη στρατηγική επίλυσης συγκρούσεων, οπότε επιλέγεται κάθε φορά ο ευρισκόμενος στην κορυφή της στοίβας. 5.8 Το Περιβάλλον Του Clips Το περιβάλλον του CLIPS εκκινεί σε περιβάλλον MS-Windows με την εκτέλεση του αρχείου CLIPSWIN.EXE. Αμέσως μετά εμφανίζεται στην οθόνη το γραφικό περιβάλλον της γλώσσας, όπως φαίνεται στην Εικόνα 22, όπου είναι ανοικτά όλα τα παράθυρα του περιβάλλοντος. Εικόνα 22: Το περιβάλλον του CLIPS

56 Στο Dialog Window γίνεται η εκτέλεση των προγραμμάτων και εμφανίζονται τα αποτελέσματα. Στο παράθυρο Facts εμφανίζονται τα περιεχόμενα της λίστας γεγονότων, ενώ στο Agenda τα περιεχόμενα της ατζέντας. Αυτά είναι και τα σπουδαιότερα παράθυρα. Για την εκτέλεση ενός υπάρχοντος προγράμματος CLlPS επιλέγεται από το μενού File το Load και μέσα από το σχετικό παράθυρο επιλέγεται το επιθυμητό αρχείο που συνήθως έχει την κατάληξη *.clp. Για να εκτελεστεί κάποιο πρόγραμμα γραμμένο σε CLIPS κατ αρχήν επιλέγεται και εκτελείται η εντολή Reset από το μενού της επιλογής Execution του CLIPS. Η ε- ντολή αυτή καταχωρεί στη μνήμη όλα τα γεγονότα τα οποία περιγράφονται στο αρχείο που φορτώθηκε. Στη συνέχεια, επιλέγεται και εκτελείται η εντολή Run από το ίδιο μενού. Έξοδος από το CLIPS επιτυγχάνεται με χρήση της εντολής exit : CLIPS> (exit) Οι παρενθέσεις προσδιορίζουν την exit ως εντολή και τη διαχωρίζουν από το σύμβολο exit, που δεν είναι σε παρενθέσεις και έχει εντελώς διαφορετική σημασία. 5.9 Ο Κύκλος Εξαγωγής Συμπερασμάτων Ένα πρόγραμμα στο CLlPS είναι ένα σύνολο από κανόνες και γεγονότα και η εκτέλεση του συνίσταται σε μια ακολουθία από πυροδοτήσεις κανόνων, των οποίων οι συνθήκες ικανοποιούνται. Η ικανοποίηση των συνθηκών γίνεται μέσω ταυτοποίησης τους με τα γεγονότα που υπάρχουν στη λίστα γεγονότων. Η εκτέλεση τερματίζεται όταν δεν υπάρχουν άλλοι κανόνες προς πυροδότηση ή όταν κληθεί συγκεκριμένη εντολή τερματισμού. Ο κύκλος λειτουργίας μιας εφαρμογής στο εργαλείο αυτό είναι ο τυπικός κύκλος λειτουργίας ενός συστήματος παραγωγής : 1. Εύρεση όλων των κανόνων των οποίων οι συνθήκες ικανοποιούνται και προσθήκη τους στην ατζέντα (agenda - conflict set). 2. Αν η ατζέντα είναι κενή ή ο μέγιστος αριθμός πυροδοτήσεων έχει συμπληρωθεί, τότε η εκτέλεση τερματίζεται. 3. Διάταξη των κανόνων στην ατζέντα με βάση τη στρατηγική επίλυσης συγκρούσεων (conflict resolution strategy). 4. Πυροδότηση του πρώτου κανόνα στην ατζέντα. 5. Επιστροφή στο βήμα 1, εκτός αν υπάρχει εντολή τερματισμού (halt). Το CLIPS ακολουθεί την ορθή αλυσίδωση σαν μέθοδο εξαγωγής συμπερασμάτων. -48-

57 5.10 Τα Βασικά Στοιχεία Του Clips Τα CLIPS διαθέτει μια σειρά από στοιχεία κατάλληλα για την υλοποίηση έμπειρων συστημάτων που αφορούν τα δεδομένα, τις μεταβλητές, τους κανόνες, τις συναρτήσεις κλπ. Η σύνταξη που χρησιμοποιεί το CLIPS είναι επηρεασμένη από αυτή της γλώσσας LISP, χρησιμοποιεί δηλαδή σα βάση διαχωρισμού των δομικών μονάδων τις παρενθέσεις. Ο ορισμός των διαφόρων στοιχείων του CLIPS θυμίζει ορισμό συναρτήσεων της LISP Τύποι Δεδομένων Οι βασικοί τύποι δεδομένων που υποστηρίζονται από το CLIPS είναι: Σύμβολα (symbols): Οποιαδήποτε ακολουθία εκτυπώσιμων χαρακτήρων που δεν ξεκινά από <, I, &, (, ), $,?, +, - και δεν περιέχει κανένα από τους <,, &, (, ), ;. Αλφαριθμητικά (strings): Οποιαδήποτε ακολουθία εκτυπώσιμων χαρακτήρων ανάμεσα σε διπλά εισαγωγικά. Π.χ. "This is a program", 2A Αριθμοί (numbers): 23, -23, +23 (integers) 23.34, +23.0, 23e4, -23.2e-5 (floats) Σχόλια: από ";" μέχρι το τέλος της γραμμής Μεταβλητές Οι μεταβλητές που μπορούν να χρησιμοποιηθούν στο CLIPS μπορεί να είναι: Μονότιμες (singlevalue) : ξεκινούν με? (Π.χ.?x,?day). Τιμές: 32, flight34, mary, a12 Πολλαπλών τιμών (multivalue) : ξεκινούν με $?. Π.χ. $?days. Τιμές : ( ), (mon tues wedn) Καθολικές μεταβλητές (global variables) Είναι προσπελάσιμες από παντού. Ορίζονται με τη δήλωση defglobal: (defglobal?*<σύμβολο>* = <έκφραση>) Π.χ. (defglobal?*x* = 0) Τοπικές μεταβλητές (local variables) Είναι προσπελάσιμες μόνο μέσα από τη δομή (π.χ. κανόνας, συνάρτηση) όπου χρησιμοποιούνται. Οι μεταβλητές χρησιμοποιούνται και στις συνθήκες και στις ενέργειες των κανόνων και φυσικά στις συναρτήσεις χρήστη και είναι συνήθως τοπικές μεταβλητές. Τιμές παίρνουν οι μεταβλητές που βρίσκονται στις συνθήκες ενός κανόνα μέσω της διαδικα- -49-

58 σίας του ταιριάσματος/ενοποίησης (matching) με γεγονότα από τη λίστα γεγονότων. Οι τιμές αυτές αποδίδονται στις ενέργειες των κανόνων είτε μέσω εκτυπώσεων στην οθόνη είτε μέσω εισαγωγής νέων γεγονότων Γεγονότα Τα γεγονότα (facts) είναι αποθηκευμένα στη λίστα γεγονότων, που αντιστοιχεί στη μνήμη εργασίας των συστημάτων παραγωγής. Η λίστα αυτή συνήθως αλλάζει περιεχόμενο, διότι κατά τη διάρκεια εκτέλεσης ενός προγράμματος εισάγονται νέα και διαγράφονται παλιά γεγονότα. Κάθε γεγονός στη λίστα έχει ένα μοναδικό αριθμό που το χαρακτηρίζει, που ονομάζεται δείκτης του γεγονότος (fact index). Ο δείκτης αυτός αποδίδεται από το σύστημα κατά τη δημιουργία του γεγονότος, και αποτελεί και μια ετικέτα που δείχνει την παλαιότητά του. Η διαγραφή κάποιου γεγονότος γίνεται με βάση το δείκτη του. Τα γεγονότα αποτελούν τα δεδομένα του προβλήματος που επιλύει ένα πρόγραμμα. Συνθέτουν έτσι την αρχική γνώση στην οποία βασίζεται το πρόγραμμα ώστε να εξάγει συμπεράσματα. Τα γεγονότα δεν περιέχουν μεταβλητές και μπορεί να είναι δύο τύπων : Διατεταγμένα: Λίστες από τιμές, που παριστάνουν σχετικά απλά γεγονότα, όπου η σειρά των τιμών παίζει ρόλο. Π.χ. (flight 734 DELTA), (person George), (class A1 1995). Σε κάθε τέτοιο γεγονός υπονοείται μια σημασιολογία για κάθε θέση στη λίστα. Π.χ. αν κάποιος θελήσει να εισάγει μια σειρά από γεγονότα που αφορούν αεροπορικές πτήσεις και θέλει να υπάρχουν πέντε στοιχεία σ αυτά, π.χ. η λέξη flight, ο αριθμός πτήσης, ο τόπος αναχώρησης, ο τόπος προορισμού και η εταιρία, τότε υπονοεί την παρακάτω δομή: (flight <αριθμός-πτήσης> <τόπος-αναχώρησης> <προορισμός> <εταιρία>) και τα αντίστοιχα γεγονότα πρέπει να την ακολουθούν, αλλιώς θα προκύπτουν προβλήματα στην επίλυση του προβλήματος. Μη διατεταγμένα ή προτύπου: Ονοματοποιημένες λίστες, που αποτελούνται από λίστες δύο στοιχείων, και παριστάνουν πιο σύνθετα γεγονότα. Συνήθως οι λίστες αυτές των δύο στοιχείων παριστάνουν μια δυάδα «ιδιότητα-τιμή». Π.χ. (student (age 19) (year a) (sex male)) Τα γεγονότα αυτά σχετίζονται με αντίστοιχο πρότυπο γεγονότων (fact template), που ορίζει το πλήθος και τον τύπο των λιστών που θα έχουν τα γεγονότα. -50-

59 Τα γεγονότα προτύπου μπορούν να έχουν λιγότερες λίστες από ότι το πρότυπο, δηλαδή δεν πειράζει να λείπουν ζεύγη «ιδιότητα-τιμή», γι αυτό και ονομάζονται μη διατεταγμένα. Οπότε, δεν παίζει ρόλο η ακριβής θέση μιας λίστας, αλλά το όνομα της ιδιότητας που έχει η λίστα Κανόνες Οι κανόνες (rules) είναι δομές της μορφής: if (συνθήκες) then (ενέργειες) που αναπαριστούν ευρετική γνώση (heuristic knowledge) στη βάση γνώσης. Οι κανόνες βρίσκονται στη βάση κανόνων της μνήμης απ όπου μετακινούνται στη στοίβα κανόνων (agenda) όταν όλες οι συνθήκες τους ικανοποιούνται, δηλαδή οι συνθήκες τους ενοποιούνται (match) με γεγονότα στη λίστα γεγονότων. Στη στοίβα κανόνων μπαίνουν στην κατάλληλη θέση (σειρά) με βάση την προτεραιότητά τους και τη στρατηγική επίλυσης συγκρούσεων που ακολουθείται. Επειδή οι κανόνες περιέχουν μεταβλητές, το ταίριασμα των συνθηκών τους με γεγονότα από τη λίστα γεγονότων μπορεί να γίνεται με διαφορετικές τιμές κάθε φορά. Είναι πιθανό έτσι για ένα κανόνα CLIPS να υπάρχουν ένα ή περισσότερα στιγμιότυπα του κανόνα, αυτά που προκύπτουν αν αντικατασταθούν οι μεταβλητές με τις τιμές που προκύπτουν από το ταίριασμα. Αυτά τα στιγμιότυπα των κανόνων είναι που εισέρχονται στη στοίβα κανόνων. Η διαδικασία του ταιριάσματος έχει σα στόχο την εύρεση των γεγονότων, αν υπάρχουν, με τα οποία μπορεί να ταυτοποιηθεί μια συνθήκη, δηλαδή να βρεθούν τιμές για τις μεταβλητές που τα κάνουν ταυτόσημα (εκτός αν η συνθήκη δεν έχει μεταβλητές και είναι ταυτόσημη). Παρακάτω δίνονται κάποια παραδείγματα (Εικόνα 23 καιεικόνα 24) που αποσαφηνίζουν τη διαδικασία ταυτοποίησης του CLlPS. Εικόνα 23: Παραδείγματα ταιριάσματος συνθηκών-γεγονότων -51-

60 Εικόνα 24: Παραδείγματα μη ταιριάσματος συνθηκών-γεγονότων. Ιδιαίτερη προσοχή πρέπει να δίνεται όταν στις συνθήκες ενός κανόνα εμφανίζονται μεταβλητές πολλαπλών τιμών Συναρτήσεις Οι συναρτήσεις (functions) αποτελούν τμήματα προγράμματος για την αναπαράσταση διαδικαστικής γνώσης (procedural knowledge). Συνήθως επιστρέφουν κάποια τιμή, ως πλευρικό αποτέλεσμα Ορισμός Και Διαχείριση Στοιχείων Του Clips Διατεταγμένα Γεγονότα Οι βασικές εντολές διαχείρισης των γεγονότων είναι: assert: Εισαγωγή ενός γεγονότος. Σύνταξη: (assert <fact>) Παράδειγμα: (assert (water-tank empty)) deffacts: Εισαγωγή πολλών γεγονότων, ως ομάδα με κάποιο όνομα. Σύνταξη: (deffacts <όνομα> [ <σχόλιο> ] <fact1> <fact2> <factn>) -52-

61 Παράδειγμα: (deffacts pref-cars (car AlfaRomeo nai idrayliki 22910) (car AudiA nai idrayliki 25700) (car FordMondeo nai idrayliki 19289) (car NissanPrimera oxi idrayliki 17990) (car VWPassat oxi idrayliki 18910)) retract: Διαγραφή ενός ή όλων των γεγονότων. Σύνταξη: retract <fact-index>, όπου <fact-index> είναι ο δείκτης (ακέραιος αριθμός) του γεγονότος στη λίστα γεγονότων. Παράδειγμα1: (retract 2) Συνήθως όμως, σ ένα κανόνα, δεν ξέρουμε το δείκτη του γεγονότος. Τότε χρησιμοποιούμε τον ειδικό τελεστή <- για να τον υποθηκεύσουμε σε μια μεταβλητή. Παράδειγμα2:?x <- (car AudiA nai idravliki 25700) (retract?x) Το (retract *) αφαιρεί όλα τα γεγονότα από τη λίστα γεγονότων Πρότυπα Γεγονότων-Μη Διατεταγμένα Γεγονότα Ορισμός (Εικόνα 25): Εικόνα 25: Ορισμός προτύπων γεγονότων -53-

62 Το slot δηλώνει μονότιμες μεταβλητές/παραμέτρους, ενώ το multislot μεταβλητές/παραμέτρους πολλαπλών τιμών. Οι περιορισμοί (δηλ. τα <constraint form>) στην παραπάνω σύνταξη μπορεί να είναι: Τύπου (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>) (deftemplate <όνομα προτύπου> (slot/multislot <slot-name1> <constraint-form>*) (slot/multislot <slot-name2> <constraint-form>*) (slot/multislot <slot-namen> <constraint-form>*)) όπου <init-val>, <final-val> μπορεί να είναι?variable (για ανοικτό κάτω, πάνω όριο) Εξ ορισμού (ή Προκαθορισμένης) τιμής (default <value>) όπου <value> συγκεκριμένη τιμή ή?derive ή?none (απαιτεί την εισαγωγή τιμής) Πλήθους τιμών (cardinality <min> <max>) όπου <min> και <max> ο ελάχιστος και μέγιστος αριθμός τιμών μιας multislot. Παράδειγμα: (deftemplate student (slot name (type STRING) (default?none)) -54-

63 (slot sex (type SYMBOL) (allowed-symbols male female)) (slot age (type INTEGER) (range 18 40)) (multislot courses (type SYMBOL) (cardinality 1 4))) Η εισαγωγή μη διατεταγμένων γεγονότων γίνεται όπως και των διατεταγμένων, με την επαναληπτική χρήση της εντολής assert. Παραδείγματα (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!!! (λόγω?none στους περιορισμούς του name) modify: Τροποποιεί ένα ή περισσότερα στοιχεία ενός μη διατεταγμένου γεγονότος στη λίστα γεγονότων (αφαιρεί το παλιό στοιχείο και εισάγει το νέο) Σύνταξη: (modify <fact-index> (<slot> <new-value>)*) Παράδειγμα: Έστω ότι το γεγονός (student (name giannis panou ) (sex male) (age 19) (courses (ai db))) υπάρχει στη λίστα γεγονότων. Τότε, αν εκτελεστεί η εντολή?x <- (student (name giannis panou )) (modify?x (courses (age 20) (math ai db))) το CLIPS αντικαθιστά το παραπάνω γεγονός με το (student (name giannis panou ) (sex male) (age 20) (courses (math ai db))) Κανόνες Το βασικό δομικό στοιχείο ενός έμπειρου συστήματος είναι η βάση γνώσης που αποτελείται από μια σειρά από κανόνες. Για το λόγο αυτό η σύνταξη ενός κανόνα είναι η α- κόλουθη (Εικόνα 26): -55-

64 Εικόνα 26: Σύνταξη κανόνα στο Clips. Το σύμβολο «=>» διαχωρίζει το αριστερό (συνθήκες) από το δεξί (ενέργειες) μέρος του κανόνα. Το όνομα του κανόνα πρέπει να είναι μοναδικό. Συνήθως όλοι οι κανόνες είναι αποθηκευμένοι σε κάποιο αρχείο κειμένου απ όπου τους «φορτώνει» το σύστημα (εντολή Load, είτε από τη γραμμή εντολών CLIPS, είτε από το μενού του File). Παράδειγμα (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) Η σχηματική απεικόνιση του παραδείγματος φαίνεται στην Εικόνα 27: Εικόνα 27: Σχηματική απεικόνιση παραδείγματος σε CLIPS Ο κανόνας αυτός αφορά μια ενέργεια στο γνωστό πρόβλημα των κύβων, πιο συγκεκριμένα το πιάσιμο στο χέρι ενός κύβου που δεν έχει τίποτα επάνω του. -56-

65 Τύποι συνθηκών κανόνων Οι κύριοι τύποι των συνθηκών που χρησιμοποιούνται στο CLIPS είναι: (α) Συνθήκες Προτύπου (pattern) Το πρώτο στοιχείο είναι πάντα ένα σύμβολο που καθορίζει αν η συνθήκη προτύπου εφαρμόζεται σε διατεταγμένα γεγονότα ή γεγονότα προτύπου. Στα υπόλοιπα μπορούν να χρησιμοποιηθούν: - σταθερές τιμές - τα?, $? σαν wildcards - μεταβλητές (μονότιμες ή πολλαπλών τιμών) - περιορισμοί λογικής σύνδεσης ( &,, ~ ) - περιορισμοί κατηγορήματος ( :<κλήση-συνάρτησης> ) - περιορισμοί επιστρεφόμενης τιμής ( = <κλήση-συνάρτησης> ) (β) Συνθήκες διεύθυνσης προτύπου Ανατίθεται η τιμή της διεύθυνσης ενός γεγονότος σε μια μεταβλητή: <μεταβλητή> <- <συνθήκη προτύπου> (γ) Εκτιμήσιμες Συνθήκες Για περιπτώσεις όπου υπάρχουν συγκρίσεις αριθμητικών τιμών ως υποθέσεις: (test <κλήση-συνάρτησης>) (δ) Λογικά Συνδεόμενες Συνθήκες Χρήση των λογικών συνδετικών (and, or, not) για δημιουργία σύνθετων συνθηκών. Παράδειγμα Έστω ότι εισάγονται τα παρακάτω διατεταγμένα γεγονότα: (deffacts data facts (data 1.0 blue red ) (data 1 green) (data 1 blue red) (data 1 gray RED) (data 1 blue red )) Επίσης δηλώνεται το παρακάτω πρότυπο γεγονότων: (deftemplate person -57-

66 (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))) Οπότε, οι παρακάτω θα μπορούσαν να είναι συνθήκες σε κανόνες CLIPS: (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))) και ακολουθούν δύο κανόνες, που χρησιμοποιούν τέτοιες συνθήκες. (defrule example-1 (person (name paul) (age?y)) (test (>?y 20)) => -58-

67 (printout t This paul is?y crlf)) Ο κανόνας αυτός βρίσκει και τυπώνει (με κάποιο τρόπο) όσους έχουν όνομα paul και ηλικία μεγαλύτερη των 20. Στην περίπτωσή της δεδομένης βάσης θα τυπώσει: This paul is 30. (defrule example-2 (person (name paul) (age?x)) (person (name?y) (age?z&:(>?z?x))) => (printout t?y is older than pauls crlf)) Ο κανόνας αυτός βρίσκει και τυπώνει (με κάποιο τρόπο) όσους έχουν ηλικία μεγαλύτερη από όλους τους Paul. Στην περίπτωσή μας θα τυπώσει: niki is older than pauls. Ο παρακάτω κανόνας χρησιμοποιεί τους λογικούς τελεστές or και and στις συνθήκες του. (defrule example-3 (or (and (temp high) (valve closed)) (and (temp low) (valve open))) => (printout t there is a problem crlf)) Συναρτήσεις Η κλήση μιας συνάρτησης γίνεται με την δήλωση: (<όνομα-συνάρτ.> όρισμα1 όρισμα2.. όρισμαν). Για παράδειγμα αν μέσα σε ένα πρόγραμμα CLlPS υπάρχει η εντολή (assert (The product is (* 5 4))), τότε το γεγονός το οποίο θα αποθηκευτεί στη μνήμη θα είναι το (The product is 20). Το «(* 5 4)» είναι κλήση της συνάρτησης * με δύο ορίσματα, που είναι ακέραιοι αριθμοί. Οι κυριότερες συναρτήσεις είναι οι: Αριθμητικές: +, -, *, / Σύγκρισης: <, >, =, >=, <=, <> Λογικές: and, or, not, eq, neq Ελέγχου τύπου: numberp, symbolp, floatp, integerp, stringp -59-

68 5.12 Επίλυση Συγκρούσεων Η επίλυση συγκρούσεων αναφέρεται στην επιλογή ενός κανόνα από το σύνολο των κανόνων (σύνολο σύγκρουσης: conflict set) που βρίσκονται σε κάθε βήμα στη στοίβα κανόνων (agenda) και είναι υποψήφιοι για πυροδότηση. Η επιλογή στηρίζεται (α) στην προτεραιότητα κάθε κανόνα και (β) στη στρατηγική επίλυσης σύγκρουσης που έχει επιλεγεί. To CLIPS διαθέτει επτά στρατηγικές επίλυσης συγκρούσεων, από τις οποίες μόνο μια είναι ενεργή και χρησιμοποιείται για την επιλογή του κανόνα από την ατζέντα Προτεραιότητα Κανόνων Η προτεραιότητα ενός κανόνα ορίζεται μέσω ειδικής δήλωσης, που εισάγεται στη συνάρτηση ορισμού του κανόνα Σύνταξη: (declare (salience <number>)) Όσο μεγαλύτερη είναι η τιμή <number>, τόσο μεγαλύτερη είναι και η προτεραιότητα του συγκεκριμένου κανόνα. Οι επιτρεπτές τιμές της προτεραιότητας είναι από έως Εάν δεν υπάρχει δήλωση, ο κανόνας θεωρείται ότι έχει ως τιμή προτεραιότητας μηδέν. Παράδειγμα (defrule number (declare (salience 60)) (number?a) (number?b) => (printout t "Numbers: "?a " "?b crlf) ) Στρατηγικές Επίλυσης Συγκρούσεων Το CLIPS διαθέτει επτά στρατηγικές επίλυσης συγκρούσεων, που είναι οι εξής: 1. depth: Σύμφωνα με αυτή τη στρατηγική οι «νέοι» κανόνες μπαίνουν πάνω από τους «παλαιούς». Π.χ. αν το fact-1 ενεργοποιεί τους r1, r2 και το fact-2 ενεργοποιεί τους r3 και r4 τότε οι r3, r4 τοποθετούνται πάνω από τους r1, r2, διότι το fact-1 έχει εισαχθεί πριν από το fact-2 (δηλαδή το fact-2 είναι πιο πρόσφατο, πιο επίκαιρο και επο- -60-

69 μένως οι r3, r4 λέμε ότι έχουν μεγαλύτερη επικαιρότητα-recency). Μεταξύ τους οι r1, r2 και r3, r4 τοποθετούνται αυθαίρετα. 2. breadth: Αντίθετα με την προηγούμενη στρατηγική, οι «νέοι» κανόνες μπαίνουν κάτω από τους «παλαιούς». 3. simplicity: Ένας νεοεισερχόμενος κανόνας τοποθετείται υψηλότερα από όλους με ίση ή μεγαλύτερη εξειδίκευση (specificity). Εξειδίκευση = αριθμός συγκρίσεων ή/και κλήσεων συναρτήσεων στο LHS. Π.χ. ο κανόνας (defrule r-example (item?x?y?x) (test (and (numberp?x) (>?x (+ 10?y)) (<?x 100))) =>) έχει εξειδίκευση = complexity: Ένας νεοεισερχόμενος κανόνας τοποθετείται υψηλότερα από όλους με ίση ή μικρότερη εξειδίκευση. (το αντίστροφο της simplicity) 5. LEX: Ένας νεοεισερχόμενος κανόνας με μεγαλύτερη επικαιρότητα (recency) τοποθετείται υψηλότερα. Σε περίπτωση ίδιας επικαιρότητας χρησιμοποιείται ως κριτήριο η εξειδίκευση. Ουσιαστικά αποτελεί συνδυασμό των στρατηγικών depth και complexity. 6. MEA: Ένας νεοεισερχόμενος κανόνας με μεγαλύτερη επικαιρότητα (recency) για την πρώτη συνθήκη μόνο, τοποθετείται υψηλότερα. Σε περίπτωση σύμπτωσης χρησιμοποιείται η LEX. 7. random: Ένας τυχαίος αριθμός χρησιμοποιείται για να ξεχωρίσουν κανόνες της ίδιας προτεραιότητας. Για τον ορισμό της στρατηγικής χρησιμοποιείται η εντολή: (set-strategy <strategy>), όπου στο <strategy> τίθεται μια από τις τιμές: depth, breadth, simplicity, complexity, lex, mea, random. Και για την ανίχνευση της τρέχουσας στρατηγικής, χρησιμοποιείται η εντολή: (get-strategy)[38]. -61-

70

71 6 Υλοποίηση Συστήματος Μετατροπής κανόνων RuleML σε κανόνες CLIPS Απώτερο σκοπό της συγκεκριμένης διπλωματικής εργασίας αποτέλεσε η υλοποίηση ενός συστήματος μετάφρασης κανόνων παραγωγής RuleML σε κανόνες παραγωγής που μπορούν να εκτελεστούν από το σύστημα CLIPS. Το σύστημα, όπως φαίνεται και στην Εικόνα 28, αποτελείται από κάποια υποσυστήματα. Αρχικά ο χρήστης συνδέεται μέσω του διαδικτύου με μια ιστοσελίδα HTML/JSP, στην οποία και εισάγει τους κανόνες παραγωγής RuleML, καθώς και τα γεγονότα. Ο χρήστης μπορεί να εισάγει όσους κανόνες ή ένα γεγονότα επιθυμεί κάθε φορά. Μέσω της ιστοσελίδας, ο κανόνας παραγωγής ή το γεγονός RuleML που εισάγεται στο σύστημα κάθε φορά, μεταφέρεται στο java Servlet, το οποίο αποτελεί και το κύριο μέρος του συστήματος. Το servlet καλεί έναν XSLT processor, στη συγκεκριμένη υλοποίηση χρησιμοποιήθηκε ο επεξεργαστής xalan, ο οποίος με τη σειρά του μετατρέπει τον κανόνα/γεγονός RuleML σε κανόνα/γεγονός CLIPS, βάσει ενός XSLT εγγράφου, το οποίο βρίσκεται στο server. Το σύνολο των κανόνων CLIPS αποθηκεύεται σε ένα αρχείο «Rulebase», που αποτελεί τη βάση των κανόνων που θα χρησιμοποιηθεί από το σύστημα CLIPS. Ομοίως και το σύνολο των γεγονότων διατηρείται στο αρχείο «Factbase». Και τα δύο αυτά αρχεία αποθηκεύονται προσωρινά στο server. Όταν ο χρήστης ολοκληρώσει την εισαγωγή των γεγονότων και κανόνων RuleML, πατά το κουμπί για εκτέλεση και το servlet καλεί το CLIPS και εισάγει τις εντολές και τα γεγονότα CLIPS. Τέλος, τα αποτελέσματα αποθηκεύονται σε ένα αρχείο log.txt και εμφανίζονται στο χρήστη μέσω της ιστοσελίδας. Στη συνέχεια περιγράφεται αναλυτικά η διαδικασία που ακολουθήθηκε. Αξίζει να σημειωθεί πως η ενσωμάτωση του συστήματος CLIPS γίνεται μέσω του CLIPS Java Native Interface (ClipsJNI), η περιγραφή του οποίου δίνεται στο παράρτημα. -63-

72 Εικόνα 28: Αρχιτεκτονική του συστήματος 6.1 Δημιουργία Εγγράφου XSLT Το βασικότερο συστατικό του συστήματος είναι το έγγραφο XSLT, καθώς αποτελεί το σκελετό πάνω στον οποίο θα δημιουργηθεί ο κανόνας CLIPS από τον κανόνα RuleML. Για να είναι δυνατή η μετατροπή των κανόνων RuleML σε κανόνες CLIPS, ακολουθήθηκε η εξής διαδικασία: Μελετήθηκαν κάποιοι κανόνες CLIPS, αρχικά απλοί και στη συνέχεια πιο πολύπλοκοι ώστε να συμπεριληφθούν αν είναι δυνατόν όλοι οι κανόνες CLIPS. Μελετήθηκαν οι δυνατοί τρόποι να εκφραστούν αυτοί οι κανόνες CLIPS σε κανόνες RuleML, και επιλέχθηκε ο πιο λογικός τρόπος. -64-

73 Δημιουργήθηκε και εμπλουτίστηκε το XSLT έγγραφο που μετατρέπει τους παραπάνω κανόνες RuleML στους αντίστοιχους κανόνες CLIPS βάσει τον οποίων δημιουργήθηκαν. Παρακάτω περιγράφεται λεπτομερώς η διαδικασία δημιουργίας του XSLT εγγράφου Βασικά στοιχεία του XSLT Τα στοιχεία τα οποία είναι κοινά για όλους τους κανόνες RuleML και βρίσκονται στα πιο υψηλά επίπεδα της δομής τους είναι τα εξής: Το στοιχείο <RuleML>, που αποτελεί και τη ρίζα κάθε κανόνα RuleML. Το στοιχείο <Assert> που δηλώνει την εισαγωγή του κανόνα στη βάση κανόνων. Στα παραδείγματα που θα αναλυθούν στη συνέχεια, παραλείπονται τα στοιχεία <RuleML> και <Assert>. Το στοιχείο <Rule> που δηλώνει κάποιον κανόνα. Το στοιχείο <oid> που εμπεριέχεται προαιρετικά σε ένα στοιχείο <Rule>. Το στοιχείο <oid> είναι ένα μοναδικό αναγνωριστικό για τον κανόνα, ώστε να διευκολύνεται η πρόσβαση σε αυτόν μέσα στη βάση κανόνων. Για τη μετατροπή ενός κανόνα RuleML σε κανόνα CLIPS, το στοιχείο <oid> χρησιμοποιείται για να δηλώσει το όνομα του κανόνα. Το στοιχείο <oid> δεν μπορεί να περιέχει απευθείας δεδομένα, για αυτό το ό- νομα του κανόνα στεγάζεται από το στοιχείο <Ind>, το οποίο δηλώνει κάποια σταθερά και περιέχει δεδομένα τύπου #PCDATA. Όταν τα στοιχεία <oid><ind>rulename</ind></oid> περιέχονται στο στοιχείο <Rule>, κατά τη μετατροπή του κανόνα RuleML σε κανόνα CLIPS μεταφράζεται ως (defrule rulename ενώ σε περίπτωση που αυτά τα στοιχεία έχουν παραλειφθεί, ως όνομα του κανόνα δίνεται προεπιλεγμένα το r και δηλώνεται σε σχόλια ότι πρόκειται για ά- γνωστο όνομα κανόνα ("Unknown Rule Name"). (defrule r "Unknown Rule Name" Κάθε κανόνας παραγωγής αποτελείται από δύο τμήματα. Το πρώτο τμήμα έχει κάποιες συνθήκες που τον πυροδοτούν και συγκαταλέγονται στην ετικέτα <if>. -65-

74 Σε περίπτωση που ικανοποιούνται όλες οι συνθήκες, τότε εκτελείται ένα σύνολο από κανόνες, που αποτελούν και το δεύτερο τμήμα ενός κανόνα παραγωγής. Το τμήμα των ενεργειών στεγάζεται στις ετικέτες <do>. Σε έναν κανόνα CLIPS το τμήμα των συνθηκών διαχωρίζεται από το τμήμα των ενεργειών με το σύμβολο =>. <xsl:stylesheet version="1.0" xmlns=" xmlns:xsi= " xmlns:n=" xmlns:xsl=" xsi:schemalocation= " <xsl:output method="text"/> <! root element --> <xsl:template match="/"> <xsl:apply-templates select="n:ruleml"/> </xsl:template> <! RuleML element --> <xsl:template match="n:ruleml"> <xsl:apply-templates select="n:assert"/> </xsl:template> <! Rule element --> <xsl:template match="n:rule"> <xsl:text> (defrule </xsl:text> <! if the rulename is defined --> <xsl:if test="n:oid/n:ind"> <xsl:apply-templates select="n:oid/n:ind"/> </xsl:if> <! if the rulename is not defined --> <xsl:if test="not(n:oid/n:ind)"> <xsl:text> r "Unknown Rule Name"</xsl:text> </xsl:if> <xsl:text> </xsl:text> <xsl:apply-templates select="n:if"/> <! => --> => <xsl:apply-templates select="n:do"/> <xsl:text>) </xsl:text> </xsl:template> <! Get the rulename --> <xsl:template match="n:oid/n:ind"> <xsl:value-of select="."/> </xsl:template> <! Τhe end of the XSLT document --> </xsl:stylesheet> -66-

75 6.1.2 Ένας απλός κανόνας Ο πρώτος κανόνας CLIPS που χρησιμοποιήθηκε ήταν ο εξής απλός κανόνας. (defrule r1 (refrigerator light on) (refrigerator door open) => (assert (refrigerator food spoiled))) Στο τμήμα των συνθηκών υπάρχουν δύο γεγονότα, που είναι ουσιαστικά λίστες από σύμβολα που περικλείονται σε παρενθέσεις, τα (refrigerator light on) και (refrigerator door open). Ένα γεγονός της CLIPS αντιστοιχίζεται με μια λογική πρόταση της RuleML που δηλώνεται με το στοιχείο <Atom>. Στο στοιχείο <Atom> πρέπει να υπάρχει τουλάχιστον ένα στοιχείο <Rel>, το οποίο δηλώνει ένα λογικό κατηγόρημα και περιέχει δεδομένα #PCDATA. Έτσι, στον παραπάνω κανόνα και στα δύο γεγονότα η λέξη refrigerator δηλώνεται σε στοιχεία <Rel>. Ενώ οι υπόλοιπες λέξεις δηλώνονται σε στοιχεία <Ind>, εφόσον πρόκειται για σταθερές. Εφόσον υπάρχουν δύο συνθήκες μέσα στο στοιχείο <If>, τα στοιχεία <Atom> συστεγάζονται στο στοιχείο <And> που δηλώνει σύζευξη. Ο παραπάνω κανόνας περιέχει μία μοναδική ενέργεια, στην οποία προστίθεται (assert) ένα γεγονός στη βάση. Αυτή η ενέργεια δηλώνεται σε ένα στοιχείο <Assert> το οποίο στεγάζει ένα στοιχείο <Atom>. Έτσι ο κανόνας μετατρέπεται ως εξής: <Rule> <oid><ind>r1</ind></oid> <if> <And> <Atom> <Rel>refrigerator</Rel> <Ind>light</Ind> <Ind>on</Ind> </Atom> <Atom> <Rel>refrigerator</Rel> <Ind>door</Ind> <Ind>open</Ind> </Atom> </And> </if> -67-

76 <do> <Assert> <Atom> <Rel>refrigerator</Rel> <Ind>food</Ind> <Ind>spoiled</Ind> </Atom> </Assert> </do> </Rule> Ενώ το XSLT έγγραφο εμπλουτίζεται με τα εξής: <! if element --> <xsl:template match="n:if"> <xsl:apply-templates select="n:and n:or n:neg n:atom "/> </xsl:template> <! And element --> <xsl:template match="n:and "> <xsl:apply-templates select="n:or n:and n:atom n:neg "/> </xsl:template> <! Or element --> <xsl:template match="n:or"> <xsl:text> (or</xsl:text> <xsl:apply-templates select="n:and n:or n:atom n:neg"/> <xsl:text>) </xsl:text> </xsl:template> <! Neg element --> <xsl:template match="n:neg"> <xsl:text>(not </xsl:text> <xsl:apply-templates select="n:atom"/> <xsl:text>) </xsl:text> </xsl:template> <! do element --> <xsl:template match="n:do"> <xsl:apply-templates select="n:assert n:retract n:update "/> </xsl:template> <! Assert element --> <xsl:template match="n:assert"> <xsl:if test="n:rule "> <xsl:apply-templates select="n:rule "/> </xsl:if> <xsl:if test="n:atom n:neg"> <xsl:text> (assert</xsl:text> <xsl:apply-templates select="n:atom n:neg"/> <xsl:text>) </xsl:text> </xsl:if> </xsl:template> -68-

77 <! Retract element --> <xsl:template match="n:retract"> <xsl:if test="n:atom n:neg "> <xsl:text> (retract</xsl:text> <xsl:apply-templates select="n:atom n:neg"/> <xsl:text>) </xsl:text> </xsl:if> </xsl:template> <! Update element --> <xsl:template match="n:update"> <xsl:if test="n:and n:atom n:neg "> <xsl:text> (modify</xsl:text> <xsl:apply-templates select="n:and n:atom n:neg "/> <xsl:text>) </xsl:text> </xsl:if> </xsl:template> <! Atom element --> <xsl:template match="n:atom"> <xsl:text> (</xsl:text> <xsl:apply-templates select="n:rel n:op"/> <xsl:if test="n:ind n:var"> <xsl:apply-templates select="n:ind n:var"/> </xsl:if> <xsl:text>) </xsl:text> </xsl:template> Όπως φαίνεται και παραπάνω, ένα στοιχείο <if> μπορεί να περιέχει προτάσεις (<Atom>), αρνήσεις αυτών (<Neg>) και τη διάζευξή τους (<Or>), εκτός από τη σύζευξή τους (<And>). Τα στοιχεία <And> και <Or> μπορούν να περιλαμβάνουν πέρα από τις προτάσεις <Atom> και τους τελεστές της άρνησής τους (<Neg>), τη διάζευξή τους (<Or>) και τη σύζευξή τους (<And>). Το στοιχείο <Neg> περιλαμβάνει μόνο στοιχεία <Atom> και δηλώνει την άρνησή τους. Το στοιχείο <do> περιέχει όλες τις πράξεις ενημέρωσης της βάσης, οι οποίες είναι το <Assert> για την προσθήκη ενός γεγονότος, το <Retract> για την αφαίρεση ενός γεγονότος και το <Update> για την τροποποίηση ενός γεγονότος. Όταν το <Assert> δηλώνει κάποιο κανόνα, όταν περιλαμβάνει δηλαδή το στοιχείο <Rule>, τότε δε μεταφράζεται, ενώ όταν περιλαμβάνει προτάσεις <Atom> ή την άρνησή τους <Neg> όταν μεταφράζεται περικλείεται σε παρενθέσεις και εμφανίζεται η λέξη assert. (assert ) Τα στοιχεία <Retract> και <Update> μεταφράζονται όπως το <Assert>, αλλά με τις λέξεις retract και modify αντίστοιχα. -69-

78 Το στοιχείο <Atom> όταν μεταφράζεται περικλείεται από παρενθέσεις και πρέπει να περιλαμβάνει τουλάχιστον ένα από τα στοιχεία <Rel> και <op>. Τα στοιχεία <Rel>, <op> και <Ind> περιέχουν δεδομένα #PCDATA τα οποία και εμφανίζονται αυτούσια στον κανόνα CLIPS Ο δεύτερος κανόνας Ο δεύτερος κανόνας CLIPS που χρησιμοποιήθηκε ήταν ο εξής. (defrule r2 (student (name?x) (degree no)) => (modify (student (name?x) (degree yes))) ) Στον κανόνα υπάρχει μία μόνο συνθήκη και μία μόνο ενέργεια. Το γεγονός της συνθήκης αποτελείται από δύο ιδιότητες (slots), οι οποίες δηλώνονται με το στοιχείο <slot>. Η πρώτη ιδιότητα έχει όνομα name και ως τιμή έχει κάποια μεταβλητή, που δηλώνει ότι μπορεί να έχει οποιοδήποτε όνομα, ενώ η δεύτερη ιδιότητα έχει όνομα degree και τιμή το no. Η ενέργεια δηλώνει ότι το γεγονός της συνθήκης ενημερώνεται, πράξη που δηλώνεται με το στοιχείο <Update>, και η τιμή της ιδιότητας degree αλλάζει σε yes. Έτσι ο κανόνας μετατρέπεται ως εξής: <Rule> <oid> <Ind>r2</Ind> </oid> <if> <Atom> <Rel>student</Rel> <slot> <Ind>name</Ind> <Var>x</Var> </slot> <slot> <Ind>degree</Ind> <Ind>no</Ind> </slot> </Atom> </if> -70-

79 <do> <Assert> <Atom> <Rel>student</Rel> <slot> <Ind>name</Ind> <Var>x</Var> </slot> <slot> <Ind>degree</Ind> <Ind>yes</Ind> </slot> </Atom> </Assert> </do> </Rule> Στο XSLT έγγραφο προστίθενται τα παρακάτω: <! slot element --> <xsl:template match="n:slot"> <xsl:text> (</xsl:text> <xsl:apply-templates select="n:ind[1]"/> <xsl:apply-templates select="n:var n:ind[2]"/> <xsl:text>) </xsl:text> </xsl:template> <! Var element --> <xsl:template match="n:var"> <xsl:text>?</xsl:text> <xsl:value-of select="."/> </xsl:template> <! Atom element --> <xsl:template match="n:atom"> <xsl:text> (</xsl:text> <xsl:apply-templates select="n:rel n:op"/> <xsl:if test="n:ind n:var n:slot"> <xsl:apply-templates select="n:ind n:var n:slot"/> </xsl:if> <xsl:text>) </xsl:text> </xsl:template> Όπως φαίνεται και παραπάνω, το στοιχείο <Atom> εμπλουτίζεται ώστε να μπορεί να περιέχει το στοιχεία <slot>. Το στοιχείο <slot> περικλείεται από παρενθέσεις και αποτελείται είτε από δύο σταθερές ή από μία σταθερά και μια μεταβλητή. Η μεταβλητή δηλώνεται με το στοιχείο <Var> και κατά τη μετάφραση σε κανόνα CLIPS χαρακτηρίζονται από το πρόθεμα?. -71-

80 6.1.4 Ο τρίτος κανόνας Ο τρίτος κανόνας CLIPS που χρησιμοποιήθηκε ήταν ο παρακάτω. (defrule r3?f1 <- (valve?v open)?f2 <- (set?v close) => (retract?f1) (retract?f2) (assert (valve?v close)) ) Στον παραπάνω κανόνα υπάρχουν δύο συνθήκες και τρεις ενέργειες. Στη βάση γνώσης ενός συστήματος CLIPS κάθε γεγονός αντιπροσωπεύεται από ένα χαρακτηριστικό αριθμό. Για την αξιοποίηση αυτού του χαρακτηριστικού αριθμού επιβάλλεται η χρήση του τελεστή <- στις συνθήκες του κανόνα. Συνεπώς στην πρώτη συνθήκη δηλώνεται ότι ο χαρακτηριστικός αριθμός του γεγονότος (valve?v open) συμβολίζεται με τη μεταβλητή f1, ενώ ο χαρακτηριστικός αριθμός του γεγονότος της δεύτερης συνθήκης συμβολίζεται με τη μεταβλητή f2. Έτσι, στις δύο πρώτες ενέργειες, αφαιρούνται τα δύο γεγονότα των συνθηκών από τη βάση του συστήματος, ενώ στην τρίτη ενέργεια προστίθεται ένα νέο γεγονός. Έτσι ο κανόνας μετατρέπεται ως εξής: <Rule> <oid><ind>r3 </Ind></oid> <if> <And> <Atom> <oid> <Var>f1</Var> </oid> <Rel>valve</Rel> <Var>v</Var> <Ind>open</Ind> </Atom> <Atom> <oid> <Var>f2</Var> </oid> <Rel>set</Rel> <Var>v</Var> <Ind>close</Ind> </Atom> </And></if> -72-

81 <do> <Retract> <oid> <Var>f1</Var> </oid> </Retract> <Retract> <oid> <Var>f2</Var> </oid> </Retract> <Assert> <Atom> <Rel>valve</Rel> <Var>v</Var> <Ind>close</Ind> </Atom> </Assert> </do> </Rule> Στο XSLT έγγραφο προστίθενται τα παρακάτω: <! fact-index element --> <xsl:template match="n:oid/n:var"> <xsl:text>?</xsl:text> <xsl:value-of select="."/> <xsl:if test="count(./ancestor::n:atom/*)>1"> <xsl:text> <- </xsl:text> </xsl:if> </xsl:template> <! Atom element --> <xsl:tmplate match="n:atom"> <xsl:if test="n:oid/n:var and count(./*)=1"> <xsl:apply-templates select="n:oid/n:var"/> </xsl:if> <xsl:if test="n:oid/n:var and count(./*)>1"> <xsl:apply-templates select="n:oid/n:var"/> <xsl:text> (</xsl:text> <xsl:apply-templates select="n:rel n:op"/> <xsl:apply-templates select="n:slot n:ind n:var"/> <xsl:text>) </xsl:text> </xsl:if> -73-

82 <! Atom element --> <xsl:if test="not(n:oid/n:var)"> <xsl:text> (</xsl:text> <xsl:if test="n:oid/n:ind"> <xsl:apply-templates select="n:oid/n:ind"/> </xsl:if> <xsl:apply-templates select="n:rel n:op"/> <xsl:if test="n:qualification n:slot n:ind n:var"> <xsl:apply-templates select="n:qualification n:slot n:ind n:var"/> </xsl:if> <xsl:text>) </xsl:text> </xsl:if> </xsl:template> <! Retract element --> <xsl:template match="n:retract"> <xsl:if test="n:atom n:neg n:oid"> <xsl:text> (retract</xsl:text> <xsl:apply-templates select="n:atom n:neg n:oid"/> <xsl:text>) </xsl:text> </xsl:if> </xsl:template> <! Update element --> <xsl:template match="n:update"> <xsl:if test="n:and n:atom n:neg n:oid"> <xsl:text> (modify</xsl:text> <xsl:apply-templates select="n:and n:atom n:neg n:oid"/> <xsl:text>) </xsl:text> </xsl:if> </xsl:template> Ο χαρακτηριστικός αριθμός ενός στοιχείου <Atom> δηλώνεται στο στοιχείο <oid> που εσωκλείεται από το <Atom>. Όταν ο χαρακτηριστικός αριθμός αντιπροσωπεύεται από κάποια μεταβλητή, τότε στο <oid> εσωκλείεται το στοιχείο <Var>. Συνεπώς, όταν το στοιχείο <Atom> περιέχει τα <oid><var></var></oid>, τότε κατά τη μετάφραση, γράφεται το όνομα της μεταβλητής που δηλώνει το χαρακτηριστικό αριθμό του γεγονότος με το πρόθεμα «?», ακολουθεί το σύμβολο «<-» και ακολουθούν σε παρενθέσεις όλα τα υπόλοιπα στοιχεία που εσωκλείονται στο <Atom>. Επίσης, το στοιχείο <oid> προστίθεται και στα <Retract> και <Update>, ώστε οι ενέργειες της αφαίρεσης και της ενημέρωσης αντίστοιχα να εφαρμόζονται σε γεγονότα με συγκεκριμένους χαρακτηριστικούς αριθμούς Ο τέταρτος κανόνας Ο τέταρτος κανόνας CLIPS που χρησιμοποιήθηκε ήταν ο παρακάτω. -74-

83 (defrule old (age?x) (test (>?x 60)) => assert (agegroup old)) ) Στον παραπάνω κανόνα υπάρχουν δύο συνθήκες και μία ενέργεια. Η πρώτη είναι ένα απλό γεγονός και δηλώνεται με το <Atom>, όπως είδαμε και σε προηγούμενα παραδείγματα. Όπως φαίνεται στη δεύτερη συνθήκη, στο CLIPS, εκτός από την απλή ταυτοποίηση συνθηκών με γεγονότα, μπορούν να εισαχθούν και περιορισμοί στις συνθήκες κάνοντας χρήση πιο εκφραστικών δομών, όπως οι συνθήκες υπό μορφή συναρτήσεων test. Για τη μετάφραση αυτών των συναρτήσεων σε RuleML χρησιμοποιείται το στοιχείο <Equal>, το οποίο χρησιμοποιείται για να εκφράσει ότι δύο στοιχεία είναι ίσα. Για το λόγο αυτό, στο στοιχείο <Equal> εσωκλείεται ένα στοιχείο <Expr>, που δηλώνει τη συνάρτηση (>?x 60), δηλαδή ότι η μεταβλητή x είναι μεγαλύτερη του 60. Ε- φόσον στη συνθήκη η συγκεκριμένη συνάρτηση πρέπει να είναι αληθής για να γίνει η ταυτοποίηση, ως δεύτερο στοιχείο στο <Equal> εισάγεται το στοιχείο <Data> με την τιμή true, που είναι τύπου boolean. Έτσι ο κανόνας μετατρέπεται ως εξής: <Rule> <oid> <Ind>old</Ind> </oid> <if> <And> <Atom> <Rel>age</Rel> <Var>x</Var> </Atom> <Equal> <Expr> <Fun>></Fun> <Var>x</Var> <Ind>60</Ind> </Expr> <Data xsi:type="xs:boolean">true</data> </Equal> </And> </if> -75-

84 <do> <Assert> <Atom> <Rel>agegroup</Rel> <Ind>old</Ind> </Atom> </Assert> </do> </Rule> Στο XSLT έγγραφο προστίθενται τα παρακάτω: <! if element --> <xsl:template match="n:if"> <xsl:apply-templates select="n:and n:or n:neg n:atom n:equal"/> </xsl:template> <! And element --> <xsl:template match="n:and"> <xsl:apply-templates select="n:or n:and n:atom n:neg n:assert n:equal"/> </xsl:template> <! Equal element --> <xsl:template match="n:equal"> <xsl:if test="name(..)='if' or name(../..)='if'"> <xsl:text> (test</xsl:text> <xsl:apply-templates select="n:data "/> <xsl:if test="n:expr"> <xsl:apply-templates select="n:expr"/> </xsl:if> <xsl:text>)</xsl:text> </xsl:if> </xsl:template> <! Expr element --> <xsl:template match="n:expr"> <xsl:text> (</xsl:text> <xsl:apply-templates select="n:fun"/> <xsl:if test="n:expr n:var n:ind"> <xsl:apply-templates select="n:expr n:var n:ind"/> </xsl:if> <xsl:text>) </xsl:text> </xsl:template> <! Fun element --> <xsl:template match="fun"> <xsl:value-of select="."/> </xsl:template> Αρχικά το στοιχείο <Equal> προστίθεται στα στοιχεία <if> και <And>. Έπειτα το στοιχείο Equal αν εσωκλείεται στα στοιχεία <if> ή <if><and>, τότε κατά τη μετάφρα- -76-

85 ση γράφεται η μετάφραση του <Expr> περιστοιχίζεται από παρενθέσεις και τη λέξη test. Το στοιχείο <Expr>, που δηλώνει μια έκφραση, περιέχει οπωσδήποτε ένα στοιχείο <Fun> και μπορεί να περιλαμβάνει ακόμη τα στοιχεία <Ind>, <Var> ή και <Expr>. Ε- φόσον πρόκειται για σύνθετο στοιχείο, κατά τη μετάφρασή του από RuleML σε CLIPS εσωκλείεται και αυτό σε παρενθέσεις. Τέλος το στοιχείο <Fun>, εκφράζει το όνομα κάποιας συνάρτησης και περιέχει δεδομένα τύπου #PCDATA Ο πέμπτος κανόνας Ο πέμπτος κανόνας CLIPS που χρησιμοποιήθηκε ήταν ο παρακάτω. (defrule middle (age?x) (test (and (>?x 14) (<?x 35))) => (assert (agegroup middle))) Αυτός ο κανόνας διαφέρει από τον προηγούμενο στο ότι περιέχει πιο σύνθετη συνάρτηση. Αυτό επιτυγχάνεται με την εμφώλευση ενός στοιχείου <Expr> μέσα σε ένα άλλο. Έτσι ο κανόνας μετατρέπεται ως εξής: <Rule> <oid> <Ind>middle</Ind> </oid> <if> <And> <Atom> <Rel>age</Rel> <Var>x</Var> </Atom> <Equal> <Expr> <Fun>and</Fun> <Expr> <Fun>></Fun> <Var>x</Var> <Ind>14</Ind> </Expr> -77-

86 <Expr> <Fun><</Fun> <Var>x</Var> <Ind>35</Ind> </Expr> </Expr> <Data xsi:type="xs:boolean">true</data> </Equal> </And> </if> <do> <Assert> <Atom> <Rel>agegroup</Rel> <Ind>middle</Ind> </Atom> </Assert> </do> </Rule> Δε γίνεται καμιά αλλαγή στο XSLT έγγραφο Ο έκτος κανόνας Ο έκτος κανόνας CLIPS που χρησιμοποιήθηκε ήταν ο εξής: (defrule r6 (apples?x) (oranges?y) => (assert (fruits (+?x?y))) ) Στον παραπάνω κανόνα υπάρχουν δύο συνθήκες και μία ενέργεια. Στις συνθήκες δηλώνουν ότι υπάρχουν x μήλα και y πορτοκάλια και στην ενέργεια προστίθεται το γεγονός ότι τα φρούτα είναι το άθροισμα των παραπάνω, δηλαδή (x+y). Και πάλι χρησιμοποιείται το στοιχείο <Equal>, το οποίο εσωκλείεται όμως στο στοιχείο <Assert>. Μέσα στο <Equal> υπάρχει το στοιχείο <Expr>, το οποίο ορίζεται όπως και στα προηγούμενα παραδείγματα, και το στοιχείο <Data>, το οποίο περιέχει δεδομένα τύπου #PCDATA. Έτσι ο κανόνας μετατρέπεται ως εξής: -78-

87 <Rule> <oid> <Ind>r6</Ind> </oid> <if> <And> <Atom> <Rel>apples</Rel> <Var>x</Var> </Atom> <Atom> <Rel>oranges</Rel> <Var>y</Var> </Atom> </And> </if> <do> <Assert> <Equal> <Expr> <Fun>+</Fun> <Var>x</Var> <Var>y</Var> </Expr> <Data>fruits</Data> </Equal> </Assert> </do> </Rule> Στο XSLT έγγραφο προστίθενται τα παρακάτω: <! Assert element --> <xsl:template match="n:assert"> <xsl:if test="n:rule n:equal"> <xsl:apply-templates select="n:rule n:equal"/> </xsl:if> </xsl:template> <! Equal element --> <xsl:template match="n:equal"> <xsl:if test="name(..)='assert'"> <xsl:text> (assert ( </xsl:text> <xsl:apply-templates select="n:data n:ind"/> <xsl:if test="n:expr"> <xsl:apply-templates select="n:expr"/> </xsl:if> <xsl:text>) ) </xsl:text> </xsl:if> </xsl:template> -79-

88 <! Data element --> <xsl:template match="n:data"> <xsl:if test="./text()!='true'"> <xsl:value-of select="."/> </xsl:if> </xsl:template> Σύμφωνα με το XSLT, το στοιχείο <Equal> προστίθεται στο <Assert>. Σε περίπτωση που το <Equal> εσωκλείεται στο <Assert>, μεταφράζεται ως εξής: ( assert (...)) Το περιεχόμενο του στοιχείου <Data> τροποποιείται έτσι ώστε να μη μεταφράζεται μόνο στην περίπτωση που έχει την τιμή true Ο τελευταίος κανόνας Ο κανόνας CLIPS που εξετάστηκε τελευταίος ήταν ο εξής: Το ιδιαίτερο στοιχείο αυτού του κανόνα από όσους προηγήθηκαν, είναι η πρώτη ε- νέργεια με την οποία ανατίθεται στην μεταβλητή total_cost το αποτέλεσμα της έκφρασης (newcost + oldcost). Έτσι ο κανόνας μετατρέπεται ως εξής: (defrule r7 (oldcost?oldcost) (newcost?newcost) => (bind?total_cost (+?newcost?oldcost)) (assert (cost?total_cost)) ) <Rule> <oid><ind>r24</ind></oid> <if> <And> <Atom> <Rel>oldcost</Rel> <Var>oldcost</Var> </Atom> <Atom> <Rel>newcost</Rel> <Var>newcost</Var> </Atom> </And></if> -80-

89 <do> <Assert> <Equal> <Var>total_cost</Var> <Expr> <Fun>+</Fun> <Var>newcost</Var> <Var>oldcost</Var> </Expr> </Equal> </Assert> <Assert> <Atom> <Rel>cost</Rel> <Var>total_cost</Var> </Atom> </Assert> </do> </Rule> Στο XSLT έγγραφο προστίθενται τα παρακάτω: <! Equal element --> <xsl:template match="n:equal"> <xsl:if test="name(..)='assert' and count(./n:var)>0"> <xsl:text> (bind</xsl:text> <xsl:apply-templates select="n:var n:data n:ind"/> <xsl:if test="n:expr"> <xsl:apply-templates select="n:expr"/> </xsl:if> <xsl:text>) </xsl:text> </xsl:if> <xsl:if test="name(..)='assert' and count(./n:var)=0"> <xsl:text> (assert ( </xsl:text> <xsl:apply-templates select="n:data n:ind"/> <xsl:if test="n:expr"> <xsl:apply-templates select="n:expr"/> </xsl:if> <xsl:text>) ) </xsl:text> </xsl:if> <xsl:if test="name(..)='if' or name(../..)='if'"> <xsl:text> (test</xsl:text> <xsl:apply-templates select="n:data n:ind"/> <xsl:if test="n:expr"> <xsl:apply-templates select="n:expr"/> </xsl:if> <xsl:text>)</xsl:text> </xsl:if> </xsl:template> -81-

90 Έτσι, στο XSLT το στοιχείο <Equal> αλλάζει ώστε σε περίπτωση που βρίσκεται μέσα σε <Assert> και περιέχει κάποιο στοιχείο <Var>, να μεταφράζεται μέσα σε παρενθέσεις και να προστίθεται η λέξη bind. Με τον τρόπο αυτό προσομοιώνεται η ανάθεση τιμής σε κάποια μεταβλητή, όπως αυτή πραγματοποιείται από το CLIPS. Με τη λειτουργικότητα που έχει δοθεί στο XSLT έγγραφο βάσει των παραδειγμάτων που προηγήθηκαν, έχει γίνει δυνατή η αναπαράσταση των βασικότερων δομών των κανόνων της CLIPS από κανόνες RuleML. Συνεπώς, το XSLT έγγραφο αποτελεί ένα αρκετά ισχυρό μεταφραστή από κανόνες παραγωγής RuleML σε κανόνες παραγωγής CLIPS Εισαγωγή Γεγονότων Τέλος, το XSLT έγγραφο τροποποιήθηκε ώστε δίνεται η δυνατότητα να μετατρέπονται και γεγονότα από RuleML σε CLIPS. Ένα παράδειγμα γεγονότος CLIPS αποτελεί το εξής: (goto?floor) Το γεγονός στη RuleML μεταφράζεται με το στοιχείο <Atom>. Έτσι, το παραπάνω γεγονός μετατρέπεται ως εξής: <Atom> <Rel>goto</Rel> <Var>floor2</Var> </Atom> Το XSLT έγγραφο έχει διαμορφωθεί έτσι ώστε να μεταφράζει ήδη τα στοιχεία <Atom> σε γεγονότα. Συνεπώς, για τη μετάφραση γεγονότων, αντί για κανόνες, οι προσθήκες που γίνονται είναι ελάχιστες και φαίνονται παρακάτω: -82-

91 <! RuleML element --> <xsl:template match="n:ruleml"> <xsl:if test="n:assert/n:rule"> <xsl:apply-templates select="n:assert"/> </xsl:if> <xsl:if test="n:assert/n:atom"> <xsl:apply-templates select="n:assert/n:atom"/> </xsl:if> <xsl:if test="n:assert/n:equal"> <xsl:if test="count(n:assert/n:equal/n:var)>0"> <xsl:text> (bind</xsl:text> <xsl:apply-templates select="n:assert/n:equal/n:var n:assert/n:equal/n:data n:assert/n:equal/n:ind"/> <xsl:if test="n:assert/n:equal/n:expr"> <xsl:apply-templates select="n:assert/n:equal/n:expr"/> </xsl:if> <xsl:text>) </xsl:text> </xsl:if> <xsl:if test="count(n:assert/n:equal/n:var)=0"> <xsl:text> (assert ( </xsl:text> <xsl:apply-templates select="n:assert/n:equal/n:data n:assert/n:equal/n:ind"/> <xsl:if test="n:assert/n:equal/n:expr"> <xsl:apply-templates select="n:assert/n:equal/n:expr"/> </xsl:if> <xsl:text>) ) </xsl:text> </xsl:if> </xsl:if> </xsl:template> Έτσι, στο XSLT το στοιχείο <RuleML> αλλάζει έτσι ώστε να μεταφράζει, εκτός από κανόνες, και γεγονότα. Η δομή που μπορεί να χρησιμοποιηθεί είναι η <RuleML> <Assert><Rule> </Rule></Assert></RuleML> για κανόνες ή η <RuleML> <Assert><Atom> </Atom></Assert></RuleML> για γεγονότα και η <RuleML> <Assert><Equal> </Equal></Assert></RuleML> για γεγονότα ανάθεσης τιμής. Να σημειωθεί ότι αν και η παραπάνω διαφορά είναι αρκετά μικρή, η πολυπλοκότητα της τροποποίησης που έγινε στο XSLT έγγραφο, οφείλεται στο γεγονός ότι ο επεξεργαστής Xalan που χρησιμοποιήθηκε κάνει χρήση της XPath 1.0. Στη συγκεκριμένη η εντολή name( ) δεν λειτουργεί, κάτι που θα διευκόλυνε κατά πολύ την υλοποίηση. -83-

92 6.2 Δημιουργία Ιστότοπου Εφόσον ολοκληρώθηκε η λειτουργικότητα του συστήματος, έπρεπε να ενισχυθεί και η ευχρηστία του. Για το λόγο αυτό, επόμενο βήμα στην υλοποίηση υπήρξε η δημιουργία της διεπαφής (interface) μέσω της οποίας θα δίνεται η δυνατότητα σε κάθε χρήστη να αποκτά πρόσβαση στο σύστημα μετατροπής κανόνων από RuleML σε CLIPS. Έτσι, δημιουργήθηκε ένας ιστότοπος (site), ώστε η πρόσβαση στο σύστημα να γίνεται διαδικτυακά. Ο ιστότοπος φιλοξενείται από το περιβάλλον του Apache Tomcat, που είναι και το επίσημο περιβάλλον για τεχνολογίες όπως Java Servlets and JavaServer Pages (jsp). Η έκδοση του Apache Tomcat που χρησιμοποιείται είναι η Ο ιστότοπος αποτελείται από σελίδες jsp, ενώ οι βασικές λειτουργίες εκτελούνται από ένα Java Servlet. Για να είναι δυνατή η μετατροπή των κανόνων και των γεγονότων από RuleML σε CLIPS κάνοντας χρήση του XSLT εγγράφου που περιγράφηκε παραπάνω, έπρεπε να ενσωματωθεί κάποιος XSLT processor. Για τις ανάγκες τις εργασίας επιλέχθηκε ο xalan Τέλος, για την ενσωμάτωση του συστήματος CLIPS χρησιμοποιήθηκε η έκδοση 0.2 του CLIPS Java Native Interface (ClipsJNI), η περιγραφή του οποίου δίνεται στο παράρτημα. Η δομή του ιστότοπου διατηρήθηκε λιτή, ώστε να μην αποσπάται η προσοχή του χρήστη από τη βασική λειτουργικότητά του, που ουσιαστικά είναι η χρήση του συστήματός που περιγράφηκε παραπάνω. Ο ιστότοπος αποτελείται από τέσσερις σελίδες, στις οποίες η πρόσβαση είναι δυνατή από οποιοδήποτε σημείο του site. Οι σελίδες αυτές είναι οι: Home Queries Description About Αρχική Σελίδα Η σελίδα Home (home.jsp) είναι η πρώτη σελίδα που εμφανίζεται στο χρήστη κατά την είσοδό του στο site (Εικόνα 29). -84-

93 Εικόνα 29: Η ιστοσελίδα Home Στο πάνω μέρος της αναγράφεται το όνομα του site και του συστήματος, ενώ περιέχει ακόμη συνδέσμους προς τις υπόλοιπες σελίδες, κάτι που συμβαίνει σε κάθε σελίδα του συγκεκριμένου ιστότοπου. Ρόλος της συγκεκριμένης σελίδας είναι να καλωσορίσει το χρήστη στο site, για αυτό περιέχει ένα μικρό κείμενο, που στόχος του είναι καταρχήν να ενημερώσει το χρήστη για το λόγο λειτουργίας του site και κατά δεύτερον να του ελκύσει το ενδιαφέρον και να τον προτρέψει να το εξερευνήσει Η Ιστοσελίδα About Η σελίδα About φαίνεται παρακάτω (Εικόνα 30): -85-

94 Εικόνα 30: Η ιστοσελίδα About Στην ιστοσελίδα About (about.jsp) δίνεται μια σύντομη περιγραφή της χρησιμότητας και της λειτουργικότητας του συστήματος κανόνων παραγωγής, ενώ στο κάτω τμήμα της παρατίθενται τα στοιχεία επικοινωνίας του διαχειριστή, καθώς επίσης και κάποιες βασικές ιστοσελίδες, ως πηγή άντλησης περισσότερων πληροφοριών σχετικά με το σύστημα Η Σελίδα της Περιγραφής Η ιστοσελίδα Description (description.jsp) δίνει μια λεπτομερή περιγραφή όλων των σελίδων του ιστότοπου, καθώς και του ρόλου που αυτές έχουν. Επεξηγεί το σκοπό του ιστότοπου, όπως επίσης και τον τρόπο λειτουργίας του συστήματος, παραθέτοντας και ένα παράδειγμα με τη μορφή που πρέπει να έχουν οι κανόνες που εισάγονται στο σύ- -86-

95 στημα, τα αντίστοιχα γεγονότα, όπως επίσης και τα αναμενόμενα αποτελέσματά τους. Η συγκεκριμένη σελίδα φαίνεται στην Εικόνα 31. Εικόνα 31: Η ιστοσελίδα Description Σελίδα Συστήματος Η ιστοσελίδα Queries (index.jsp) αποτελεί τη βασικότερη σελίδα του site, καθώς παρέχει τη διεπαφή για το σύστημα των κανόνων παραγωγής. -87-

96 Εικόνα 32: Ιστοσελίδα Queries Όπως φαίνεται και στην Εικόνα 32, η συγκεκριμένη σελίδα αλληλεπιδρά με το χρήστη. Αρχικά ο χρήστης μπορεί να επιλέξει μία από τις εφτά δυνατές ενέργειες, οι οποίες φαίνονται παρακάτω: Εικόνα 33: Λίστα δυνατών ενεργειών -88-

97 Η πρώτη δυνατή ενέργεια είναι η εισαγωγή κανόνων στη βάση κανόνων. Επιλέγοντας την αντίστοιχη ενέργεια (Add New Rule), ο χρήστης μεταβαίνει στο πλαίσιο κειμένου της περιοχής «Rules». Στο συγκεκριμένο πλαίσιο εισάγονται οι κανόνες RuleML. Ο χρήστης μπορεί να εισάγει έναν κανόνα κάθε φορά, και για την ολοκλήρωση της εισαγωγής, θα πρέπει να πατήσει το κουμπί «ADD RULE» που βρίσκεται κάτω από το αντίστοιχο πλαίσιο κειμένου, οπότε και το κείμενο του κανόνα σβήνεται. Σε περίπτωση λάθους, εμφανίζεται φυσικά ένα μήνυμα που ενημερώνει το χρήστη. Να σημειωθεί, πως για λόγους διευκόλυνσης του χρήστη οι κανόνες εισάγονται ξεκινώντας από το στοιχείο <Rule>, παραλείποντας τα παραπάνω επίπεδα, τα οποία εισάγονται αυτόματα από το σύστημα. Ο νέος κανόνας RuleML αποθηκεύεται προσωρινά στο αρχείο temp.xml στο server, στην ίδια τοποθεσία όπου βρίσκεται και το αρχείο XSLT η περιγραφή του οποίου δόθηκε παραπάνω. Ο κανόνας RuleML, κάνοντας χρήση του XSLT, μετατρέπεται σε κανόνα CLIPS στον επεξεργαστή Xalan. Ο νέος κανόνας CLIPS αποθηκεύεται προσωρινά στο αρχείο temp.clp και στη συνέχεια προστίθεται στη βάση κανόνων, η οποία ουσιαστικά είναι το αρχείο Rulebase.clp, στο οποίο καταγράφεται το σύνολο των κανόνων. Είναι ευνόητο ότι αν η βάση κανόνων είναι άδεια, τότε δε θα παραχθεί κανένα γεγονός. Η επόμενη ενέργεια που φαίνεται στη λίστα της Εικόνα 33 είναι η εισαγωγή νέου γεγονότος (Add New Fact). Επιλέγοντας τη συγκεκριμένη ενέργεια, ο χρήστης μεταβαίνει στο πλαίσιο κειμένου της περιοχής «Facts». Ο χρήστης μπορεί να εισάγει ένα γεγονός κάθε φορά, και για την ολοκλήρωση της εισαγωγής, θα πρέπει να πατήσει το κουμπί «ADD FACT». Σε περίπτωση λάθους, εμφανίζεται φυσικά ένα μήνυμα που ε- νημερώνει το χρήστη. Να σημειωθεί, πως και στην περίπτωση των γεγονότων, για λόγους διευκόλυνσης του χρήστη εισάγονται ξεκινώντας από το στοιχείο <Atom>. Ο τρόπος επεξεργασίας του νέου γεγονότος γίνεται με παρόμοιο τρόπο με αυτόν που περιγράφηκε παραπάνω. Το νέο γεγονός RuleML αποθηκεύεται προσωρινά στο αρχείο tempfact.xml στο server και το νέο γεγονός CLIPS στο αρχείο tempfact.clp. Το σύνολο των γεγονότων αποθηκεύεται στο αρχείο Factbase.clp, που αποτελεί και τη βάση γεγονότων. Επιπλέον, δίνεται η δυνατότητα να αδειάσει η βάση κανόνων σβήνοντας το αρχείο Rulebase.clp με την επιλογή της ενέργειας «Clear Rulebase» και αντίστοιχα με την ε- νέργεια «Clear Factbase» καθαρίζεται η βάση γεγονότων. Επιπρόσθετα, στο server υ- πάρχουν και δύο αρχεία τα «all Rulebase.clp» και «all Factbase.clp», τα οποία αποτε- -89-

98 λούν την προκαθορισμένη βάση κανόνων και βάση γεγονότων αντίστοιχα. Έτσι, με τις ενέργειες «Reload Rulebase» και «Reload Factbase» φορτώνονται οι προκαθορισμένες βάσεις κανόνων και γεγονότων, αντίστοιχα, αφού αρχικά διαγραφούν οι ήδη υπάρχουσες. Για όλες τις παραπάνω ενέργειες, ο χρήστης ενημερώνεται από κατάλληλα μηνύματα τόσο σε περίπτωση επιτυχίας, όσο και σε περίπτωση αποτυχίας. Τέλος, όταν ολοκληρωθεί η εισαγωγή όλων των επιθυμητών κανόνων και γεγονότων, ο χρήστης μπορεί είτε να επιλέξει την ενέργεια «Execute» είτε να πατήσει το αντίστοιχο κουμπί. Τότε καλείται το σύστημα CLIPS και φορτώνεται η βάση κανόνων (Rulebase.clp). Εισάγονται στη βάση γεγονότων όλα τα γεγονότα του αρχείου «Factbase.clp» ένα προς ένα, και τα αποτελέσματα καταγράφονται στο αρχείο log.txt. Τελικά, τα αποτελέσματα του CLIPS, εμφανίζονται στο χρήστη στο πλαίσιο κειμένου μιας νέας ιστοσελίδας, της results.jsp. Τα αποτελέσματα αποτελούνται από το σύνολο των γεγονότων που έχουν εισαχθεί στο σύστημα, από τα γεγονότα που παράχθηκαν από τους κανόνες της βάσης κανόνων (μετά από το σύμβολο = =>), καθώς και τα γεγονότα που αφαιρέθηκαν από τη βάση, τα οποία εμφανίζονται (μετά από το σύμβολο <= =) (Εικόνα 34). Να σημειωθεί ότι η πρόσβαση στη συγκεκριμένη σελίδα (results.jsp) μπορεί να αποκτηθεί μόνο μετά από επιλογή της ενέργειας «Execute». -90-

99 Εικόνα 34: Ιστοσελίδα results Στη σελίδα με τα αποτελέσματα δίνεται επιπλέον η δυνατότητα στο χρήστη να εμφανίσει μόνο τα γεγονότα που ισχύουν μετά την εκτέλεση των κανόνων της βάσης, πατώντας το κουμπί CURRENT FACTS (). -91-

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Λίνα Μπουντούρη - Μανόλης Γεργατσούλης Ιόνιο Πανεπιστήμιο 15ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών Διαδίκτυο και Επίπεδα ετερογένειας δεδομένων

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Λογική Ενότητα 1: Εισαγωγή Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons

Διαβάστε περισσότερα

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής ΗΥ 180 - Λογική Διδάσκων: Καθηγητής E-mail: dp@csd.uoc.gr Ώρες διδασκαλίας: Δευτέρα, Τετάρτη 4-6 μμ, Αμφ. Β Ώρες φροντιστηρίου: Πέμπτη 4-6 μμ, Αμφ. Β Ώρες γραφείου: Δευτέρα, Τετάρτη 2-4 μμ, Κ.307 Web site:

Διαβάστε περισσότερα

Σχεδίαση και Ανάπτυξη Ιστότοπων

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία

Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία Σοφία Ζαπουνίδου, Αρχειονόμος Βιβλιοθηκονόμος, Πανεπιστήμιο Θεσσαλίας Κεντρική

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

Διαβάστε περισσότερα

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 01 & 02. Δρ. Γεώργιος Χρ. Μακρής

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 01 & 02. Δρ. Γεώργιος Χρ. Μακρής ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ στα ΠΟΛΥΠΛΟΚΑ ΣΥΣΤΗΜΑΤΑ και ΔΙΚΤΥΑ Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός Χειμερινό Εξάμηνο Σπουδών Διάλεξη 01 & 02 Δρ. Γεώργιος Χρ. Μακρής Αναπαράσταση

Διαβάστε περισσότερα

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

Διαβάστε περισσότερα

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 02 & 03. Δρ. Γεώργιος Χρ. Μακρής

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 02 & 03. Δρ. Γεώργιος Χρ. Μακρής ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ στα ΔΙΚΤΥΑ και ΠΟΛΥΠΛΟΚΟΤΗΤΑ Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός Χειμερινό Εξάμηνο Σπουδών Διάλεξη 02 & 03 Δρ. Γεώργιος Χρ. Μακρής Αναπαράσταση

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #02 Ιστορική αναδρομή Σχετικές επιστημονικές περιοχές 1 Άδεια χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Αποτύπωση επιχειρηματικής γνώσης και Διαδικασιών

Αποτύπωση επιχειρηματικής γνώσης και Διαδικασιών Αποτύπωση επιχειρηματικής γνώσης και Διαδικασιών Τρόποι μετάδοσης της γνώσης ΡΗΤΗ ΓΝΩΣΗ ΔΙΑΝΟΗΤΙΚΗ ΜΕΤΑΔΟΣΗ (ΣΥΝΔΥΑΣΜΟΣ) ΕΞΩΤΕΡΙΚΟΠΟΙΗΣΗ ΕΣΩΤΕΡΙΚΟΠΟΙΗΣΗ ΕΜΠΕ ΙΡΙΚΗ ΓΝΩ ΩΣΗ ΕΜΠΕΙΡΙΚΗ ΜΕΤΑΔΟΣΗ (ΚΟΙΝΩΝΙΚΟΠΟΙΗΣΗ)

Διαβάστε περισσότερα

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες

Διαβάστε περισσότερα

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

Σχεδιασµός Ανάπτυξη Οντολογίας Σχεδιασµός Ανάπτυξη Οντολογίας ΈλεναΜάντζαρη, Γλωσσολόγος, Ms.C. ΙΑΤΡΟΛΕΞΗ: Ανάπτυξη Υποδοµής Γλωσσικής Τεχνολογίας για το Βιοϊατρικό Τοµέα Τι είναι η οντολογία; Μιαοντολογίαείναιέναλεξικόόρωνπου διατυπώνονται

Διαβάστε περισσότερα

Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα:

Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα: Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα: οφέλη για επιχειρήσεις και καταναλωτές Μιχάλης Σαλαμπάσης αναπληρωτής καθηγητής Τμήμα Πληροφορικής Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης Εναλλακτικός

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής Εισαγωγή στις Βάσεις Δεδομένων Εισαγωγή στις Βάσεις Δεδομένων Ορισμός Βάσης Δεδομένων Σύστημα Διαχείρισης Βάσης Δεδομένων ΣΔΒΔ (DBMS) Χαρακτηριστικά προσέγγισης συστημάτων αρχειοθέτησης Χαρακτηριστικά

Διαβάστε περισσότερα

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

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος: 2012 2013 ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία Γεώργιος Πετάσης Ακαδημαϊκό Έτος: 2012 2013 ΤMHMA MHXANIKΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ, Πανεπιστήμιο Πατρών, 2012 2013 Τι είναι η γλωσσική τεχνολογία;

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

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

Διαβάστε περισσότερα

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head>

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head> Εισαγωγη στην html Ο παγκόσμιος ιστός (αγγ.: World Wide Web ή www) είναι η πιο δημοφιλής υπηρεσία που μας παρέχει το Διαδίκτυο (Internet) και είναι ένα σύστημα διασυνδεδεμένων πληροφοριών (κειμένου, εικόνας,

Διαβάστε περισσότερα

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

Πολιτισμική Τεχνολογία. Πολυμέσα & Διαδίκτυο Παράμετροι Δικαίου Μέρος Α

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

Διαβάστε περισσότερα

Αποτύπωση επιχειρηματικής γνώσης και Διαδικασιών

Αποτύπωση επιχειρηματικής γνώσης και Διαδικασιών Αποτύπωση επιχειρηματικής γνώσης και Διαδικασιών Η δομή του συστήματος ποιότητας Εγχειρίδιο Ποιότητας (quality manual) Διεργασίες ς (process) Διαδικασίες (procedure) Οδηγίες Εργασίας (work instruction)

Διαβάστε περισσότερα

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

Διαβάστε περισσότερα

Οι βασικές αλλαγές που επιδρούν στο επιχειρηματικό περιβάλλον

Οι βασικές αλλαγές που επιδρούν στο επιχειρηματικό περιβάλλον Οι βασικές αλλαγές που επιδρούν στο επιχειρηματικό περιβάλλον Παγκοσμιοποίηση Οικονομία της πληροφορίας Μετασχηματισμός της επιχείρησης Εμφάνιση της ψηφιακής επιχείρησης Παγκοσμιοποίηση Διοίκηση και έλεγχος

Διαβάστε περισσότερα

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

Διαβάστε περισσότερα

O μετασχηματισμός μιας «διαθεματικής» δραστηριότητας σε μαθηματική. Δέσποινα Πόταρη Πανεπιστήμιο Πατρών

O μετασχηματισμός μιας «διαθεματικής» δραστηριότητας σε μαθηματική. Δέσποινα Πόταρη Πανεπιστήμιο Πατρών O μετασχηματισμός μιας «διαθεματικής» δραστηριότητας σε μαθηματική Δέσποινα Πόταρη Πανεπιστήμιο Πατρών Η έννοια της δραστηριότητας Δραστηριότητα είναι κάθε ανθρώπινη δράση που έχει ένα κίνητρο και ένα

Διαβάστε περισσότερα

Περί της Ταξινόμησης των Ειδών

Περί της Ταξινόμησης των Ειδών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Tel.: +30 2310998051, Ιστοσελίδα: http://users.auth.gr/theodoru Περί της Ταξινόμησης

Διαβάστε περισσότερα

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

Διαβάστε περισσότερα

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3 Ανάπτυξη Οντολογίας Βιοϊατρικών Όρων Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3 www.iatrolexi.cti.gr 1 Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών (ΕΑΙΤΥ) Σελίδα 1 Ημερομηνία:

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνητή νοημοσύνη

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται:

Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται: Μάθημα 10 Συστήματα Διάχυσης και Διαχείρισης Γνώσης Chapter 10 Knowledge Transfer In The E-world Chapter 13 Knowledge Management Tools and Knowledge Portals Συστήματα Διάχυσης και Διαχείρισης Γνώσης Λογισμικό

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναπαράσταση με Κανόνες Η γνώση αναπαρίσταται με τρόπο που πλησιάζει την ανθρώπινη

Διαβάστε περισσότερα

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι Συστήματα Υποστήριξης Αποφάσεων Τα Συστήματα Υποστήριξης Αποφάσεων (Σ.Υ.Α. - Decision Support Systems, D.S.S.) ορίζονται ως συστήματα

Διαβάστε περισσότερα

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο 1 Γλώσσες Σήµανσης Γλώσσες σήµανσης: Αρχικά για τον καθορισµό εµφάνισης σελίδων, γραµµατοσειρών. Στη συνέχεια επεκτάθηκαν

Διαβάστε περισσότερα

Διαχείριση οντολογιών: μελέτη και εμβάθυνση στα βασικά προβλήματα που την αφορούν και παρουσίαση υπαρχουσών βιβλιοθηκών οντολογιών

Διαχείριση οντολογιών: μελέτη και εμβάθυνση στα βασικά προβλήματα που την αφορούν και παρουσίαση υπαρχουσών βιβλιοθηκών οντολογιών 15ο ΠΑΝΕΛΛΗΝΙΟ ΣΥΝΕΔΡΙΟ ΑΚΑΔΗΜΑΪΚΩΝ ΒΙΒΛΙΟΘΗΚΩΝ Διαχείριση οντολογιών: μελέτη και εμβάθυνση στα βασικά προβλήματα που την αφορούν και παρουσίαση υπαρχουσών βιβλιοθηκών οντολογιών ΓΑΪΤΑΝΟΥ ΠΑΝΩΡΑΙΑ gaitanou@benaki.gr

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Λογική Δημήτρης Πλεξουσάκης 2ο μέρος σημειώσεων: Συστήματα Αποδείξεων για τον ΠΛ, Μορφολογική Παραγωγή, Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης

Διαβάστε περισσότερα

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

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΕΙ Δυτικής Μακεδονίας ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ 2015-2016 Τεχνητή Νοημοσύνη Λογικοί Πράκτορες Διδάσκων: Τσίπουρας Μάρκος Εκπαιδευτικό Υλικό: Τσίπουρας Μάρκος http://ai.uom.gr/aima/ 2 Πράκτορες βασισμένοι

Διαβάστε περισσότερα

Μαθησιακές δραστηριότητες με υπολογιστή

Μαθησιακές δραστηριότητες με υπολογιστή ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μαθησιακές δραστηριότητες με υπολογιστή Εργαλεία αναζήτησης πληροφορίας Διδάσκων: Καθηγητής Αναστάσιος Α. Μικρόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων YouTube Ιδρύθηκε το 2005 Στόχος του ήταν να δημιουργήσει μία παγκόσμια κοινότητα Βάση δεδομένων βίντεο Μέσα σε ένα χρόνο από τη δημιουργία

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

Διαβάστε περισσότερα

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται

Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται special report τoυ Γιώργου Φετοκάκη / gfetokakis@boussias.com Jobs scheduling Η χρυσή τοµή της αυτοµατοποίησης Μια λύση job scheduling πρέπει να είναι αρκετά περιεκτική. Πρέπει να υποστηρίζει την ενσωµάτωση

Διαβάστε περισσότερα

Επιμορφωτικές Τηλεκπαιδεύσεις

Επιμορφωτικές Τηλεκπαιδεύσεις Επιμορφωτικές Τηλεκπαιδεύσεις Υπηρεσίες Πανελλήνιου Σχολικού Δικτύου Υπηρεσία Ηλεκτρονικής Σχολικής Τάξης (η-τάξη) Προεπισκόπηση Παρουσίασης Υπηρεσία Ηλεκτρονικής Σχολικής Τάξης (η-τάξη) Εισαγωγή Χαρακτηριστικά

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

Διαβάστε περισσότερα

Συστήματα Πληροφοριών Διοίκησης

Συστήματα Πληροφοριών Διοίκησης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά Συστήματα Πληροφοριών Διοίκησης Ενότητα 2: Γενική θεώρηση και κατάταξη συστημάτων πληροφοριών διοίκησης Διονύσιος Γιαννακόπουλος, Καθηγητής Τμήμα

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

Διαβάστε περισσότερα

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0 Καραμαούνας Πολύκαρπος 1 9.1 Ιστορικά Στοιχεία Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο και ήταν απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966

Διαβάστε περισσότερα

η ενημέρωση για τις δράσεις που τυχόν υιοθετήθηκαν μέχρι σήμερα και τα αποτελέσματα που προέκυψαν από αυτές.

η ενημέρωση για τις δράσεις που τυχόν υιοθετήθηκαν μέχρι σήμερα και τα αποτελέσματα που προέκυψαν από αυτές. Με ιδιαίτερη χαρά σας καλωσορίζω στην έδρα της Περιφέρειας Πελοποννήσου. Σας ευχαριστώ θερμά για τη συμμετοχή σας, η οποία πιστεύω ότι είναι ένα ακόμη βήμα στην προσπάθεια που κάνουμε όλοι, για την ανάδειξη

Διαβάστε περισσότερα

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

Περίληψη Λαμπρόπουλος

Περίληψη Λαμπρόπουλος Περίληψη Λαμπρόπουλος 1. Αντικείμενο και Περιγραφή της Διατριβής H διδακτορική διατριβή με τίτλο «Σχεδιασμός και υλοποίηση συστήματος διαχείρισης και ενοποίησης διαφορετικών ταυτοτήτων χρηστών σε δίκτυα

Διαβάστε περισσότερα

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

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΛΟΓΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (III) ΙΖΑΜΠΩ ΚΑΡΑΛΗ ΑΘΗΝΑ 2008 Σύγχρονεςανάγκες για αναπαράσταση γνώσης

Διαβάστε περισσότερα

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

Διαβάστε περισσότερα

Διδακτικές Τεχνικές (Στρατηγικές)

Διδακτικές Τεχνικές (Στρατηγικές) Διδακτικές Τεχνικές (Στρατηγικές) Ενδεικτικές τεχνικές διδασκαλίας: 1. Εισήγηση ή διάλεξη ή Μονολογική Παρουσίαση 2. Συζήτηση ή διάλογος 3. Ερωταποκρίσεις 4. Χιονοστιβάδα 5. Καταιγισμός Ιδεών 6. Επίδειξη

Διαβάστε περισσότερα

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

Διαβάστε περισσότερα

Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014

Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014 Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014 Ανοικτά και Συνδεδεμένα Δεδομένα Ανοικτά Δεδομένα Πληροφορίες, δημόσιες ή άλλες, στις

Διαβάστε περισσότερα

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. 4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη. Η μετατροπή μιας εντολής επανάληψης σε μία άλλη ή στις άλλες δύο εντολές επανάληψης, αποτελεί ένα θέμα που αρκετές φορές έχει εξεταστεί σε πανελλαδικό

Διαβάστε περισσότερα

Επιστήμη της Πληροφορικής. Εργασία του μαθητή Δημήτρη Τσιαμπά του τμήματος Α4

Επιστήμη της Πληροφορικής. Εργασία του μαθητή Δημήτρη Τσιαμπά του τμήματος Α4 Επιστήμη της Πληροφορικής Εργασία του μαθητή Δημήτρη Τσιαμπά του τμήματος Α4 Η πληροφορική είναι η επιστήμη που ερευνά την κωδικοποίηση, διαχείριση και μετάδοση συμβολικών αναπαραστάσεων πληροφοριών. Επίσης

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών

Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών ΤΣΙΜΠΑΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΞΗΝΤΑΡΙΔΗΣ ΙΩΑΝΝΗΣ Κέντρο Λειτουργίας και Διαχείρισης Δικτύου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

H Έννοια και η Φύση του Προγραμματισμού. Αθανασία Καρακίτσιου, PhD

H Έννοια και η Φύση του Προγραμματισμού. Αθανασία Καρακίτσιου, PhD H Έννοια και η Φύση του Προγραμματισμού Αθανασία Καρακίτσιου, PhD 1 Η Διαδικασία του προγραμματισμού Προγραμματισμός είναι η διαδικασία καθορισμού στόχων και η επιλογή μιας μελλοντικής πορείας για την

Διαβάστε περισσότερα

Προγραμματισμός και στρατηγική διοίκηση. 4 ο Κεφάλαιο

Προγραμματισμός και στρατηγική διοίκηση. 4 ο Κεφάλαιο Προγραμματισμός και στρατηγική διοίκηση 4 ο Κεφάλαιο Μαθησιακοί στόχοι (1) Μετά τη μελέτη του κεφαλαίου, θα είστε σε θέση να: 1. Συνοψίσετε τα βασικά βήματα σε οποιαδήποτε διαδικασία προγραμματισμού. 2.

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

Διαβάστε περισσότερα

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

Διαβάστε περισσότερα

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

Διαβάστε περισσότερα

ΑΡΘΡΟ «ΕΞΙ ΣΤΟΥΣ ΔΕΚΑ ΕΛΛΗΝΕΣ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΠΛΕΟΝ ΚΑΘΗΜΕΡΙΝΑ ΤΟ ΔΙΑΔΙΚΤΥΟ»

ΑΡΘΡΟ «ΕΞΙ ΣΤΟΥΣ ΔΕΚΑ ΕΛΛΗΝΕΣ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΠΛΕΟΝ ΚΑΘΗΜΕΡΙΝΑ ΤΟ ΔΙΑΔΙΚΤΥΟ» ΑΡΘΡΟ «ΕΞΙ ΣΤΟΥΣ ΔΕΚΑ ΕΛΛΗΝΕΣ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΠΛΕΟΝ ΚΑΘΗΜΕΡΙΝΑ ΤΟ ΔΙΑΔΙΚΤΥΟ» Ηλεκτρονικό Εμπόριο Ως Ηλεκτρονικό Εμπόριο ή ευρέως γνωστό ως e- commerce, είναι το εμπόριο παροχής αγαθών και υπηρεσιών που

Διαβάστε περισσότερα

Εργαστήριο Σημασιολογικού Ιστού

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 5-2-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Διαβάστε περισσότερα

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Ευθύμιος Ταμπούρης tambouris@uom.gr Επιστημονική Επιχειρηματική Χρήση των Η/Υ Η επιστημονική κοινότητα ασχολείται με τη λύση πολύπλοκων μαθηματικών προβλημάτων

Διαβάστε περισσότερα

Τεχνολογία ανάπτυξης νέων ιστοσελίδων στο Semantic Web.

Τεχνολογία ανάπτυξης νέων ιστοσελίδων στο Semantic Web. Τεχνολογία ανάπτυξης νέων ιστοσελίδων στο Semantic Web. ΒΕΖΕΡΗΣ ΔΗΜΗΤΡΙΟΣ Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Η/Υ Δημοκρίτειο Πανεπιστήμιο Θράκης Λευκίππου 6, 67100 Ξάνθη ΕΛΛΑΔΑ leader@cosmos4u.com,

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΨΥΧΟΛΟΓΙΑ (ΨΧ 00)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΨΥΧΟΛΟΓΙΑ (ΨΧ 00) ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΨΥΧΟΛΟΓΙΑ (ΨΧ 00) Πέτρος Ρούσσος ΔΙΑΛΕΞΗ 5 Έννοιες και Κλασική Θεωρία Εννοιών Έννοιες : Θεμελιώδη στοιχεία από τα οποία αποτελείται το γνωστικό σύστημα Κλασική θεωρία [ή θεωρία καθοριστικών

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Κεφάλαιο 8. Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής. Τεχνητή Νοηµοσύνη - Β' Έκδοση

Κεφάλαιο 8. Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής. Τεχνητή Νοηµοσύνη - Β' Έκδοση Κεφάλαιο 8 Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Αναπαράσταση Γνώσης Σύνολο συντακτικών

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

Διαβάστε περισσότερα

Σχεδιαστής Ιστοσελίδων

Σχεδιαστής Ιστοσελίδων Σχεδιαστής Ιστοσελίδων 1. Περιγραφή Ρόλου Τίτλος Προφίλ Σχεδιαστής Ιστοσελίδων Γνωστό και ως Συνοπτική Ένας σχεδιαστής ιστοσελίδων κατασκευάζει και ενημερώνει ιστοσελίδες ως προς τη σχεδίαση και τη διαμόρφωση

Διαβάστε περισσότερα

Παραδοτέο Π.2.1. Υπερχώρος και διαχείριση μοντέλων

Παραδοτέο Π.2.1. Υπερχώρος και διαχείριση μοντέλων Έργο: Τίτλος Υποέργου: «ΘΑΛΗΣ: Ενίσχυση της Διεπιστημονικής ή και Διιδρυματικής έρευνας και καινοτομίας με δυνατότητα προσέλκυσης ερευνητών υψηλού επιπέδου από το εξωτερικό μέσω της διενέργειας βασικής

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

Διοίκηση Επιχειρήσεων

Διοίκηση Επιχειρήσεων 10 η Εισήγηση Δημιουργικότητα - Καινοτομία 1 1.Εισαγωγή στη Δημιουργικότητα και την Καινοτομία 2.Δημιουργικό Μάνατζμεντ 3.Καινοτομικό μάνατζμεντ 4.Παραδείγματα δημιουργικότητας και καινοτομίας 2 Δημιουργικότητα

Διαβάστε περισσότερα

Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ Α Δομή και λειτουργία προσωπικού υπολογιστή...11 ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ Β Δομή και χρήση λειτουργικών συστημάτων DOS, UNIX και λειτουργικού

Διαβάστε περισσότερα