Γραφικό Περιβάλλον Σύνθεσης Βάσεων Κανόνων για το Σηµασιολογικό Ιστό
|
|
- Ἰσμήνη Λαιμός
- 8 χρόνια πριν
- Προβολές:
Transcript
1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Γραφικό Περιβάλλον Σύνθεσης Βάσεων Κανόνων για το Σηµασιολογικό Ιστό ιπλωµατική Εργασία της Θέτιδας Ζέττα (ΑΕΜ: 1256) Επιβλέπων Καθηγητής: ΝΙΚΟΛΑΟΣ ΒΑΣΙΛΕΙΑ ΗΣ ΘΕΣΣΑΛΟΝΙΚΗ ΙΟΥΛΙΟΣ 2009
2
3 Πρόλογος Ο Σηµασιολογικός Ιστός αποτελεί εξέλιξη και επέκταση του υπάρχοντος διαδικτύου. Η βασική ιδέα πίσω από αυτό είναι η οργάνωση και η διασύνδεση όλης της πληροφορίας που βρίσκεται διασκορπισµένη στο διαδίκτυο, ώστε να µπορεί να χρησιµοποιηθεί αποτελεσµατικά για την ανακάλυψη, αυτοµατοποίηση, οµαδοποίηση και επαναχρησιµοποίηση της από τις διαδικτυακές εφαρµογές. Παρόλο που οι τεχνολογίες του δεν έχουν πλήρως υιοθετηθεί, συνεχώς εξελίσσονται και αποκτούν ολοένα και µεγαλύτερη αποδοχή από τους χρήστες. Τα τελευταία χρόνια η ανάγκη για ύπαρξη πληροφορίας, κατανοητής όχι µόνο από τον άνθρωπο αλλά και από τα προγράµµατα-πράκτορες, έστρεψε το ενδιαφέρον στο χώρο του Σηµασιολογικού Ιστού. Η αρχική δυσπιστία έχει πλέον περιοριστεί και το σηµασιολογικό περιεχόµενο κατακτά συνεχώς έδαφος στο σύνολο των εφαρµογών. Μια σειρά νέων τεχνολογιών και εργαλείων, που συνεχώς αναπτύσσονται, έρχεται να ενισχύσει την προσπάθεια αυτή. Ο κύριος βέβαια όγκος όλων αυτών βρίσκεται ακό- µη στους ερευνητικούς και ακαδηµαϊκούς κύκλους, µακριά από τους τελικούς χρήστες, ωστόσο η κινητικότητα, τόσο των ερευνητών όσο και των εταιριών, είναι σηµαντική µε αποτέλεσµα την συνεχή ανάπτυξη του τοµέα. Το αντικείµενο της παρούσας πτυχιακής εργασίας είναι αφενός η µελέτη του Σηµασιολογικού Ιστού και της φιλοσοφίας που αυτός πρεσβεύει και αφετέρου η ανάπτυξη ενός φιλικού και λειτουργικού εργαλείου, που θα επιτρέπει τη σύνθεση βάσεων κανόνων για το Σηµασιολογικό Ιστό σε RuleML, παρέχοντας όλες τις δυνατότητες που παρέχει στο χρήστη κάθε περιβάλλον ανάπτυξης κώδικα, αλλά κυρίως συγκεκριµένες λειτουργίες ειδικά για τη συγγραφή των κανόνων. Η ανάπτυξη της εργασίας έγινε σε συνεργασία µε την ερευνητική οµάδα Intelligent Systems and Knowledge Processing (ISKP) του εργαστηρίου Γλωσσών Προγραµµατισµού και Τεχνολογίας Λογισµικού του τµήµατος Πληροφορικής, της σχολής Θετικών Επιστηµών του Αριστοτελείου Πανεπιστηµίου Θεσσαλονίκης. Στο σηµείο αυτό θα ή- θελα να ευχαριστήσω τον Επίκουρο Καθηγητή του Τµήµατος Πληροφορικής Νικόλαο
4 Βασιλειάδη, για την εµπιστοσύνη και την ανάθεση της παρούσας πτυχιακής εργασίας, την καθοδήγηση και την βιβλιογραφία που µου διέθεσε. Επίσης, θα ήθελα να ευχαριστήσω τον καθηγητή και διευθυντή του εργαστηρίου Ιωάννη Βλαχάβα για το ενδιαφέρον και την συνολική καθοδήγηση του. Τέλος, τις θερµές ευχαριστίες µου στον Στράτο Κοντόπουλο για την υποµονή, την κατανόηση και την διαρκή βοήθεια του. Ζέττα Θέτις -ii-
5 Περιεχόµενα ΠΡΟΛΟΓΟΣ... I ΠΕΡΙΕΧΟΜΕΝΑ... III 1 ΕΙΣΑΓΩΓΗ ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ ΤΟ ΌΡΑΜΑ ΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΥ ΙΣΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ ΚΑΙ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΤΕΧΝΟΛΟΓΙΕΣ ΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΥ ΙΣΤΟΥ Ρητά Μεταδεδοµένα (Explicit Metadata) Οντολογίες Πράκτορες ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΥ ΙΣΤΟΥ WEB ΚΑΝΟΝΕΣ ΚΑΙ RULEML ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ Συστήµατα Κανόνων Πλεονεκτήµατα και Μειονεκτήµατα Κανόνων ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ ΚΑΙ ΚΑΝΟΝΕΣ Η ΠΡΩΤΟΒΟΥΛΙΑ RULEML Η ΣΥΝΤΑΞΗ ΚΑΙ Η ΣΗΜΑΣΙΟΛΟΓΙΑ ΤΗΣ RULEML ΤΕΧΝΟΛΟΓΙΕΣ: JAVA ΚΑΙ XML NETBEANS Ιστορία Τρέχουσες Εκδόσεις Η Πλατφόρµα NetBeans Το NetBeans IDE JAVA API FOR XML PROCESSING (JAXP)... 36
6 4.2.1 Document Object Model (DOM) Simple API for XML Parsing (SAX) XSLT Επεξεργασία εγγράφου µε το Document Object Model (DOM) ΣΧΕ ΙΑΣΜΟΣ ΑΡΧΕΙΟ (FILE) ΕΠΕΞΕΡΓΑΣΙΑ (EDIT) ΠΕΡΙΗΓΗΣΗ (NAVIGATE) ΠΑΡΑΘΥΡΟ (WINDOW) ΒΟΗΘΕΙΑ (HELP) ΓΕΝΙΚΕΣ ΕΚΤΙΜΗΣΕΙΣ ΥΛΟΠΟΙΗΣΗ ΚΑΘΟΡΙΣΜΟΣ ΛΕΞΙΛΟΓΙΟΥ ΧΡΩΜΑΤΙΣΜΟΣ ΚΩ ΙΚΑ (SYNTAX HIGHLIGHTING) ΤΑΙΡΙΑΣΜΑ ΕΤΙΚΕΤΩΝ (TAG MATCHING) ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΑΝΤΙΣΤΟΙΧΙΣΗ ΕΤΙΚΕΤΩΝ ΑΥΤΟΜΑΤΗ ΣΥΜΠΛΗΡΩΣΗ ΚΩ ΙΚΑ ΆΛΛΕΣ ΛΕΙΤΟΥΡΓΙΕΣ Εκτύπωση Αρίθµηση Γραµµών ΣΥΜΠΕΡΑΣΜΑΤΑ ΑΡΧΙΚΟΣ ΣΤΟΧΟΣ ΤΕΛΙΚΗ ΥΛΟΠΟΙΗΣΗ ΜΕΛΛΟΝΤΙΚΕΣ ΕΠΕΚΤΑΣΕΙΣ ΚΑΙ ΒΕΛΤΙΩΣΕΙΣ ΒΙΒΛΙΟΓΡΑΦΙΑ ΠΑΡΑΡΤΗΜΑ iv-
7 1 Εισαγωγή Ο Σηµασιολογικός Ιστός είναι η επέκταση του Παγκόσµιου Ιστού που επιτρέπει στους ανθρώπους να διαµοιράζονται το περιεχόµενο πέρα από τα όρια των εφαρµογών και των ιστοχώρων. Έχει περιγραφεί µε αρκετούς διαφορετικούς τρόπους: σαν ουτοπικό όραµα, ως Ιστός των δεδοµένων, ή ως µία επαναστατική αλλαγή στην καθηµερινή χρήση του ιαδικτύου. Προ πάντων, ο Σηµασιολογικός Ιστός έχει εµπνεύσει και έχει δεσµεύσει πολλούς ανθρώπους να δηµιουργήσουν καινοτόµες σηµασιολογικές τεχνολογίες και εφαρµογές. Οι κανόνες αναγνωρίζονται ευρέως ως ένα σηµαντικό µέρος του Σηµασιολογικού Ιστού, αλλά και των εφαρµογών που χρησιµοποιούν τεχνικές βασισµένες στη γνώση, κυρίως για το ηλεκτρονικό εµπόριο. Αυτό περιλαµβάνει τη θεωρία και τους αλγορίθ- µους αντιπροσώπευσης γνώσης, γλώσσες σήµανσης βασισµένες στην αναπαράσταση γνώσης, µηχανές, µεταφραστές, και άλλα εργαλεία, σχέσεις στις προσπάθειες τυποποίησης και εφαρµογές. Το ενδιαφέρον και η δραστηριότητα στον τοµέα των κανόνων για το Σηµασιολογικό Ιστό έχει αυξηθεί γρήγορα κατά τη διάρκεια των τελευταίων ετών. Οι κανόνες συµπληρώνουν και επεκτείνουν τις οντολογίες στο Σηµασιολογικό Ιστό. Μπορούν να χρησιµοποιηθούν σε συνδυασµό µε τις οντολογίες, ή ως µέσα για να καθορίζονται οι οντολογίες. Συγκεκριµένα, οι απλοί κανόνες και τα αξιώµατα µπορούν να εφαρµοστούν µέσω των γλωσσών οντολογιών, είτε από κοινού είτε ως εναλλακτική λύση στις περιγραφικές λογικές. Οι κανόνες µπορούν επίσης να εφαρµοστούν πέρα από τις οντολογίες, ώστε να εξάγουν συµπεράσµατα, να εκφράζουν περιορισµούς, να καθορίζουν πολιτικές, να αντιδρούν σε γεγονότα ή αλλαγές, να ανακαλύπτουν νέα γνώση, να µετασχηµατίζουν δεδοµένα κ.λπ. Οι γλώσσες σήµανσης κανόνων εµπλουτίζουν τις οντολογίες Ιστού ώστε να επεκτείνονται οι ορισµοί των παραγόµενων εννοιών, να υποστηρίζεται η δηµοσίευση κανόνων στο ιαδίκτυο, να πραγµατοποιούνται ανταλλαγές κανόνων µεταξύ διαφορετικών συστηµάτων και εργαλείων, να διαµοιράζονται οδηγίες και πολιτικές, να συγχωνεύονται και να διατηρούνται βάσεις κανόνων και πολλά περισσότερα. -5-
8 Οι κανόνες στον Ιστό έχουν γίνει ένα δηµοφιλές θέµα, δεδοµένου ότι οι κανόνες συµπερασµάτων σηµάνθηκαν για το ηλεκτρονικό εµπόριο και αναγνωρίστηκαν ως ζήτηµα σχεδιασµού του Σηµασιολογικού Ιστού, και δεδοµένου ότι οι κανόνες µετασχηµατισµών τέθηκαν στην πρακτική για παραγωγή εγγράφων από µια κεντρική αποθήκη XML. Επιπλέον, οι κανόνες έχουν συνεχίσει να διαδραµατίζουν έναν σηµαντικό ρόλο στην Τεχνητή Νοηµοσύνη για τα συστήµατα γνώσης (Knowledge-based Systems) και τους ευφυείς πράκτορες (Intelligent Agents), που χρειάζονται σήµερα ένα σχήµα α- νταλλαγής Ιστού, και τέτοιοι XML/RDF τυποποιηµένοι κανόνες χρησιµοποιούνται ήδη για τη δηλωτική προδιαγραφή των υπηρεσιών Ιστού (Web Services). Η RuleML είναι η κυρίαρχη γλώσσα σήµανσης κανόνων για το Σηµασιολογικό Ιστό. Το θέµα που πραγµατεύεται η συγκεκριµένη διπλωµατική εργασία είναι η υλοποίηση ενός γραφικού περιβάλλοντος, το οποίο θα επιτρέπει τη σύνθεση βάσεων κανόνων για το Σηµασιολογικό Ιστό σε RuleML, παρέχοντας τις δυνατότητες που θα πρέπει να παρέχει στο χρήστη οποιοδήποτε περιβάλλον ανάπτυξης κώδικα, αλλά και κάποιες συγκεκριµένες λειτουργίες ειδικά για τη συγγραφή των κανόνων. Στα πρώτα τρία κεφάλαια της διπλωµατικής περιγράφονται οι έννοιες του Σηµασιολογικού Ιστού, των τεχνολογιών του και των κανόνων. Το κεφάλαιο 2 αναφέρεται στην ανάγκη για την εξέλιξη του ιαδικτύου ώστε να αποτελεί µία παγκοσµίως προσβάσιµη πλατφόρµα που να επιτρέπει σε αυτοµατοποιηµένα εργαλεία να διαµοιράζονται και να επεξεργάζονται πληροφορίες και δεδοµένα, στο όραµα του Σηµασιολογικού Ιστού, ο οποίος αποτελεί τη µεγαλύτερη προσπάθεια για την κάλυψη αυτής της ανάγκης, στη σχέση του µε την Τεχνητή Νοηµοσύνη, στις τεχνολογίες και την αρχιτεκτονική του. Στο κεφάλαιο 3 περιγράφονται οι κανόνες, οι οποίοι είναι από τις πιο προσφιλείς µεθόδους αναπαράστασης γνώσης και ίσως ο πρακτικότερος τρόπος αναπαράστασης για την εξαγωγή συµπερασµάτων, η σχέση τους µε το Σηµασιολογικό Ιστό, και η σήµανσή τους στον Παγκόσµιο ιστό µε τη γλώσσα RuleML, η οποία προσφέρει τη σύνταξη XML για την αναπαράστασή τους. Το κεφάλαιο 4 παρουσιάζει τις τεχνολογίες Java και XML, και τις πλατφόρµες που χρησιµοποιήθηκαν για την πραγµατοποίηση του γραφικού περιβάλλοντος σύνθεσης βάσεων κανόνων, όπως η πλατφόρµα NetBeans, και το Java API για την επεξεργασία XML. Τα κεφάλαια 5-7 εστιάζουν στην ανάπτυξη του γραφικού περιβάλλοντος, από τον αρχικό σχεδιασµό του µέχρι την περιγραφή της τελικής υλοποίησής του. Στο κεφάλαιο 5 αναφέρονται οι γενικές λειτουργίες που πρέπει να παρέχει ένα περιβάλλον ανάπτυξης -6-
9 κώδικα, όπως ο χρωµατισµός του λεξιλογίου, η αυτόµατη συµπλήρωση κώδικα, η αντιστοίχιση παρενθέσεων κ.α. Το κεφάλαιο 6 παρουσιάζει αναλυτικά τις κυριότερες λειτουργίες της εφαρµογής, όπως ο καθορισµός του λεξιλογίου και ο χρωµατισµός του, η αντιστοίχιση των ετικετών, το semantic tag mapping (σηµασιολογική αντιστοίχιση ετικετών) και η αυτόµατη συµπλήρωση, αλλά και δευτερεύουσες λειτουργίες όπως η ε- κτύπωση και η αρίθµηση γραµµών. Στο κεφάλαιο 7 περιγράφονται οι αρχικοί στόχοι της διπλωµατικής, τι υλοποιήθηκε τελικά, καθώς και κάποιες ιδέες για µελλοντικές ε- πεκτάσεις και βελτιώσεις. -7-
10 2 Σηµασιολογικός Ιστός Ο Σηµασιολογικός Ιστός (Semantic Web) αποτελεί σήµερα τη µεγαλύτερη προσπάθεια αυτόµατης ενοποίησης συστηµάτων, ώστε αυτά να συνεργάζονται διαλειτουργικά σε παγκόσµιο επίπεδο. Ο Tim Berners-Lee, που επινόησε τον Παγκόσµιο Ιστό το 1989, είχε το όραµα ενός ιστού δεδοµένων αυτόµατα επεξεργάσιµων από τις εφαρµογές, βάσει του νοήµατος και όχι της µορφής της πληροφορίας. Το κέντρο βάρους των περιεχοµένων του ιαδικτύου µετατοπίζεται συνεχώς από το ελεύθερο κείµενο που είναι πλήρως κατανοητό µόνο από τον άνθρωπο προς την ηµιδο- µηµένη ή και την πλήρως δοµηµένη πληροφορία, η οποία µπορεί να γίνει αυτόµατα κατανοητή από διαδικτυακές εφαρµογές, όπως είναι οι διαδικτυακές υπηρεσίες ή οι ευφυείς πράκτορες. Για να φτάσει το ιαδίκτυο στο µέγιστο των δυνατοτήτων του, πρέπει να εξελιχθεί σε µία τέτοια µορφή στην οποία να παρέχει µία παγκοσµίως προσβάσιµη πλατφόρµα που να επιτρέπει σε αυτοµατοποιηµένα εργαλεία (πράκτορες) να διαµοιράζονται και να επεξεργάζονται πληροφορίες και δεδοµένα για λογαριασµό των ανθρώπων-χρηστών τους. Ο Σηµασιολογικός Ιστός αποτελεί πρωτοβουλία της Κοινοπραξίας του Παγκοσµίου Ιστού (World Wide Web Consortium W3C) και η σχετική δραστηριότητα (Semantic Web Activity) έχει δηµιουργηθεί για να διαδραµατίσει έναν ηγετικό ρόλο, τόσο στο σχεδιασµό προδιαγραφών, όσο και στην ανοικτή ανάπτυξη της τεχνολογίας µέσω της συνεργασίας. 2.1 Το Όραµα του Σηµασιολογικού Ιστού Ο Σηµασιολογικός Ιστός είναι µια εξελισσόµενη επέκταση του σηµερινού ιαδικτύου στο οποίο η σηµασιολογία των πληροφοριών και των υπηρεσιών καθορίζεται, ώστε να είναι κατανοητή από τους ανθρώπους και τα προγράµµατα-πράκτορες, ενισχύοντας έ- τσι τη διαλειτουργικότητα της επεξεργασίας των πληροφοριών µεταξύ των πρακτόρων, αλλά και διευκολύνοντας τη χρήση του ιαδικτύου από τους ανθρώπους µε τη βοήθεια των πρακτόρων [1]. -8-
11 Στον πυρήνα του, ο Σηµασιολογικός Ιστός, περιλαµβάνει ένα σύνολο αρχών σχεδιασµού, συνεργαζόµενες οµάδες, και ποικίλες τεχνολογίες. Μερικά στοιχεία του Σηµασιολογικού Ιστού εκφράζονται ως ενδεχόµενες µελλοντικές δυνατότητες που πρόκειται να υλοποιηθούν ή να πραγµατοποιηθούν. Άλλα στοιχεία εκφράζονται στις επίσηµες προδιαγραφές. Αυτά περιλαµβάνουν το πλαίσιο περιγραφής των πόρων (RDF), ποικίλα σχήµατα ανταλλαγής δεδοµένων (π.χ. RDF/XML, N3, Turtle, N-Triples), το RDF Schema (RDFS) και τη γλώσσα περιγραφής οντολογιών (OWL), τα οποία προορίζονται να παρέχουν µια επίσηµη περιγραφή των εννοιών, των όρων, και των σχέσεων µέσα σε µια δεδοµένη περιοχή γνώσης [2]. Ο Σηµασιολογικός Ιστός φιλοδοξεί να παρέχει στο µέλλον την υποδοµή που απαιτείται για τη δηµιουργία και αξιοποίηση του συνόλου των πληροφοριών από ένα πλήθος διαδικτυακών εφαρµογών που θα περιλαµβάνουν, εκτός από τις απλές ιστοσελίδες του ιαδικτύου, τις εταιρικές βάσεις δεδοµένων, τις διαδικτυακές ηλεκτρονικές υπηρεσίες, τους πράκτορες, ακόµα και τις οικιακές συσκευές. Με το νέο αυτό τρόπο οργάνωσης των δεδοµένων, οι ευφυείς λογισµικοί πράκτορες, που µετά από αίτηση κάποιου χρήστη αναζητούν πληροφορίες ή παρεχόµενες υπηρεσίες στο διαδίκτυο, θα έχουν τη δυνατότητα να φιλτράρουν καλύτερα τα δεδοµένα που συλλέγουν. Έτσι αυτά θα ανταποκρίνονται πραγµατικά στις ανάγκες του χρήστη και θα παρουσιάζονται µε κατανοητή µορφή. Το όραµα του Σηµασιολογικού Ιστού συνεχώς ενδυναµώνεται µε τη γέννηση µιας νέας γενιάς τεχνολογιών και εργαλείων. Συγκεκριµένα, δηµιουργούνται νέες γλώσσες, όπως οι XML, RDF, OWL που αναπαριστούν την πληροφορία σε µορφή εύκολα κατανοητή και επεξεργάσιµη από τους πράκτορες. Ο Σηµασιολογικός Ιστός δεν είναι ακόµα υπαρκτός, αλλά υπάρχει µια εξαιρετικά σηµαντική κινητικότητα ερευνητών και εταιριών οι οποίες αναπτύσσουν τις συγκεκρι- µένες τεχνολογίες καθώς και κάποιες εφαρµογές οι οποίες βασίζονται πάνω στις τεχνολογίες αυτές. Παρόλα αυτά, το όραµα του Σηµασιολογικού Ιστού ίσως να µην είναι και τόσο µακρινό, αν γίνει ένας παραλληλισµός µε τη διάδοση του ίδιου του ιαδικτύου. Το 1989, όταν δηλαδή το ιαδίκτυο έκανε τα πρώτα βήµατα για την παγκόσµια καθιέρωσή του, η ανακάλυψη και ανάκτηση πληροφοριών από αποµακρυσµένα συστήµατα ήταν κάτι που µόνο ένας ειδικός µπορούσε να κάνει. Το ιαδίκτυο ως τεχνολογικό υ- πόβαθρο υπήρχε και θεωρητικά έδινε δυνατότητα πρόσβασης σε αυτά τα συστήµατα. Υπήρχαν όµως σηµαντικά προβλήµατα ευχρηστίας εξαιτίας των διαφορετικών πρωτοκόλλων πρόσβασης, ακόµα και µέσα στο ίδιο σύστηµα. -9-
12 Με την ανάπτυξη του Παγκοσµίου Ιστού (World Wide Web) η διασύνδεση των διαφόρων πηγών πληροφοριών έγινε πολύ εύκολη υπόθεση, χωρίς να λαµβάνονται υπόψη ποια πρωτόκολλα χρησιµοποιούνται. Η ανάπτυξη των διασυνδέσεων ιστού (web interfaces) καθιστά τις εφαρµογές οµοιόµορφες για τον τελικό χρήστη, καθώς καλύπτονται οι λειτουργικές διαφορές τους, οι οποίες πηγάζουν είτε από τη χρήση διαφορετικών πρωτοκόλλων, είτε από το γεγονός ότι τρέχουν σε διαφορετικά συστήµατα. Ωστόσο, παρά τον τεράστιο όγκο πληροφοριών που µεταφέρεται στο διαδίκτυο, η διακίνηση περιεχοµένου ανάµεσα σε εφαρµογές και πράκτορες είναι ακόµα ιδιαίτερα δύσκολη. Υπάρχουν πολλοί τρόποι να αξιοποιηθεί η διαθέσιµη πληροφορία του διαδικτύου, αν γίνει κατανοητό το περιεχόµενό της από τους πράκτορες του διαδικτύου. Για παράδειγµα, ο προσωπικός πράκτορας-ηµερολόγιο ενός χρήστη µπορεί να τον ειδοποιεί όταν πλησιάζει η ηµεροµηνία κάποιας συνάντησης που έχει ορίσει, αν είναι σε θέση να κατανοεί την έννοια των ηµεροµηνιών. Αντίστοιχα, ο πράκτορας που διαχειρίζεται το ηλεκτρονικό ταχυδροµείο µπορεί να πραγµατοποιήσει µία άµεση επικοινωνία µε κάποιο άτοµο που βρίσκεται στις επαφές του χρήστη, αν κατανοεί την έννοια των πεδίων. Παρόµοια, αν ο πράκτορας κινητού τηλεφώνου αναλάβει να βρει µε ποιον τρόπο ο χρήστης του θα µεταβεί σε µια πόλη σε κάποια χώρα, θα µπορέσει µε πρόσβαση σε κάποια κατάλληλη διαδικτυακή υπηρεσία να υπολογίσει και να παρουσιάσει τις δυνατές πτήσεις που µπορεί να χρησιµοποιήσει για να φτάσει στον προορισµό του και το αντίστοιχο κόστος τους. Σήµερα, όλες οι παραπάνω υπηρεσίες είναι πολύ περιορισµένης εµβέλειας. Έστω ότι κάποιος χρήστης ψάχνοντας στο διαδίκτυο βρίσκει µια ιστοσελίδα που δίνει λεπτο- µέρειες για τη διεξαγωγή ενός επιστηµονικού συνεδρίου. Σε αυτή περιλαµβάνονται πληροφορίες για τον τόπο και το χρόνο διεξαγωγής του συνεδρίου και σύνδεσµοι (links) σε άλλα έγγραφα, όπως προσωπικές ιστοσελίδες (home-pages) των διοργανωτών και των συµµετεχόντων. Αποφασίζοντας να συµµετάσχει, πατά το κουµπί register. Στο σηµείο αυτό ο πράκτορας-ηµερολόγιο θα µπορούσε να κάνει αυτόµατα µια εισαγωγή µε την κατάλληλη ώρα και µέρα της συνάντησης, έχοντας επίσης και τη δυνατότητα διασύνδεσης µε όλες τις υπόλοιπες λεπτοµέρειες για το συνέδριο. Το κινητό τηλέφωνο του χρήστη πρέπει να ενηµερωθεί από τον πράκτορα-ηµερολόγιο µε τη διεύθυνση της συνάντησης, να υπολογίσει ποιος είναι ο καλύτερος τρόπος να φτάσει εκεί και να υπολογίσει το χρόνο που θα χρειαστεί. Στόχος είναι όλα αυτά να µπορούν να γίνουν µε το πάτηµα ενός πλήκτρου. υστυχώς µε τις σηµερινές µεθόδους αναπαράστασης των -10-
13 πληροφοριών στο διαδίκτυο κάτι τέτοιο δεν είναι εφικτό. Συνήθως οι χρήστες πρέπει να αντιγράψουν µόνοι τους τις λεπτοµέρειες στα προσωπικά τους ηµερολόγια, καταχωρώντας ξεχωριστά τις ηλεκτρονικές διευθύνσεις, τα τηλέφωνά τους, κτλ. ηλαδή η κατάσταση είναι παρόµοια µε εκείνη της προσπάθειας αναζήτησης πληροφοριών πριν από την καθιέρωση του Παγκόσµιου Ιστού. Συνοψίζοντας, το διαδίκτυο σχεδιάστηκε µε στόχο να αποτελέσει ένα χώρο ελεύθερης διακίνησης πληροφοριών, έτσι ώστε να διευκολυνθεί η επικοινωνία των ανθρώπων µέσω των υπολογιστών, και ίσως µε τη συµµετοχή και βοήθειά τους, µέσω αυτόβουλων ενεργειών τους. Ένα από τα µεγαλύτερα εµπόδια προς αυτή την κατεύθυνση είναι ότι η συντριπτική πλειοψηφία των πληροφοριών του διαδικτύου είναι προσανατολισµένη προς τον άνθρωπο-χρήστη. Ακόµα και αν οι πληροφορίες αυτές αντλούνται από µια καλά οργανωµένη βάση δεδοµένων, η δοµή αυτή δεν είναι ευδιάκριτη για ένα λογισµικό πράκτορα που αναζητά στοιχεία, µε αποτέλεσµα να µην είναι εύκολη η αυτοµατοποίηση κάποιων χρονοβόρων και επίπονων εργασιών στο διαδίκτυο από προγράµµαταπράκτορες. 2.2 Σηµασιολογικός Ιστός και Τεχνητή Νοηµοσύνη Ο Σηµασιολογικός Ιστός έχει πολύ στενή σχέση µε την Τεχνητή Νοηµοσύνη, αφού ε- παναχρησιµοποιεί πολλές από τις κλασικές µεθόδους αναπαράστασης γνώσης και συλλογιστικής, όπως τα σηµασιολογικά δίκτυα, τα πλαίσια και τη λογική, προσαρµοσµένες όµως στο ανοικτό και απρόβλεπτο περιβάλλον του διαδικτύου. Με το Σηµασιολογικό Ιστό, οι µέθοδοι αναπαράστασης γνώσης και συλλογιστικής της Τεχνητής Νοηµοσύνης βρίσκουν πλέον την πιο σηµαντική εφαρµογή τους σε ένα εγχείρηµα τεραστίων διαστάσεων, όπως είναι η διαλειτουργικότητα δεδοµένων και εφαρµογών στο ιαδίκτυο. Μία ακόµα σηµαντική εφαρµογή της Τεχνητής Νοηµοσύνης στο Σηµασιολογικό Ιστό είναι οι ευφυείς πράκτορες (intelligent agents), των οποίων η τεχνολογία ως τώρα είτε ήταν αποκοµµένη από το ιαδίκτυο, µε αποτέλεσµα τη µικρή διάδοσή της, είτε χρησιµοποιούσε προσαρµοσµένες κατά περίπτωση λύσεις για τη διαλειτουργικότητα των πληροφοριών στο ιαδίκτυο, µε αποτέλεσµα το υψηλό κόστος ανάπτυξης εφαρµογών. Με τη χρήση των τεχνολογιών του Σηµασιολογικού Ιστού από τις ιστοσελίδες και από τις µηχανές αναζήτησης, οι πράκτορες θα έχουν στη διάθεσή τους πληροφορίες οι οποίες θα είναι ανεξάρτητες από τη µορφή της παρουσίασής τους στον άνθρωπο- -11-
14 χρήστη. Οι πληροφορίες αυτές θα είναι συνδεδεµένες µε κάποιο κοινόχρηστο πλαίσιο αναφοράς (οντολογία) έτσι ώστε το νόηµά τους να είναι προσβάσιµο και κατανοητό από όλους τους πράκτορες που δρουν στο ιαδίκτυο, ανεξάρτητα από το σκοπό για τον οποίο αναπτύχθηκαν. Ο Σηµασιολογικός Ιστός προσπαθεί να αναπτύξει τεχνολογίες οι οποίες βοηθούν τη διαλειτουργικότητα των πληροφοριών και των εφαρµογών στο διαδίκτυο. ηλαδή, προτείνει γλώσσες που εκφράζουν την πληροφορία µε τρόπο κατανοητό από τους πράκτορες και επίσης, ενθαρρύνει τους χρήστες του διαδικτύου να εµπλουτίζουν τα έγγραφά τους µε τέτοιου είδους πληροφορίες. Από εκεί πηγάζει και ο ορισµός του Σηµασιολογικού Ιστού ως προσανατολισµένος στην πληροφορία, δηλαδή κάτι σαv µια παγκόσµια βάση δεδοµένων και γνώσης. 2.3 Τεχνολογίες του Σηµασιολογικού Ιστού Τα υποθετικά σενάρια που αναφέρθηκαν στην ενότητα 2.1 δεν είναι επιστηµονική φαντασία, αφού δεν απαιτούν επαναστατική επιστηµονική πρόοδο για να επιτευχθούν. Είναι λογικός ο ισχυρισµός πως η πρόκληση είναι µάλλον τεχνολογική, παρά επιστηµονική. Ήδη υπάρχουν µερικές λύσεις για όλα τα σηµαντικά µέρη του προβλήµατος. Επί του παρόντος, οι µεγαλύτερες ανάγκες βρίσκονται στις περιοχές της ενοποίησης, της τυποποίησης, της ανάπτυξης εργαλείων και της υιοθέτησής τους από τους χρήστες. Αλλά φυσικά, περαιτέρω τεχνολογική πρόοδος θα οδηγήσει σε ένα περισσότερο προηγµένο Σηµασιολογικό Ιστό ο οποίος σε γενικές γραµµές, µπορεί να επιτευχθεί σήµερα. Στις επόµενες ενότητες αναφέρονται κάποιες τεχνολογίες που είναι απαραίτητες για την πραγµατοποίηση των προαναφερθέντων λειτουργιών Ρητά Μεταδεδοµένα (Explicit Metadata) Σήµερα, το διαδικτυακό περιεχόµενο είναι µορφοποιηµένο έτσι ώστε να κατανοείται από ανθρώπους-χρήστες, παρά από προγράµµατα. Η HTML είναι η κυρίαρχη γλώσσα στην οποία είναι γραµµένες οι σελίδες του διαδικτύου, (απευθείας ή µε τη χρήση εργαλείων). Ένα τµήµα µιας τυπικής ιστοσελίδας ενός φυσικοθεραπευτή µπορεί να µοιάζει κάπως έτσι: <h1>agilitas Physiotherapy Centre </h1> Welcome to the home page of the Agilitas Physiotherapy Centre. Do you feel pain? Have you had an injury? Let our staff Lisa -12-
15 Davenport, Kelly Townsend (our lovely secretary) and Steve Matthews take care of your body and soul. <h2>consultation hours</h2> Mon 11am-7pm<br> Tue 11am-7pm<br> Wed 3pm-7pm<br> Thu 11am-7pm<br> Fri 11am-3pm<p> But note that we do not offer consultation during the weeks of the <a href= >State of Origin </a> games. Για τους ανθρώπους, η πληροφορία αναπαριστάται µε ικανοποιητικό τρόπο, αλλά οι µηχανές έχουν πρόβληµα. Οι αναζητήσεις µε βάση λέξεις-κλειδιά θα αναγνωρίσουν τις λέξεις physiotherapy και consultation hours. Ένας ευφυής πράκτορας ίσως ακόµα αναγνωρίσει και το προσωπικό του κέντρου. Αλλά θα έχει πρόβληµα να ξεχωρίσει τους θεραπευτές από την γραµµατέα, και ακόµα µεγαλύτερο πρόβληµα να βρει τις ακριβείς ώρες συνεδρίας (για τις οποίες θα πρέπει να ακολουθήσει το σύνδεσµο). Η προσέγγιση του Σηµασιολογικού Ιστού για την επίλυση αυτών των προβληµάτων, δεν είναι η ανάπτυξη υπερ-ευφυών πρακτόρων. Αντίθετα, προτείνεται επίθεση στο πρόβληµα από τη µεριά της ιστοσελίδας. Αν η HTML αντικατασταθεί από περισσότερο κατάλληλες γλώσσες, τότε οι ιστοσελίδες, µαζί µε τις πληροφορίες µορφοποίησης που στοχεύουν στην παραγωγή κειµένου που προορίζεται για ανθρώπους, θα µπορούν να περιέχουν και πληροφορία για το περιεχόµενό τους. Στο παραπάνω παράδειγ- µα, µπορεί να υπάρχει πληροφορία όπως η ακόλουθη: <company> <treatmentoffered>physiotherapy</treatmentoffered> <companyname>agilitas Physiotherapy Centre</companyName> <staff> <therapist>lisa Davenport</therapist> <therapist>steve Matthews</therapist> <secretary>kelly Townsend</secretary> </staff> </company> -13-
16 Αυτή η αναπαράσταση είναι πολύ πιο εύκολα επεξεργάσιµη από µηχανές. Ο όρος µεταδεδοµένα (metadata) αναφέρεται σε τέτοιες πληροφορίες, δηλαδή δεδοµένα για τα δεδοµένα. Τα µεταδεδοµένα συλλαµβάνουν ένα µέρος του νοήµατος των δεδοµένων, έτσι προκύπτει ο όρος σηµασιολογικός στο Σηµασιολογικό Ιστό. Όπως και µε την τρέχουσα ανάπτυξη των ιστοσελίδων, οι χρήστες δε θα χρειάζεται να είναι ειδικοί της επιστήµης των υπολογιστών για να αναπτύξουν ιστοσελίδες, αλλά θα έχουν τη δυνατότητα να χρησιµοποιούν εργαλεία για αυτό το σκοπό. Ωστόσο, παραµένει το ερώτηµα γιατί οι χρήστες θα έπρεπε να ενδιαφέρονται, και γιατί θα πρέπει να εγκαταλείψουν την HTML για τις γλώσσες του Σηµασιολογικού Ιστού. Ίσως µπορεί να δοθεί µια αισιόδοξη απάντηση, αν συγκριθεί η σηµερινή κατάσταση για τους αρχάριους χρήστες του διαδικτύου. Οι πρώτοι χρήστες αποφάσισαν να χρησιµοποιήσουν την HTML επειδή είχε υιοθετηθεί ως πρότυπο, και περίµεναν οφέλη από αυτό. Ακολούθησαν και άλλοι, όταν περισσότερα και καλύτερα διαδικτυακά εργαλεία έγιναν διαθέσιµα και σύντοµα η HTML έγινε ένα παγκοσµίως αποδεκτό πρότυπο. Παρόµοια, σήµερα παρατηρείται µια πρώτη υιοθέτηση της XML. Ενώ δεν είναι ε- παρκής από µόνη της για την πραγµατοποίηση του οράµατος του Σηµασιολογικού Ι- στού, η XML αποτελεί ένα σηµαντικό πρώτο βήµα. Οι πρώτοι χρήστες, ίσως κάποιοι οργανισµοί που ενδιαφέρονται για τη διαχείριση γνώσης και το B2B ηλεκτρονικό ε- µπόριο, θα υιοθετήσουν την XML και την RDF, τα τρέχοντα W3C πρότυπα που σχετίζονται µε το Σηµασιολογικό Ιστό. Αυτό θα οδηγήσει σε όλο και περισσότερους προµηθευτές εργαλείων και τελικούς χρήστες που θα υιοθετήσουν την τεχνολογία. Αυτό θα είναι ένα αποφασιστικό βήµα για το εγχείρηµα του Σηµασιολογικού Ιστού, αλλά είναι επίσης και µία πρόκληση. Όπως έχει αναφερθεί, η µεγαλύτερη πρόκληση δεν είναι επιστηµονική, αλλά κυρίως τεχνολογική Οντολογίες Ο όρος οντολογία προέρχεται από τη φιλοσοφία. Σε αυτό το πλαίσιο, χρησιµοποιείται ως το όνοµα ενός υπο-πεδίου της φιλοσοφίας, δηλαδή, η µελέτη της φύσης της ύπαρξης, ο κλάδος της µεταφυσικής που σχετίζεται µε τον προορισµό, ή µε πιο γενικούς ό- ρους τα είδη πραγµάτων που υπάρχουν, και πώς αυτά περιγράφονται. Για παράδειγµα, η παρατήρηση ότι ο κόσµος αποτελείται από συγκεκριµένα αντικείµενα που µπορούν να οµαδοποιηθούν σε αφηρηµένες τάξεις µε βάση τις ιδιότητες του σχήµατός τους, είναι µια τυπική οντολογική παραδοχή. -14-
17 Ωστόσο, τα τελευταία χρόνια, η οντολογία έχει γίνει µία από τις πολλές λέξεις που έχει κλέψει η επιστήµη των υπολογιστών και έχει δώσει µια συγκεκριµένη τεχνική σηµασία, που είναι αρκετά διαφορετική από την πρωτότυπη. Τυπικά, µια οντολογία αποτελείται από µια πεπερασµένη λίστα όρων και τις σχέσεις µεταξύ τους. Οι όροι υποδηλώνουν σηµαντικές έννοιες (τάξεις αντικειµένων) µιας περιοχής. Για παράδειγµα, σε µία πανεπιστηµιακή κοινότητα, τα µέλη του προσωπικού, οι φοιτητές, τα µαθήµατα, οι αίθουσες των διαλέξεων, είναι µερικές σηµαντικές έννοιες. Οι σχέσεις τυπικά περιλαµβάνουν ιεραρχίες τάξεων. Μια ιεραρχία καθορίζει µία τάξη C να είναι υπο-τάξη µιας άλλης τάξης B, αν κάθε αντικείµενο στη C περιέχεται επίσης στη B. Εκτός από τις σχέσεις υπο-τάξεων, οι οντολογίες µπορούν να περιέχουν πληροφορία όπως: Ιδιότητες (O X διδάσκει τον Υ) Περιορισµοί (µόνο το διδακτικό προσωπικό µπορεί να διδάξει) ηλώσεις διαχωρισµών (το διδακτικό και το γενικό προσωπικό διαφέρουν) Προδιαγραφή των λογικών σχέσεων µεταξύ των αντικειµένων (κάθε τµήµα πρέπει να περιλαµβάνει τουλάχιστον 10 µέλη διδακτικού προσωπικού) Στο διαδικτυακό περιεχόµενο, οι οντολογίες παρέχουν µία κοινή κατανόηση ενός πεδίου. Αυτή η κοινή κατανόηση είναι απαραίτητη ώστε να ξεπεραστούν διαφορές στην ορολογία. Ο ταχυδροµικός κώδικας µιας εφαρµογής µπορεί να είναι ίδιος µε τον κώδικα περιοχής µιας άλλης εφαρµογής. ύο εφαρµογές µπορεί να χρησιµοποιούν τον ίδιο όρο µε διαφορετικές σηµασίες. Τέτοιες διαφορές µπορούν να υπερνικηθούν καταγράφοντας τη συγκεκριµένη ορολογία σε µία κοινή οντολογία, ή ορίζοντας άµεσες καταγραφές µεταξύ των οντολογιών. Σε κάθε περίπτωση, είναι ευνόητο ότι οι οντολογίες υποστηρίζουν σηµασιολογική διαλειτουργικότητα. Οι οντολογίες είναι χρήσιµες για την οργάνωση και την περιήγηση στις ιστοσελίδες. Πολλές ιστοσελίδες σήµερα εκθέτουν στην αριστερή πλευρά της σελίδας τα κύρια επίπεδα µιας εννοιολογικής ιεραρχίας των όρων. Επίσης, οι οντολογίες είναι χρήσιµες για την βελτίωση της ακρίβειας των αναζητήσεων στο ιαδίκτυο. Οι µηχανές αναζήτησης µπορούν να ψάχνουν για σελίδες που α- ναφέρονται σε µία συγκεκριµένη έννοια σε µία οντολογία, αντί να συλλέγουν όλες τις -15-
18 σελίδες στις οποίες περιέχεται η συγκεκριµένη λέξη-κλειδί. Με αυτό τον τρόπο, οι διαφορές στην ορολογία µεταξύ των ιστοσελίδων και των ερωτηµάτων θα ξεπεραστούν. Επιπρόσθετα, οι αναζητήσεις στο ιαδίκτυο θα εκµεταλλεύονται πληροφορίες γενίκευσης/ειδίκευσης. Αν ένα ερώτηµα αποτύχει να βρει κάποιο σχετικό κείµενο, η µηχανή αναζήτησης θα προτείνει στο χρήστη ένα πιο γενικό ερώτηµα. Θα είναι ακόµα εύκολο για τη µηχανή αναζήτησης να τρέχει τέτοια ερωτήµατα πριν ο χρήστης υιοθετήσει µία πρόταση, ώστε να µειωθεί ο χρόνος απόκρισης, ή, αν έχουν επιστραφεί πολλές α- παντήσεις, η µηχανή αναζήτησης θα προτείνει στο χρήστη τις πιο ειδικές. Στην τεχνητή νοηµοσύνη υπάρχει µια µακριά παράδοση ανάπτυξης και χρήσης γλωσσών οντολογιών. Επί του παρόντος, οι πιο σηµαντικές γλώσσες οντολογιών για το ιαδίκτυο είναι οι XML, RDF και OWL Πράκτορες Οι πράκτορες είναι τµήµατα λογισµικού που δουλεύουν αυτόνοµα. Εννοιολογικά έχουν εξελιχθεί από τις έννοιες του αντικειµενοστραφούς προγραµµατισµού, και της βασισµένης στα συστατικά ανάπτυξης λογισµικού. Ένας προσωπικός πράκτορας στο Σηµασιολογικό Ιστό θα λαµβάνει κάποιες αναθέσεις εργασιών και προτιµήσεις από το άτοµο, θα ψάχνει πληροφορίες από τις διαδικτυακές πηγές, θα επικοινωνεί µε άλλους πράκτορες, θα συγκρίνει πληροφορίες µε βάση τις απαιτήσεις του χρήστη και τις προτιµήσεις του, θα διαλέγει κάποιες επιλογές και θα δίνει τις τελικές απαντήσεις στο χρήστη. Οι πράκτορες δε θα αντικαταστήσουν τους ανθρώπους-χρήστες στο Σηµασιολογικό Ιστό, ούτε αναγκαστικά θα παίρνουν αποφάσεις. Σε πολλές, αν όχι στις περισσότερες περιπτώσεις, ο ρόλος τους θα είναι να συλλέγουν και να οργανώνουν τις πληροφορίες, και να παρουσιάζουν επιλογές στο χρήστη. Οι πράκτορες του Σηµασιολογικού Ιστού θα κάνουν χρήση των τεχνολογιών των µεταδεδοµένων, των οντολογιών, της λογικής, αλλά και γλωσσών επικοινωνίας πρακτόρων. Ακόµα, για προηγµένες εφαρµογές, θα είναι χρήσιµη η αναπαράσταση των πιστεύω, των επιθυµιών και των σκοπών των πρακτόρων, και η δηµιουργία και διατήρηση µοντέλων χρηστών. -16-
19 2.4 Αρχιτεκτονική του Σηµασιολογικού Ιστού Η ανάπτυξη του Σηµασιολογικού Ιστού προχωρά σε βήµατα, και κάθε βήµα χτίζει ένα επίπεδο πάνω σε ένα άλλο. Η αιτιολόγηση για αυτή την προσέγγιση είναι ότι είναι ευκολότερο να επιτευχθεί συναίνεση σε µικρά βήµατα, ενώ είναι πολύ δύσκολο να επιτευχθεί αν επιχειρηθούν πολλά. Συνήθως, υπάρχουν πολλές ερευνητικές οµάδες που κινούνται σε διαφορετικές κατευθύνσεις. Αυτός ο ανταγωνισµός ιδεών είναι η κινητήρια δύναµη της επιστηµονικής προόδου. Ωστόσο, από τη µηχανολογική προοπτική, υ- πάρχει η ανάγκη τυποποίησης. Έτσι, αν οι περισσότεροι ερευνητές συµφωνούν σε ορισµένα θέµατα και διαφωνούν σε κάποια άλλα, είναι λογικό να καθοριστούν τα σηµεία της συµφωνίας. Με αυτό τον τρόπο, ακόµα κι αν οι πιο φιλόδοξες ερευνητικές προσπάθειες αποτύχουν, θα υπάρχουν τουλάχιστον µερικές θετικές εκβάσεις. Από τη στιγµή που ένα πρότυπο έχει καθιερωθεί, πολύ περισσότερες οµάδες και επιχειρήσεις θα το υιοθετήσουν, αντί να περιµένουν να δουν ποια από τις εναλλακτικές ερευνητικές γραµµές θα επιτύχει στο τέλος. Η φύση του Σηµασιολογικού Ιστού είναι τέτοια ώστε οι επιχειρήσεις και οι µεµονωµένοι χρήστες πρέπει να δηµιουργήσουν εργαλεία, να προσθέσουν περιεχόµενο, και να το χρησιµοποιήσουν. Για τη δηµιουργία ενός επιπέδου του Σηµασιολογικού Ιστού πάνω σε ένα άλλο, δύο αρχές πρέπει να ληφθούν υπόψη: Προς τα κάτω συµβατότητα. Οι πράκτορες που έχουν πλήρη επίγνωση ενός επιπέδου θα πρέπει να είναι ικανοί να διερµηνεύουν και να χρησιµοποιούν πληροφορία των χαµηλότερων επιπέδων. Για παράδειγµα, οι πράκτορες που γνωρίζουν τη σηµασιολογία της OWL, µπορούν να εκµεταλλευτούν πλήρως πληροφορία γραµµένη σε RDF και RDF Schema. Προς τα πάνω µερική κατανόηση. Από την άλλη µεριά, οι πράκτορες που έχουν πλήρη επίγνωση ενός επιπέδου, θα πρέπει να µπορούν να εκµεταλλευτούν τουλάχιστον µερικώς την πληροφορία των ανώτερων επιπέδων. Για παράδειγµα, ένας πράκτορας που γνωρίζει µόνο την RDF και RDF Schema σηµασιολογία, µπορεί να διερµηνεύει µερικώς γνώση γραµµένη σε OWL, αγνοώντας τα στοιχεία που δεν περιγράφει η RDF και RDF Schema. Η εικόνα 1 δείχνει τη διαστρωµατωµένη αρχιτεκτονική του Σηµασιολογικού Ιστού, κατά τον Tim Berners-Lee, η οποία περιγράφει τα κύρια επίπεδα της σχεδίασης και του οράµατος του Σηµασιολογικού ιαδικτύου. Στο κατώτατο σηµείο βρίσκεται η XML, -17-
20 µια γλώσσα που επιτρέπει στο χρήστη να γράφει δοµηµένα διαδικτυακά έγγραφα µε ένα καθορισµένο από το χρήστη λεξιλόγιο. Η XML είναι κατάλληλη κυρίως για την αποστολή εγγράφων στο διαδίκτυο. Η RDF είναι ένα βασικό µοντέλο δεδοµένων, όπως το µοντέλο οντοτήτωνσυσχετίσεων, για τη συγγραφή απλών δηλώσεων για τα διαδικτυακά αντικείµενα. Το RDF µοντέλο δεδοµένων δε βασίζεται στην XML, αλλά η RDF έχει ένα συντακτικό βασισµένο στην XML. Για αυτό το λόγο τοποθετείται στην κορυφή του XML επιπέδου. Το RDF Schema παρέχει πρωτότυπα µοντελοποίησης για την οργάνωση των διαδικτυακών αντικειµένων σε ιεραρχίες. Τα βασικά πρωτότυπα είναι τάξεις και ιδιότητες, συσχετίσεις υπο-τάξεων και υπο-ιδιοτήτων και περιορισµοί πεδίων. Το RDF Schema βασίζεται στην RDF. Το RDF Schema µπορεί να θεωρηθεί ως µία πρωτότυπη γλώσσα για τη συγγραφή οντολογιών. Αλλά υπάρχει η ανάγκη για περισσότερο ισχυρές γλώσσες οντολογιών, που επεκτείνουν το RDF Schema, και επιτρέπουν την αναπαράσταση πιο πολύπλοκων συσχετίσεων µεταξύ των διαδικτυακών αντικειµένων. Το επίπεδο της λογικής χρησιµοποιείται για να ενισχύσει περαιτέρω τη γλώσσα οντολογιών, και να επιτρέψει τη συγγραφή δηλωτικής γνώσης ειδικά για εφαρµογές. Το επίπεδο των αποδείξεων περιλαµβάνει την πραγµατική παραγωγική διαδικασία, αλλά και την αναπαράσταση των αποδείξεων στις διαδικτυακές γλώσσες (από τα κατώτερα επίπεδα), και την επικύρωση των αποδείξεων. Τέλος, το επίπεδο της αξιοπιστίας θα προκύψει µέσα από τη χρήση των ψηφιακών υπογραφών και άλλων ειδών γνώσης, που βασίζονται σε συστάσεις από έµπιστους πράκτορες ή σε αντιπροσωπείες εκτίµησης και πιστοποίησης και καταναλωτικά σώµατα. Μερικές φορές το ιαδίκτυο της Αξιοπιστίας χρησιµοποιείται για να υποδείξει ότι η αξιοπιστία θα είναι οργανωµένη µε τον ίδιο κατανεµηµένο και χαοτικό τρόπο όπως το ίδιο το WWW. Τοποθετηµένη στην κορυφή της πυραµίδας, η αξιοπιστία είναι µία υψηλού επιπέδου και κρίσιµη έννοια. Το ιαδίκτυο θα επιτύχει τις πλήρεις δυνατότητες του µόνο όταν οι χρήστες εµπιστευθούν τις λειτουργίες του (ασφάλεια), και την ποιότητα των παρεχόµενων πληροφοριών [3]. -18-
21 Εικόνα 1: Η διαστρωµατωµένη αρχιτεκτονική του Σηµασιολογικού Ιστού, κατά τον Tim Berners-Lee. 2.5 Web 2.0 Οι τεχνολογίες του Σηµασιολογικού Ιστού που έχουν υιοθετηθεί έως τώρα, έχουν οδηγήσει στο Web 2.0. Ο όρος Web 2.0 αναφέρεται σε µία νέα αντίληψη για τις βασισµένες στο ιαδίκτυο κοινότητες και υπηρεσίες, οι οποίες έχουν ως σκοπό να διευκολύνουν τη δηµιουργικότητα, τη συνεργασία και το διαµοιρασµό δεδοµένων µεταξύ των χρηστών. Ο όρος έγινε ευρύτερα γνωστός µετά το πρώτο συνέδριο Web 2.0 media το Παρόλο που ο όρος παραπέµπει σε µία νέα έκδοση του Παγκοσµίου Ιστού, δεν αναφέρεται στην αναβάθµιση τεχνικών προδιαγραφών, αλλά σε αλλαγές σε σχέση µε τον τρόπο που οι προγραµµατιστές και οι απλοί χρήστες βλέπουν το ιαδίκτυο. Σύµφωνα µε τον Tim O Reilly: «Το Web 2.0 είναι η εταιρική επανάσταση στην βιο- µηχανία των υπολογιστών που προκαλείται από την µετακίνηση στο ιαδίκτυο σαν πλατφόρµα και στην απόπειρα να καταλάβουµε τους κανόνες της επιτυχίας σε αυτή τη νέα πλατφόρµα. Βασικός κανόνας ανάµεσα σε αυτούς είναι ο εξής: Χτίσιµο εφαρµογών που καρπώνονται τις επιδράσεις των δικτύων και καλυτερεύουν όσο περισσότερο τις χρησι- µοποιούν οι άνθρωποι. (Αυτό είναι που αλλού έχω αποκαλέσει 'εκµετάλλευση της συλλογικής νοηµοσύνης')». -19-
22 Ο όρος Web 2.0 περιλαµβάνει επίσης τη µετάβαση µερικών ιστοσελίδων από απο- µονωµένες πηγές πληροφοριών σε αλληλοσυνδεδεµένες υπολογιστικές πλατφόρµες, που λειτουργούν όπως το τοπικά διαθέσιµο λογισµικό. Στο Web 2.0 κυριαρχεί το κοινωνικό στοιχείο, όπου οι χρήστες παράγουν και διανέµουν υλικό, συχνά µε πλήρη ε- λευθερία στο διαµοιρασµό και την επαναχρησιµοποίηση. Οι ιστοχώροι στο Web 2.0 επιτρέπουν στους χρήστες να κάνουν κάτι παραπάνω από απλή ανάκτηση πληροφοριών. Οι χρήστες µπορούν πλέον να κατέχουν τα δεδοµένα ενός ιστοχώρου Web 2.0, και να τα ελέγχουν. Αυτοί οι ιστοχώροι περιέχουν την αρχιτεκτονική της συµµετοχής η οποία ενθαρρύνει τους χρήστες να προσθέτουν αξία στην εφαρµογή καθώς την εκτελούν. Αυτό, έρχεται σε αντίθεση µε τις παλιές παραδοσιακές ιστοσελίδες τις οποίες µπορούσε να επισκεφθεί περιορισµένος αριθµός χρηστών, και το περιεχόµενό τους µπορούσε να τροποποιηθεί µόνο από τους κατόχους της ιστοσελίδας. Οι Web 2.0 ιστοχώροι συχνά παρέχουν ένα πλούσιο, φιλικό προς τον χρήστη περιβάλλον, βασισµένο σε AJAX, Flex ή παρόµοιες τεχνολογίες [4]. Παραδείγµατα τέτοιων συστηµάτων αποτελούν τα προσωπικά ηµερολόγια (microblogs), π.χ. Twitter, τα κοινωνικά δίκτυα π.χ. facebook, MySpace, οι αναγνώστες νέων σε µορφή RSS ή Atom (π.χ. Google Reader), και τα Συστήµατα Κοινωνικής Σήµανσης (Social Tagging Systems), π.χ. digg, del.icio.us. Κάποια από αυτά περιγράφονται παρακάτω: Το Twitter είναι πιο γνωστή πλατφόρµα micro blogging παγκοσµίως µε το µεγαλύτερο κοινό, µε κύρια χαρακτηριστικά την ευκολία στη χρήση και την αµεσότητα στη µετάδοση της πληροφορίας. Το Twitter από µόνο του δεν προσφέρει πολλές λειτουργίες, αλλά έχουν δηµιουργηθεί πολλές ιστοσελίδες και εφαρµογές που εκµεταλλεύονται τις περισσότερες δυνατότητες της πλατφόρµας, καθιστώντας το σαν την προτιµότερη micro blogging επιλογή. Το Twitter παρέχει στους χρήστες του τις παρακάτω δυνατότητες: Ενηµέρωση κατάστασης (status update), ενηµέρωση κατάστασης άλλων χρηστών (followers), δηµιουργία δηµόσιου ή ιδιωτικού προφίλ, αποκλεισµό ενοχλητικών χρηστών(spammers), υπενθύµιση αν δεν υπάρχει ενηµέρωση κατάστασης για µεγάλο χρονικό διάστηµα και συζητήσεις για διάφορα θέµατα. Το Facebook είναι ένας κοινωνικός ιστοχώρος δικτύωσης ελεύθερης πρόσβασης. Οι χρήστες µπορούν να συµµετέχουν σε δίκτυα που οργανώνονται από την πόλη, τον εργασιακό χώρο, το σχολείο, και την περιοχή τους, για να συνδέονται -20-
23 και να αλληλεπιδρούν µε άλλους χρήστες. Μπορούν επίσης να προσθέτουν φίλους και να στέλνουν µηνύµατα, και να ενηµερώνουν τα προσωπικά προφίλ τους. Ο Mark Zuckerberg ίδρυσε το Facebook µε κάποιους συµφοιτητές και τους συγκατοίκους του Dustin Moskovitz και Chris Hughes, ενώ ήταν σπουδαστής στο Πανεπιστήµιο του Χάρβαρντ. Η ιδιότητα µέλους του ιστοχώρου περιορίστηκε αρχικά στους σπουδαστές του Χάρβαρντ, αλλά επεκτάθηκε σε άλλα κολλέγια στην περιοχή της Βοστώνης, την Ivy Leaque και το Πανεπιστήµιο του Stanford. Επεκτάθηκε αργότερα περαιτέρω για να περιλάβει οποιοδήποτε φοιτητή πανεπιστηµίου, έπειτα σπουδαστές γυµνασίου, και τελικά, καθένα ηλικίας 13 και πάνω. Ο ιστοχώρος έχει αυτήν την περίοδο περισσότερους από 200 εκατοµµύρια ενεργούς χρήστες παγκοσµίως. Ο Google Reader είναι ένας βασισµένος στο διαδίκτυο αναγνώστης νέων, ικανός να διαβάζει Atom και RSS feeds online ή offline. Κυκλοφόρησε από τη Google στις 7 Οκτωβρίου 2005 µέσω των εργαστηρίων Google. Το Digg είναι ένας κοινωνικός ιστοχώρος ειδήσεων που δηµιουργήθηκε ώστε οι χρήστες να ανακαλύπτουν και να µοιράζονται περιεχόµενο από οπουδήποτε στο διαδίκτυο, µε την υποβολή συνδέσεων (links) και ιστοριών (stories), ή την ψηφοφορία και το σχολιασµό άλλων συνδέσεων και ιστοριών. Η θετική ή αρνητική ψηφοφορία των ιστοριών είναι η κύρια λειτουργία της ιστοσελίδας, αποκαλούµενη αντίστοιχα digging και burying. Πολλές ιστορίες υποβάλλονται καθη- µερινά, αλλά µόνο οι περισσότερο Digg ιστορίες εµφανίζονται στη πρώτη σελίδα. Η δηµοτικότητα του Digg έχει προτρέψει τη δηµιουργία άλλων κοινωνικών περιοχών δικτύωσης µε υποβολή ιστοριών και συστήµατα ψηφοφορίας. -21-
24
25 3 Κανόνες και RuleML Στην καθηµερινή ζωή, η αναπαράσταση της γνώσης για τον κόσµο γίνεται σχετικά εύκολα µε απλή περιγραφή σε φυσική γλώσσα, η οποία θεωρείται µία από τις καλύτερες µεθόδους για τον άνθρωπο. Ωστόσο, η φυσική γλώσσα είναι ακατάλληλη για αναπαράσταση γνώσης σε υπολογιστικά συστήµατα. Ο κυριότερος λόγος είναι η πολυσηµία (ambiguity) της γλώσσας, δηλαδή οι πολλαπλές ερµηνείες που επιδέχεται µια φράση, καθώς επίσης και η ερµηνεία µε βάση τα συµφραζόµενα (context). Ιδιαίτερα, για τα συστήµατα Τεχνητής Νοηµοσύνης απαιτείται ένας µονοσήµαντος και τυποποιηµένος συµβολισµός, ο οποίος εκτός της δυνατότητας που θα δίνει για ακριβή αναπαράσταση της γνώσης, θα πρέπει να µπορεί να συνδυαστεί κατάλληλα µε µία ή περισσότερες συλλογιστικές για την εξαγωγή συµπερασµάτων. 3.1 Αναπαράσταση Γνώσης Η αναπαράσταση γνώσης έχει µελετηθεί καιρό πριν την εµφάνιση του παγκόσµιου διαδικτύου, στην περιοχή της τεχνητής νοηµοσύνης, και ακόµα πιο πριν, στη φιλοσοφία. Στην πραγµατικότητα, µπορεί να ανιχνευθεί πίσω στην αρχαία Ελλάδα. Ο Αριστοτέλης θεωρείται ο πατέρας της λογικής. Η λογική παραµένει η θεµελίωση της αναπαράστασης γνώσης, κυρίως στη µορφή της κατηγορηµατικής λογικής. Στη συνέχεια παρατίθενται κάποιοι λόγοι για τη δηµοτικότητα και τη σηµαντικότητα της λογικής: Παρέχει µία υψηλού επιπέδου γλώσσα, στην οποία η γνώση µπορεί να εκφραστεί µε διαφανή τρόπο και έχει µεγάλη εκφραστική δύναµη. Έχει µια καλά κατανοητή επίσηµη σηµασιολογία, η οποία ορίζει ένα σαφές νόηµα σε λογικές δηλώσεις. Υπάρχει ακριβής έννοια της λογικής συνέπειας, η οποία προσδιορίζει αν µία δήλωση προκύπτει σηµασιολογικά από ένα σύνολο άλλων δηλώσεων. Στην πραγµατικότητα, το πρωταρχικό κίνητρο της λογικής ήταν η µελέτη των αντικειµενικών νόµων της λογικής ακολουθίας. Υπάρχουν συστήµατα αποδείξεων που µπορούν αυτόµατα να παράγουν δηλώσεις συντακτικά από ένα σύνολο προϋποθέσεων. -23-
26 Υπάρχουν συστήµατα αποδείξεων για τα οποία η σηµασιολογική λογική συνέπεια συµπίπτει µε τη συντακτική παραγωγή µέσα στο ίδιο το σύστηµα. Τα συστήµατα αποδείξεων θα πρέπει να είναι υγιή (όλες οι παραγόµενες δηλώσεις να προκύπτουν σηµασιολογικά από τις προϋποθέσεις) και πλήρη (όλες οι λογικές συνέπειες των προϋποθέσεων µπορούν να παραχθούν στο σύστηµα αποδείξεων). Η κατηγορηµατική λογική είναι µοναδική υπό την έννοια ότι τα υγιή και πλήρη συστήµατα υπάρχουν. Περισσότερο εκφραστικές λογικές δεν έχουν τέτοια συστήµατα αποδείξεων. Εξαιτίας της ύπαρξης των συστηµάτων αποδείξεων, είναι δυνατό να ανιχνευθεί η απόδειξη που οδηγεί σε µια λογική συνέπεια. Υπό αυτή την έννοια, η λογική µπορεί να παρέχει εξηγήσεις για απαντήσεις. Οι γλώσσες RDF και OWL µπορούν να θεωρηθούν ως ειδικεύσεις της κατηγορη- µατικής λογικής. Μία αιτιολόγηση για την ύπαρξη τέτοιων ειδικευµένων γλωσσών είναι ότι παρέχουν ένα συντακτικό που ταιριάζει µε την προοριζόµενη χρήση (διαδικτυακές γλώσσες που βασίζονται σε ετικέτες). Μία άλλη σηµαντική αιτιολόγηση είναι ότι καθορίζουν υποσύνολα της λογικής. Υπάρχει µία αντιστάθµιση µεταξύ της εκφραστικής δύναµης και της υπολογιστικής πολυπλοκότητας: όσο πιο εκφραστική είναι µία γλώσσα, τόσο λιγότερο αποδοτικά είναι τα αντίστοιχα συστήµατα αποδείξεων. Η OWL Lite και η OWL DL αντιστοιχούν κατά προσέγγιση σε µια περιγραφική λογική, ένα υ- ποσύνολο της κατηγορηµατικής λογικής, για το οποίο υπάρχουν αποδοτικά συστήµατα αποδείξεων. Ένα άλλο υποσύνολο της κατηγορηµατικής λογικής µε αποδοτικά συστήµατα αποδείξεων περιλαµβάνει τα γνωστά συστήµατα κανόνων (ή αλλιώς λογική Horn) Συστήµατα Κανόνων Οι κανόνες είναι από τις πιο προσφιλείς µεθόδους αναπαράστασης γνώσης και ίσως ο πρακτικότερος τρόπος αναπαράστασης για την εξαγωγή συµπερασµάτων. Τα πλεονεκτήµατά τους είναι ότι αφ ενός η γνώση αναπαριστάται µε τρόπο που πλησιάζει την ανθρώπινη γνώση για τις περισσότερες δραστηριότητες που απαιτούν νοηµοσύνη και αφ ετέρου η εξαγωγή συµπερασµάτων γίνεται µε εύκολο τρόπο (επάρκεια συνεπαγωγών). Συστήµατα τέτοιων κανόνων αποτελούν τη βάση των συστηµάτων γνώσης (knowledge systems). -24-
27 Υπάρχουν δύο είδη κανόνων, αυτοί που εκφράζουν διαδικαστική γνώση και αυτοί που εκφράζουν δηλωτική. Και στα δύο είδη, οι συνθήκες (conditions) είναι µία ακολουθία από κατηγορήµατα, τα οποία συνδέονται µεταξύ τους µε σύζευξη (λογικός τελεστής AND) ή/και διάζευξη (OR). Πολλές φορές οι συνθήκες αναφέρονται ως προϋποθέσεις (premises) ή αριστερό µέλος του κανόνα (left hand side-lhs). Οι ενέργειες (actions) είναι µια σειρά από εντολές που πρέπει να εκτελεστούν όλες (σύζευξη), ενώ το συµπέρασµα (conclusion) είναι συνήθως ένα µόνο κατηγόρηµα. Πολλές φορές οι ενέργειες ή το συµπέρασµα αναφέρονται και ως επακόλουθα (consequent) ή δεξιό µέρος του κανόνα (right hand side-rhs). Πίνακας 1: Είδη κανόνων και η σηµασιολογία τους Μορφές Κανόνων Εκφράζει Επεξήγηση if συνθήκες then ενέργειες if συνθήκες then συµπέρασµα ιαδικαστική γνώση ηλωτική γνώση Αν οι συνθήκες αληθεύουν τότε εκτέλεσε τις ενέργειες αν οι συνθήκες αληθεύουν τότε αληθεύει και το συµπέρασµα Ανάλογα µε το είδος κανόνων που χρησιµοποιούν, τα συστήµατα κανόνων µπορεί να χωριστούν σε δύο µεγάλες κατηγορίες που αναλύονται παρακάτω: Συστήµατα εξαγωγής συµπερασµάτων (deduction systems), όπου οι κανόνες εκφράζουν δηλωτική γνώση, δηλαδή γνώση που δηλώνει µια αλήθεια για τον κόσµο του προβλήµατος, αλλά δεν αναφέρει ρητά πότε και πώς εφαρµόζεται. Συστήµατα παραγωγής (production systems), όπου οι κανόνες εκφράζουν διαδικαστική γνώση, δηλαδή γνώση για το ποιες συγκεκριµένες ενέργειες πρέπει να εκτελεστούν δεδοµένης µιας κατάστασης. Οι κανόνες παραγωγής, αν και αναπαριστούν διαδικαστική γνώση, δεν είναι σαφώς καθορισµένο πότε ακριβώς εκτελούνται οι ενέργειές τους, παρά µόνο αναφέρεται µε ασάφεια πώς οι κανόνες εκτελούνται όταν η συνθήκη είναι αληθής. ηλαδή, αν και εκφράζουν διαδικαστική γνώση, η συνθήκη τους περιέχει δηλωτική γνώση. Υπάρχει και ένα τρίτο είδος κανόνων, καθαρά διαδικαστικό, οι ενεργοί κανόνες (active rules) ή κανόνες οδηγούµενοι από συµβάντα ή γεγονότα (event-driven rules), µε την ακόλουθη µορφή: On συµβάν if συνθήκες then ενέργειες. -25-
28 3.1.2 Πλεονεκτήµατα και Μειονεκτήµατα Κανόνων Οι κανόνες είναι µια φυσιολογική προσέγγιση στην αναπαράσταση της γνώσης επειδή αυτή εκφράζεται µε διαισθητικό τρόπο που πλησιάζει τον τρόπο µε τον οποίο ένας άνθρωπος οργανώνει τη δική του γνώση για πολλά από τα προβλήµατα του πραγµατικού κόσµου. Επιπλέον, οι κανόνες εµφανίζουν και τα εξής πλεονεκτήµατα: Κάθε κανόνας ορίζει ένα µικρό και σχεδόν ανεξάρτητο τµήµα της γνώσης για ένα πρόβληµα (modularity). Νέοι κανόνες µπορεί να προστεθούν σε ένα σύνολο κανόνων σχεδόν ανεξάρτητα από άλλους υπάρχοντες κανόνες (incrementability). Κανόνες που ήδη υπάρχουν σε ένα σύνολο κανόνων µπορεί να αλλάξουν σχεδόν ανεξάρτητα από άλλους κανόνες (modifiability). 3.2 Σηµασιολογικός Ιστός και Κανόνες Οι κανόνες έχουν χρησιµοποιηθεί παραδοσιακά στη θεωρητική πληροφορική, στην τεχνολογία των µεταγλωττιστών, στις βάσεις δεδοµένων, στον προγραµµατισµό λογικής και στην τεχνητή νοηµοσύνη. Ο Σηµασιολογικός Ιστός προσπαθεί να αναπαραστήσει τις πληροφορίες στον Παγκόσµιο Ιστό, έτσι ώστε µπορούν να χρησιµοποιηθούν από τις µηχανές όχι µόνο για λόγους επίδειξης, αλλά για την αυτοµατοποίηση, την ολοκλήρωση και την επαναχρησιµοποίηση µεταξύ των εφαρµογών. Πρόσφατα έχει αναβαθµιστεί σε µια δραστηριότητα W3C (W3C activity). Η σήµανση κανόνων για το Σηµασιολογικό Ιστό είναι ένα σηµαντικό θέµα, δεδοµένου ότι οι κανόνες προσδιορίστηκαν ως ένα από τα ζητήµατα του σχεδιασµού του. Οι κανόνες αναγνωρίζονται ευρέως ως ένα σηµαντικό µέρος του Σηµασιολογικού Ιστού, αλλά και των εφαρµογών που χρησιµοποιούν τεχνικές βασισµένες στη γνώση, κυρίως για το ηλεκτρονικό εµπόριο. Αυτό περιλαµβάνει τη θεωρία και τους αλγορίθ- µους αντιπροσώπευσης γνώσης, γλώσσες σήµανσης βασισµένες στην αναπαράσταση γνώσης, µηχανές, µεταφραστές, και άλλα εργαλεία, σχέσεις στις προσπάθειες τυποποίησης και εφαρµογές. Το ενδιαφέρον και η δραστηριότητα στον τοµέα των κανόνων για το Σηµασιολογικό Ιστό έχει αυξηθεί γρήγορα κατά τη διάρκεια των τελευταίων ετών. Οι κανόνες συµπληρώνουν και επεκτείνουν τις οντολογίες στο Σηµασιολογικό Ιστό. Μπορούν να χρησιµοποιηθούν σε συνδυασµό µε τις οντολογίες, ή ως µέσα για να καθορίζονται οι οντολογίες. Συγκεκριµένα, οι απλοί κανόνες και τα αξιώµατα µπορούν να εφαρµοστούν µέσω των γλωσσών οντολογιών, είτε από κοινού είτε ως εναλλακτική -26-
29 λύση στις περιγραφικές λογικές. Οι κανόνες µπορούν επίσης να εφαρµοστούν πέρα από τις οντολογίες, ώστε να εξάγουν συµπεράσµατα, να εκφράζουν περιορισµούς, να καθορίζουν πολιτικές, να αντιδρούν σε γεγονότα ή αλλαγές, να ανακαλύπτουν νέα γνώση, να µετασχηµατίζουν δεδοµένα κ.λπ. Οι γλώσσες σήµανσης κανόνων εµπλουτίζουν τις οντολογίες Ιστού ώστε να επεκτείνονται οι ορισµοί των παραγόµενων εννοιών, να υποστηρίζεται η δηµοσίευση κανόνων στο ιαδίκτυο, να πραγµατοποιούνται ανταλλαγές κανόνων µεταξύ διαφορετικών συστηµάτων και εργαλείων, να διαµοιράζονται οδηγίες και πολιτικές, να συγχωνεύονται και να διατηρούνται βάσεις κανόνων και πολλά περισσότερα. Οι κανόνες στον Ιστό έχουν γίνει ένα δηµοφιλές θέµα, δεδοµένου ότι οι κανόνες συµπερασµάτων σηµάνθηκαν για το ηλεκτρονικό εµπόριο και αναγνωρίστηκαν ως ζήτηµα σχεδιασµού του Σηµασιολογικού Ιστού, και δεδοµένου ότι οι κανόνες µετασχηµατισµών τέθηκαν στην πρακτική για παραγωγή εγγράφων από µια κεντρική αποθήκη XML. Επιπλέον, οι κανόνες έχουν συνεχίσει να διαδραµατίζουν έναν σηµαντικό ρόλο στην Τεχνητή Νοηµοσύνη για τα συστήµατα γνώσης (Knowledge-based Systems) και τους ευφυείς πράκτορες (Intelligent Agents), που χρειάζονται σήµερα ένα σχήµα α- νταλλαγής Ιστού, και τέτοιοι XML/RDF τυποποιηµένοι κανόνες χρησιµοποιούνται ήδη για τη δηλωτική προδιαγραφή των υπηρεσιών Ιστού (Web Services). Εντούτοις, οι κανόνες του Σηµασιολογικού Ιστού έχουν µελετηθεί λιγότερο συστη- µατικά από την αντίστοιχη σήµανση οντολογίας (ταξονοµία). Η Πρωτοβουλία Σήµανσης Κανόνων (Rule Markup Initiative) προσπαθεί να καλύψει το κενό µε το να ερευνήσει συστήµατα κανόνων (π.χ. εκτεταµένες λογικές Horn) κατάλληλα για τον Ιστό, το (XML και RDF) συντακτικό τους, τη σηµασιολογία, την αποδοτικότητα, το µετασχη- µατισµό και τη σύνταξή τους. Και οι κανόνες παραγωγής και οι ενεργοί κανόνες εξετάζονται, όπως και πιθανοί συνδυασµοί τους [13]. Η RuleML βασίστηκε στις προϋπάρχουσες γλώσσες σήµανσης κανόνων και έχει εµπνεύσει ήδη περαιτέρω προγράµµατα σήµανσης κανόνων. Κάποιες από αυτές τις γλώσσες είναι οι εξής: Η RFML (σχεσιακή-λειτουργική γλώσσα σήµανσης) είναι ένα σχήµα παραγωγής (Ιστού) για τις σχεσιακές-λειτουργικές βάσεις γνώσεων που υλοποιήθηκαν ως τµήµα του συστήµατος Relfun. Η (εισαγµένη από το ιαδίκτυο) µετάφραση σήµανσης RFML στη σύνταξη Prologlike Relfun εφαρµόζεται µέσω ενός XSLT stylesheet. -27-
30 Η URML ήταν αρχικά ένα πρόγραµµα για την διαδικτυακή εφαρµογή των γλωσσών κανόνων ART και ARTScript. Η URML ωθεί την προσπάθεια περαιτέρω ώστε να ενσωµατωθεί ο αντικειµενοστραφής, βασισµένος στους κανόνες, προγραµµατισµός µε την XML, και να παρέχεται µια βάση για την υλοποίηση των διαδικτυακών αντικειµένων και το χειρισµό τους σε κανόνες. Το AORML είναι ένα πρόγραµµα που καθορίζει µια γλώσσα σήµανσης για τους προσανατολισµένους σε πράκτορες επιχειρησιακούς κανόνες στα πλαίσια των προτύπων AOR (Agent Object Relationship) Οι συµµετέχοντες στην πρωτοβουλία RuleML έχουν εκφράσει µια επείγουσα ανάγκη για µια τυποποιηµένη γλώσσα σήµανσης κανόνων, µαζί µε τα περαιτέρω εργαλεία. Αυτή η ανάγκη παρείχε την ώθηση για την προσπάθεια RuleML [5]. 3.3 Η Πρωτοβουλία RuleML Η πρωτοβουλία RuleML άρχισε τον Αύγουστο του 2000 κατά τη διάρκεια της ιεθνούς ιάσκεψης χωρών του δακτυλίου του Ειρηνικού σχετικά µε την τεχνητή νοηµοσύνη (PRICAI 2000). Έχει συγκεντρώσει οµάδες ειδικών από διάφορες χώρες, συµπεριλαµβανοµένων των ηγετών στις γλώσσες αναπαράστασης γνώσης και σήµανσης, και από τον ακαδηµαϊκό κόσµο και από τη βιοµηχανία. Η πρωτοβουλία RuleML αναπτύσσει µία ανοικτή, ουδέτερη από επιχειρήσεις γλώσσα κανόνων, βασισµένη σε XML/RDF. Αυτό θα επιτρέψει την ανταλλαγή των κανόνων µεταξύ των διάφορων συστηµάτων συ- µπεριλαµβανοµένων των κατανεµηµένων τµηµάτων λογισµικού στο ιαδίκτυο, των ετερογενών client-server συστηµάτων που βρίσκονται µέσα στις µεγάλες εταιρίες κ.λ.π. Η γλώσσα RuleML προσφέρει τη σύνταξη XML για την αναπαράσταση γνώσης κανόνων, διαλειτουργική µεταξύ σηµαντικών εµπορικών και µη εµπορικών συστηµάτων κανόνων. Μεταξύ των βιοµηχανικών συµµετεχόντων είναι προµηθευτές µηχανών κανόνων, προµηθευτές τεχνολογίας Ιστού, προµηθευτές εργαλείων XML/RDF και επίσης χρήστες τεχνολογίας όπως οι οικονοµικές εταιρίες, επιχειρήσεις τηλεπικοινωνιών και µερικές από τις σηµαντικότερες δικτυακές πύλες και ASPs. Η πρωτοβουλία RuleML συνεργάζεται µε πολυάριθµες σχετικές προσπάθειες, όπως η συµπληρωµατική προδιαγραφή Java Rules Engine API, η W3C οµάδα εργασίας RDF, η οµάδα, η W3C P3P δραστηριότητα, η PMML και πολλές άλλες. Αυτή η συνεργασία θα επιτρέψει στη RuleML να -28-
31 διαµοιράσει τους µηχανισµούς και να παρέχει µια γλώσσα κανόνων στα υπάρχοντα και αναδυόµενα βιοµηχανικά πρότυπα όπως το Σηµασιολογικό ιαδίκτυο και τα RDF, P3P, CC/PP και το EDI (ηλεκτρονική ανταλλαγή δεδοµένων). εδοµένου ότι οι συµµετέχοντες της RuleML οργάνωσαν µία ανεπίσηµη σύνοδο BOF (Birds of a Feather) στην τεχνική ολοµέλεια και συνεδρίαση της οµάδας εργασίας του W3C το Φεβρουάριο/Μάρτιο του 2001, η RuleML πρωτοβουλία έχει συζητήσει µε το W3C για τις δυνατότητες µιας οµάδας εργασίας που αφιερώνεται στους κανόνες Ι- στού (αξιώµατα) ή σε έναν συνδυασµό προσπαθειών οντολογιών Ιστού όπως εκφράζεται από την εξίσωση: οντολογία = ταξονοµία + αξιώµατα. Αυτό θα δηµιουργούσε την πιθανότητα µιας οµοιόµορφης γλώσσας οντολογιών µε µια ταξονοµία περιγραφικής λογικής και κανόνες Horn λογικής. Συγκεκριµένα, η µεγάλης κλίµακας ανταλλαγή βάσεων κανόνων RuleML θα απαιτήσει µια ταξονοµία των σχέσεων που καθορίζονται στη βάση κανόνων, όπου µια σχέση µε τα επιχειρήµατά της γίνεται µια κατηγορία µε τις υποδοχές της. Οι συµµετέχοντες σε µια ανταλλαγή βάσεων κανόνων θα µπορούν έπειτα να ευθυγραµµίσουν τις αντίστοιχες ιεραρχίες σχέσεων για να ανιχνεύσουν ασυµβατότητες πριν από τη συγχώνευση και την πυροδότηση των ορισµών κανόνων τους. Αντιθέτως, οι µεγάλης κλίµακας ταξονοµίες DAML+OIL θα απαιτήσουν ένα σύστηµα κανόνων να παράγει/χρησιµοποιεί ορισµένες υπονοούµενες πληροφορίες που δεν συλλαµβάνονται από την ταξονοµία µόνο. Οι απαραίτητοι κανόνες θα µπορούσαν να χαρακτηριστούν σύµφωνα µε την κατάλληλη εκφραστική κατηγορία RuleML. Οι DAML+OIL ταξονοµίες και τα αξιώµατα RuleML πρέπει να εκφραστούν µε τους συµβατούς τρόπους, ιδανικά, σε µια ενοποιηµένη γλώσσα. Για να το επιτύχουν αυτό, οι σηµάνσεις RuleML 0.8 και DAML+OIL θα µπορούσαν να συν-αναπτυχθούν στην οµάδα οντολογιών Ιστού προς µια κοινή έκδοση 1.0. Το γεγονός ότι τα συνδυασµένα συστήµατα οντολογιών γίνονται γρήγορα αµφίρροπα δεν είναι µεγάλο ζήτηµα, από τη στιγµή που οι υψηλότερες εκφραστικές κατηγορίες RuleML, π.χ. η λογική Horn, είναι ήδη αµφίρροπες. Ένα µεγάλο ζήτηµα της συνεργασίας µεταξύ DAML+OIL και RuleML, εντούτοις, είναι η ανάπτυξη ενός στρωµατοποιηµένου συστήµατος του οποίου οι αποφασίσιµες εκφραστικές κατηγορίες ταξονοµίας αλληλεπιδρούν καλά µε τις αποφασίσιµες ή αµφίρροπες εκφραστικές κατηγορίες αξιω- µάτων. -29-
32 Όταν δηµιουργούνται πραγµατικές διαδικτυακές οντολογίες φαίνεται σοφό να αρχίσει κανείς µε τις λιγότερο εκφραστικές κατηγορίες και από την πλευρά της ταξονοµίας και από την πλευρά των αξιωµάτων, δεδοµένου ότι µια κοινότητα δηµιουργών δεν µπορεί να προσδιορίσει τις απαιτήσεις των µελλοντικών κοινοτήτων χρηστών. Το ο- ντολογικό περιεχόµενο πρέπει να συσκευαστεί σε µια όσο το δυνατόν πιο ελαφριά γλώσσα οντολογίας για να γίνει διαθέσιµο σε έναν µέγιστο αριθµό χρηστών. 3.4 Η Σύνταξη και η Σηµασιολογία της RuleML Η RuleML καλύπτει µια ιεραρχία των κανόνων, από τους ενεργούς κανόνες (κανόνες οδηγούµενοι από γεγονότα), µέσω των κανόνων περιορισµών ακεραιότητας (κανόνες συντήρησης σταθερότητας) και των κανόνων παραγωγής (κανόνες συµπερασµού), στα γεγονότα (κανόνες παραγωγής χωρίς προϋποθέσεις). Η ιεραρχία RuleML των κανόνων αποτελεί µια µερική ταξινόµηση µε ρίζα τους ε- νεργούς κανόνες. Το δεύτερο κύριο στρώµα του αποτελείται από τους κανόνες περιορισµών ακεραιότητας και τους κανόνες παραγωγής. Το τρίτο στρώµα ειδικεύει απλώς τους κανόνες παραγωγής στα γεγονότα. Κατά συνέπεια, η σφαιρική εικόνα της RuleML φαίνεται στην εικόνα 2. Εικόνα 2: Η ιεραρχία RuleML Οι περιορισµοί ακεραιότητας θεωρούνται ως «αρνήσεις» ή ειδικοί ενεργοί κανόνες, των οποίων το µόνο πιθανό είδος δράσης είναι να επισηµαίνουν ασυνέπεια, όταν τηρούνται ορισµένοι όροι. Οι κανόνες παραγωγής θεωρούνται ως ειδικοί ενεργοί κανόνες των οποίων η δράση προσθέτει ή «βεβαιώνει» ένα συµπέρασµα όταν τηρούνται ορισµένοι όροι (προϋποθέσεις). Αυτή η βεβαίωση των συµπερασµάτων µπορεί να θεωρηθεί ως καθαρά δηλωτικό -30-
33 βήµα, όπως χρησιµοποιείται για την παραγωγή προτύπων και τη σηµασιολογία. Τέτοιοι κανόνες µπορούν επίσης να εφαρµοστούν προς τα πίσω, για την απόδειξη ενός συµπεράσµατος από τις προϋποθέσεις. Τα γεγονότα θεωρούνται ως ειδικοί κανόνες παραγωγής που συµβαίνει να έχουν ένα κενό σύνολο προϋποθέσεων. Σχετικά µε την κατεύθυνση των εφαρµογών για τις τέσσερις κατηγορίες κανόνων υπάρχουν οι εξής απόψεις [5]: Οι γενικοί ενεργοί κανόνες µπορούν µόνο να εφαρµοστούν στην προς τα ε- µπρός κατεύθυνση, παρατηρώντας/ελέγχοντας τα γεγονότα/όρους, εκτελώντας µια δράση εάν και όταν γίνουν αντιληπτά ή τηρηθούν όλα τα γεγονότα/ όροι. Οι περιορισµοί ακεραιότητας είναι συνήθως επίσης προς τα εµπρός προσανατολισµένοι, δηλ. προκαλούµενοι από τις αναπροσαρµογές, κυρίως για λόγους α- ποδοτικότητας. Οι κανόνες παραγωγής από την άλλη, µπορούν να εφαρµοστούν στην προς τα εµπρός κατεύθυνση καθώς επίσης και σε µία προς τα πίσω κατεύθυνση µειώνοντας την απόδειξη ενός στόχου (συµπέρασµα) στις αποδείξεις όλων των υποστόχων του (προϋποθέσεις). εδοµένου ότι στις διαφορετικές καταστάσεις οι διαφορετικές κατευθύνσεις εφαρµογής των κανόνων παραγωγής µπορούν να είναι βέλτιστες (προς τα εµπρός, προς τα πίσω, ή µικτές), η RuleML δεν ορίζει καµία από αυτές. Για τα γεγονότα ή τις «προτάσεις µονάδων» δεν έχει νόηµα η συζήτηση µιας κατεύθυνσης εφαρµογής. Ενώ οι ενεργοί κανόνες µπορούν να εφαρµόσουν όλους τους άλλους, στη RuleML εισάγονται προσαρµοσµένα ειδικής χρήσης συντακτικά για κάθε µια από αυτές τις κατηγορίες. Η ακόλουθη σύνταξη σήµανσης εξυπηρετεί µόνο την προκαταρκτική διάκριση των τεσσάρων κατηγοριών: Ενεργοί κανόνες: <rule> <_body> <and> προϋπόθεση1 προϋπόθεσηn </and> </_body> <_head> δράση </_head> </rule> Περιορισµοί ακεραιότητας:<ic> <_body> <and> προϋπόθεση1 προϋπόθεσηn </and> </_body> </ic> που εφαρµόζεται από την <rule> <_body> <and> προϋπόθεση1 προϋπόθεσηn </and> </_body> <_head> <signal> ασυνέπεια </signal> </_head> </rule> -31-
34 Κανόνες παραγωγής: <imp> <_head> συµπέρασµα </_head> <_body> <and> προϋπόθεση1 προϋπόθεσηn </and> </_body> </imp> που εφαρµόζεται από το <rule> <_body> <and> προϋπόθεση1 προϋπόθεσηn </and> </_body> <_head> <assert> συµπέρασµα </assert> </_head> </rule> Γεγονότα: <fact> <_head>συµπέρασµα </_head> </fact> που εφαρµόζεται από <imp> <_head> συµπέρασµα </_head> <_body> <and> </and> </_body> </imp> Λόγω του απείρου των πιθανών συντακτικών σήµανσης κανόνων και της πλούσιας προηγούµενης δουλειάς στη σηµασιολογία των κατηγοριών συστηµάτων κανόνων, η RuleML έχει επιχειρήσει το χωρισµό κάποιων ζητηµάτων, όπως η ιεραρχία υπογλώσσας. Η εικόνα 3 παρουσιάζει τις 12 υπογλώσσες που αποτελούν από κοινού το διαµορφωµένο βασικό RuleML ορισµό. Όλες οι υπογλώσσες εκτός από την οµάδα «UR» (URL/URI) αντιστοιχούν σε γνωστά συστήµατα κανόνων, όπου κάθε υπογλώσσα έχει έναν αντίστοιχο σηµασιολογικό χαρακτηρισµό. Εικόνα 3: Η RuleML ιεραρχία µε 12 υπογλώσσες παραγωγής κανόνων -32-
35 4 Τεχνολογίες: Java και XML Η XML είναι η µετα-γλώσσα που έχει καθοριστεί από το W3C και µπορεί να χρησιµοποιηθεί για να περιγράψει µια ευρεία ποικιλία ιεραρχικών γλωσσών σήµανσης. Είναι ένα σύνολο κανόνων, οδηγών και συµβάσεων για την περιγραφή δοµηµένων δεδοµένων σε ένα απλό, επεξεργάσιµο αρχείο. Η χρήση µορφοποίησης κειµένου αντί για δυαδική µορφοποίηση επιτρέπει στον προγραµµατιστή ή ακόµα και σε ένα τελικό χρήστη να δει και να χρησιµοποιήσει τα δεδοµένα χωρίς να βασιστεί στο πρόγραµµα που τα παρήγαγε. Ωστόσο ο κύριος παραγωγός και καταναλωτής των XML δεδοµένων είναι ο υπολογιστής και όχι ο τελικός χρήστης. Όπως η HTML, η XML χρησιµοποιεί ετικέτες (tags) και χαρακτηριστικά (attributes). Οι ετικέτες είναι λέξεις που περικλείονται από < και > και τα χαρακτηριστικά είναι λέξεις της µορφής name = value που βρίσκονται µέσα στις ετικέτες. Ενώ η HTML καθορίζει τι σηµαίνει κάθε ετικέτα και χαρακτηριστικό, όπως τα χαρακτηριστικά παρουσίασης στον browser, η XML χρησιµοποιεί ετικέτες µόνο για να οριοθετήσει τµήµατα δεδοµένων και αφήνει την ερµηνεία των δεδοµένων στην εφαρµογή που τα χρησιµοποιεί. Με άλλα λόγια, η XML καθορίζει µόνο τη δοµή του εγγράφου και όχι την παρουσίασή του. Για πολλούς λόγους, η XML και η Java Platform αποτελούν µία ιδανική συνεργασία. Η XML καθορίζει ένα διαπλατφορµικό σχήµα δεδοµένων και η Java παρέχει µια πρότυπη προγραµµατιστική πλατφόρµα. Μαζί, οι τεχνολογίες XML και Java επιτρέπουν στους προγραµµατιστές να εφαρµόζουν τη βασική αρχή Write Once, Run Anywhere στην επεξεργασία δεδοµένων και εγγράφων που έχουν παραχθεί από βασισµένα σε Java ή όχι, προγράµµατα [6]. 4.1 Netbeans Το NetBeans αποτελεί ένα ενοποιηµένο περιβάλλον ανάπτυξης (Integrated Development Environment IDE) και µια πλατφόρµα για την ανάπτυξη εφαρµογών για το ιαδίκτυο (χρησιµοποιώντας Java, JavaScript, PHP, Python, Ruby, Groovy, C, και C++). Η πλατφόρµα NetBeans επιτρέπει στις εφαρµογές να αναπτυχθούν από ένα σύνολο τµη- µάτων λογισµικού που λέγονται ενότητες (modules). Μια ενότητα είναι ένα αρχείο της -33-
36 Java που περιέχει τάξεις της Java οι οποίες γράφονται για να αλληλεπιδράσουν µε το NetBeans Open API και ένα αρχείο manifest που το προσδιορίζει ως ενότητα. Οι εφαρ- µογές που στηρίζονται σε ενότητες µπορούν να επεκταθούν µε την προσθήκη νέων ενοτήτων. εδοµένου ότι οι ενότητες µπορούν να αναπτυχθούν ανεξάρτητα, οι εφαρµογές που βασίζονται στην πλατφόρµα NetBeans µπορούν να επεκταθούν από προγραµµατιστές τρίτου µέρους Ιστορία Το NetBeans άρχισε το 1997 ως ένα φοιτητικό project υπό την καθοδήγηση της σχολής των Μαθηµατικών και της Φυσικής του Charles University στην Πράγα. Ο Roman Stanek δηµιούργησε αργότερα µια επιχείρηση γύρω από το πρόγραµµα και παρήγαγε τις εµπορικές εκδόσεις του NetBeans IDE έως ότου αγοράστηκε από τη Sun Microsystems το Η Sun έκανε το NetBeans ανοικτού λογισµικού τον Ιούνιο του επόµενου έτους. Η κοινότητα NetBeans από τότε συνεχίζει να µεγαλώνει, χάρη σε άτο- µα και εταιρίες που συνεισφέρουν στην ανάπτυξη του προγράµµατος και το χρησιµοποιούν Τρέχουσες Εκδόσεις Η τρέχουσα έκδοση NetBeans IDE είναι η 6.5.1, η οποία κυκλοφόρησε το Μάρτιο του Σχετικά µε τις πιο πρόσφατες εκδόσεις του λογισµικού, το NetBeans IDE 6.5 ε- πέκτεινε τα υπάρχοντα χαρακτηριστικά γνωρίσµατα Java EE (συµπεριλαµβανοµένης της υποστήριξης Java Persistence, EJB 3 και JAX-WS). Επιπλέον, το επιχειρηµατικό πακέτο NetBeans υποστηρίζει την ανάπτυξη των επιχειρηµατικών εφαρµογών EE 5 της Java, συµπεριλαµβανοµένων των οπτικών εργαλείων σχεδιασµού SOA, εργαλεία XML Schema, διαµόρφωση υπηρεσιών Ιστού (για BPEL) και µοντελοποίηση σε UML. Το NetBeans IDE Bundle για C/C++ υποστηρίζει έργα C/C++. Το NetBeans IDE 6.0 δηµιουργήθηκε επάνω στη προηγούµενη έκδοση 5.5.1, η ο- ποία εισήγαγε υποστήριξη για την ανάπτυξη ενοτήτων IDE και πλούσιων πελατειακών εφαρµογών, βασισµένων στην πλατφόρµα NetBeans, έναν νέο GUI builder (στο παρελθόν γνωστό ως «Matisse»), τη νέα και ξανασχεδιασµένη υποστήριξη CVS, υποστήριξη Weblogic 9 και JBoss 4 και πολλές βελτιώσεις στον επεξεργαστή κειµένου. Το NetBeans 6.0 παραδίδεται ως τµήµα του Ubuntu 8.04 και των διανοµών Debian Linux. -34-
37 4.1.3 Η Πλατφόρµα NetBeans Η πλατφόρµα NetBeans είναι ένα επαναχρησιµοποιήσιµο πλαίσιο για την ανάπτυξη εφαρµογών υπολογιστών γραφείου. Όταν µια εφαρµογή βασισµένη στην πλατφόρµα NetBeans τρέχει, εκτελείται η κύρια τάξη (Main) της πλατφόρµας. Οι διαθέσιµες ενότητες τοποθετούνται σε µία ιεραρχία µνήµης, και εκτελούνται οι διεργασίες αρχικοποίησης των ενοτήτων. Γενικά, ο κώδικας µιας ενότητας φορτώνεται στη µνήµη µόνο όταν απαιτείται. Οι εφαρµογές µπορούν να εγκαταστήσουν τις ενότητες δυναµικά. Οποιαδήποτε ε- φαρµογή µπορεί να συµπεριλάβει την ενότητα Update Center για να επιτρέψει στους χρήστες της εφαρµογής να µεταφορτώσουν ψηφιακά-υπογεγραµµένες βελτιώσεις και τα νέα χαρακτηριστικά γνωρίσµατα άµεσα στην τρέχουσα εφαρµογή. Η επανατοποθέτηση µιας βελτίωσης ή µιας νέας έκδοσης δεν αναγκάζει τους χρήστες να κατεβάσουν πάλι ολόκληρη την εφαρµογή. Η πλατφόρµα προσφέρει υπηρεσίες κοινές στις εφαρµογές γραφείου, που επιτρέπουν στους υπεύθυνους για την ανάπτυξη να εστιάσουν στη λογική, ειδικά για την εφαρµογή τους. Μεταξύ των χαρακτηριστικών γνωρισµάτων της πλατφόρµας είναι: ιαχείριση διασύνδεσης χρήστη (µενού και γραµµές εργαλείων) ιαχείριση ρυθµίσεων χρήστη ιαχείριση αποθήκευσης (αποθήκευση και φόρτωση κάθε είδους δεδοµένων) ιαχείριση παραθύρων Wizard framework (υποστηρίζει βήµα προς βήµα διαλόγους) Το NetBeans IDE Το NetBeans IDE είναι ένα ενoποιηµένο ανοικτού λογισµικού περιβάλλον ανάπτυξης γραµµένο εξ ολοκλήρου σε Java που χρησιµοποιεί την πλατφόρµα NetBeans. Το Net- Beans IDE υποστηρίζει την ανάπτυξη όλων των τύπων εφαρµογών της Java (Java SE, Ιστoύ, EJB και κινητές εφαρµογές). Μεταξύ άλλων τα χαρακτηριστικά γνωρίσµατα είναι ένα σύστηµα προγραµµάτων βασισµένο σε Ant, έλεγχος εκδόσεων και refactoring. Όλες οι λειτουργίες του IDE παρέχονται από ενότητες (modules). Κάθε ενότητα παρέχει µια καλά καθορισµένη λειτουργία, όπως υποστήριξη για τη γλώσσα Java, επεξεργασία, υποστήριξη για το CVS σύστηµα ελέγχου και SVN. Το NetBeans περιέχει όλες τις ενότητες που χρειάζονται για την ανάπτυξη εφαρµογών Java σε µία µόνο µεταφόρτωση, επιτρέποντας στο χρήστη να αρχίσει άµεση εργασία. Οι ενότητες επιτρέ- -35-
38 πουν επίσης στο Netbeans να επεκταθεί. Νέα χαρακτηριστικά, όπως υποστήριξη για άλλες προγραµµατιστικές γλώσσες, µπορούν να προστεθούν µε την εγκατάσταση των κατάλληλων ενοτήτων. Για παράδειγµα οι Sun Studio, Sun Java Studio Enterprise, και Sun Java Studio Creator από τη Sun Microsystems, βασίζονται στο NetBeans IDE [7]. 4.2 Java API for XML Processing (JAXP) Το Java API για την επεξεργασία XML δίνει τη δυνατότητα στις εφαρµογές να αναλύουν, να µετασχηµατίζουν και να επικυρώνουν XML έγραφα χρησιµοποιώντας ένα API που είναι ανεξάρτητο από µία συγκεκριµένη υλοποίηση XML επεξεργαστή. Επίσης, δίνει τη δυνατότητα στις επιχειρήσεις να παρέχουν τις δικές τους υλοποιήσεις, χωρίς να παρουσιάζουν εξαρτήσεις στον κώδικα της εφαρµογής. Με τη χρήση αυτού το λογισµικού, οι προγραµµατιστές εφαρµογών και εργαλείων µπορούν να δηµιουργήσουν πλήρως λειτουργικές εφαρµογές Java µε XML δυνατότητες για το ηλεκτρονικό εµπόριο, την ενοποίηση εφαρµογών και τις δηµοσιεύσεις στο ιαδίκτυο [8]. Οι τρεις βασικές διασυνδέσεις επεξεργασίας είναι: Document Object Model (DOM) Simple API for XML (SAX) Streaming API for XML (StAX) Μαζί µε τις διασυνδέσεις επεξεργασίας, το API προσφέρει µία XSLT διασύνδεση για την παροχή µετασχηµατισµών δοµής και δεδοµένων ενός XML εγγράφου. Η JAXP αναπτύχθηκε από τη Java Community Process ως JSR 5 (JAXP 1.0) και JSR 63 (JAXP 1.1 και 1.2). Η J2SE 1.4 είναι η πρώτη έκδοση της JAVA που περιέχει µία υλοποίηση της JAXP Document Object Model (DOM) Το Document Οbject Model (DOM) είναι ένα σύνολο διασυνδέσεων που έχουν οριστεί από την οµάδα εργασίας W3C DOM. Περιγράφει λειτουργίες για µια προγραµµατιστική αναπαράσταση ενός αναλυµένου XML (ή HTML) εγγράφου. Η προδιαγραφή DOM καθορίζει αυτές τις διασυνδέσεις χρησιµοποιώντας τη γλώσσα καθορισµού διασυνδέσεων (IDL-Interface Definiton Language) µε τρόπο ανεξάρτητο γλώσσας και επίσης παρέχει σύνδεση µε τη Java. Η προδιαγραφή DOM βρίσκεται στην ιστοσελίδα [9]. -36-
39 4.2.2 Simple API for XML Parsing (SAX) Το SAX είναι ένα δηµόσιο API που αναπτύχθηκε συνεργατικά από τα µέλη της λίστας µηνυµάτων XML-DEV. Παρέχει µία οδηγούµενη από τα γεγονότα διασύνδεση για την επεξεργασία της ανάλυσης ενός XML εγγράφου. Μία οδηγούµενη από τα γεγονότα διασύνδεση παρέχει ένα µηχανισµό για επισηµάνσεις ανάκλησης στον κώδικα της ε- φαρµογής, αφού ο αναλυτής αναγνωρίζει συντακτικούς περιορισµούς XML στο έγγραφο. Το SAX API βρίσκεται στην ιστοσελίδα [10] XSLT H XSLT (XSL Transformations) είναι µια γλώσσα για το µετασχηµατισµό XML εγγράφων σε άλλα XML έγγραφα ή σε άλλη µορφή κειµένου. Καθορίστηκε από την οµάδα εργασίας W3C XSL. Η XSLT σχεδιάστηκε για να χρησιµοποιείται ως τµήµα της XSL, η οποία είναι µια γλώσσα stylesheet για XML. Εκτός από την XSLT, η XSL περιλαµβάνει ένα λεξιλόγιο XML για τον καθορισµό της µορφοποίησης. Η XSL καθορίζει την παρουσίαση ενός εγγράφου XML χρησιµοποιώντας την XSLT για να περιγράψει πώς το έγγραφο µετασχηµατίζεται σε ένα άλλο έγγραφο XML που χρησιµοποιεί το λεξιλόγιο µορφοποίησης. Η XSLT σχεδιάστηκε επίσης µε σκοπό να χρησιµοποιηθεί ανεξάρτητα από την XSL. Εντούτοις, η XSLT δεν προορίζεται ως µία γενικής χρήσης γλώσσα µετασχηµατισµών XML. Προορίζεται κυρίως για τα είδη των µετασχηµατισµών που απαιτούνται όταν χρησιµοποιείται η XSLT ως τµήµα της XSL. Η XSLT προδιαγραφή βρίσκεται στην ιστοσελίδα [11] Επεξεργασία εγγράφου µε το Document Object Model (DOM) Το Document Object Model (DOM) αναπαριστά ένα XML έγγραφο σε µία δενδρική δοµή δεδοµένων, που µπορεί εύκολα να χειριστεί ένα πρόγραµµα σε Java. Τα πλεονεκτήµατα του DOM είναι η σχετική απλότητα στη χρήση και τροποποίηση της δοµής των δεδοµένων, αλλά και η εξαγωγή τους από αυτή. Το µειονέκτηµα είναι πως το DOM αναλύει και αποθηκεύει ολόκληρο το έγγραφο, ακόµα κι αν ο χρήστης ενδιαφέρεται για ένα µόνο µέρος του. Ανάλυση εγγράφου Με την επεξεργασία DOM, υπάρχουν δύο υψηλού επιπέδου διεργασίες, η µετατροπή ενός XML εγγράφου σε µία DOM δοµή δεδοµένων, και η εύρεση των δεδοµένων που -37-
40 ενδιαφέρουν το χρήστη µέσα από αυτή τη δοµή. Η ακόλουθη λίστα συνοψίζει τα λεπτοµερή βήµατα που χρειάζονται για να επιτευχθούν αυτές οι διεργασίες [12]. 1. Καθορισµός του αναλυτή (parser) που θα χρησιµοποιηθεί. Αυτό µπορεί να γίνει µε πολλούς τρόπους: µέσα από την ιδιότητα συστήµατος javax.xml.parsers.documentbuilderfactory, µέσα από το αρχείο jre_dir/lib/ jaxp.properties, µέσα από το J2EE Services API, ή µε έναν εξαρτώµενο από το σύστηµα προκαθορισµένο αναλυτή. Η ιδιότητα συστήµατος είναι ο ευκολότερος τρόπος. Για παράδειγµα, ο ακόλουθος κώδικας επιτρέπει στους χρήστες να καθορίζουν τον αναλυτή στη γραµµή εντολών µε την επιλογή D, αλλιώς να χρησιµοποιείται ο αναλυτής Apache Xerces. public static void main(string[] args) { String jaxppropertyname ="javax.xml.parsers. DocumentBuilderFactory"; if (System.getProperty(jaxpPropertyName) == null) { String apachexercespropertyvalue ="org.apache.xerces.jaxp. Document BuilderFactoryImpl"; System.setProperty(jaxpPropertyName,apacheXercesProperty Value);}... } 2. ηµιουργία ενός JAXP Document Builder. DocumentBuilderFactory builderfactory = DocumentBuilderFactory. newinstance(); DocumentBuilder builder = builderfactory.newdocumentbuilder(); Μπορούν να χρησιµοποιηθούν οι µέθοδοι setnamespaceaware και setvalidating στον DocumentBuilderFactory ώστε ο αναλυτής να είναι ενήµερος των namespaces και να επικυρώνει το έγγραφο. 3. Κλήση του αναλυτή ώστε να δηµιουργήσει ένα Document που αναπαριστά ένα XML έγγραφο. Η κλήση του αναλυτή γίνεται µε τη µέθοδο parse του document builder, παρέχοντας µία ροή εισόδου, ένα URI ή org.xml.sax.inputsource. Η τάξη Document αναπαριστά το αποτέλεσµα της ανάλυσης σε δενδρική δοµή. Document document = builder.parse(someinputstream); -38-
41 4. Κανονικοποίηση του δένδρου. Αυτό σηµαίνει τον συνδυασµό κόµβων κειµένου που ήταν σε πολλαπλές γραµµές και την αποµάκρυνση των άδειων κόµβων κει- µένου. document.getdocumentelement().normalize(); 5. Λήψη του κόµβου ρίζας του δένδρου. Αυτό επιστρέφει ένα Element, που είναι υπο-τάξη της πιο γενικής τάξης Node, και αναπαριστά ένα στοιχείο XML. Element rootelement = document.getdocumentelement(); 6. Εξέταση διάφορων ιδιοτήτων του κόµβου. Αυτές οι ιδιότητες περιλαµβάνουν το όνοµα του στοιχείου (getnodename), τον τύπο του κόµβου (getnodetype π.χ. για σύγκριση της επιστρεφόµενης τιµής µε προκαθορισµένες σταθερές της τάξης Node), την τιµή του κόµβου (getnodevalue π.χ. για κόµβους κειµένου η τι- µή είναι το κείµενο που βρίσκεται ανάµεσα στην ετικέτα ανοίγµατος και την ε- τικέτα κλεισίµατος του στοιχείου), τα χαρακτηριστικά που χρησιµοποιούνται από την ετικέτα ανοίγµατος του στοιχείου (getattributes) και τους κόµβους παιδιά (getchildnodes, δηλαδή τα στοιχεία που περικλείονται µεταξύ των ετικετών ανοίγµατος και κλεισίµατος του τρέχοντος στοιχείου). Ο χρήστης µπορεί αναδροµικά να εξετάσει κάθε έναν από τους κόµβους παιδιά. 7. Τροποποίηση των ιδιοτήτων των κόµβων. Αντί για την απλή εξαγωγή δεδοµένων από ένα XML έγγραφο, ο χρήστης µπορεί να τροποποιήσει το έγγραφο προσθέτοντας κόµβους παιδιά (appendchild), αφαιρώντας κόµβους παιδιά (removechild) και αλλάζοντας την τιµή του κόµβου (setnodevalue). Ωστόσο, η DOM δεν παρέχει κάποια πρότυπη µέθοδο για την εγγραφή µίας DOM δοµής σε µορφή κειµένου, αλλά ο χρήστης µπορεί να χρησιµοποιήσει κάποιο από τα διάφορα πακέτα που παράγουν κείµενο από ένα στοιχείο DOM. -39-
42
43 5 Σχεδιασµός Κάποιες από τις απαραίτητες λειτουργίες ενός editor που προορίζεται για τη συγγραφή κώδικα είναι o χρωµατισµός κώδικα (syntax highlighting), o έλεγχος ορθογραφίας (spell checking), η απόκρυψη κώδικα (code folding) και η αντιστοίχιση παρενθέσεων (brace matching), µία ειδική περίπτωση χρωµατισµού που τονίζει τα τµήµατα κώδικα (code blocks). Επίσης, σηµαντικές λειτουργίες είναι η µορφοποίηση του κώδικα (indentation), ώστε να είναι ευανάγνωστος, η αναδόµησή του (refactoring), µε αλλαγές στη δοµή και τη σχεδίασή του και αποµάκρυνση νεκρού κώδικα, ώστε να είναι πιο κατανοητός, η αυτόµατη συµπλήρωση κώδικα (code completion ή word completion) και η παρουσίασή του σύµφωνα µε κάποιες προδιαγραφές ώστε να είναι πιο ελκυστικός για τον αναγνώστη (pretty printing). Συγκεκριµένα για τον RuleML editor, µία βασική λειτουργία είναι η δυνατότητα φόρτωσης διάφορων XML Schemas, µε βάση τα οποία θα γίνεται η συγγραφή των RuleML εγγράφων. Σηµαντικό είναι να γίνεται έλεγχος αν το RuleML έγγραφο είναι ορθά διαµορφωµένο (well-formed) και έγκυρο (valid). Επίσης απαραίτητο είναι να υπάρχει ένα παράθυρο περιήγησης (navigator/overview window), όπου θα εµφανίζονται κάποια σηµαντικά χαρακτηριστικά του εγγράφου, όπως όλοι οι κανόνες. Γενικά, ένας editor πρέπει να περιέχει µία γραµµή µενού µε τις εξής καρτέλες: Αρχείο (File), Επεξεργασία (Edit), Περιήγηση (Navigate), Παράθυρο (Window) και Βοήθεια (Help). Η κάθε καρτέλα πρέπει να περιέχει κάποιες επιλογές: 5.1 Αρχείο (File) 1. Νέο αρχείο (New): ηµιουργία ενός νέου αρχείου. 2. Άνοιγµα αρχείου (Open file): Άνοιγµα ενός αρχείου που υπάρχει ήδη σε κάποιον κατάλογο του συστήµατος. 3. Κλείσιµο (Close): Κλείσιµο του αρχείου που έχουµε ανοίξει και επεξεργαζόµαστε. 4. Κλείσιµο όλων (Close all): Κλείσιµο όλων των αρχείων που είναι ανοιχτά και τα επεξεργαζόµαστε παράλληλα. -41-
44 5. Αποθήκευση (Save): Αποθήκευση των αλλαγών που κάνουµε στο ανοιχτό αρχείο. 6. Αποθήκευση ως (Save as): Αποθήκευση του αρχείου που επεξεργαζόµαστε µε δυνατότητα αλλαγής ονόµατος και τοποθεσίας του στο σύστηµα. 7. Αποθήκευση όλων (Save all):αποθήκευση όλων των ανοιχτών αρχείων που ε- πεξεργαζόµαστε παράλληλα. 8. Μετακίνηση (Move): Μετακίνηση του αρχείου που επεξεργαζόµαστε σε άλλη τοποθεσία του συστήµατος. 9. Μετονοµασία (Rename): Αλλαγή του ονόµατος του αρχείου. 10. Ανανέωση (Refresh): Ανανέωση του αρχείου µετά από κάποια αλλαγή. 11. Επανεκκίνηση (Restart): Επανεκκίνηση του προγράµµατος επεξεργασίας των αρχείων (editor). 12. Εισαγωγή (Import):Εισαγωγή αρχείου που υπάρχει στο σύστηµα και δεν έχει δηµιουργηθεί από τον editor. 13. Εξαγωγή(Export): Εξαγωγή αρχείου που έχει δηµιουργηθεί από τον editor σε άλλη τοποθεσία του συστήµατος µε διαφορετική µορφοποίηση. 14. Ιδιότητες (Properties): Ιδιότητες του αρχείου που επεξεργαζόµαστε, όπως όνοµα δηµιουργού, τύπος αρχείου, τύπος πρόσβασης κ.τ.λ. 15. Πρόσφατα Αρχεία(Recent files): Λίστα µε τα αρχεία που έχουν δηµιουργηθεί ή επεξεργαστεί πιο πρόσφατα. 16. Εκτύπωση (Print): Εκτύπωση του αρχείου που επεξεργαζόµαστε. 17. Έξοδος (Exit): Έξοδος από το πρόγραµµα. 5.2 Επεξεργασία (Edit) 1. Αναίρεση (Undo): Αναίρεση ενέργειας όπως πληκτρολόγηση, διαγραφή, επικόλληση κ.τ.λ. 2. Επανάληψη (Redo): Ακύρωση αναίρεσης. 3. Αποκοπή (Cut): Αποκοπή επιλεγµένου στοιχείου. 4. Αντιγραφή (Copy): Αντιγραφή επιλεγµένου στοιχείου. 5. Επικόλληση (Paste): Επικόλληση σε νέα θέση στοιχείου που έχει αποκοπεί ή αντιγραφεί. 6. ιαγραφή (Delete): ιαγραφή επιλεγµένου στοιχείου. 7. Επιλογή όλων (Select all): Επιλογή όλων των στοιχείων ενός εγγράφου. -42-
45 8. Εύρεση/Αντικατάσταση (Find/Replace): Εύρεση ενός στοιχείου µέσα στο έγγραφο και δυνατότητα αντικατάστασής του. 9. Εύρεση εποµένου (Find next): Εύρεση της επόµενης θέσης που εµφανίζεται το συγκεκριµένο στοιχείο στο έγγραφο. 10. Εύρεση προηγουµένου (Find previous): Εύρεση της προηγούµενης θέσης που εµφανίζεται το στοιχείο στο έγγραφο. 11. Αυτόµατη συµπλήρωση (Word Completion): Λίστα µε προτεινόµενες συµπληρώσεις λέξεων ή εκφράσεων που πληκτρολογεί ο χρήστης στο έγγραφο. 12. Αρίθµηση Γραµµών (Line numbers): Αρίθµηση των γραµµών του εγγράφου. 13. Χρωµατισµός κώδικα (Syntax Highlighting): Χρωµατισµός των δεσµευµένων λέξεων και κατάλληλη στοίχιση του εγγράφου. 5.3 Περιήγηση (Navigate) 1. Μετάβαση σε (Go to): Πίσω (Back), Μπροστά (Forward): Μετάβαση στην επό- µενη ή προηγούµενη δεσµευµένη λέξη από το σηµείο που βρίσκεται ο κέρσορας. 2. Μετάβαση σε γραµµή (Go to Line): Μετάβαση σε µία συγκεκριµένη γραµµή του εγγράφου. 3. Μετάβαση σε Αρχείο (Go to File): Μετάβαση σε αρχείο που είναι ανοιχτό τη στιγµή που επεξεργαζόµαστε κάποιο άλλο αρχείο. 4. Επόµενο λάθος (Next Error): Μετάβαση του κέρσορα στο επόµενο λάθος του εγγράφου από τη θέση στην οποία βρίσκεται τη συγκεκριµένη στιγµή. 5. Προηγούµενο λάθος (Previous Error): Μετάβαση του κέρσορα στο προηγούµενο λάθος του εγγράφου από τη θέση στην οποία βρίσκεται τη συγκεκριµένη στιγµή. 6. Προβολή των RuleML Schemas (View RuleML Schemas): Προβολή σε µία λίστα όλων των RuleML Schemas που υπάρχουν στο πρόγραµµα. 5.4 Παράθυρο (Window) 1. Νέο Παράθυρο (New Window): Άνοιγµα νέου παραθύρου του προγράµµατος. 2. Νέα καρτέλα (New Tab): Άνοιγµα νέας καρτέλας για τη δυνατότητα παράλληλης επεξεργασίας εγγράφων. 3. Μεγιστοποίηση Παραθύρου (Maximize Window). -43-
46 4. Ελαχιστοποίηση Παραθύρου (Minimize Window). 5. Κλείσιµο παραθύρου (Close Window). 6. Κλείσιµο καρτέλας (Close Tab). 5.5 Βοήθεια (Help) 1. Περιεχόµενα Βοήθειας (Help Contents). 2. Πληροφορίες για το πρόγραµµα (About). 5.6 Γενικές Εκτιµήσεις Από τις γενικές λειτουργίες που αναφέρθηκαν παραπάνω, στον RuleML Editor έχουν υλοποιηθεί o χρωµατισµός κώδικα, η αντιστοίχιση παρενθέσεων, η αυτόµατη συµπλήρωση και το pretty printing. Ειδικές λειτουργίες του προγράµµατος είναι η φόρτωση διάφορων XML Schemas, ο έλεγχος αν το RuleML έγγραφο είναι ορθά διαµορφωµένο (well-formed) και ένα παράθυρο περιήγησης, όπου εµφανίζονται όλοι οι κανόνες του εγγράφου. Στη γραµµή µενού της εφαρµογής υπάρχουν οι καρτέλες File, Edit, Properties και Help, µε τις βασικότερες λειτουργίες, όπως άνοιγµα και κλείσιµο αρχείου, νέο αρχείο, εκτύπωση, έξοδος από την εφαρµογή, αποκοπή, αντιγραφή, επικόλληση, καθώς και άλλες ειδικές επιλογές. Στο κεφάλαιο 6 περιγράφονται αναλυτικά οι κυριότερες λειτουργίες της εφαρµογής. -44-
47 6 Υλοποίηση Στο κεφάλαιο αυτό περιγράφονται οι κύριες λειτουργίες του RuleML Editor, και παρατίθενται κάποιες λεπτοµέρειες της υλοποίησής τους. Αυτές οι λειτουργίες είναι ο καθορισµός του λεξιλογίου, ο χρωµατισµός του, το ταίριασµα των ετικετών, και η αυτόµατη συµπλήρωση κώδικα. 6.1 Καθορισµός Λεξιλογίου Ο RuleML Editor παρέχει στο χρήστη τη δυνατότητα να φορτώνει κάποιο XML Schema, ώστε να καθορίζει το λεξιλόγιο που θα χρωµατίζεται (βλ. επόµενη ενότητα). Το πρόγραµµα βρίσκει τα στοιχεία (elements) και τις ιδιότητες (attributes) του αντίστοιχου XML Schema και τα αποθηκεύει σε ξεχωριστές δοµές οι οποίες έχουν ένα συγκεκριµένο χρώµα γραµµατοσειράς. Το υποµενού Load xsd file του µενού File, περιέχει τις επιλογές v.0.86, v.0.89, v.0.90 και custom. Έτσι, υπάρχει η δυνατότητα φόρτωσης κάποιου από τα τρία XML Schemas που υπάρχουν ήδη στο σύστηµα, ή κάποιου XML Schema που διαθέτει ο χρήστης. Εικόνα 4: Φόρτωση XML Schema Η εφαρµογή ξεκινά φορτώνοντας το τελευταίο XML Schema που είχε επιλέξει ο χρήστης. Για την εύρεση των elements και attributes του αντίστοιχου XML Schema, χρησιµοποιούνται οι τάξεις DocumentBuilder και DocumentBuilderFactory του πακέτου javax.xml.parsers. -45-
48 Η επεξεργασία ενός αρχείου xsd, γίνεται µέσω ενός συντακτικού αναλυτή (parser) DocumentBuilder που παράγεται από την κλάση DocumentBuilderFactory. Η µέθοδος parse του συντακτικού αναλυτή DocumentBuilder επιστρέφει ένα αντικείµενο document που υποστηρίζει τη διεπαφή Document. Στη συνέχεια καλείται η µέθοδος findelatrefincs(document) µε όρισµα το αντικείµενο document. DocumentBuilderFactory domfactory = DocumentBuilderFactory.newInstance(); domfactory.setnamespaceaware(true); DocumentBuilder builder = null; try { builder = domfactory.newdocumentbuilder(); } catch (ParserConfigurationException ex) { Logger.getLogger(NewApplication.class.getName()).log(Level.SEVERE, null, ex); } Document document = null; try { //To αντικείµενο document παίρνει ως τιµή το document που παράγεται από την επεξεργασία του xsd αρχείου από τον parser document = builder.parse("filename"); } catch (SAXException ex) { Logger.getLogger(NewApplication.class.getName()).log(Level.SEVERE, null, ex);} catch (IOException ex) { Logger.getLogger(NewApplication.class.getName()).log(Level.SEVERE, null, ex);} findelatrefincs(document); Η µέθοδος findelatrefincs(document document) βρίσκει τα attributes, τα elements, τα redefine και τα include που υπάρχουν στο αρχικό xsd αρχείο που φορτώνει ο χρήστης. Τα redefine και include περιέχουν urls, στα οποία βρίσκονται κάποια elements και attributes του κάθε RuleML Schema. Εποµένως θα πρέπει και σε αυτά να γίνει η αναζήτηση του λεξιλογίου. -46-
49 Για κάθε οµάδα διαφορετικών στοιχείων δηµιουργείται µια δοµή Set. Στη συνέχεια δηµιουργούνται 4 αντικείµενα NodeList τα οποία περιέχουν όλους τους κόµβους που έχουν ένα συγκεκριµένο όνοµα tag. ηµιουργείται εποµένως µία λίστα για τα elements, µία για τα attributes, µία για τα redefine και µία για τα include. Για κάθε λίστα επιλέγονται τα χαρακτηριστικά που πρέπει να αποθηκευθούν. Συγκεκριµένα, για τη λίστα που περιέχει τους κόµβους µε όνοµα xs:element, πρέπει να αποθηκευθούν τα χαρακτηριστικά ref και name στην αντίστοιχη δοµή (Set). Η ίδια διαδικασία γίνεται και στις υπόλοιπες λίστες. NodeList nodes = document.getelementsbytagname("xs:element"); NodeList nodes2 = document.getelementsbytagname("xs:attribute"); NodeList nodes3 = document.getelementsbytagname("xs:redefine"); NodeList nodes4 = document.getelementsbytagname("xs:include"); //Για τη λίστα µε όνοµα tag xs:element επιλέγεται το χαρακτηριστικό ref από κάθε κόµβο for (int i = 0; i < nodes.getlength(); i++) { Node node=nodes.item(i); NamedNodeMap node_elements = node.getattributes(); try{ String text=node_elements.getnameditem("ref").getnodevalue(); //Το χαρακτηριστικό ref προστίθεται στο set tags tags.add(text); }catch(exception ex){};} for(int i=0;i<nodes.getlength();i++){ Node node2=nodes.item(i); NamedNodeMap node_elements=node2.getattributes(); try{ String text=node_elements.getnameditem("name").getnodevalue(); tags2.add(text); }catch(exception ex){}; } Μετά την εύρεση των elements, attributes, redefine και include του αρχικού RuleML Schema, καλείται η µέθοδος findredefinesincludes(linkedlist <String> urlsredefine,string namespace), η οποία, για κάθε url που υπάρχει στη συνδεδεµένη λίστα urlsredefine, καλεί τη µέθοδο findrefsincs(string tempstring,linkedlist urlsredefine). -47-
50 Αυτή η µέθοδος προσθέτει στο τέλος της λίστας όλα τα urls που βρίσκει. Σε αυτά τα urls περιέχονται elements και attributes, τα οποία προστίθενται στις δοµές που περιέχουν τα αρχικά elements και attributes. private void findredefinesincludes (LinkedList <String> urlsredefine,string namespace){ for(int i=0;i<urlsredefine.size();i++){ String tempstring=urlsredefine.get(i); //Αν το url αρχίζει από http καλείται η µέθοδος που βρίσκει τα //urls στα οποία υπάρχει αναφορά από το συγκεκριµένο url if(tempstring.startswith("http")){ findrefsincs(tempstring,urlsredefine); }else{ //Αλλιώς στην αρχή του url προστίθεται το namespace, ώστε να α- ποτελεί έναν έγκυρο σύνδεσµο, και στη συνέχεια καλείται η µέθοδος findrefsincs tempstring=namespace+"/"+tempstring; findrefsincs(tempstring,urlsredefine); } } } Στη συνέχεια, αφού έχουν βρεθεί όλα τα urls που χρειάζονται για να καθοριστεί το τελικό λεξιλόγιο, καλείται η παρακάτω µέθοδος : findelematrib(urlsredefine,namespace,elementnames,attributenames, elementrefs){ for(int i=0;i<urlsredefine.size();i++){ String tempstring=urlsredefine.get(i); if(tempstring.startswith("http")){ findelementsattributes(tempstring,elementnames,attributenames,elementrefs); }else { tempstring=namespace+"/"+tempstring; findelementsattributes(tempstring,elementnames,attributenames,elementrefs); }}} -48-
51 Η λειτουργία της είναι να βρίσκει όλα τα elements και attributes σε κάθε url που υπάρχει στη λίστα και να τα αποθηκεύει σε προσωρινές δοµές, µέσα από την κλήση της µεθόδου findelementsattributes (tempstring, elementnames, attributenames, elementrefs), οι οποίες µετά το τέλος της διαδικασίας προστίθενται στις αρχικές. Έτσι, στο τέλος συγκεντρώνονται σε δύο ξεχωριστές δοµές όλα τα attributes και τα elements που περιέχει το κάθε RuleML Schema. Τέλος, δηµιουργείται ένα αντικείµενο της τάξης SyntaxDocument, το οποίο παίρνει ως ορίσµατα τις δύο τελικές δοµές, ώστε να γίνει ο κατάλληλος χρωµατισµός των στοιχείων που περιέχουν. Η αναζήτηση του λεξιλογίου για τα τρία RuleML Schemas που υπάρχουν ήδη στο σύστηµα, έγινε µε τον παραπάνω τρόπο. Στη συνέχεια για κάθε διαθέσιµο RuleML Schema δηµιουργήθηκε ένας κατάλογος που περιέχει δύο αρχεία, ένα µε τη λίστα των elements και ένα µε τη λίστα των attributes, έτσι ώστε να γίνεται πιο γρήγορα ο καθορισµός του λεξιλογίου κάθε φορά που ο χρήστης φορτώνει κάποιο από αυτά. Εικόνα 5:Τελικές λίστες των elements και attributes για την έκδοση Χρωµατισµός Κώδικα (Syntax Highlighting) Για την υλοποίηση του Syntax Highlighting δηµιουργήθηκε µία τάξη που κληρονοµεί την DefaultStyledDocument, η SyntaxDocument. Η τάξη DefaultStyledDocument ανήκει στο πακέτο javax.swing.text, και η λειτουργία της είναι να δηµιουργεί ένα κείµενο το οποίο µπορεί να περιέχει διάφορα στυλ χαρακτήρων ή παραγράφων, παρόµοια µε τη µορφοποίηση RTF. Κάποιες από τις ιδιότητες της τάξης SyntaxDocument είναι οι εξής: DefaultStyledDocument doc: Ορίζεται ένα κείµενο τύπου DefaultStyledDocument. Element rootelement: Ορίζεται ένα αντικείµενο της διασύνδεσης Element, το rootelement. -49-
52 MutableAttributeSet keyword: Ορίζεται ένα αντικείµενο της διασύνδεσης MutableAttributeSet, το οποίο περιγράφει το σύνολο κάποιων στοιχείων που θα έχει µια συγκεκριµένη µορφοποίηση. Hashtable keywords: Ορίζεται ο hashtable στον οποίο θα αποθηκεύονται όλα τα στοιχεία που θα έχουν κάποια µορφοποίηση. Αρχικά ο δοµητής της SyntaxDocument αρχικοποιεί τις ιδιότητες doc και rootelement, και δηµιουργεί ένα νέο αντικείµενο της τάξης SimpleAttributeSet η οποία υλοποιεί το interface MutableAttributeSet, το keyword, θέτοντας στα στοιχεία του συγκεκριµένου σετ ένα συγκεκριµένο χρώµα για την εµφάνισή τους. Στη συνέχεια αρχικοποιείται ο Hashtable keywords, στον οποίο τοποθετούνται τα attributes που πρέπει να χρωµατίζονται όταν εµφανίζονται στον editor. Η ίδια διαδικασία γίνεται και για τα elements, µε τη δηµιουργία ενός νέου SimpleAttributeSet που θα καθορίζει το στυλ των elements, και ενός νέου Hashtable που θα περιέχει όλα τα elements στα οποία θα εφαρµοστεί το αντίστοιχο στυλ. Η µέθοδος applyhighlighting µε ορίσµατα τις µεταβλητές String content και int line αναλύει κάθε γραµµή ώστε να προσδιορίσει την κατάλληλη µορφοποίηση. Η ακέραια µεταβλητή startoffset παίρνει ως τιµή την αρχική θέση της γραµµής, και η ακέραια µεταβλητή endoffset την τελική της θέση. Υπολογίζεται το µήκος της γραµµής από τη διαφορά της τελικής µε την αρχική θέση, και η µεταβλητή contentlength αρχικοποιείται µε το µήκος όλου του κειµένου. Στη συνέχεια, όσο η τελική θέση της γραµµής είναι µεγαλύτερη ή ίση µε το µήκος του κειµένου, η τελική θέση παίρνει την τιµή του µήκους του κειµένου µείον ένα. Ελέγχεται αν υπάρχουν σχόλια πολλαπλών γραµµών, κανονικοί χαρακτήρες, ή σχόλια µονής γραµµής ώστε να γίνει η αντίστοιχη µορφοποίηση µε τη µέθοδο setcharacterattributes. Μετά τους ελέγχους, καλείται η µέθοδος checkfor- Tokens. private void applyhighlighting(string content, int line) throws BadLocationException{ Int startoffset = rootelement.getelement(line ).getstartoffset() ; int endoffset = rootelement.getelement( line ).getendoffset() - 1; int linelength = endoffset - startoffset; int contentlength = content.length(); if (endoffset >= contentlength) -50-
53 endoffset = contentlength - 1; //ελέγχει για σχόλια πολλαπλών γραµµών //Η µορφοποίηση του σχόλιου εφαρµόζεται για όλη τη γραµµή if (endingmultilinecomment(content, startoffset, endoffset) ismultilinecomment() startingmultilinecomment(content, startoffset, endoffset)) { doc.setcharacterattributes(startoffset, endoffset - startoffset+ 1, comment, false); return;} //εφαρµόζει normal µορφοποίηση στη γραµµή, δηλαδή µαύρο χρώµα γραµµατοσειράς doc.setcharacterattributes(startoffset, linelength, normal, true); //ελέχγει για tokens checkfortokens(content, startoffset, endoffset);} Η µέθοδος checkfortokens αναλύει τη γραµµή για να βρει τις λέξεις που πρέπει να χρωµατίζονται. Όσο η αρχική θέση της γραµµής, από την οποία αρχίζει η ανάλυση, είναι µικρότερη ή ίση της τελικής,ελέγχει αν υπάρχουν χαρακτήρες οριοθέτησης όπως " ; : {} () [] + - / % < = >! & ^ ~ * " ώστε να τους προσπεράσει. Στη συνέχεια ως αρχική θέση startoffset τίθεται η τιµή που επιστρέφει η συνάρτηση getothertoken, και ξαναγίνεται ο έλεγχος αν η αρχική θέση είναι µικρότερη ή ίση της τελικής. private void checkfortokens(string content, int startoffset, int endoffset) { while (startoffset <= endoffset) { //προσπερνά τους χαρακτήρες οριοθέτησης για να βρει την αρχή ενός νέου token. while ( isdelimiter( content.substring(startoffset, startoffset + 1) ) ){ if (startoffset < endoffset) startoffset++; else return;} // Επεξεργάζεται το token -51-
54 if ( isquotedelimiter( content.substring(startoffset, startoffset + 1) ) ) startoffset = getquotetoken(content, startoffset, endoffset); else startoffset = getothertoken(content, startoffset, endoffset); } } Η µέθοδος getothertoken αρχικοποιεί τη µεταβλητή endoftoken θέτοντάς της την τι- µή της αρχικής θέσης συν ένα και στη συνέχεια, όσο η τιµή της endoftoken είναι µικρότερη ή ίση µε την τιµή της endoffset, ελέγχει αν υπάρχει χαρακτήρας οριοθέτησης. Αν ναι, σταµατάει η επανάληψη και ελέγχεται αν το περιεχόµενο που διαβάστηκε µέχρι εκείνη τη στιγµή είναι keyword, έτσι ώστε να το χρωµατίσει κατάλληλα. Αν όχι, η επανάληψη συνεχίζεται µέχρι η τιµή της endoftoken γίνει ίση µε την τιµή της endoffset, ή µέχρι να βρεθεί χαρακτήρας οριοθέτησης. Η µέθοδος αυτή επιστρέφει την τιµή της endoftoken+1, δηλαδή την επόµενη από τη θέση του τελευταίου χαρακτήρα του keyword. private int getothertoken(string content, int startoffset, int endoffset){ int endoftoken = startoffset + 1; while ( endoftoken <= endoffset ) { if (isdelimiter( content.substring(endoftoken, endoftoken + 1))) break; endoftoken++; } String token = content.substring(startoffset, endoftoken); if ( iskeyword( token ) ) doc.setcharacterattributes(startoffset, endoftoken - startoffset, keyword, false); return endoftoken + 1; } Η µέθοδος iskeyword παίρνει ως όρισµα το token, και αν αυτό ανήκει στον Hashtable keywords,επιστρέφει true, αλλιώς false. protected boolean iskeyword(string token) { Object o = keywords.get( token ); return o == null? false : true; } -52-
55 Στην εικόνα 3 φαίνεται το αποτέλεσµα του χρωµατισµού του συντακτικού ενός RuleML εγγράφου που δηµιουργήθηκε µε τον RuleML Editor. Εικόνα 6: Χρωµατισµός κώδικα 6.3 Ταίριασµα Ετικετών (Tag Matching) To Tag Matching, δηλαδή ο συνδυασµός κάθε opening tag του κειµένου µε το αντίστοιχο closing tag, υλοποιείται µέσα από τη λειτουργία refresh. Η συγκεκριµένη λειτουργία εκτελείται µε την εισαγωγή του χαρακτήρα <, ή κάθε κλικ του ποντικιού, στην περιοχή κειµένου του RuleML Editor. Η µέθοδος refreshactionperformed(evt) δηµιουργεί ένα νέο vector στο οποίο θα αποθηκεύονται όλα τα tags που βρίσκονται στην περιοχή κειµένου. Στη συνέχεια, σε µια µεταβλητή textstring αποθηκεύεται όλο το κείµενο που βρίσκεται στην περιοχή κειµένου. ηµιουργείται µία κανονική έκφραση της µορφής <.*?> η οποία αναπαριστά κείµενο που αρχίζει µε <, µηδέν ή περισσότερες εµφανίσεις οποιουδήποτε χαρακτήρα, -53-
56 και τελειώνει µε >. Ένα αντικείµενο της τάξης Matcher εφαρµόζει το ταίριασµα της κανονικής έκφρασης πάνω στο κείµενο. Έπειτα, για κάθε tag που βρίσκει δηµιουργεί ένα νέο αντικείµενο της τάξης Tag, και το αποθηκεύει στον αντίστοιχο vector. String textstring = jtextpane1.gettext(0, syntaxdocument1.getlength()); Pattern p = Pattern.compile("<.*?>"); Matcher m = p.matcher(textstring); while(m.find()){ //Εκτυπώνεται το tag, η θέση που αρχίζει και η θέση που τελειώνει System.out.println(m.group()+" "+m.start()+" "+m.end()); Tag tag1=new Tag(m.group(),m.start(),m.end()); //Το tag προστίθεται στο Vector που περιέχει όλα τα tags του κειµένου tagvector.add(tag1); } Αφού βρεθούν όλα τα tags της περιοχής κειµένου, δηµιουργείται µία στοίβα, και ένας νέος vector που περιέχει αντικείµενα της τάξης TagNames. Για κάθε tag που βρίσκεται µέσα στον tagvector αποθηκεύεται σε µία µεταβλητή temp το όνοµα του tag. Αν το tag δεν αρχίζει από <?,<!, ή </ και δεν τελειώνει µε />, δηλαδή είναι opening tag, τοποθετείται στη στοίβα. Αν το tag αρχίζει µε </ είναι closing tag,οπότε δηµιουργείται ένα νέο αντικείµενο της τάξης Tag το οποίο δείχνει στο πρώτο στοιχείο της στοίβας. Αν το όνοµα του πρώτου tag της στοίβας είναι ίδιο µε το όνοµα του closing tag, τότε εξάγεται το πρώτο στοιχείο της στοίβας και δηµιουργείται ένα νέο αντικείµενο TagName το οποίο περιέχει το όνοµα του tag, τη θέση στην οποία αρχίζει το opening tag,τη θέση στην οποία τελειώνει, και τις αντίστοιχες θέσεις για το closing tag. Στη συνέχεια το νέο αντικείµενο αποθηκεύεται στον vector tagnames. Τα tags που είναι µονά, δηλαδή τελειώνουν µε /> τοποθετούνται απευθείας στο vector tagnames. tagnames=new Vector(); Stack stack=new Stack(); for(int i=0; i<tagvector.size();i++){ String temp=tagvector.get(i).gettag(); if(temp.endswith("/>")){ -54-
57 TagName tagname=new TagName(temp.substring(1, temp.length()- 2),tagVector.get(i).getStartOffset(),tagVector.get(i).getEndOffs et(),tagvector.get(i).getstartoffset(),tagvector.get(i).getendof fset()); tagnames.add(tagname);} if(!temp.startswith("<?")&&!temp.startswith("<!")){ if(!temp.startswith("</")&&!temp.endswith("/>")){ stack.push(tagvector.get(i)); }else if(temp.startswith("</")){ try{ Tag peek=(tag) stack.peek(); if(peek.gettag().contains(temp.substring(2, temp.length()-1))){ Tag pop=(tag) stack.pop(); TagName tagname=new TagName(temp.substring(2, temp.length()- 1),pop.getStartOffset(),pop.getEndOffset(),tagVector.get(i).getS tartoffset(),tagvector.get(i).getendoffset()); tagnames.add(tagname); }}catch(emptystackexception e){};} } } Ο χρωµατισµός των tags γίνεται µέσα από τη συνάρτηση sethighlight() η οποία εκτελείται µε κάθε κλικ του ποντικιού στην περιοχή κειµένου. Για κάθε στοιχείο του vector tagnames γίνεται ο έλεγχος αν η θέση του κέρσορα είναι µεγαλύτερη από τη θέση που αρχίζει το opening tag, και µικρότερη από τη θέση που τελειώνει το closing tag.αν ι- σχύει αυτό για κάποιο από τα στοιχεία του tagnames, εφαρµόζεται το αντίστοιχο στυλ στα δύο tags. Αν γίνει είσοδος από το πληκτρολόγιο, ή αν εκτελεστεί ξανά η sethighlight(), το στυλ που εφαρµόστηκε στα συγκεκριµένα tags αφαιρείται. Η εικόνα 4 δείχνει το χρωµατισµό των αντίστοιχων tags, µετά το πάτηµα του ποντικιού στην περιοχή κειµένου του RuleML Editor. for(int i=0;i<tagnames.size();i++){ if( icaretposition > tagnames.get(i).optagstartoffset && icaretposition < tagnames.get(i).cltagendoffset){ System.out.println(tagNames.get(i).tagName); -55-
58 syntaxdocment1.setcharacterattributes(tagnames.get(i).optagstart Offset,tagNames.get(i).opTagEndOffset,tagNames.get(i).opTagStart Offset, style, false); syntaxdocment1.setcharacterattributes(tagnames.get(i).cltagstart Offset,tagNames.get(i).clTagEndOffset,tagNames.get(i).clTagStart Offset, style, false); tag=newtagname(tagnames.get(i).tagname,tagnames.get(i).optagstar toffset,tagnames.get(i).optagendoffset,tagnames.get(i).cltagstar toffset, tagnames.get(i). cltagendoffset); break;} } Εικόνα 7: Ταίριασµα ετικετών 6.4 Σηµασιολογική Αντιστοίχιση Ετικετών Μετά τη φόρτωση ενός XML Schema εκτός από τα προϋπάρχοντα, ο χρήστης πρέπει να ορίσει την αντιστοίχιση των εννοιών της βάσης κανόνων µε ετικέτες από το εκάστοτε λεξιλόγιο. Αυτό γίνεται µε την εισαγωγή των κατάλληλων ετικετών στον πίνακα που εµφανίζεται µόλις φορτωθεί το XML Schema που έχει επιλεχθεί. Ο πίνακας σηµασιολογικής αντιστοίχισης δίνει τη δυνατότητα στο χρήστη να επιλέξει την κατάλληλη ετικέτα από µία λίστα µε όλα τα στοιχεία και χαρακτηριστικά του σχήµατος που έχει φορτωθεί και παρέχει αυτόµατη συµπλήρωση κατά τη διάρκεια της πληκτρολόγησης. Στην -56-
59 εικόνα 8 φαίνεται ένα παράδειγµα εισαγωγής των ετικετών του σχήµατος 0.86 στις α- ντίστοιχες έννοιες της βάσης κανόνων. Εικόνα 8: Πίνακας Σηµασιολογικής Αντιστοίχισης Ετικετών Μετά την εισαγωγή τους, οι ετικέτες αποθηκεύονται σε µεταβλητές του προγράµ- µατος ώστε να χρησιµοποιηθούν από διάφορες µεθόδους, και ενηµερώνεται το αρχείο ιδιοτήτων out.xml ώστε να διατηρηθεί η αντιστοίχιση των ετικετών µε τις έννοιες της βάσης κατά την επόµενη εκκίνηση της εφαρµογής. if(source==ok){ rulename=cb1.tf.gettext(); headname=cb2.tf.gettext();...} dispose(); DocumentBuilderFactory domfactor = DocumentBuilderFactory. newinstance(); domfactor.setnamespaceaware(true); docbuilder = domfactor.newdocumentbuilder(); //To αντικείµενο doc1 παίρνει ως τιµή το document που παράγεται από την επεξεργασία του αρχείου ιδιοτήτων από τον parser doc1 = docbuilder.parse("out.xml"); Element e = null; Node node=null; Element root=doc1.getdocumentelement(); -57-
60 //Επιστρέφεται, αν υπάρχει στο αρχείο, το element µε όνοµα definerule NodeList nodelist=doc1.getelementsbytagname("definerule"); for(int j=0;j<nodelist.getlength();j++){ node=nodelist.item(j);} // ηµιουργείται ένα νέο αντικείµενο Element µε όνοµα definerule e = doc1.createelementns(null, "definerule"); e.setattributens(null, "rulename", rulename); e.setattributens(null, "headname", headname);.. // Αντικαθίσταται το προηγούµενο element definerule µε το νέο που δηµιουργείται try{ root.replacechild(e, node); }catch(nullpointerexception ex){root.appendchild(e);} DOMSource domsource = new DOMSource(doc1); FileWriter out = null; //Το αρχείο ιδιοτήτων ενηµερώνεται µε τις αλλαγές out = new FileWriter("out.xml"); out.flush(); StreamResult streamresult = new StreamResult(out); TransformerFactory tf = TransformerFactory.newInstance(); Transformer serializer = null; serializer = tf.newtransformer(); serializer.setoutputproperty(outputkeys.encoding,"iso "); serializer.setoutputproperty(outputkeys.indent,"yes"); serializer.transform(domsource, streamresult); } } 6.5 Αυτόµατη Συµπλήρωση Κώδικα Μία από τις λειτουργίες του RuleML Editor είναι η αυτόµατη συµπλήρωση κώδικα κατά τη διάρκεια της συγγραφής βάσεων κανόνων από το χρήστη. Αυτό γίνεται µε την -58-
61 εµφάνιση ενός popup menu µε τις κατάλληλες επιλογές όταν ο χρήστης πληκτρολογεί <, δηλαδή θέλει να εισάγει µία νέα ετικέτα στη βάση. Οι επιλογές του µενού προέρχονται από το Semantic Tag Mapping που γίνεται µετά τη φόρτωση ενός RuleML σχή- µατος. Αρχικά υπολογίζεται σε ποια ετικέτα βρίσκεται ο κέρσορας. Στη συνέχεια γίνεται ο έλεγχος αν η ετικέτα αντιστοιχεί σε κάποια έννοια της βάσης, ώστε να φορτωθούν οι κατάλληλες επιλογές στο µενού αυτόµατης συµπλήρωσης. Αν η ετικέτα δεν αντιστοιχεί σε κάποια από τις κύριες έννοιες, το µενού δεν εµφανίζεται. Στη συνέχεια ελέγχεται αν η ετικέτα στην οποία βρίσκεται ο κέρσορας υπάρχει στη στοίβα των ανοιχτών ετικετών. Αν ναι, το µενού αυτόµατης συµπλήρωσης εµφανίζει την αντίστοιχη ετικέτα κλεισίµατος. try{ //Αν η ετικέτα είναι κανόνας if(tag1.gettag().contains(rulename)){ //οι διαθέσιµες επιλογές είναι head και body option1=new OptionAction(headName); option2=new OptionAction(bodyName); }else if(tag1.gettag().contains(headname)){ option1=new OptionAction(atomName); option2=new OptionAction(negName); }else if(tag1.gettag().contains(bodyname)){ option1=new OptionAction(atomName); option2=new OptionAction(andName); }else if(tag1.gettag().contains(atomname)){ option1=new OptionAction(opName); option2=new OptionAction(slotName); }else{option1=null;option2=null;} for(int i=0;i<mismatch.size();i++){ //Αν η ετικέτα βρίσκεται στη στοίβα µε τις ανοιχτές ετικέτες if(mismatch.get(i).gettag().equals(tag1.gettag())){ //η διαθέσιµη επιλογή είναι η αντίστοιχη ετικέτα κλεισίµατος -59-
62 option1=new OptionAction("/"+tag1.getTag().substring(1,tag1. gettag(). length()-1)); option2=emptyop; break;}}}catch(nullpointerexception ex){option1=null;option2=null;} Η εικόνα 9 παρουσιάζει την εµφάνιση του µενού αυτόµατης συµπλήρωσης όταν ο κέρσορας βρίσκεται στην ετικέτα _head µίας βάσης κανόνων του σχήµατος Εικόνα 9:Εµφάνιση του µενού αυτόµατης συµπλήρωσης µε τις κατάλληλες επιλογές Η εικόνα 10 παρουσιάζει την εµφάνιση του µενού αυτόµατης συµπλήρωσης όταν ο κέρσορας βρίσκεται σε µία ανοιχτή ετικέτα µίας βάσης κανόνων του σχήµατος
63 . Εικόνα 10:Εµφάνιση του µενού αυτόµατης συµπλήρωσης όταν ο κέρσορας βρίσκεται σε ανοιχτή ετικέτα Στον πίνακα 2 εµφανίζονται οι διαθέσιµες επιλογές του µενού αυτόµατης συµπλήρωσης, όταν ο κέρσορας βρίσκεται σε κάποια από τις ετικέτες που έχουν οριστεί από τον πίνακα σηµασιολογικής αντιστοίχισης. Πίνακας 2: Επιλογές του µενού αυτόµατης συµπλήρωσης Tag element element rule head body head atom negation body atom and atom operator slot 6.6 Άλλες λειτουργίες Η ενότητα αυτή παρουσιάζει µερικές δευτερεύουσες λειτουργίες του προγράµµατος, όπως είναι η εκτύπωση και η αρίθµηση γραµµών Εκτύπωση Μία λειτουργία του RuleMLEditor είναι η εκτύπωση των βάσεων κανόνων που επεξεργάζεται ο χρήστης. Αυτό γίνεται µέσα από την επιλογή Print του µενού File. Αρχικά δηµιουργείται ένα αντικείµενο της τάξης PrinterJob που συνδέεται µε τον προκαθορι- -61-
64 σµένο εκτυπωτή του συστήµατος. Στη συνέχεια εµφανίζεται το πλαίσιο διαλόγου της εκτύπωσης, όπου ο χρήστης µπορεί να αλλάξει κάποιες ιδιότητες. PrinterJob job = PrinterJob.getPrinterJob(); job.setprintable(this); boolean ok = job.printdialog(); if (ok) { try { job.print();} catch (PrinterException ex) { // The job did not complete successfully JOptionPane.showMessageDialog(this, "Could not print rule base", "Error!", JOptionPane.ERROR_MESSAGE); return; }} Στην εικόνα 11 εµφανίζεται το πλαίσιο διαλόγου της εκτύπωσης. Εικόνα 11: Πλαίσιο διαλόγου εκτύπωσης Η µέθοδος print αποθηκεύει σε ένα Vector όλες τις γραµµές του κειµένου, και σε έναν πίνακα ακεραίων όλες τις θέσεις αλλαγής γραµµής του κειµένου. Στη συνέχεια, κάθε γραµµή που διαβάζεται από το κείµενο µέσω ενός BufferedReader προστίθεται στον Vector σαν νέο στοιχείο. Καθορίζεται το µέγεθος και ο τύπος της γραµµατοσειράς για την εκτύπωση και το ύψος κάθε γραµµής. Αν δεν υπάρχουν αλλαγές σελίδας, υπολογίζεται ο αριθµός των γραµµών ανά σελίδα και δηµιουργείται ένας νέος πίνακας ακεραίων που αποθηκεύει τις νέες αλλαγές σελίδας. Αφού υπολογιστούν η αρχική και η -62-
Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία
Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία Σοφία Ζαπουνίδου, Αρχειονόμος Βιβλιοθηκονόμος, Πανεπιστήμιο Θεσσαλίας Κεντρική
Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών
Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Λίνα Μπουντούρη - Μανόλης Γεργατσούλης Ιόνιο Πανεπιστήμιο 15ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών Διαδίκτυο και Επίπεδα ετερογένειας δεδομένων
Κεφάλαιο 8. Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής. Τεχνητή Νοηµοσύνη - Β' Έκδοση
Κεφάλαιο 8 Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Αναπαράσταση Γνώσης Σύνολο συντακτικών
Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες
ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:
ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής
Σχεδίαση και Ανάπτυξη Ιστότοπων
Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου
1 Συστήματα Αυτοματισμού Βιβλιοθηκών
1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία
Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3
Ανάπτυξη Οντολογίας Βιοϊατρικών Όρων Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3 www.iatrolexi.cti.gr 1 Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών (ΕΑΙΤΥ) Σελίδα 1 Ημερομηνία:
Επιµέλεια Θοδωρής Πιερράτος
Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί
Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το
Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.
Integrated Project. Ambient Intelligence System of Agents for Knowledgebased and Integrated Services for Mobility Impaired users
Integrated Project Ambient Intelligence System of Agents for Knowledgebased and Integrated Services for Mobility Impaired users Κλήµης Νταλιάνης Έµπειρος Ερευνητής Εργαστήριο ΨΕΕΒΠ - Ε.Μ.Π. 1 Περίγραµµα
Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)
Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής
Σχεδιασµός Ανάπτυξη Οντολογίας
Σχεδιασµός Ανάπτυξη Οντολογίας ΈλεναΜάντζαρη, Γλωσσολόγος, Ms.C. ΙΑΤΡΟΛΕΞΗ: Ανάπτυξη Υποδοµής Γλωσσικής Τεχνολογίας για το Βιοϊατρικό Τοµέα Τι είναι η οντολογία; Μιαοντολογίαείναιέναλεξικόόρωνπου διατυπώνονται
Διαδίκτυο είναι ένα σύστημα διασυνδεδεμένων δικτύων και υπολογιστών που απλώνεται σε όλο τον κόσμο και έχουν πρόσβαση σε αυτό εκατομμύρια χρήστες.
Διαδίκτυο είναι ένα σύστημα διασυνδεδεμένων δικτύων και υπολογιστών που απλώνεται σε όλο τον κόσμο και έχουν πρόσβαση σε αυτό εκατομμύρια χρήστες. Για να επιτευχθεί αυτό όλοι οι υπολογιστές και τα επιμέρους
2018 / 19 ΜΕΤΑΠΤΥΧΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
2018 / 19 ΜΕΤΑΠΤΥΧΙΑΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 2 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ: ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Πρόλογος των Συγγραφέων
Πρόλογος των Συγγραφέων Τεχνητή Νοηµοσύνη (ΤΝ) είναι ο τοµέας της επιστήµης των υπολογιστών, που ασχολείται µε τη σχεδίαση ευφυών (νοηµόνων) υπολογιστικών συστηµάτων, δηλαδή συστηµάτων που επιδεικνύουν
Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών
Εννοιολογική Ομοιογένεια
Ιόνιο Πανεπιστήμιο Τμήμα Αρχειονομίας Βιβλιοθηκονομίας Εργαστήριο Ψηφιακών Βιβλιοθηκών και Ηλεκτρονικής Δημοσίευσης Εννοιολογική Ομοιογένεια Αξιοποίηση Ταξινομικών Συστημάτων Γεωργία Προκοπιάδου, Διονύσης
Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές
Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές
Διπλωματικές των κ. Ι. Βλαχάβα και Ν. Βασιλειάδη
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ Διπλωματικές 2006-2007 των κ. Ι. Βλαχάβα και Ν. Βασιλειάδη Επιβλέπων: Ι. Βλαχάβας 1.
Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.
ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου
ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15
ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων
Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες
ΣΧΟΛΕΙΟ Η εκπαιδευτική πρακτική αφορούσε τη διδασκαλία των μεταβλητών στον προγραμματισμό και εφαρμόστηκε σε μαθητές της τελευταίας τάξης ΕΠΑΛ του τομέα Πληροφορικής στα πλαίσια του μαθήματος του Δομημένου
MEDLAB: Mediterranean Living Lab for Territorial Innovation
MEDLAB: Mediterranean Living Lab for Territorial Innovation Παραδοτέο 2.2.2 ΣΥΝΟΨΗ ΠΟΛΙΤΙΚΗΣ: ΖΩΝΤΑΝΑ ΕΡΓΑΣΤΗΡΙΑ Ή ΠΑΡΟΜΟΙΕΣ ΠΡΩΤΟΒΟΥΛΙΕΣ Θεσσαλονίκη, Αύγουστος 2010 ΠΕΡΙΕΧΟΜΕΝΑ Σύνθεση Πολιτικής...3 Στοιχεία
Παραδοτέο Π.2.1. Υπερχώρος και διαχείριση μοντέλων
Έργο: Τίτλος Υποέργου: «ΘΑΛΗΣ: Ενίσχυση της Διεπιστημονικής ή και Διιδρυματικής έρευνας και καινοτομίας με δυνατότητα προσέλκυσης ερευνητών υψηλού επιπέδου από το εξωτερικό μέσω της διενέργειας βασικής
Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1
Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0 Καραμαούνας Πολύκαρπος 1 9.1 Ιστορικά Στοιχεία Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο και ήταν απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966
Ηλεκτρονικό Επιχειρείν & Νέες Τεχνολογίες για Επιχειρηματικότητα ΔΕΟ45
Ηλεκτρονικό Επιχειρείν & Νέες Τεχνολογίες για Επιχειρηματικότητα ΔΕΟ45 ΤΟΜΟΣ Α «Ηλεκτρονικό Επιχειρείν» πηγή: ibm.com Ηλεκτρονικό Επιχειρείν Η εφαρμογή τεχνολογιών πληροφορίας και επικοινωνίας (ΤΠΕ) για
GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ
ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΣΠΟΥ ΑΣΤΗΣ: Γιαννόπουλος Γεώργιος ΕΠΙΒΛΕΠΩΝ: Καθ. Ι. Βασιλείου ΒΟΗΘΟΙ: Α. ηµητρίου, Θ. αλαµάγκας Γενικά Οι µηχανές αναζήτησης
Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα:
Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα: οφέλη για επιχειρήσεις και καταναλωτές Μιχάλης Σαλαμπάσης αναπληρωτής καθηγητής Τμήμα Πληροφορικής Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης Εναλλακτικός
ΑΞΙΟΛΟΓΗΣΗ (THE MATRIX)
ΕΠΙΧΕΙΡΗΜΑΤΙΚΟ ΠΑΙΧΝΙΔΙ PLAY4GUIDANCE ΑΞΙΟΛΟΓΗΣΗ (THE MATRIX) Συγγραφέας: Jan M. Pawlowski, Hochschule Ruhr West (HRW) Page 1 of 7 Κατηγορία Ικανότητας Περιγραφή Ικανότητας Περιγραφή του επιπέδου επάρκειας
Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται:
Μάθημα 10 Συστήματα Διάχυσης και Διαχείρισης Γνώσης Chapter 10 Knowledge Transfer In The E-world Chapter 13 Knowledge Management Tools and Knowledge Portals Συστήματα Διάχυσης και Διαχείρισης Γνώσης Λογισμικό
Συστήματα Πληροφοριών Διοίκησης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά Συστήματα Πληροφοριών Διοίκησης Ενότητα 2: Γενική θεώρηση και κατάταξη συστημάτων πληροφοριών διοίκησης Διονύσιος Γιαννακόπουλος, Καθηγητής Τμήμα
Οντολογία για την περιγραφή των προσωπικοτήτων της Σάμου, την κατηγοριοποίηση και τις σχέσεις τους
Οντολογία για την περιγραφή των προσωπικοτήτων της Σάμου, την κατηγοριοποίηση και τις σχέσεις τους Επιμέλεια: Καρανικολάου Θεοδώρα Επιβλέπων καθηγητής: Δενδρινός Μάρκος Αθήνα, 2017 Σκοπός Στόχος της πτυχιακής
Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό
Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αλέξανδρος Βαλαράκος (alexv@iit.demokritos.gr) (alexv@aegean.gr) Υποψήφιος ιδάκτορας Τµήµα Μηχανικών Υπολογιστικών και Πληροφοριακών Συστηµάτων.
Νέες τεχνολογίες εισάγονται ή χρησιµοποιούνται
special report τoυ Γιώργου Φετοκάκη / gfetokakis@boussias.com Jobs scheduling Η χρυσή τοµή της αυτοµατοποίησης Μια λύση job scheduling πρέπει να είναι αρκετά περιεκτική. Πρέπει να υποστηρίζει την ενσωµάτωση
Κοινωνικά δίκτυα (Web 2.0) και εκπαίδευση
Κοινωνικά δίκτυα (Web 2.0) και εκπαίδευση Ο εικοστός πρώτος αιώνας θα µπορούσε εύκολα να χαρακτηριστεί ως τεχνολογικός αιώνας µιας και τα νέα δεδοµένα µαρτυρούν αύξηση της χρήσης του ηλεκτρονικού υπολογιστή,
Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας
1. Εισαγωγή Σχολιασµός των εργασιών της 16 ης παράλληλης συνεδρίας µε θέµα «Σχεδίαση Περιβαλλόντων για ιδασκαλία Προγραµµατισµού» που πραγµατοποιήθηκε στο πλαίσιο του 4 ου Πανελλήνιου Συνεδρίου «ιδακτική
ΜΑΘΗΜΑ 6. Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων. Το RDF Το Warwick Framework. Ιόνιο Πανεπιστήµιο - Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας
ΜΑΘΗΜΑ 6 195 Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων Το RDF Το Warwick Framework 196 1 Resource Data Framework RDF Τα πολλαπλά και πολλαπλής προέλευσης σχήµατα παραγωγής δηµιουργούν την ανάγκη δηµιουργίας
Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού
Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Γενικά Η αρχιτεκτονική ανάπτυξης τους πληροφοριακού συστήµατος Γραµµατεία 2000 υποσύστηµα διαχείρισης προσωπικού
Βασίλειος Κοντογιάννης ΠΕ19
Ενότητα3 Επικοινωνία και Διαδίκτυο Κεφ9: Διαδίκτυο, Web2.0, WebX.0 9.1 Ιστορικά στοιχεία Από πού, πότε με ποια μορφή και με ποια αφορμή ξεκίνησε η λειτουργία του Διαδικτύου; Ξεκίνησε στην Αμερική, το 1969,
Ανάκτηση Πληροφορίας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #02 Ιστορική αναδρομή Σχετικές επιστημονικές περιοχές 1 Άδεια χρήσης Το παρόν εκπαιδευτικό
Αναλυτικό Πρόγραμμα Μαθηματικών
Αναλυτικό Πρόγραμμα Μαθηματικών Σχεδιασμός... αντιμετωπίζει ενιαία το πλαίσιο σπουδών (Προδημοτική, Δημοτικό, Γυμνάσιο και Λύκειο), είναι συνέχεια υπό διαμόρφωση και αλλαγή, για να αντιμετωπίζει την εξέλιξη,
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής
Περιεχόμενα. Αντί προλόγου Πώς να χρησιμοποιήσετε το βιβλίο Κεφάλαιο 1: Πώς δημιουργώ το Προφίλ μου στο Facebook;...
Περιεχόμενα Αντί προλόγου... 7 Πώς να χρησιμοποιήσετε το βιβλίο... 13 Κεφάλαιο 1: Πώς δημιουργώ το Προφίλ μου στο Facebook;...15 Κεφάλαιο 2: Τι βλέπω στην οθόνη μου όταν ολοκληρώσω τη δημιουργία του Προφίλ
Περίληψη ιπλωµατικής Εργασίας
Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο
Στρατηγικό Σχεδιασµό Πληροφοριακών Συστηµάτων
Μέθοδοι και Τεχνικές για τον Στρατηγικό Σχεδιασµό Πληροφοριακών Συστηµάτων (SISP) Στρατηγική και Διοίκηση Πληροφοριακών Συστηµάτων Μάθηµα 2 No 1 Δοµή της Παρουσίασης l 1. Εισαγωγή l 2. Μεθοδολογία SISP
Η συμβολή στην επιτυχία ενός οργανισμού, παρουσιάζοντας σχετικά δεδομένα με τη χρήση τεχνικών 2Δ ή 3Δ τεχνολογίας. Αρμοδιότητα
Σχεδιαστής Ψηφιακών Κινούμενων Σχεδίων ή Digital Animator 1. Περιγραφή Ρόλου Τίτλος Προφίλ Σχε Σχεδιαστής Ψηφιακών Κινούμενων Σχεδίων ή Digital Animator Γνωστό και ως Ειδικός Σχεδιασμού 2Δ- 3Δ γραφικών,
Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση
Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται
Περιεχόμενα Πώς να χρησιμοποιήσετε το βιβλίο... 7 Αντί προλόγου... 9 Κεφάλαιο 1: Κεφάλαιο 2: Κεφάλαιο 3: Κεφάλαιο 4: Κεφάλαιο 5: Πώς να δημιουργήσω το Προφίλ μου και να γίνω μέλος στο Facebook;... 15 Τι
Συλλογικοί Κατάλογοι & Διαδίκτυο
Συλλογικοί Κατάλογοι & Διαδίκτυο Μιχάλης Σφακάκης 1 Συλλογικοί Κατάλογοι & Διαδίκτυο * Συλλογικοί Κατάλογοι > Δίνουν συνεκτική πρόσβαση στο περιεχόμενο των βιβλιοθηκών από ένα κεντρικό σημείο Διαδίκτυο
της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004
example Αξιοποιώντας την τεχνολογία XML στη διαχείριση της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004 Πρότυπα και XML Πρότυπα ενιαίο
Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή
Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1
Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών
ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές
ΘΕΜΑ 1 Τεχνικές Εξαγωγής Συµφράσεων από εδοµένα Κειµένου και Πειραµατική Αξιολόγηση
ΘΕΜΑ 1 Τεχνικές Εξαγωγής Συµφράσεων από εδοµένα Κειµένου και Πειραµατική Αξιολόγηση Οι συµφράσεις είναι ακολουθίες όρων οι οποίοι συνεµφανίζονται σε κείµενο µε µεγαλύτερη συχνότητα από εκείνη της εµφάνισης
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του
ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΥΠΗΡΕΣΙΑΣ [ΥΠΗΡΕΣΊΑ 4 - ΑΝΆΠΤΥΞΗ
ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΥΠΗΡΕΣΙΑΣ [ΥΠΗΡΕΣΊΑ 4 - ΑΝΆΠΤΥΞΗ ΗΛΕΚΤΡΟΝΙΚΉΣ ΥΠΗΡΕΣΊΑΣ ΑΝΑΖΉΤΗΣΗΣ ΕΘΕΛΟΝΤΏΝ ΚΑΙ ΕΠΑΓΓΕΛΜΑΤΙΏΝ] ΓΙΑ ΤΟN ΧΡΗΣΤΗ [13/01/2014] έκδοση: 1.0 1 Περιεχόμενα 1. Έλεγχος εγγράφου...3 2. Εισαγωγή...4
ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα
ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ΤµήµαΕφαρµοσµένης Πληροφορικής Πανεπιστήµιο Μακεδονίας Θεσσαλονίκη Ιούνιος 2006 εισαγωγικού µαθήµατος προγραµµατισµού υπολογιστών.
ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ
ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΣΧΥΕΙ ΚΑΤΑ ΤΟ ΜΕΡΟΣ ΠΟΥ ΑΦΟΡΑ ΤΟ ΛΥΚΕΙΟ ΓΙΑ ΤΗΝ ΥΠΟΧΡΕΩΤΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΙΣΧΥΟΥΝ ΤΟ ΔΕΠΠΣ
Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο
Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο 1 Γλώσσες Σήµανσης Γλώσσες σήµανσης: Αρχικά για τον καθορισµό εµφάνισης σελίδων, γραµµατοσειρών. Στη συνέχεια επεκτάθηκαν
Οπτική αντίληψη. Μετά?..
Οπτική αντίληψη Πρωτογενής ερεθισµός (φυσικό φαινόµενο) Μεταφορά µηνύµατος στον εγκέφαλο (ψυχολογική αντίδραση) Μετατροπή ερεθίσµατος σε έννοια Μετά?.. ΓΙΑ ΝΑ ΚΑΤΑΝΟΗΣΟΥΜΕ ΤΗΝ ΟΡΑΣΗ ΠΡΕΠΕΙ ΝΑ ΑΝΑΛΟΓΙΣΤΟΥΜΕ
ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι
ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι Συστήματα Υποστήριξης Αποφάσεων Τα Συστήματα Υποστήριξης Αποφάσεων (Σ.Υ.Α. - Decision Support Systems, D.S.S.) ορίζονται ως συστήματα
Π4.2.1 ΣΧΕΔΙΟ ΔΗΜΟΣΙΟΤΗΤΑΣ
Π4.2.1 ΣΧΕΔΙΟ ΔΗΜΟΣΙΟΤΗΤΑΣ Αριθμός Έκδοσης: ΕΚΕΤΑ ΙΜΕΤ ΕΜ Β 2013 9 Παραδοτέο ΙΜΕΤ Τίτλος Έργου: «Ολοκληρωμένο σύστημα για την ασφαλή μεταφορά μαθητών» Συγγραφέας: Δρ. Μαρία Μορφουλάκη ΘΕΣΣΑΛΟΝΙΚΗ, ΜΑΙΟΣ
Όμως πώς θα ορίζαμε την έννοια πληροφορία; Πώς την αντιλαμβανόμαστε;
1.1 ΕΙΣΑΓΩΓΗ Η πληροφορία αποτελεί το βασικό εργαλείο άσκησης της ιατρικής επιστήμης. Η διάγνωση, η θεραπεία, η πρόληψη και η διοίκηση της υγείας βασίζονται στην απόκτηση, διαχείριση και επεξεργασία της
Ενότητες Γ3.1 - Γ3.2 - Γ3.3
Ενότητες Γ3.1 - Γ3.2 - Γ3.3 3.1 Τo διαδίκτυο ως πηγή πληροφοριών 3.2 Αξιοποίηση- αξιολόγηση ιστοσελίδων, ιστοχώρων και πυλών 3.3 Σχεδίαση μαθημάτων με τη χρήση του διαδικτύου To Διαδίκτυο ως πηγή πληροφοριών
ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ.
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΕΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΠΟΤΙΜΗΣΗΣ ΣΠΟΥΔΩΝ Ακαδημαϊκό Έτος Εγγραφής
Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές
Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη
Εργαστήριο Σημασιολογικού Ιστού
Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 5-2-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.
ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ
ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε
ΠΡΑΞΗ: «Δομή Απασχόλησης και Σταδιοδρομίας (Δ.Α.ΣΤΑ.) Πανεπιστημίου Μακεδονίας» Κωδικός MIS ΥΠΟΕΡΓΟ: και α/α «01»
ΠΡΑΞΗ: «Δομή Απασχόλησης και Σταδιοδρομίας (Δ.Α.ΣΤΑ.) Πανεπιστημίου Μακεδονίας» Κωδικός MIS 327465 ΥΠΟΕΡΓΟ: «Δομή Απασχόλησης και Σταδιοδρομίας (Δ.Α.ΣΤΑ.) Πανεπιστημίου Μακεδονίας» και α/α «01» ΕΠΙΧΕΙΡΗΣΙΑΚΟ
Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr
Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην
Ν. Χατζηαργυρίου: «O ΔΕΔΔΗΕ καθοδηγεί τη μετάβαση σε μια έξυπνη αγορά ενέργειας»
Ν. Χατζηαργυρίου: «O ΔΕΔΔΗΕ καθοδηγεί τη μετάβαση σε μια έξυπνη αγορά ενέργειας» Κυρίες και κύριοι καλησπέρα σας. Ευχαριστώ θερμά το Ελληνο-Αμερικανικό Εμπορικό Επιμελητήριο για την πρόσκληση και την ευκαιρία
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
> ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΡΙΣΜΟΣ: Το Cloud Computing είναι η ονοµασία της τεχνολογίας η οποία επιτρέπει στους χρήστες να
Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή
Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναπαράσταση Γνώσης Η περιγραφή ενός προβλήματος σε συνδυασμό με τους τελετές
Οι Τομείς (κατευθύνσεις ειδικότητας) του Τμήματος Πληροφορικής & Επικοινωνιών είναι:
Ακαδημαϊκή οργάνωση του Τμήματος Το Τμήμα Πληροφορικής και Επικοινωνιών είναι οργανωμένο ακαδημαϊκά σε τρεις Τομείς (κατευθύνσεις) με στόχο την εξειδίκευση των σπουδαστών σε ειδικότητες ανάλογες με τις
ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής
ΗΥ 180 - Λογική Διδάσκων: Καθηγητής E-mail: dp@csd.uoc.gr Ώρες διδασκαλίας: Δευτέρα, Τετάρτη 4-6 μμ, Αμφ. Β Ώρες φροντιστηρίου: Πέμπτη 4-6 μμ, Αμφ. Β Ώρες γραφείου: Δευτέρα, Τετάρτη 2-4 μμ, Κ.307 Web site:
Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α
ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι
ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΔΙΑΔΙΚΤΥΟ ΚΑΙ ΠΑΓΚΟΣΜΙΟΣ ΙΣΤΟΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ.
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ (ΠΜΣ) «ΔΙΑΔΙΚΤΥΟ ΚΑΙ ΠΑΓΚΟΣΜΙΟΣ ΙΣΤΟΣ» ΤΟΥ ΤΜΗΜΑΤΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ Α.Π.Θ. ΕΡΩΤΗΜΑΤΟΛΟΓΙΟ ΑΠΟΤΙΜΗΣΗΣ ΣΠΟΥΔΩΝ Ακαδημαϊκό Έτος Εγγραφής
Πλαίσιο Εργασιών. Στρατηγικές Ευκαιρίες
1 Πλαίσιο Εργασιών Στρατηγικές Κατευθύνσεις του Οργανισµού 2 3 Στρατηγικές Κατευθύνσεις των ΠΣ Κρίσιµοι Παράγοντες Επιτυχίας του Οργανισµού Κρίσιµοι Παράγοντες Επιτυχίας των ΠΣ 4 Βραχυχρόνια Στρατηγικές
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Πληροφορίες: Στ. Πλαϊνού - Ψυχή Θεσσαλονίκη 18-10-11 Τηλέφωνο: 891-218 Αρ.Πρωτ.: Ανακοίνωση σχετικά µε τις δηλώσεις
Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό. Νικόλαος Μήτρου Καθηγητής, ΕΜΠ
Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό Νικόλαος Μήτρου (mitrou@softlab.ntua.gr) Καθηγητής, ΕΜΠ ΗΜΕΡΙΔΑ Η ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ ΤΟΥ ΜΗΧΑΝΙΚΟΥ 8 Ιουλίου 2008 Περιεχόμενα Ο ρόλος
6 ο Πακέτο Εργασίας «Ψηφιακή Βάση ιαχείρισης Γεωγνώσης (e-repository of Geoscience Content)»
6 ο Πακέτο Εργασίας «Ψηφιακή Βάση ιαχείρισης Γεωγνώσης (e-repository of Geoscience Content)» Ένα µεγάλο µέρος του Προγράµµατος Σπουδών της Σχολής ΑΤΜ αφορά την εκπαίδευση σε ποικίλα αντικείµενα που άπτονται
Γράφοντας ένα σχολικό βιβλίο για τα Μαθηματικά. Μαριάννα Τζεκάκη Αν. Καθηγήτρια Α.Π.Θ. Μ. Καλδρυμίδου Αν. Καθηγήτρια Πανεπιστημίου Ιωαννίνων
Γράφοντας ένα σχολικό βιβλίο για τα Μαθηματικά Μαριάννα Τζεκάκη Αν. Καθηγήτρια Α.Π.Θ. Μ. Καλδρυμίδου Αν. Καθηγήτρια Πανεπιστημίου Ιωαννίνων Εισαγωγή Η χώρα μας απέκτησε Νέα Προγράμματα Σπουδών και Νέα
Διδακτική Προγραμματισμού. Χαρίκλεια Τσαλαπάτα 20/2/2012
Διδακτική Προγραμματισμού Χαρίκλεια Τσαλαπάτα 20/2/2012 Διδακτική προγραμματισμού Παλαιότερα, η διδασκαλία του προγραμματισμού ταυτιζόταν με τη διδακτική της πληροφορικής Πλέον Η διδακτική της πληροφορικής
Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Βάσεις εδοµένων Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης v.vescoukis@cs.ntua.gr ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Συστήµατα ιαχείρισης Βάσεων
Περιεχόμενο του μαθήματος
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος
Εργαστήριο Σημασιολογικού Ιστού
Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 10-2-2017 Η αρχή: Το όραμα του Σημασιολογικού Ιστού Tim Berners-Lee, James Hendler and Ora Lassila, The Semantic
Ανάπτυξη Συστήματος Διαχείρισης Περιεχομένου με Τεχνολογίες Σημασιολογικού Ιστού και Σημασιολογικής Επιφάνειας Εργασίας
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ανάπτυξη Συστήματος Διαχείρισης Περιεχομένου με Τεχνολογίες Σημασιολογικού Ιστού και Σημασιολογικής Επιφάνειας Εργασίας
ΑΕΠΠ Ερωτήσεις θεωρίας
ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος
Η ΑΝΑΠΤΥΞΗ ΤΟΥ ΕΘΝΙΚΟΥ ΠΛΑΙΣΙΟΥ ΠΡΟΣΟΝΤΩΝ ΤΗΣ ΕΛΛΗΝΙΚΗΣ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΕΙΔΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Η ΑΝΑΠΤΥΞΗ ΤΟΥ ΕΘΝΙΚΟΥ ΠΛΑΙΣΙΟΥ ΠΡΟΣΟΝΤΩΝ ΤΗΣ ΕΛΛΗΝΙΚΗΣ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Η ανάπτυξη του
ΠΕ60/70, ΠΕ02, ΠΕ03, ΠΕ04)
«Επιµόρφωση εκπαιδευτικών στη χρήση και αξιοποίηση των ΤΠΕ στην εκπαιδευτική διδακτική διαδικασία» (Γ ΚΠΣ, ΕΠΕΑΕΚ, Μέτρο 2.1, Ενέργεια 2.1.1, Κατηγορία Πράξεων 2.1.1 θ) Αναλυτικό Πρόγραµµα Σπουδών για
28 Πολυπρακτορικά Συστήµατα
ΚΕΦΑΛΑΙΟ 28 28 Πολυπρακτορικά Συστήµατα "There is no such thing as a single agent system". [Woodridge, 2002] Η παραπάνω ρήση από το βιβλίο του M.Wooldridge τονίζει, ίσως µε περισσή έµφαση, ότι είναι πλέον
Αναφορά εργασιών για το τρίμηνο Σεπτέμβριος Νοέμβριος 2012
Στο πλαίσιο της πράξης «Αναβάθμιση και Εμπλουτισμός των Ψηφιακών Υπηρεσιών της Βιβλιοθήκης του Παντείου Πανεπιστημίου». Η Πράξη συγχρηματοδοτείται από το Ευρωπαϊκό Ταμείο Περιφερειακής Ανάπτυξης (ΕΤΠΑ).
Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000)
Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000) Πρόκειται για την έρευνα που διεξάγουν οι επιστήμονες. Είναι μια πολύπλοκη δραστηριότητα που απαιτεί ειδικό ακριβό
Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,
1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή 1. εδοµένα, Πληροφορίες και Υπολογιστές 2. Πώς φτάσαµε στους σηµερινούς υπολογιστές 3. Το υλικό ενός υπολογιστικού συστήµατος 4. Το λογισµικό ενός υπολογιστικού συστήµατος
Περιεχόµενα. 1 Εισαγωγή: Λίγα λόγια για το βιβλίο Τι νέο υπάρχει στο Outlook Ξεκίνηµα Ευχαριστίες...
Περιεχόµενα Ευχαριστίες... 11 1 Εισαγωγή: Λίγα λόγια για το βιβλίο... 13 Χωρίς τεχνικούς όρους!... 13 Σύντοµη παρουσίαση... 14 Μερικές συµβάσεις... 16 Μια τελευταία λέξη (µπορεί και δύο)... 16 2 Τι νέο
Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή
Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναπαράσταση με Κανόνες Η γνώση αναπαρίσταται με τρόπο που πλησιάζει την ανθρώπινη
οικονομικές τάσεις Εκτεταμένη συνεργασία της εφοδιαστικής αλυσίδας. έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Παγκόσμιες
Συνοπτική παρουσίαση του ευνητικού έργου FLUID-WIN το οποίο χρηματοδοτήθηκε από το 6ο Πρόγραμμα Πλαίσιο Ενοποίηση τρίτων παρόχων υπηρεσιών με ολόκληρη την εφοδιαστική αλυσίδα σε πολυλειτουργικές πλατφόρμες
Α. Ερωτήσεις Ανάπτυξης
οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;
ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή
ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή Οι σηµερινές δραστηριότητες των επιχειρήσεων δηµιουργούν την ανάγκη για όσο το δυνατό µεγαλύτερη υποστήριξη από τα πληροφοριακά τους
ΥΠΗΡΕΣΙΑ. Ηλεκτρονική ιαχείριση Τάξης. Οδηγίες χρήσης για τον µαθητή.
ΥΠΗΡΕΣΙΑ Ηλεκτρονική ιαχείριση Τάξης Οδηγίες χρήσης για τον µαθητή http://eclass.sch.gr Η υπηρεσία ηλεκτρονικής διαχείρισης τάξης αναπτύχθηκε από το Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών για λογαριασµό