ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΔΙΟΙΚΗΣΗ» ΤΜΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Ανάπτυξη Συστήματος Σημασιολογικού Ιστού για την Παρακολούθηση της τήρησης του Εσωτερικού Κανονισμού του ΔΠΜΣ «Πληροφορική και Διοίκηση» Διπλωματική Εργασία του Αντωνίου Αθανάσιου (ΑΕΜ: 357) Εξεταστική Επιτροπή Επιβλέπων: Βασιλειάδης Νικόλαος, Αναπληρωτής Καθηγητής Μέλη: Βακάλη Αθηνά, Καθηγήτρια Μπουτσούκη Χριστίνα, Επίκουρη Καθηγήτρια ΘΕΣΣΑΛΟΝΙΚΗ ΙΑΝΟΥΑΡΙΟΣ 2014
1
Περίληψη Ο Σημασιολογικός Ιστός είναι η εξέλιξη του Παγκόσμιου Ιστού και μπορεί να περιγραφεί ως ένας ιστός διασυνδεδεμένων δεδομένων, που επιτρέπει στις μηχανές υπολογιστές να επεξεργάζονται πληροφορίες, με στόχο να αναπτυχθούν συστήματα που υποστηρίζουν αλληλεπιδράσεις μέσω δικτύων, για την δημιουργία αποθηκών δεδομένων, έτσι ώστε να κατανοήσουν και να ανταποκριθούν σε πολύπλοκα αιτήματα, με βάση τη σημασία τους. Σκοπός είναι να βελτιωθούν οι τρεις δραστηριότητες που απαρτίζουν την βασική χρήση του διαδικτύου: Αναζήτηση, Ενοποίηση Πληροφοριών και Εξόρυξη Δεδομένων. Βασικές τεχνολογίες που χρησιμοποιούνται είναι: μεταδεδομένα, οντολογίες, λογική, συστήματα συλλογιστικής, συμπερασματικοί κανόνες, καθώς και ευφυείς πράκτορες. Η αρχιτεκτονική του Σημασιολογικού Ιστού είναι ουσιαστικά μια ιεραρχία γλωσσών, καθεμιά από τις οποίες εκμεταλλεύεται και επεκτείνει τα χαρακτηριστικά και τις δυνατότητες των κατώτερων επιπέδων και περιλαμβάνει τεχνολογίες όπως: URI, XML, RDF, RDFS, OWL, SPARQL, SWRL. Η επικοινωνία μεταξύ αυτών υλοποιείται με διάφορα πρωτόκολλα (π.χ. SOAP). Στην παρούσα διπλωματική εργασία, γίνεται προσπάθεια ορισμού της έννοιας του Σημασιολογικού Ιστού και παρουσίαση των βασικών τεχνολογιών του. Επίσης, αναφέρονται τομείς, οι οποίοι μπορεί να βελτιωθούν με την χρήση τέτοιων τεχνολογιών και παρουσιάζονται κάποια χαρακτηριστικά παραδείγματα εφαρμογών. Στόχος της εργασίας είναι να αναπτυχθεί μια διαδικτυακή εφαρμογή Σημασιολογικού Ιστού για την παρακολούθηση της τήρησης του Εσωτερικού Κανονισμού του ΔΠΜΣ «Πληροφορική και Διοίκηση», κυρίως για το τμήμα που αφορά την φοίτηση και ολοκλήρωση του προγράμματος σπουδών, με την χρήση βασικών σημασιολογικών τεχνολογιών. Θεματική Περιοχή: Σημασιολογικός Ιστός Λέξεις Κλειδιά: Σημασιολογικός Ιστός, Πληροφοριακό Σύστημα, Διοίκηση Εκπαίδευσης, Εσωτερικός Κανονισμός, Σημασιολογικές Εφαρμογές, JAVA Web, SPARQL, Stardog, OWL, RDF 2
3
Abstract The Semantic Web is an evolution of the Web and can be described as a web of interconnected data, enabling machines - computers to process information in order to develop systems that support interactions through networks and create data warehouses, so as to understand and to respond to complex queries based on their semantics. The aim is to improve the three activities that make up the basic use of Web: Search, Information Integration and Data Mining. Key technologies used are metadata, ontologies, logic reasoning systems, inference rules and intelligent agents. The architecture of the Semantic Web is essentially a hierarchy of languages, each of which utilizes and extends the features and capabilities of the lower levels and includes technologies such as: URI, XML, RDF, RDFS, OWL, SPARQL and SWRL. Communication between them is implemented with various protocols (e.g. SOAP). In this master thesis, we attempt to define the concept of the Semantic Web and present some key technologies. We also list areas that can be improved with the use of these technologies and present some examples of applications and use cases. Our goal is to develop a Semantic Web application in order to monitor compliance with the Internal Regulation of the Master s Program in "Informatics and Management", mainly for the section regarding attendance and completion of the curriculum, with the use of semantic technologies. Subject Area: Semantic Web Keywords: Semantic Web, Information System, Education Management, Internal Regulation, Semantic Applications, JAVA Web, SPARQL, Stardog, OWL, RDF 4
5
Ευχαριστίες Στο σημείο αυτό, θα ήθελα να ευχαριστήσω όλους όσους συνέβαλλαν στην πραγματοποίηση της παρούσας εργασίας και με στήριξαν στην προσπάθεια για την ολοκλήρωση των μεταπτυχιακών σπουδών μου. Αρχικά, θα ήθελα να ευχαριστήσω τον επιβλέποντα της διπλωματικής εργασίας, Αναπληρωτή Καθηγητή του Τμήματος Πληροφορικής, Νικόλαο Βασιλειάδη, για την ανάθεση της, την εμπιστοσύνη, την παρότρυνση και την καθοδήγηση κατά τη διάρκεια εκπόνησης της παρούσας διπλωματικής εργασίας. Επίσης, θα ήθελα να ευχαριστήσω τα μέλη της εξεταστικής επιτροπής, την Καθηγήτρια Αθηνά Βακάλη και την Επίκουρη Καθηγήτρια Χριστίνα Μπουτσούκη, για την αξιολόγηση του περιεχομένου της εργασίας αυτής, αλλά και την Καλλιόπη Κράβαρη, υποψήφια διδάκτορα στο Τμήμα Πληροφορικής Α.Π.Θ., για τις διορθώσεις και τις υποδείξεις της. Τέλος, θα ήθελα να ευχαριστήσω, για τη συνεχή υποστήριξη και την συμπαράσταση, τους γονείς μου Σεραφείμ και Ευαγγελία, καθώς και τον αδερφό μου Ηλία, οι οποίοι μοιράστηκαν την αγωνία μου και χωρίς τους οποίους δεν θα ήταν δυνατή η ολοκλήρωση της εργασίας αυτής, καθώς και των σπουδών μου. 6
7
Πίνακας περιεχομένων Περίληψη... 2 Abstract... 4 Ευχαριστίες... 6 Πίνακας περιεχομένων... 8 Λίστα Σχημάτων... 11 Εικόνες... 11 Πίνακες... 12 1 Εισαγωγή Δομή Εργασίας... 14 1.1 Εισαγωγή Αντικείμενο της Εργασίας... 14 1.2 Δομή Εργασίας... 15 2 Σημασιολογικός Ιστός... 17 2.1 Η εξέλιξη του Παγκόσμιου Ιστού... 17 2.2 Ορισμός Σημασιολογικού Ιστού Βασικές έννοιες... 21 2.2.1 Μεταδεδομένα... 23 2.2.2 Οντολογίες... 24 2.2.3 Λογική και Συστήματα Συλλογιστικής... 27 2.2.4 Κανόνες... 29 2.2.5 Ευφυείς Πράκτορες... 30 2.3 Παράδειγμα χρήσης του Σημασιολογικού Ιστού... 31 3 Τεχνολογίες Σημασιολογικού Ιστού... 34 3.1 Αρχιτεκτονική Σημασιολογικού Ιστού... 34 3.2 Uniform resource identifier (URI)... 38 3.3 Extensible Markup Language (XML)... 39 8
3.4 Resource Description Framework (RDF)... 41 3.5 RDF Schema (RDFS)... 45 3.6 Web Ontology Language (OWL)... 47 3.6.1 Γενικά για τη γλώσσα OWL... 47 3.6.2 Περιγραφή Σύνταξη της OWL... 49 3.7 SPARQL Protocol and RDF Query Language... 52 3.7.1 Γενικά για την SPARQL... 52 3.7.2 Τύποι Ερωτημάτων SPARQL... 53 3.8 Semantic Web Rule Language (SWRL)... 57 4 Εφαρμογές Σημασιολογικού Ιστού... 58 4.1 Οφέλη από την εφαρμογή Σημασιολογικών Τεχνολογιών... 58 4.2 Παραδείγματα Εφαρμογών Σημασιολογικού Ιστού... 62 4.2.1 BBC Διαχείριση ΜΜΕ... 62 4.2.2 Chevron Πετρελαϊκές Εταιρείες... 64 4.2.3 DBpedia... 65 4.2.4 CISMeF: Catalog and Index of French-language Health Internet resources... 67 4.2.5 Friend of a Friend (FOAF) project... 68 4.2.6 Swoogle... 69 5 Παρουσίαση Συστήματος Εργαλείων Υλοποίησης... 70 5.1 Περιγραφή Προβλήματος - Αρχιτεκτονική Εφαρμογής... 70 5.2 Παρουσίαση των εργαλείων τεχνολογιών υλοποίησης... 73 5.2.1 Stardog... 73 5.2.2 Protégé... 75 5.2.3 OpenRefine, RDF Refine... 77 5.2.4 Άλλα Εργαλεία - Τεχνολογίες... 84 9
5.3 Σύντομη Παρουσίαση Οντολογίας Εφαρμογής... 86 5.4 Υλοποίηση Εφαρμογής... 90 5.5 Περιγραφή Εφαρμογής... 96 6 Συμπεράσματα Μελλοντική εργασία... 101 6.1 Συμπεράσματα... 101 6.2 Προεκτάσεις Μελλοντική εργασία... 104 Βιβλιογραφία - Αναφορές... 106 Παράρτημα... 113 Α. SWRL Κανόνες από την Οντολογία Εσωτερικού Κανονισμού... 113 Β. Ερωτήματα SPARQL... 115 Γ. Περιεχόμενα Ψηφιακού Δίσκου (CD)... 119 Δ. Οδηγίες εγκατάστασης... 120 10
Λίστα Σχημάτων Εικόνες Εικόνα 1: Η Εξέλιξη του Ιστού... 20 Εικόνα 2: Παράδειγμα απλής οντολογίας για το ζωικό βασίλειο (http://www.scientific-computing.com)... 25 Εικόνα 3: Ερωτήματα σχετικά με κάποιο θέμα... 32 Εικόνα 4: Επίπεδα Σημασιολογικού Ιστού (http://www.w3.org/2000/talks/1206- xml2k-tbl/slide10-0.html)... 35 Εικόνα 5: Επίπεδα Σημασιολογικού Ιστού Σήμερα (http://www.w3.org/2007/talks/0130-sb-w3ctechsemweb/#(24))... 37 Εικόνα 6: RDF Triple... 41 Εικόνα 7: Γράφος RDF, παράδειγμα ιστοσελίδας... 44 Εικόνα 8: Σύγχρονες γλώσσες οντολογιών (http://www.jot.fm/issues/issue_2006_11/article4/)... 46 Εικόνα 9: BBC - Semantic Web... 63 Εικόνα 10: Αρχιτεκτονική της DBpedia... 66 Εικόνα 11: Σημασιολογική σύνδεση μετα-όρων CISMeF και MeSH... 68 Εικόνα 12: Η χρήση της εφαρμογής σε γενικές γραμμές... 71 Εικόνα 13: Αρχιτεκτονική Εφαρμογής... 72 Εικόνα 14: Το περιβάλλον του Protege... 76 Εικόνα 15: Αρχική Οθόνη OpenRefine... 78 Εικόνα 16: Επιλογή αρχείων για επεξεργασία... 78 Εικόνα 17: Δημιουργία νέου project... 79 Εικόνα 18: Δημιουργία δομής RDF... 79 Εικόνα 19: Base URI... 80 Εικόνα 20: Προσθήκη σύνθετου κλειδιού... 81 Εικόνα 21: Προσθήκη course... 82 Εικόνα 22: Προεπισκόπηση αρχείου RDF... 83 Εικόνα 23: Εξαγωγή δεδομένων σε μορφή RDF... 83 Εικόνα 24: Οι βασικές κλάσεις του ΕΚ από Protege... 88 Εικόνα 25: Λογότυπο Εφαρμογής... 96 11
Εικόνα 26: Είσοδος... 96 Εικόνα 27:Εγγραφή... 96 Εικόνα 28: Κεντρική Σελίδα... 97 Εικόνα 29: Επιλογές Χρήστη... 97 Εικόνα 30: Αποτελέσματα 1... 98 Εικόνα 31:Αποτελέσματα 2... 99 Εικόνα 32: Αποτελέσματα 3... 99 Εικόνα 33: Αποτελέσματα 7... 100 Εικόνα 34: Έξοδος... 100 Πίνακες Πίνακας 1: Πίνακας αλήθειας προτάσεων p, q... 27 12
13
1 Εισαγωγή Δομή Εργασίας 1.1 Εισαγωγή Αντικείμενο της Εργασίας Σε σχετικά σύντομο χρονικό διάστημα, ο Παγκόσμιος Ιστός μετατράπηκε σε μία από τις μεγαλύτερες - αν όχι την μεγαλύτερη - πηγές πληροφοριών για την ανθρωπότητα, καθώς παρέχονται δεδομένα και πληροφορίες σχετικά με οποιοδήποτε γνωστικό αντικείμενο. Η εξαγωγή των χρήσιμων πληροφοριών, η εξάλειψη της ανομοιογένειας που επικρατεί στην μορφή και την σημασία των πληροφοριών, η μετατροπή αυτού του όγκου πληροφοριών σε γνώση και η αξιοποίηση της, τόσο από ανθρώπους, όσο και από τις μηχανές αποτελούν σημαντικά προβλήματα για τους χρήστες του Ιστού. Αυτά τα προβλήματα είναι κάποια από τα οποία καλείται να επιλύσει ο Σημασιολογικός Ιστός (Semantic Web). O Σημασιολογικός Ιστός αποτελεί επέκταση του σημερινού Παγκόσμιου Ιστού, με σκοπό την αυτοματοποίηση των λειτουργιών και των εφαρμογών του, όπως είναι οι μηχανές αναζήτησης και οι πράκτορες, την διαλειτουργικότητα, την ενοποίηση και την συνδεσιμότητα σε παγκόσμιο επίπεδο. Αυτό μπορεί να επιτευχθεί, αν η πληροφορία που υπάρχει στο σημερινό Ιστό αποκτήσει τυπικό νόημα και σημασιολογία και δομηθεί, έτσι ώστε να είναι κατανοητή από τις μηχανές. Η δομή αυτή θα επιτρέπει τον διαμοιρασμό και την επαναχρησιμοποίησή της, επιτυγχάνοντας διαλειτουργικότητα και διασύνδεση μεταξύ ετερογενών συστημάτων και εφαρμογών. Στον σημερινό Ιστό, η δομή της πληροφορίας βασίζεται σε γλώσσες όπως η HTML και η XML και είναι απαραίτητο να γίνει αναθεώρηση και τροποποίησή τους. Για την περιγραφή της γνώσης με τυπικό τρόπο και εμβάθυνση στο σημασιολογικό περιεχόμενο, χρησιμοποιούνται γλώσσες αναπαράστασης γνώσης. Με την εξέλιξη του Ιστού, αναπτύσσονται, από οργανισμούς όπως είναι ο W3C, νέα πρότυπα και γλώσσες όπως RDFS και OWL. Η ανάπτυξη εφαρμογών που θα κάνουν χρήση νέων μοντέλων και σημασιολογικών αποθηκών δεδομένων σε συνδυασμό με καθιερωμένα πρότυπα, θα ενισχύσει την εξάπλωση του Σημασιολογικού Ιστού, βελτιώνοντας έτσι την χρήση του Ιστού, τόσο για εταιρείες και ειδικούς, όσο και για τον απλό χρήστη. 14
Η παρούσα εργασία έχει ως αντικείμενο την ανάπτυξη μιας διαδικτυακής εφαρμογής, με τη χρήση τεχνολογιών Σημασιολογικού Ιστού, έτσι ώστε να κατανοηθεί η πρακτική εφαρμογή τους. Μετά από μια επισκόπηση του γενικότερου επιστημονικού πεδίου του Σημασιολογικού Ιστού, ακολουθεί η παρουσίαση μιας εφαρμογής με βασικές λειτουργίες την είσοδο ή εγγραφή ενός ταυτοποιημένου χρήστη και την παρακολούθηση, μέσω φίλτρων, της τήρησης του Εσωτερικού Κανονισμού του ΔΠΜΣ Πληροφορική και Διοίκηση κατά τη διάρκεια της φοίτησης ή την ολοκλήρωση των σπουδών. Η αναζήτηση γίνεται με την χρήση σημασιολογικών τεχνολογιών, όπως SPARQL, OWL, SWRL, σε συνδυασμό με καθιερωμένες τεχνολογίες, όπως JAVA, Servlets και JSP. Η εφαρμογή κάνει χρήση μιας οντολογίας, η οποία είχε αναπτυχθεί στα πλαίσια παλαιότερης διπλωματικής εργασίας, με τίτλο «Ανάπτυξη Συστήματος Γνώσης βασισμένου σε Οντολογίες και Κανόνες για την Παρακολούθηση της τήρησης του Εσωτερικού Κανονισμού του ΔΠΜΣ Πληροφορική και Διοίκηση», του Γεράσιμου Παπαδόπουλου, που γράφτηκε το 2011 και αποτελεί μια πιο πρακτική προέκτασή της. Η οντολογία αυτή έχει τροποποιηθεί σε κάποια σημεία για να ανταποκριθεί καλύτερα στις ανάγκες της εργασίας. Μέσω κατάλληλων ερωτημάτων στην οντολογία και σε κάποια δεδομένα, παρουσιάζονται στον τελικό χρήστη τα επιθυμητά αποτελέσματα αναζήτησης 1.2 Δομή Εργασίας Στο Κεφάλαιο 2, γίνεται αρχικά μια σύντομη αναδρομή στην εξέλιξη του Παγκόσμιου Ιστού, από τα πρώτα βήματα μέχρι το σημερινό στάδιο του Σημασιολογικού Ιστού. Στην συνέχεια, γίνεται προσπάθεια ορισμού της έννοιας, με παράθεση κάποιων διαδεδομένων ορισμών και αναφέρονται κάποιες βασικές τεχνολογίες που χρησιμοποιούνται, όπως είναι τα μεταδεδομένα, οι οντολογίες η λογική και οι ευφυείς πράκτορες. Το κεφάλαιο κλείνει με ένα απλό παράδειγμα χρήσης. Στο Κεφάλαιο 3, περιγράφουμε την διαστρωματική αρχιτεκτονική του Σημασιολογικού Ιστού, όπως αυτή ήταν αρχικά και στη συνέχεια καταλήγουμε στην σημερινή μορφή της. Με βάση το σχήμα που παρουσίασε ο Tim Berners Lee, 15
αναφερόμαστε σε καθένα από τα επίπεδα, το οποίο υλοποιεί ένα σύνολο τεχνολογιών που στηρίζονται σε τεχνολογίες του προηγούμενου επιπέδου. Εδώ προσπαθούμε να περιγράψουμε σημασιολογικές τεχνολογίες όπως URI, XML, RDF, RDFS, OWL, SPARQL, SWRL. Στο κεφάλαιο 4, αναλύουμε αρχικά τα οφέλη που θα έχει η χρήση σημασιολογικών τεχνολογιών στις διαδικτυακές εφαρμογές, τόσο από την πλευρά των χρηστών και των επιχειρήσεων, όσο και από αυτή των προγραμματιστών. Οι τρεις βασικές δραστηριότητες του διαδικτύου, δηλαδή η Αναζήτηση, η Ενοποίηση Πληροφοριών και η Εξόρυξη Δεδομένων, εμπλουτίζονται σημαντικά από την χρήση νέων τεχνολογιών. Στη συνέχεια, αναφέρονται κάποια χαρακτηριστικά παραδείγματα χρήσης και κάποιες συγκεκριμένες περιπτώσεις, όπου η συμβολή των σημασιολογικών τεχνολογιών είναι αρκετά σημαντική. Στο κεφάλαιο 5, επικεντρωνόμαστε στην διαδικτυακή εφαρμογή, αφού παρουσιάσουμε συνοπτικά τα εργαλεία τα οποία χρησιμοποιήθηκαν κατά την υλοποίηση της. Γίνεται μια παρουσίαση της οντολογίας που έχει χρησιμοποιηθεί και κάποιων αλλαγών που έγιναν. Έπειτα, περιγράφεται η υλοποίηση της εφαρμογής και δίνονται κάποια παραδείγματα χρήσης της. Στο κεφάλαιο 6, καταλήγουμε σε ορισμένα συμπεράσματα στα οποία οδηγηθήκαμε κατά την διαδικασία εκπόνησης της συγκεκριμένης εργασίας. Παραθέτουμε, επίσης, κάποια σημεία βελτίωσης και προτάσεις για σχετική μελλοντική εργασία. Ακολουθούν οι αναφορές που χρησιμοποιήθηκαν κατά τη συγγραφή και ολοκληρώνουμε με ένα παράρτημα, όπου παρουσιάζονται τμήματα της οντολογίας και του κώδικα της εφαρμογής, όπως είναι κανόνες SWRL και ερωτήματα SPARQL. 16
2 Σημασιολογικός Ιστός Ο Σημασιολογικός Ιστός είναι μια έννοια που θα μας απασχολήσει έντονα στην παρούσα εργασία. Σε αυτό το κεφάλαιο γίνεται μια σύντομη αναδρομή στην εξέλιξη του Παγκόσμιου Ιστού και μια προσπάθεια ορισμού του Σημασιολογικού Ιστού με σκοπό την καλύτερη κατανόησή του. Επίσης, παραθέτουμε και κάποιους βασικούς όρους που χρησιμοποιούνται και ένα παράδειγμα χρήσης. 2.1 Η εξέλιξη του Παγκόσμιου Ιστού Μετά τη δεκαετία του 80, ξεκίνησε η προσπάθεια για διασύνδεση των υπολογιστών και η δημιουργία των πρώτων δικτύων, συνήθως βάσει του μοντέλου πελάτη διακομιστή, το οποίο και αποτέλεσε προπομπό για το διαδίκτυο. Το 1982 δημιουργήθηκε το πρωτόκολλο TCP/IP και μαζί με αυτό γινόταν αναφορά σε ένα δίκτυο παγκόσμιας φύσης με την ονομασία Internet [1]. Η διάδοση των τοπικών δικτύων των προσωπικών υπολογιστών και των σταθμών εργασίας στις επιχειρήσεις συνέβαλλε στην ταχεία ανάπτυξη του [1]. Κάπως έτσι ξεκίνησε το Internet, οι υπηρεσίες του οποίου έφεραν επανάσταση στην επικοινωνία και στην μεταφορά γνώσης, αφού δίνει την δυνατότητα αλληλεπίδρασης μεταξύ ανθρώπων και ηλεκτρονικών υπολογιστών χωρίς γεωγραφικούς περιορισμούς. Μία από τις υπηρεσίες αυτές είναι και ο Παγκόσμιος Ιστός. Το 1990, στο CERN (τον ευρωπαϊκό ερευνητικό οργανισμό κοντά στη Γενεύη), ο Tim Berners-Lee και η Robert Cailliau πρότειναν να χρησιμοποιείται υπερκείμενο (hypertext) για σύνδεση και πρόσβαση σε πληροφορίες διαφόρων ειδών, σε ένα δίκτυο από κόμβους στο οποίο ο χρήστης μπορεί να περιηγηθεί όπως επιθυμεί. Ο όρος υπερκείμενο επινοήθηκε από τον Ted Nelson, το 1965 [2] και αποτελεί το κείμενο το οποίο εμφανίζεται σε κάποια οθόνη και μέσω συνδέσμων οδηγεί τον χρήστη σε άλλες μορφές πληροφοριών ή άλλο κείμενο, κάνοντας πιο εύκολη την περιήγηση και την πρόσβαση σε σχετικές πληροφορίες, ιδέες ή αναφορές. Αυτό το δίκτυο των υπερκειμένων προβάλλονταν στον χρήστη με την χρήση περιηγητών (browsers) και με αρχιτεκτονική πελάτη διακομιστή (client server) [3]. Ο Tim 17
Berners-Lee κατάφερε το 1990 να δημιουργήσει όλα τα απαραίτητα βασικά εργαλεία για έναν λειτουργικό ιστό [4]. Η πρώτη ιστοσελίδα παρουσίαζε το έργο του και στις 6 Αυγούστου του 1991, με την δημοσίευση μιας περίληψης, [5] ο Ιστός ήταν πλέον μια υπηρεσία προσβάσιμη από το ευρύ κοινό. Έτσι γεννήθηκε η ιδέα για τον Παγκόσμιο Ιστό, στον οποίο αναφερόμαστε σήμερα ως Web 1.0. Σε γενικές γραμμές, ο παγκόσμιος ιστός είναι ένας συνδυασμός δικτύου και υπερκειμένων, όπου κάποια έγγραφα και αρχεία συνδέονται με άλλα, ανεξάρτητα από την τοποθεσία στην οποία βρίσκονται, δημιουργώντας έτσι δίκτυα εγγράφων και δεδομένων, χωρίς κάποιον κεντρικό έλεγχο, μια κεντρική αποθήκη ή βάση δεδομένων. Με τη χρήση του, οι άνθρωποι μπορούν να διαβάσουν κείμενα, να δουν βίντεο και εικόνες ή να ακούσουν ηχητικά αρχεία και με την επεξεργασία αυτού του περιεχομένου και την βοήθεια της διανοητικής ικανότητας μπορούν να εξαχθούν συμπεράσματα. Με την πάροδο του χρόνου και την εξέλιξη των προγραμμάτων περιήγησης, αν και δεν άλλαξε η βασική ιδέα παρουσίασης περιεχομένου στον χρήστη, όποτε αυτός το επιθυμήσει, το περιεχόμενο άρχισε να γίνεται πιο πολύπλοκο και ο όγκος των πληροφοριών μεγάλος. Το επόμενο βήμα, γνωστό και ως Web 2.0, ήταν η αλλαγή από τον στατικό παγκόσμιο ιστό σε έναν δυναμικό, στον οποίο ο χρήστης μπορεί να αλληλεπιδράσει με το υπάρχον περιεχόμενο και να δημιουργήσει νέο. Επίσης, δίνεται πλέον η δυνατότητα αλληλεπίδρασης και συνεργασίας με άλλους χρήστες σε σχεδόν πραγματικό χρόνο. Η διαδικασία αυτή είναι δυνατή με την χρήση web applications, δηλαδή προγραμμάτων για την δημιουργία δυναμικού περιεχομένου και την διαχείριση των αλληλεπιδράσεων. Η πρόσβαση στα προγράμματα αυτά είναι δυνατή μέσω διαδικτύου, χωρίς να είναι απαραίτητη η τοπική αποθήκευσή τους στον υπολογιστή του χρήστη. Με την χρήση πλατφόρμων όπως είναι η Java της Oracle και.νετ της Microsoft, μπορεί να γίνει η συγγραφή προγραμμάτων, τα οποία είναι δυνατό να τρέχουν μέσα από μια ιστοσελίδα, αλλάζοντας έτσι τον τρόπο με τον οποίο αναπτύσσεται, διαμοιράζεται και χρησιμοποιείται το λογισμικό. Επίσης, με το Web 2.0 [6](Tim O Reilly) - το οποίο αποκαλείται και wisdom Web, people-centric Web, participative Web και read/write Web - παρατηρήθηκε έντονη ανάπτυξη στο κοινωνικό κομμάτι του διαδικτύου. Δίνεται πλέον έμφαση στη διαδραστική αλληλεπίδραση, στην συνεργασία χρηστών, στην συλλογική νοημοσύνη 18
και στην κοινωνική αλληλεπίδραση και επικοινωνία, με αποτέλεσμα η συμμετοχή των χρηστών να είναι έντονη και πιο αποτελεσματική [7] πράγμα που αποδεικνύεται από την εξάπλωση κοινωνικών δικτύων, όπως είναι το Facebook και το Twitter. Εν ολίγοις, το Web 2.0 αποτελεί την μετάβαση σε έναν ιστό με Online εφαρμογές, η αρχιτεκτονική των οποίων επιτρέπει την ενσωμάτωση και την χρήση πλουσιότερων εφαρμογών, όπου είναι έντονη η κοινωνική διάσταση και η συνεργασία μεταξύ των χρηστών. Τα χαρακτηριστικά που πρέπει να περιλαμβάνει μια ιστοσελίδα Web 2.0 είναι [8]: Αναζήτηση (Search)- λέξεις κλειδιά, Σύνδεσμοι (Links) - δημιουργία ενός οικοσυστήματος διασυνδεδεμένων εφαρμογών, Συγγραφή (Authoring) - δημιουργία και ανανέωση περιεχομένου σε συνεργασία με πολλούς χρήστες, Ετικέτες (Tags)- κατηγοριοποίηση περιεχομένου, Επεκτάσεις (Extensions) - λογισμικό όπως Adobe Flash, Java, Windows Media, που επιτρέπει την δημιουργία εφαρμογών σε ιστοσελίδες, Σινιάλα (Signals)- ειδοποιήσεις στους χρήστες για αλλαγή περιεχομένου. Ο Παγκόσμιος Ιστός αποτελεί ένα περιβάλλον το οποίο αναπτύσσεται διαρκώς - όπως βλέπουμε στην παρακάτω εικόνα - και όπου το πλήθος των πληροφοριών και ο αριθμός των παρεχόμενων υπηρεσιών κάνει δύσκολη την επεξεργασία και την χρήση τους από τον άνθρωπο. Η αρχική δημιουργία του Ιστού έγινε με το όραμα ενός χώρου ελεύθερης διακίνησης πληροφοριών και ιδεών και με στόχο την χρήση του από ανθρώπους, χωρίς να ληφθεί υπόψη η δυνατότητα αυτοματοποίησης της σημασιολογικής ερμηνείας. Τα υπερκείμενα δείχνουν την σχέση μεταξύ κειμένων, μέσω συνδέσμων, αλλά δεν βοηθούν στην κατανόηση του πραγματικού νοήματος του κειμένου. Είναι απαραίτητη η χρήση πρακτόρων λογισμικού και υπηρεσιών ιστού που επιτρέπουν την ερμηνεία του περιεχομένου με σημασιολογικές περιγραφές, οι οποίες είναι κατανοητές από τις μηχανές. Ασάφειες τέτοιου τύπου αποτελούν προβλήματα που προσπαθούν να επιλυθούν με την χρήση τεχνολογιών Σημασιολογικού Ιστού (Semantic Web) ή αλλιώς Web 3.0 [9]. Το όραμα του Σημασιολογικού Ιστού ενδυναμώνεται συνεχώς, με τη χρήση νέας γενιάς τεχνολογιών και εργαλείων και αν κρίνουμε από την ταχύτητα στη διάδοση του 19
διαδικτύου είναι πιθανόν να αποτελέσει την νέα μορφή του Ιστού. Με το στάδιο αυτό της εξέλιξης του Παγκόσμιου Ιστού θα ασχοληθούμε στην παρούσα εργασία. Ο Σημασιολογικός Ιστός δεν αποτελεί κάτι νέο, αλλά μια επέκταση του υπάρχοντος διαδικτύου ή μια εξέλιξή του, όπως και έγινε σαφές από την σύντομη αναδρομή, που έγινε παραπάνω. Η πληροφορία που παρουσιάζεται στο χρήστη ορίζεται με τέτοιο τρόπο ώστε να είναι αναγνωρίσιμη από ανθρώπους αλλά και από «μηχανές» μέσω των προγραμμάτων πρακτόρων. Με την διαλειτουργική συνεργασία διαφόρων συστημάτων, την χρήση αυτοματοποιημένων διεργασιών και την επεξεργασία πληροφοριών και δεδομένων, διευκολύνεται η χρήση του διαδικτύου από τους ανθρώπους. Οι πληροφορίες που ήδη υπάρχουν οργανώνονται και διασυνδέονται με απώτερο σκοπό την αξιοποίησή τους από πολλές διαφορετικές εφαρμογές, το εύρος των οποίων περιλαμβάνει τις ιστοσελίδες που όλοι γνωρίζουμε μέχρι και οικιακές συσκευές, οι οποίες διασυνδέονται ολοένα και περισσότερο (Internet of Things). Εικόνα 1: Η Εξέλιξη του Ιστού 20
2.2 Ορισμός Σημασιολογικού Ιστού Βασικές έννοιες Ο Σημασιολογικός Ιστός είναι ένα κίνημα, το οποίο δημιουργήθηκε με την συνεργασία μεγάλου αριθμού ερευνητών και επιχειρήσεων υπό την αιγίδα του Παγκόσμιου Οργανισμού Τυποποίησης W3C (World Wide Web Consortium - Κοινοπραξία Παγκόσμιου Ιστού). Ο όρος αναφέρεται στο όραμα του W3C για έναν ιστό συνδεδεμένων δεδομένων, με σκοπό να δοθεί η δυνατότητα στους υπολογιστές να επεξεργάζονται πληροφορίες και να αναπτυχθούν συστήματα που υποστηρίζουν αλληλεπιδράσεις μέσω δικτύων για την δημιουργία αποθηκών δεδομένων και κανόνων ή λεξιλογίων για την επεξεργασία τους [10]. Η λέξη «σημασιολογία» έχει ως ρίζα τις ελληνικές λέξεις «σημάδι», «σημαίνω», «σημαντικός» και ετυμολογικά αναφέρεται στην απόδοση νοήματος σε κάποια σύμβολα [11]. Ο Σημασιολογικός Ιστός είναι, δηλαδή, ένα σύστημα που επιτρέπει στις μηχανές να κατανοήσουν και να ανταποκριθούν σε πολύπλοκα αιτήματα με βάση τη σημασία τους, πράγμα που προϋποθέτει ότι οι σχετικές πηγές πληροφοριών πρέπει να είναι σημασιολογικά δομημένες. Με την εισαγωγή μεταδεδομένων, τα οποία μπορούν να αναγνώσουν οι υπολογιστές, στις σελίδες, για την περιγραφή του τρόπου με τον οποίο αυτές συσχετίζονται, δίνεται η δυνατότητα σε πράκτορες λογισμικού να έχουν «έξυπνη» πρόσβαση στον Ιστό και να πραγματοποιούν λειτουργίες, τις οποίες θα έκαναν οι χρήστες χειροκίνητα. Επίσης, παρέχεται ένα κοινό πλαίσιο για να διαμοιράζονται και να επαναχρησιμοποιούνται δεδομένα ανεξάρτητα από τα όρια εφαρμογών, υπηρεσιών, επιχειρήσεων ή κοινοτήτων. Η έννοια του Σημασιολογικού Ιστού επινοήθηκε τη δεκαετία του 60 από τους Allan M. Collins, M. Ross Quillian και Elizabeth F. Loftus σαν μια μορφή σημασιολογικής αναπαράστασης της δομημένης γνώσης, με αναφορά σε διάφορες σχετικές δημοσιεύσεις [12][13]. Πολλές από τις τεχνολογίες που χρησιμοποιούνται πλέον από το w3c για την υλοποίηση του Σημασιολογικού Ιστού, υπήρχαν από παλαιότερα και χρησιμοποιούνται σε τομείς που έχουν να κάνουν με πλήθος πληροφοριών και όπου είναι απαραίτητος ο διαμοιρασμός δεδομένων, όπως είναι ο τομέας της υγείας ή η επιστημονική έρευνα. Ήδη από το 1980 άρχισε να πραγματοποιείται σημαντική έρευνα στην επιστήμη των πληροφοριών σχετικά με την ανάπτυξη έμπειρων 21
συστημάτων για τη βελτίωση αποτελεσμάτων αναζήτησης. Πανεπιστήμια, νεοσύστατες εταιρείες και μεγάλες επιχειρήσεις έχουν δημοσιεύσει έρευνα και έχουν καταθέσει διπλώματα ευρεσιτεχνίας με διάφορες αλγοριθμικές τεχνικές για μηχανική αναζήτηση ή τεχνητή νοημοσύνη. Ο όρος «Σημασιολογικός Ιστός» επινοήθηκε από τον Tim Berners-Lee, σαν επέκταση του Παγκόσμιου Ιστού, όπου είναι απαραίτητος ο καθορισμός του νοήματος της πληροφορίας για την αποτελεσματικότερη συνεργασία μεταξύ ανθρώπων, αλλά και μεταξύ υπολογιστών, ή όπως αναφέρει ο ίδιος «σαν έναν ιστό δεδομένων, που μπορεί να επεξεργαστεί άμεσα και έμμεσα από μηχανές» [14]. Πιο αναλυτικά, ο Tim Berners-Lee οραματίστηκε το εξής [15]: «Έχω ένα όνειρο για έναν Ιστό, όπου οι μηχανές θα είναι ικανές να αναλύουν όλα τα σχετικά δεδομένα - περιεχόμενο, συνδέσμους και συναλλαγές μεταξύ ανθρώπων και υπολογιστών. Ένας Σημασιολογικός Ιστός που θα μας παρέχει αυτή τη δυνατότητα δεν έχει εμφανιστεί ακόμη, αλλά όταν γίνει αυτό, οι μηχανισμοί του εμπορίου, της γραφειοκρατίας και της καθημερινής ζωής μας θα διαχειρίζονται από μηχανές, αφήνοντας έτσι τους ανθρώπους να παρέχουν απλά την έμπνευση και τη διαίσθηση. Τότε θα υλοποιηθούν πραγματικά οι «ευφυείς πράκτορες», στους οποίους αναφερόμαστε εδώ και πολύ καιρό.» Η προσέγγιση του Σημασιολογικού Ιστού, όσον αφορά το θέμα της μορφής που πρέπει να λάβει ο Ιστός για να συνεχίσει την πρόοδό του, είναι η παρουσίαση περιεχομένου σε μορφή η οποία μπορεί να είναι αποτελεσματικά επεξεργάσιμη από ευφυείς πράκτορες ή άλλα λογισμικά και η χρήση τεχνικών για καλύτερη αξιοποίηση αυτού του περιεχομένου [16]. Η δράση αφορά την εξέλιξη του σημερινού Παγκόσμιου Ιστού και όχι την δημιουργία ενός παράλληλου Ιστού και υποστηρίζεται από επιχειρήσεις, κυβερνήσεις και άλλους οργανισμούς. Μπορούμε συνοπτικά να αναφέρουμε ότι ο Σημασιολογικός Ιστός μας παρέχει τις τεχνολογίες και το πρότυπα που χρειάζονται έτσι ώστε να προσθέσουμε σημασία στον ήδη υπάρχοντα Ιστό, για την καλύτερη αξιοποίηση του από τους υπολογιστές, με απώτερο σκοπό την αυτοματοποίηση εργασιών σε μεγάλη κλίμακα [17]. Βασικές τεχνολογίες που χρησιμοποιούνται είναι: μεταδεδομένα, για την αναγνώριση και εξαγωγή πληροφοριών, οντολογίες, για την ενίσχυση των αναζητήσεων, λογική, συστήματα συλλογιστικής και συμπερασματικοί κανόνες, για την επεξεργασία πληροφοριών και την εξαγωγή συμπερασμάτων, καθώς και ευφυείς πράκτορες, οι 22
οποίοι θα χρησιμοποιούν όλες αυτές τις τεχνολογίες. Ας τις δούμε λίγο πιο αναλυτικά στη συνέχεια. (Στο κεφάλαιο 3, θα αναφερθούμε πιο αναλυτικά σε συγκεκριμένες τεχνολογίες, εδώ γίνεται μια παρουσίαση των σημαντικότερων όρων.) 2.2.1 Μεταδεδομένα Τα μεταδεδομένα (metadata) αποτελούν δεδομένα, τα οποία αναφέρονται σε άλλα δεδομένα και μπορεί να παρέχουν πληροφορίες σχετικά με τον τρόπο δημιουργίας των δεδομένων, τον σκοπό, την ημερομηνία και ώρα δημιουργίας, τον δημιουργό, την τοποθεσία και τα πρότυπα που έχουν χρησιμοποιηθεί. Μέσω αυτών μπορεί να επιτευχθεί η αναγνώριση της «σημασίας» των δεδομένων από τους υπολογιστές και να εξαχθούν πληροφορίες που δεν βρίσκονται απαραίτητα σε μια σελίδα, αλλά σε ένα σύνολο από αυτές. Ένας σημαντικός λόγος για τη δημιουργία περιγραφικών μεταδεδομένων είναι για να διευκολύνουν την ανακάλυψη σχετικών πληροφοριών. Εκτός από την ανακάλυψη πόρων, τα μεταδεδομένα μπορούν να είναι χρήσιμα στην οργάνωση ηλεκτρονικών πηγών, στη διαλειτουργικότητα και την ενοποίηση των πόρων, την παροχή ψηφιακής αναγνώρισης και την υποστήριξη αρχειοθέτησης [18]. Στη σημερινή μορφή του Ιστού, υπάρχει δυσκολία κατανόησης και χρήσης διάφορων όρων από τις μηχανές σε ένα έγγραφο, το οποίο είναι γραμμένο σε HTML. Αν η HTML αντικατασταθεί από άλλες καταλληλότερες γλώσσες και γίνει χρήση μεταδεδομένων, τότε οι ιστοσελίδες δεν θα περιέχουν μόνο πληροφορίες που αφορούν την δομή τους και την παρουσίαση στον άνθρωπο χρήστη, αλλά και πληροφορίες που αφορούν το περιεχόμενο, οι οποίες θα είναι εύκολα προσπελάσιμες από μηχανές [16]. Ο Παγκόσμιος Ιστός έχει φέρει επανάσταση στην προσβασιμότητα σε πληροφορίες. Η ανάπτυξη και εφαρμογή μεταδεδομένων αποτελεί μια σημαντική βελτίωση στον τρόπο που μπορούν να ανακαλυφθούν και να χρησιμοποιηθούν οι πληροφορίες με την χρήση νέων τεχνολογιών, προτύπων και πρακτικών. Η δραστηριότητα της κοινοπραξίας W3C, όσον αφορά τα μεταδεδομένα, έχει ενσωματωθεί στον Σημασιολογικό Ιστό, [10] κάτω από ένα κοινό πλαίσιο που επιτρέπει στα δεδομένα να μοιράζονται και να επαναχρησιμοποιούνται, με σκοπό την αύξηση της διαλειτουργικότητας τους. 23
2.2.2 Οντολογίες Οντολογία (Ontology) είναι η αυστηρά μαθηματική περιγραφή ενός πεδίου γνώσης και περιλαμβάνει ένα πεπερασμένο σύνολο από όρους και τις σημασιολογικές συσχετίσεις μεταξύ αυτών. Οι όροι περιγράφουν κλάσεις αντικειμένων, δηλαδή έννοιες σχετικές με αντικείμενα και οι συσχετίσεις αφορούν ιεραρχικές σχέσεις μεταξύ των όρων αυτών [11]. Από το w3c [19] έχουμε τον εξής ορισμό: «Μια οντολογία καθορίζει τους όρους που χρησιμοποιούνται για την περιγραφή και την αναπαράσταση ενός πεδίου γνώσης. Μπορεί να χρησιμοποιηθεί από ανθρώπους, βάσεις δεδομένων και εφαρμογές, όπου υπάρχει η ανάγκη διαμοιρασμού πληροφοριών για κάποιο πεδίο γνώσης. Περιλαμβάνει ορισμούς για τις βασικές έννοιες του συγκεκριμένου πεδίου και για τις συσχετίσεις μεταξύ τους, που μπορούν να χρησιμοποιηθούν από τους υπολογιστές. Η σχετική με το πεδίο γνώση, καθώς και η γνώση που προέρχεται από διάφορα πεδία κωδικοποιείται και κατά αυτό τον τρόπο παράγεται επαναχρησιμοποιήσιμη γνώση.» Τα συστατικά μέρη μιας οντολογίας είναι: οι κλάσεις (classes), που αναπαριστούν έννοιες οι συσχετίσεις (relations) οι οποίες εκφράζουν ένα είδος αλληλεπίδρασης μεταξύ των εννοιών ενός πεδίου με κάποια ιεραρχία οι συναρτήσεις (functions), που εκπροσωπούν μια ειδική σχέση, στην οποία το ν-οστό στοιχείο της σχέσης προσδιορίζεται μοναδικά από τα ν-1 προηγούμενα στοιχεία τα αξιώματα (axioms), τα οποία χρησιμοποιούνται για προτάσεις που είναι πάντοτε αληθείς και τα στιγμιότυπα (instances), που εκφράζουν συγκεκριμένα στοιχεία. Με τις οντολογίες μπορούμε να επιτύχουμε την κοινή κατανόηση ενός πεδίου γνώσης με την χρήση μιας κοινής οντολογίας ή με την διασύνδεση μεταξύ οντολογιών, έτσι ώστε να καταφέρουμε να ξεπεράσουμε προβλήματα που οφείλονται στην χρήση διαφορετικής ορολογίας [16]. 24
Εικόνα 2: Παράδειγμα απλής οντολογίας για το ζωικό βασίλειο (http://www.scientific-computing.com) Οι οντολογίες μπορούν να ταξινομηθούν σύμφωνα με τον βαθμό λεπτομέρειας και το βαθμό εξάρτησης σε τρεις κατηγορίες [20]: 1. Οντολογίες ανώτερου επιπέδου (top- level ontology), που περιγράφουν πολύ γενικές έννοιες όπως χώρος, χρόνος, ύλη, κτλ. και δεν σχετίζονται με κάποιο συγκεκριμένο πρόβλημα ή πεδίο. Είναι χρήσιμες για μεγάλες κοινότητες με πολλούς χρήστες. 2. Οντολογίες πεδίου και οντολογίες έργου (domain& task ontologies), για την περιγραφή των όρων του λεξιλογίου που σχετίζεται με ένα γενικό πεδίο (π.χ. ιατρική) ή με ένα γενικό έργο ή δραστηριότητα (π.χ. διάγνωση) και είναι πιο εξειδικευμένες. 3. Οντολογίες εφαρμογής (application ontology), οι οποίες περιγράφουν έννοιες που εξαρτώνται από ένα ορισμένο πεδίο και από ένα έργο και συνήθως αποτελούν εξειδικεύσεις και των δύο σχετικών οντολογιών. Οι έννοιες αυτές αντιστοιχούν συνήθως στους ρόλους που έχουν οι οντότητες του πεδίου όταν πραγματοποιούν μία συγκεκριμένη δραστηριότητα (π.χ. θεραπεία). Η ανάπτυξη οντολογιών μπορεί να γίνει με ορισμένα εργαλεία που περιλαμβάνουν, εκτός από την δημιουργία, δυνατότητες τεκμηρίωσης, εισαγωγής, εξαγωγής και αναπαράστασης της οντολογίας, καθώς και περιέχουν μηχανές εξαγωγής συμπερασμάτων. Μερικά από τα πιο γνωστά είναι: Protégé, FlexViz, Knoodl, NeOn Toolkit, SWOOP, TopBraid Composer [21]. Αν και δεν υπάρχει συγκεκριμένη μεθοδολογία για την δημιουργία τους, η ορθή ανάπτυξη οντολογιών προϋποθέτει μια σειρά ενεργειών από την πλευρά του δημιουργού [22]. 25
1. Προσδιορισμός του σκοπού και του πεδίου εφαρμογής. Είναι σημαντικό να ξεκαθαρίσουμε τον λόγο για τον οποίο δημιουργείται μια οντολογία και ποιοι θα είναι οι χρήστες και τα χαρακτηριστικά τους. 2. Κατασκευή Οντολογίας σε τρία στάδια: i. Σύλληψη της οντολογίας μετά από εξακρίβωση των βασικών εννοιών και συσχετίσεων, την δημιουργία σαφών ορισμών και ορολογιών για την αναφορά σε αυτές. ii. Κωδικοποίηση, ως ρητή αναπαράσταση της σύλληψης, επιλογή γλώσσας αναπαράστασης και συγγραφή του κώδικα. iii. Ενοποίηση με υπάρχουσες ορολογίες. 3. Αξιολόγηση του τεχνικού μέρους των οντολογιών, του περιβάλλοντος λογισμικού και της τεκμηρίωσης σύμφωνα με το πλαίσιο που έχει τεθεί. 4. Τεκμηρίωση όλων των σημαντικών υποθέσεων που έγιναν όσον αφορά τις βασικές έννοιες και τα θεμελιώδη στοιχεία για την έκφραση της οντολογίας. 5. Τήρηση βασικών κριτηρίων σχεδιασμού και αρχών όπως είναι η σαφήνεια, η αντικειμενικότητα, η συνοχή, η επεκτασιμότητα. Οι οντολογίες αποτελούν ένα από τα πιο σημαντικά εργαλεία για τον διαμοιρασμό, την ανάλυση και την επαναχρησιμοποίηση της γνώσης, για την εύρεση, συλλογή και κατανόηση της πληροφορίας και χρησιμοποιούνται σε πολλούς τομείς. Μέσω αυτών μπορεί να γίνει καλύτερη οργάνωση και πλοήγηση σε ιστοσελίδες και να βελτιωθεί η ακρίβεια αναζήτησης με αναζήτηση εννοιών, χωρίς την αποκλειστική χρήση λέξεων κλειδιών και με την χρήση προαναζήτησης, έτσι ώστε να υπάρχουν έτοιμα αποτελέσματα σε περίπτωση που τα εμφανιζόμενα δεν ικανοποιούν τον χρήστη [16]. Σε επόμενο κεφάλαιο θα επανέλθουμε, καθώς θα αναφερθούμε σε κάποιες γλώσσες οντολογιών, όπως είναι οι RDF, RDF Schema και OWL. 26
2.2.3 Λογική και Συστήματα Συλλογιστικής Η λογική δημιουργήθηκε λόγω της ανάγκης χρήσης μιας αυστηρά καθορισμένης γλώσσας, με σαφή, ακριβή και απλή σύνταξη και παρέχει έναν τρόπο για την αποσαφήνιση και την τυποποίηση της διαδικασίας της ανθρώπινης σκέψης, με σκοπό την αναπαράσταση και επίλυση προβλημάτων [11]. Βοηθά στην αναπαράσταση γνώσης, ένα πεδίο της τεχνητής νοημοσύνης, που περιλαμβάνει συντακτικές και σημασιολογικές παραδοχές για την περιγραφή ενός κόσμου και την εξαγωγή συμπερασμάτων από τον υπολογιστή με αυτόματο τρόπο. Στην προτασιακή λογική (την απλούστερη μορφή μαθηματικής λογικής) μπορούμε να έχουμε δύο λογικές τιμές για μια λογική πρόταση, οι οποίες είναι: «αληθής»(true) ή «ψευδής»(false). Έστω ότι έχουμε δύο τυχαίες προτάσεις P και Q, αφού δεν μας ενδιαφέρει η σημασία των προτάσεων, αλλά τα συμπεράσματα που μπορούμε να βγάλουμε, τα οποία μπορούν να αποτυπωθούν σε έναν «πίνακα αλήθειας». Για τις προτάσεις αυτές ισχύει ο παρακάτω πίνακας αλήθειας: p q p q p q p => q p <=> q (σύζευξη) (διάζευξη) (συνεπαγωγή) (ισοδυναμία) T T T T T T T F F T F F F T F T T F F F F F T T Πίνακας 1: Πίνακας αλήθειας προτάσεων p, q Η εξαγωγή συμπερασμάτων στον Σημασιολογικό Ιστό γίνεται κυρίως με συστήματα συλλογιστικής (reasoners), με τα οποία γίνεται συνδυασμός τμημάτων γνώσης για την παραγωγή νέας γνώσης. Με τη χρήση ενός τέτοιου συστήματος ένας πράκτορας λογισμικού μπορεί να αποφασίσει για το αν ένας συγκεκριμένος πόρος ικανοποιεί τις απαιτήσεις του. Τα βασικά είδη συλλογιστικής είναι τρία [11]: η συνεπαγωγική συλλογιστική, όπου από ένα σύνολο γεγονότων εξάγονται συμπεράσματα, η επαγωγική, όπου γίνεται εξαγωγή γενικών συμπερασμάτων από ένα σύνολο παραδειγμάτων και η απαγωγική, η οποία από τα δεδομένα μιας βάσης γνώσης και 27
από κάποιες παρατηρήσεις σκοπεύει στην εύρεση υποθέσεων που εξηγούν τις παρατηρήσεις και εκφράζει πιθανότητα, αλλά όχι ακρίβεια. Οι γλώσσες που χρησιμοποιούνται στον Σημασιολογικό Ιστό (π.χ. OWL) χρησιμοποιούν την «Υπόθεση Ανοιχτού Κόσμου» (Open Word Assumption - OWA), ότι, δηλαδή, η τιμή «αληθής» μιας πρότασης είναι ανεξάρτητη από το εάν κάποιος μοναδικός παρατηρητής γνωρίζει ότι αληθεύει. Η απουσία μιας συγκεκριμένης πρότασης στον Ιστό σημαίνει ότι η πρόταση δεν έχει δηλωθεί ακόμα ρητά ως αληθής ή ψευδής, ανεξάρτητα από το τι πιστεύουμε για αυτή. Ένα σύστημα συνεπαγωγικής συλλογιστικής (reasoner) δεν μπορεί (και δεν πρέπει) δηλαδή να συναγάγει ότι η πρόταση είναι ψευδής από την απουσία της δήλωσης και μόνο. Τα περισσότερα συστήματα συλλογιστικής εφαρμόζουν κάποιου είδους περιγραφική ή κατηγορηματική λογική και βασίζονται σε κανόνες. Στην κατηγορηματική λογική έχουμε ένα σύνολο αντικειμένων, ιδιοτήτων και των σχέσεων μεταξύ τους και την προϋπόθεση της ύπαρξης ενός πεδίου, δηλαδή ενός κόσμου που αποτελείται από αυτά και στον οποίο αναφέρονται τα σύμβολα και οι μεταβλητές [11]. Η κατηγορηματική λογική αποτελεί εξέλιξη της προτασιακής λογικής που παρουσιάσαμε παραπάνω. Η περιγραφική λογική βασίζεται στην κατηγορηματική λογική και αποτελεί μια οικογένεια τυποποίησης της αναπαράστασης της γνώσης, των κλάσεων και των συσχετίσεων [23]. Μπορούμε να διαχωρίσουμε μια πρόταση περιγραφικής λογικής σε δύο μέρη: στο TBox και στο ABox. Το TBox (Terminology) σχετίζεται με την ορολογία του πεδίου και αποτελείται από δηλώσεις, οι οποίες περιγράφουν γενικές έννοιες και τις ιδιότητες τους. Το ABox (Assertion) περιλαμβάνει τους ισχυρισμούς για τα αντικείμενα του πεδίο. Μέσω της περιγραφικής λογικής μπορούμε να επιτύχουμε την αναπαράσταση οντολογιών με τη χρήση εννοιών (concepts), ρόλων (roles) και στιγμιότυπων (instances). Μια έννοια αποτελεί μία κλάση αντικειμένων, οι ρόλοι αναπαριστούν τις δυαδικές σχέσεις μεταξύ των εννοιών και επιτρέπουν την περιγραφή ιδιοτήτων και τα στιγμιότυπα περιέχουν τα αντικείμενα κλάσεων και τις τιμές των ρόλων. Η γλώσσα OWL, η οποία προτείνεται για την δημιουργία οντολογιών από το w3c, έχει επηρεαστεί σημαντικά από την έρευνα στον τομέα της περιγραφικής λογικής και χρησιμοποιείται ευρύτατα στον Σημασιολογικό Ιστό. 28
2.2.4 Κανόνες Οι κανόνες είναι μια μέθοδος σύλληψης της γνώσης πάνω σε ένα πεδίο και «ενσάρκωσής» της με μορφή: (On συμβάν) IF <συνθήκη> THEN <ενέργειες, συμπεράσματα> Έχουμε, δηλαδή, μια ακολουθία από κατηγορήματα - προϋποθέσεις που οδηγούν σε μια σειρά εντολών ή σε ένα συμπέρασμα. Οι κανόνες είναι μια προσέγγιση στην αναπαράσταση γνώσης, η οποία μοιάζει πολύ με τον ανθρώπινο τρόπο οργάνωσης της γνώσης στον πραγματικό κόσμο [11]. Με την ορθή ακολουθία εκτέλεσης ενός κανόνα, όταν η διαδικασία εξαγωγής συμπερασμάτων βρει έναν κανόνα στον οποίο είναι αληθής η συνθήκη τότε συμπεραίνει ότι και το δεξιό μέλος είναι αληθές. Με την ανάστροφη ακολουθία εκτέλεσης, αναζητούνται οι κανόνες στο δεξιό μέλος και ελέγχεται αν οι προϋποθέσεις στο αριστερό μέλος είναι αληθείς. Η χρήση των κανόνων έχει ως πλεονεκτήματα την επεκτασιμότητα, καθώς κάθε κανόνας αποτελεί μια μονάδα γνώσης και μπορούν να προστεθούν νέοι κανόνες, την ομοιομορφία, καθώς η γνώση εκφράζεται σε ίδια μορφή, την φυσικότητα έκφρασης και την δυνατότητα τροποποίησης, αφού μπορούμε να αλλάξουμε κάποιους κανόνες ανεξάρτητα από τους υπόλοιπους. Χρειάζεται όμως προσοχή, γιατί μπορεί να έχουμε ατέρμονους βρόχους με λανθασμένη εφαρμογή κανόνων και υπάρχει η πιθανότητα αντιφάσεων με την εισαγωγή νέων κανόνων ή την τροποποίηση παλαιότερων για την επίλυση ενός προβλήματος. Τα συστήματα που βασίζονται σε κανόνες μπορεί να είναι αναποτελεσματικά, πολύπλοκα και κοστοβόρα, ανάλογα με το μέγεθός τους. Η συλλογιστική με συμπερασματικούς κανόνες μπορεί να οδηγήσει στην ανάπτυξη ενός ομοιογενούς συστήματος με τον συνδυασμό των οντολογιών με κανόνες. Τα συστήματα συμπερασματικών κανόνων βασίζονται στην αντιστοίχηση της αυστηρά ορισμένης πληροφορίας στη βάση γνώσης του συστήματος κανόνων που χρησιμοποιείται, έτσι ώστε οι συμπερασματικοί κανόνες να υλοποιήσουν τη κατάλληλη διαδικασία της συλλογιστικής που απαιτείται και να ελέγξουν την οντολογία για ασυνέπειες. 29
2.2.5 Ευφυείς Πράκτορες Οι πράκτορες είναι οντότητες - προγράμματα εξειδικευμένου λογισμικού, τοποθετημένα σε κάποιο περιβάλλον και είναι ικανά να δράσουν αυτόνομα στο περιβάλλον αυτό, έτσι ώστε να επιτευχθούν οι στόχοι που τέθηκαν κατά την σχεδίασή του [24]. Συνήθως οι πράκτορες έχουν μερικό έλεγχο σε ένα περιβάλλον με σκοπό να το επηρεάσουν με κάποιες ενέργειες και υπάρχει πιθανότητα αποτυχίας. Οι πράκτορες διαθέτουν ένα σύνολο από δράσεις τις οποίες μπορούν να πραγματοποιήσουν, ανάλογα πάντα με τις υπάρχουσες προϋποθέσεις, άρα ένα βασικό πρόβλημα είναι η απόφαση για το ποια ενέργεια πρέπει να ληφθεί σε κάθε περίσταση. Ένα κλασσικό παράδειγμα πρακτόρων είναι οι δαίμονες (daemon) λογισμικού, που παρακολουθούν ένα περιβάλλον λειτουργικού συστήματος και εκτελούν κάποιες ενέργειες όταν κληθούν με κάποιες συνθήκες. Διαισθάνονται δηλαδή το περιβάλλον με κάποιους αισθητήρες που υπάρχουν στο λογισμικό και επιλέγουν από ένα σύνολο ενεργειών, ποια από αυτές πρέπει να εκτελεσθεί για να τροποποιηθεί κατάλληλα το περιβάλλον. Βασικά χαρακτηριστικά των πρακτόρων είναι: η αυτονομία - αφού δρουν χωρίς άμεση εξωτερική παρέμβαση (του χρήστη ή άλλων πρακτόρων) -, η αντιδραστικότητα ανάλογα με το τι συμβαίνει στο περιβάλλον το οποίο ελέγχουν και η προνοητικότητα, καθώς μπορούν να δράσουν ανάλογα με κάποιους στόχους και λαμβάνοντας πρωτοβουλίες [11]. Στον Σημασιολογικό Ιστό, ένας πράκτορας λογισμικού θα μπορεί να επιτελέσει ενέργειες όπως η αναζήτηση πληροφοριών, η επικοινωνία με άλλους πράκτορες, η σύγκριση πληροφοριών ανάλογα με τις απαιτήσεις του χρήστη, η επιλογή ενεργειών ανάλογα με τις περιστάσεις του περιβάλλοντος και τελικά η παρουσίαση απαντήσεων στον χρήστη για τα ερωτήματα που αρχικά τέθηκαν [16]. Οι πράκτορες λογισμικού δεν αντικαθιστούν τον ανθρώπινο παράγοντα, αλλά τον βοηθούν με σκοπό την συλλογή και οργάνωση πληροφοριών για την παρουσίαση των διαθέσιμων επιλογών, ανάλογα με τις ανάγκες του. Οι τεχνολογίες που αναφέραμε παραπάνω είναι χρήσιμες για τους πράκτορες, καθώς θα πρέπει να εξάγουν πληροφορίες (μεταδεδομένα), να τις συνδυάσουν (οντολογίες) και να τις ερμηνεύσουν και να καταλήξουν σε συμπεράσματα (λογική και κανόνες). 30
2.3 Παράδειγμα χρήσης του Σημασιολογικού Ιστού Ας δούμε στο σημείο αυτό, με ένα παράδειγμα, γιατί είναι τόσο σημαντική και ενδιαφέρουσα η ενοποίηση των δεδομένων στον Παγκόσμιο Ιστό και πως αυτή μπορεί να επιτευχθεί. Έστω ότι έχουμε κάποιον πόρο στον Ιστό για τον οποίο θέλουμε να μάθουμε οτιδήποτε έχει σχέση με αυτόν, συλλέγοντας όσο το δυνατόν περισσότερες πληροφορίες με την βοήθεια ενός ευφυούς πράκτορα. Για τις ανάγκες του παραδείγματος, ο πόρος που θα χρησιμοποιηθεί είναι ένας άνθρωπος και στην συγκεκριμένη περίπτωση ο «Θανάσης Αντωνίου», με την ιστοσελίδα www.thanasisantoniou.com. Αν η ιστοσελίδα είναι μια παραδοσιακή σελίδα, ο πράκτορας μπορεί να συλλέξει κώδικα HTML, ο οποίος δεν μας δίνει κάποια χρήσιμη πληροφορία σχετικά με το άτομο, αλλά χρησιμοποιείται για την εμφάνιση της σελίδας από το πρόγραμμα περιήγησης. Αν η ιστοσελίδα, εκτός από τον κώδικα HTML, περιέχει κάποιες δηλώσεις που δείχνουν στον πράκτορα ποιο μέρος του περιεχομένου είναι σημαντικό όσον αφορά το συγκεκριμένο άτομο, τότε μπορεί να επικεντρωθεί σε αυτό. Οι δηλώσεις αυτές έχουν συγκεκριμένη δομή και καθεμία από αυτές αντιπροσωπεύει μια ιδιότητα του συγκεκριμένου ατόμου. Για παράδειγμα, μπορεί να είναι της μορφής: <person> <name> Thanasis Antoniou </name> <job> Student </job> <paper> Semantic Web Application </paper> </person> Οι πληροφορίες αυτές είναι συνήθως ευανάγνωστες από το ανθρώπινο μάτι, αλλά με την χρήση τους μπορεί να κατασκευαστεί ένα γράφημα από τον πράκτορα λογισμικού. Μόλις ολοκληρωθεί το γράφημα, ο πράκτορας θα συνεχίσει σε επόμενη σελίδα, όπου θα ακολουθήσει παρόμοια διαδικασία. Έστω ότι η επόμενη σελίδα είναι το LinkedIn (www.linkedin.com) και περιέχει πληροφορίες με δομή παρόμοια με αυτή που αναφέραμε παραπάνω, όπως είναι κάποιο email, ο χώρος εργασίας ο τίτλος 31
σπουδών, η επαγγελματική εμπειρία και τα ενδιαφέροντα του ατόμου για το οποίο θέλουμε να πληροφορηθούμε. Οι πληροφορίες αυτές μπορούν να ανακτηθούν από τον ευφυή πράκτορα και να συνδυαστούν με τις προηγούμενες σε ένα νέο γράφημα, το οποίο θα είναι μεγαλύτερο από το αρχικό. Υπάρχει η πιθανότητα οι πληροφορίες που συλλέγονται να είναι ίδιες, αλλά να μην γίνεται αυτό κατανοητό από τον πράκτορα λογισμικού. Μπορούμε να «δείξουμε» στον πράκτορα ότι η συγκεκριμένη ιδιότητα είναι ίδια με την νέα με την χρήση ενός κανόνα του τύπου: «Αν το πεδίο email του πόρου Α έχει την ίδια τιμή με το πεδίο email του πόρου Β, τότε οι πόροι Α και Β είναι ο ίδιος πόρος». Με την χρήση του κανόνα, ο πράκτορας μπορεί να συνδέσει τους δύο πόρους δίνοντας έτσι τις πληροφορίες που μας ενδιαφέρουν. Με την χρήση ερωτήσεων, όπως «Ποιος είναι ο τίτλος σπουδών του Θανάση;» θα μπορούμε πλέον να λάβουμε πληροφορίες που μας ενδιαφέρουν, οι οποίες δεν υπήρχαν στην αρχική σελίδα που εξετάσαμε. Στη συνέχεια, ο πράκτορας λογισμικού μεταβαίνει σε επόμενη σελίδα και αναζητά κομμάτια, τα οποία δίνουν πληροφορίες που χρειάζονται. Η διαδικασία αυτή μπορεί να συνεχιστεί επ αόριστον, προσθέτοντας έτσι στοιχεία στο γράφημα που αφορά τον «Θανάση Αντωνίου», τα οποία βρίσκονται κατά μήκος του Παγκόσμιου Ιστού και όχι σε μια συγκεκριμένη ιστοσελίδα. Είναι φανερό ότι η αυτόματη ενοποίηση των δεδομένων στον Ιστό μπορεί να είναι εξαιρετικά χρήσιμη για την αναζήτηση και εξαγωγή πληροφοριών. Εικόνα 3: Ερωτήματα σχετικά με κάποιο θέμα 32
Εδώ να αναφέρουμε ότι πολλές από τις τεχνολογίες που χρησιμοποιούνται, δημιουργήθηκαν μετά από έρευνα στην Τεχνητή Νοημοσύνη. Αυτά τα δύο πεδία δεν πρέπει να συγχέονται, παρά τις κάποιες ομοιότητες που εμφανίζουν. Ο Σημασιολογικός Ιστός δεν την υποκαθιστά, καθώς τα προβλήματα που προσπαθεί να λύσει η Τεχνητή νοημοσύνη είναι ευρύτερα και συγκρίσιμα με επιστήμες όπως η Φυσική και η Βιολογία. Ο Σημασιολογικός Ιστός έχει ως σκοπό την δημιουργία μηχανών με ανθρώπινη ή και ευφυέστερη σκέψη, αλλά χρησιμοποιεί έστω και μερικές λύσεις που προτείνονται από την Τεχνητή Νοημοσύνη, οι οποίες βοηθούν στην επίλυση πιο «απλών» προβλημάτων που έχουν να κάνουν με τον Ιστό και τη χρήση του [16]. Οι τεχνολογίες που έχει «δανειστεί» είναι επαρκείς και περαιτέρω εξελίξεις την Τεχνητή Νοημοσύνη θα οδηγήσουν σε μεγαλύτερη ανάπτυξη του Σημασιολογικού Ιστού. 33
3 Τεχνολογίες Σημασιολογικού Ιστού Η αξιοποίηση του Σημασιολογικού Ιστού για περιπτώσεις σαν αυτές που αναφέραμε παραπάνω μπορεί να γίνει με την χρήση κάποιων τεχνολογικών προτύπων και μηχανισμών και με την υιοθέτησή τους σε ευρεία κλίμακα. Για τα περισσότερα προβλήματα που παρουσιάζονται, υπάρχουν ήδη μερικές λύσεις, που μπορούν να χρησιμοποιηθούν για καλύτερη ολοκλήρωση, προτυποποίηση και ανάπτυξη. Στη συνέχεια, θα δούμε την αρχιτεκτονική του Σημασιολογικού Ιστού και θα προσπαθήσουμε να περιγράψουμε κάποιες σημαντικές τεχνολογίες που χρησιμοποιούνται στις μέρες μας. 3.1 Αρχιτεκτονική Σημασιολογικού Ιστού Η ανάπτυξη του Σημασιολογικού Ιστού πραγματοποιείται με συγκεκριμένα επίπεδα, με τη λεγόμενη διαστρωματική αρχιτεκτονική, όπου το καθένα από τα επίπεδα υλοποιεί ένα σύνολο τεχνολογιών που στηρίζονται σε τεχνολογίες του προηγούμενου επιπέδου, ενισχύοντας έτσι την συμβατότητα μεταξύ τους και την μεγαλύτερη αποδοχή από τους χρήστες [11]. Οι πράκτορες θα πρέπει να έχουν πλήρη γνώση ενός επιπέδου και να είναι σε θέση να αξιοποιούν πλήρως τις πληροφορίες χαμηλότερων επιπέδων, καθώς και την δυνατότητα χρήσης τουλάχιστον μέρους πληροφοριών από τα ανώτερα επίπεδα. Τα επίπεδα του Σημασιολογικού Ιστού, όπως αυτά διατυπώθηκαν από τον Tim Berners-Lee είναι εμφανή στην εικόνα που ακολουθεί. Η επικοινωνία μεταξύ των επιπέδων αυτών γίνεται με το πρωτόκολλο επικοινωνίας SOAP (Simple Object Access Protocol), το οποίο βασίζεται στην γλώσσα XML, μεταφέρεται μέσω HTTP και αποτελείται από το μήνυμα και τον τρόπο επεξεργασίας του, ένα σύνολο κανόνων κωδικοποίησης και μια συνθήκη για ερωτήσεις απαντήσεις. 34
Εικόνα 4: Επίπεδα Σημασιολογικού Ιστού (http://www.w3.org/2000/talks/1206-xml2k-tbl/slide10-0.html) Σε γενικές γραμμές, στην παραπάνω εικόνα μπορούμε να διακρίνουμε τα εξής. Στο πρώτο επίπεδο υπάρχει το διεθνώς καθιερωμένο πρότυπο Unicode, για την κωδικοποίηση απλού κειμένου σε πολλές γλώσσες και το URI, μέσω του οποίου γίνεται η διευθυνσιοδότηση για την μοναδική αναγνώριση και τον εντοπισμό διαδικτυακών πόρων. Στο δεύτερο επίπεδο υπάρχει η XML (extensible Markup Language) και άλλα σχετικά πρότυπα, όπως το NameSpace και το XMLSchema, αποτελούν μέσο για την αναπαράσταση δομημένων εγγράφων με τη χρήση καθορισμένου λεξιλογίου στον Παγκόσμιο Ιστό. Στο τρίτο επίπεδο έχουμε το RDF (Resource Description Framework), ένα απλό μοντέλο αναπαράστασης μεταδεδομένων για την περιγραφή πηγών στο διαδίκτυο με σύνταξη παρόμοια με την XML. Η RDF Schema είναι μια γλώσσα μοντελοποίησης του λεξιλογίου που χρησιμοποιείται στο RDF, δίνοντας την δυνατότητα στο χρήστη να καθορίσει περαιτέρω τη σημασιολογία, την δόμηση και την οργάνωση της πληροφορίας με την δήλωση κλάσεων και ιδιοτήτων. Στο επόμενο επίπεδο βλέπουμε τις οντολογίες, μέσω των οποίων μπορούμε να θέσουμε σύνθετους περιορισμούς σχετικά με τους διαδικτυακούς πόρους, τις ιδιότητες και τις σχέσεις τους. Η λογική (Logic) που εμφανίζεται στο πέμπτο επίπεδο χρησιμοποιείται για την επεξεργασία δεδομένων των χαμηλότερων επιπέδων με την χρήση κανόνων, δημιουργώντας συσχετίσεις μεταξύ τους και εξασφαλίζοντας συμβατότητα μεταξύ διαφορετικών διαδικτυακών βάσεων δεδομένων. Στο επίπεδο των αποδείξεων (Proof) βρίσκονται μηχανισμοί για την εξαγωγή συμπερασμάτων και την αναπαράσταση αποδείξεων σε γλώσσες όπως XML και RDF, με διαδοχικά βήματα και σε μορφή που 35
είναι ευανάγνωστη για τον τελικό χρήστη (κείμενο, δέντρα). Στο τελευταίο επίπεδο βλέπουμε την αξιοπιστία (Trust), δηλαδή την χρήση τεχνολογιών ψηφιακών υπογραφών και ασφάλειας δεδομένων για την δημιουργία εμπιστοσύνης στους χρήστες, τόσο σχετικά με την ποιότητα των πληροφοριών όσο και για την ασφάλεια στις λειτουργίες που πραγματοποιούνται. Όπως είδαμε παραπάνω, η αρχιτεκτονική του Σημασιολογικού Ιστού είναι ουσιαστικά μια ιεραρχία γλωσσών, καθεμιά από τις οποίες εκμεταλλεύεται και επεκτείνει τα χαρακτηριστικά και τις δυνατότητες των κατώτερων επιπέδων. Δεν υπάρχει όμως ένα ευρέως αποδεκτό μοντέλο και η αρχιτεκτονική ενός συστήματος είναι ένας σημαντικός παράγοντας που παίζει ρόλο στον σχεδιασμό και την εφαρμογή του, πράγμα που ισχύει και στην περίπτωση του Σημασιολογικού Ιστού. Για το λόγο αυτό, είναι απαραίτητο να γίνει σαφής προσδιορισμός της αρχιτεκτονικής των γλωσσών του Σημασιολογικού Ιστού, με σκοπό την διαλειτουργικότητα μεταξύ των εφαρμογών και των επιμέρους τμημάτων τους. Ο οραματιστής του Web, Tim Berners Lee, υποστηρίζει ότι πρέπει να τηρούνται τέσσερεις βασικές αρχές κατά το σχεδιασμό αρχιτεκτονικών: απλότητα, επεκτασιμότητα, αποκέντρωση, ανοχή (simplicity, modularity, decentralization, tolerance) [25]. Με την πάροδο του χρόνου και με την συμβολή του W3C, επήλθαν κάποιες αλλαγές στο μοντέλο αυτό. Το επίπεδο των οντολογιών έχει πάρει πλέον την μορφή του συνδυασμού OWL - RDFS [26]. Οι Kifer κ.α. υποστήριξαν ότι μια μοναδική στοίβα τεχνολογιών δεν είναι «ρεαλιστική» και «βιώσιμη» και είναι καλύτερη η συμβίωση πολλαπλών ανεξάρτητων διαλειτουργικών στοιβών γλωσσών με την παράλληλη ύπαρξη της OWL και των κανόνων [27]. Οι Horrocks, Parsia κ.α. τονίζουν ότι για την αποδοχή της παράλληλης ύπαρξης DLP (Description Logic Program - Datalog) και RDFS / OWL, είναι απαραίτητη η διπλή διαστρωμάτωση («Δύο Πύργοι») και συμφώνησαν με την άποψη των πολλαπλών ανεξάρτητων διαλειτουργικών στοιβών γλωσσών [28]. Αυτό οδήγησε στην δημιουργία μιας νέας αρχιτεκτονικής, την οποία βλέπουμε στην επόμενη εικόνα: 36
Εικόνα 5: Επίπεδα Σημασιολογικού Ιστού Σήμερα (http://www.w3.org/2007/talks/0130-sb- W3CTechSemWeb/#(24)) Στη νέα αυτή αρχιτεκτονική ισχύουν όσα αναφέραμε παραπάνω, αλλά έχουμε την προσθήκη νέων στοιχείων για την κατάργηση περιορισμών, ειδικά όσον αφορά τους κανόνες, η ύπαρξη των οποίων είναι συνυφασμένη με το όραμα του Σημασιολογικού Ιστού. Με την τυποποίηση της OWL και την ανάπτυξη της RuleML, η ερευνητική δραστηριότητα έχει επικεντρωθεί στα συστήματα συλλογιστικής και στους κανόνες, με προτεινόμενες γλώσσες τις RIF, SWRL, WRL. Με την αρχιτεκτονική πολλαπλών στοιβών, μπορούν να προστίθενται νέες στοίβες, αν αυτές μπορούν να συνεργαστούν με τις ήδη υπάρχουσες, όπως είναι για παράδειγμα η γλώσσα επερωτήσεων SPARQL. Η κρυπτογράφηση αντικαθιστά τις ψηφιακές υπογραφές και μπορεί να υπάρχει παράλληλα, σε όλα τα επίπεδα της αρχιτεκτονικής. Στο υψηλότερο επίπεδο, διακρίνουμε την διεπαφή και τις εφαρμογές που απευθύνονται στον χρήστη. Στη συνέχεια, θα αναλύσουμε σύντομα κάποιες από τις παραπάνω τεχνολογίες, πολλές από τις οποίες θα χρησιμοποιηθούν και κατά την υλοποίηση της εφαρμογής. 37
3.2 Uniform resource identifier (URI) Εν συντομία, μπορούμε να πούμε ότι το URI είναι μια σειρά χαρακτήρων που χρησιμοποιούνται για τον μοναδικό προσδιορισμό μιας διαδικτυακής πηγής ή ενός πόρου, με απλό και επεκτάσιμο τρόπο. Χαρακτηρίζουν ένα αντικείμενο στο οποίο θέλουμε να αναφερθούμε, το οποίο μπορεί να είναι μια τοποθεσία, ένα πρόσωπο ή ένα βιβλίο [16]. Αν αναλύσουμε το όνομα «Uniform resource identifier» μπορούμε να συμπεράνουμε τα εξής [29]: Uniform: Με την ομοιομορφία επιτυγχάνεται η χρήση διαφορετικών τύπων αναγνωριστικών κάτω από ένα κοινό πλαίσιο, ανεξάρτητα από τους μηχανισμούς που χρησιμοποιούνται για πρόσβαση σε αυτά και η επαναχρησιμοποίηση τους σε νέες εφαρμογές, αν αυτό χρειαστεί. Η εισαγωγή νέων τύπων αναγνωριστικών μπορεί να γίνει χωρίς να επηρεαστούν τα ήδη υπάρχοντα. Resource: Δεν υπάρχει περιορισμός χρήσης του URI, όσον αφορά τον πόρο που αντιπροσωπεύει. Ένας πόρος μπορεί να είναι μια υπηρεσία, ένας άνθρωπος, μια εταιρεία ή ακόμη και αφηρημένες έννοιες όπως μια ανθρώπινη σχέση, κάποιοι μαθηματικοί τελεστές ή το άπειρο. Identifier: Με το αναγνωριστικό μπορούμε να διακρίνουμε έναν πόρο από όλους τους υπόλοιπους με μοναδικό τρόπο, αφού σε μια συμβολοσειρά περιέχει όλες τις πληροφορίες που χρειάζονται για να αναφερθούμε σε έναν πόρο. Δεν είναι απαραίτητο να ορίζουμε το αντικείμενο στο οποίο αναφερόμαστε, ούτε ότι θα έχουμε πρόσβαση στον συγκεκριμένο πόρο. Σύμφωνα με το πρότυπο 66 [29] ένα URI αποτελείται από τα εξής τμήματα: foo://example.com:8042/over/there?name=ferret#nose \_/ \ /\ / \ / \ / scheme authority path query fragment Ένα παράδειγμα URI για την εταιρεία Nikon είναι: http://dbpedia.org/page/nikon. Η χρήση των URI είναι απαραίτητη για την πλήρη αξιοποίηση των τεχνολογιών του Σημασιολογικού Ιστού, αφού προσφέρει ευελιξία, έτσι ώστε ο καθένας να μπορεί να μιλήσει για οτιδήποτε ανά πάσα στιγμή (ΑΑΑ - Anyone can say Anything about Any topic) [30]. 38
3.3 Extensible Markup Language (XML) H XML είναι μία γλώσσα σήμανσης (markup language) η οποία περιέχει ένα σύνολο κανόνων για την ηλεκτρονική κωδικοποίηση κειμένων και ορίζεται στην προδιαγραφή XML 1.0 (XML 1.0 Specification) του διεθνή οργανισμού προτύπων W3C [31]. Έχει αρκετά κοινά με την HTML, αφού αποτελούν και οι δύο γλώσσες σήμανσης, αναπαριστώντας πληροφορίες σχετικά με κάποιο συγκεκριμένο περιεχόμενο, βασίζονται στην χρήση ετικετών (tags) και είναι αρκετά ευανάγνωστες από τον άνθρωπο [16]. Αποτελεί ένα δομημένο έγγραφο με βάση της ετικέτες και έχει ιεραρχική δομή. Η XML δημιουργήθηκε με σκοπό να ξεπεραστούν κάποιες αδυναμίες της HTML, όπως η μη ύπαρξη κατάλληλης δομής στις πληροφορίες, αναγνωρίσιμης από τις μηχανές και περιγράφει με σαφήνεια τις πληροφορίες και κάποιες συσχετίσεις μεταξύ τους και όχι απλά την εμφάνισή τους. Με την χρήση της XML μπορεί να γίνει επεξεργασία των πληροφοριών, έτσι ώστε να χρησιμοποιηθούν από διάφορες εφαρμογές. Μπορούμε να την χαρακτηρίσουμε ως μεταγλώσσα που επιτρέπει την αναπαράσταση δομημένων πληροφοριών στον Ιστό, την ανταλλαγή τους μεταξύ διαφόρων εφαρμογών και την χρήση τους από αυτές, καθώς και την προσπέλασή τους από πράκτορες λογισμικού. Η XML έχει μια συγκεκριμένη μορφή. Στην αρχή των εγγράφων XML συνήθως γίνεται αναφορά στην έκδοση και σε εξωτερικούς συνδέσμους που χρησιμοποιούνται. Με τα στοιχεία (elements) μπορούμε να παρουσιάσουμε οτιδήποτε μας ενδιαφέρει και αποτελούν το βασικό χαρακτηριστικό της γλώσσας. Τα στοιχεία αυτά μπορούν να περιέχουν κάποιες ιδιότητες (attributes), που περιγράφουν κάποια χαρακτηριστικά. Οι ιδιότητες μπορούν επίσης να παρουσιάζονται σαν στοιχεία και σε οποιοδήποτε σημείο μπορούμε να εισάγουμε σχόλια, όπως και σε κάθε γλώσσα προγραμματισμού. Η χρήση της ετικέτας κλεισίματος είναι υποχρεωτική, σε αντίθεση με την HTML και μπορούμε να ορίσουμε κενά στοιχεία, αλλά όχι επικαλυπτόμενα. Οι συντακτικοί κανόνες που έχουν καθοριστεί από οργανισμούς όπως το w3c.org πρέπει να τηρούνται αυστηρά και είναι καλό να διατηρείται μια ιεραρχική δομή τύπου δέντρου, κατά την σύνταξη της XML και να διαχωρίζονται το περιεχόμενο και η δομή από την μορφοποίηση. Η ιεραρχική δομή διευκολύνει την προσπέλαση και την τροποποίηση και προσθήκη πληροφοριών. 39
Στο παρακάτω παράδειγμα [16] μπορούμε να δούμε πως αναπαριστάται ο δεύτερος νόμος του Νεύτωνα ( F = ma) σε HTML και XML: HTML: <h2>relationship force-mass</h2> <i>f = M a</i> XML: <?xml version="1.0" encoding="utf-16"?> <equation> <meaning>relationship force-mass</meaning> <leftside>f</leftside> <rightside>m a</rightside> <!-- This is a comment --> </equation> Στην μορφή XML μπορούμε να διακρίνουμε ότι έχουμε ένα στοιχείο (element) equation από τις ετικέτες ανοίγματος και κλεισίματος(< >, </ >) και αν αυτό ήταν το μοναδικό στοιχείο θα ήταν και το root element. Μας δίνονται πληροφορίες όσον αφορά την σημασία (meaning) και τα μέρη της εξίσωσης (leftside, rightside). Επίσης, έχουμε και το σχόλιο This is a comment. Ακόμη και από αυτό το απλό παράδειγμα μπορούμε να κατανοήσουμε την χρησιμότητα της XML και τα πλεονεκτήματα που έχει σε σχέση με την HTML, όσον αφορά την αναπαράσταση περιεχομένου και την πρόσβαση σε αυτό από τις μηχανές. Στο δομημένο έγγραφο XML μπορούμε να περιγράψουμε στοιχεία και τις ιδιότητές τους με τρόπο που είναι επεκτάσιμος από τον χρήστη. Η χρήση των ετικετών προσφέρει μεγάλη ευελιξία, αφού το περιεχόμενο προσαρμόζεται ανάλογα με την εφαρμογή και ο διαμοιρασμός των εγγράφων XML μπορεί να γίνει με χρήση των περισσοτέρων πρωτοκόλλων μετάδοσης. Με την χρήση γλωσσών επερωτήσεων, όπως είναι οι XQL, XQuery μπορούμε να ανακτήσουμε πληροφορίες από ένα έγγραφο XML, όπως θα κάναμε σε μία σχεσιακή βάση δεδομένων. Η XML μπορεί να χρησιμοποιηθεί από τις επιχειρήσεις ως μια κοινή πλατφόρμα για την μεταφορά δεδομένων μεταξύ των εφαρμογών, με σκοπό την καθολική συμβατότητα. 40
3.4 Resource Description Framework (RDF) Η γλώσσα RDF είναι μια μέθοδος για την έκφραση γνώσης και το θεμέλιο του Σημασιολογικού Ιστού, με σκοπό οι εφαρμογές να χρησιμοποιούν κατανεμημένη και δομημένη πληροφορία που μπορεί να βρίσκεται οπουδήποτε στον Παγκόσμιο Ιστό. Η έκφραση μοντέλων δεδομένων σε προτάσεις μπορεί να γίνει με τη χρήση RDF. Μια τριπλέτα RDF αποτελείται από τα εξής μέρη: Υποκείμενο - Κατηγόρημα Αντικείμενο (Subject Predicate Object ή Subject Attribute Value), δηλαδή, ένα υποκείμενο έχει μια ιδιότητα, η οποία με την σειρά της έχει μια συγκεκριμένη τιμή και μπορούμε, επίσης, να δηλώσουμε ότι ένα υποκείμενο έχει έναν συγκεκριμένο τύπο [16]. Υποδηλώνεται με αυτόν τον τρόπο μια σχέση μεταξύ του Υποκειμένου και του Αντικειμένου. Κάθε τριπλέτα RDF μπορεί να αποτελεί μέρος μιας άλλης τριπλέτας, σαν τιμή ή υποκείμενο, με την δημιουργία εμφωλευμένων ή αλυσιδωτών γράφων, πράγμα που επιτρέπει να συνδυαστούν ήδη υπάρχουσες προτάσεις με άλλες, για παράδειγμα στον Ιστό. Υποκείμενο Κατηγόρημα Αντικείμενο Εικόνα 6: RDF Triple Κάθε κόμβος της εικόνας 6 μπορεί να είναι ένα URI, μια τιμή ή απλά κενός. Το υποκείμενο μπορεί να είναι ένα URI ή ένας κενός κόμβος, το κατηγόρημα είναι ένα URI και το αντικείμενο αποτελείται από ένα URI ή περιέχει μία τιμή ή μπορεί να είναι απλά κενό. Αν οι κόμβοι περιέχουν URI, συνήθως αυτά έχουν ως κατάληξη μια λέξη η οποία περιγράφει το αντικείμενο ή υποκείμενο (π.χ. http://www.famouswriters.org/twain/mark ) και στο κατηγόρημα, την σχέση μεταξύ τους. Με την γλώσσα RDF, μπορούμε να παρέχουμε ένα βασικό μοντέλο για τα δεδομένα του Ιστού και όχι έναν σημασιολογικό μηχανισμό για μοντελοποίηση δεδομένων και καθορισμό ιδιοτήτων. Είναι πιθανό οι όροι μίας οντολογίας ή γενικότερα ενός γνωσιακού αντικειμένου να είναι συγκεντρωμένοι σε έναν συγκεκριμένο ιστόχωρο, ο οποίος αποκαλείται και λεξιλόγιο της οντολογίας. Σε αυτές τις περιπτώσεις, η τελευταία λέξη του URI κάθε στοιχείου χωρίζεται με τον χαρακτήρα #,(http://www.description.org/schema#book). Μια τιμή (literal) είναι μία 41
συμβολοσειρά Unicode χαρακτήρων και μπορεί να περιλαμβάνει αριθμούς, ημερομηνίες κ.λπ. Η σύνταξη μιας τριπλέτας RDF ακολουθεί το πρότυπο XML, το οποίο μας δίνει δυνατότητα πολλών εναλλακτικών τρόπων έκφρασης μιας πρότασης, αναπαράστασης της γνώσης και μοντελοποίησης της πληροφορίας. Για παράδειγμα: <rdf:description rdf:about="http://www.famouswriters.org/twain/mark"> <s:hasname>mark Twain</s:hasName> <s:haswritten rdf:resource="http://www.books.org/isbn0001047582"/> </rdf:description> <rdf:description rdf:about="http://www.books.org/isbn0001047582"> <s:title>the Adventures of Tom Sawyer</s:title> <rdf:type rdf:resource="http://www.description.org/schema#book "/> </rdf:description> Οι ετικέτες XML που χρησιμοποιούνται στο πλαίσιο της RDF αλλάζουν και προσαρμόζονται ανάλογα με το τι θέλουμε να περιγράψουμε. Οι ετικέτες αυτές είναι δυνατό να οργανωθούν σε ιεραρχίες για να περιγράφονται καλύτερα οι έννοιες του εννοιολογικού πεδίου που μας απασχολεί και τα χαρακτηριστικά τους. Σε ένα ολοκληρωμένο έγγραφο RDF μπορούμε να συμπεριλάβουμε επιπλέον πληροφορία για την περιγραφή κάθε στοιχείου, παρέχοντας μία διεύθυνση που το αντιστοιχίζει σε έναν πόρο στο διαδίκτυο. Με τον τρόπο αυτό μπορούμε να περιγράψουμε εκφράσεις όπως: «η ιστοσελίδα http://www.test.com/aa είναι μια σελίδα που δημιουργήθηκε τον Δεκέμβρη του 2013 από τον Αθανάσιο Αντωνίου, ο οποίος είναι 28 χρονών και διαμένει στην Θεσσαλονίκη». Στο συγκεκριμένο παράδειγμα, το υποκείμενο είναι η ιστοσελίδα με URI www.test.com/aa και αντικείμενα είναι: Σελίδα, με κατηγόρημα «έχει μορφή» με URI: http://www.test.com/data/type Δεκέμβριος του 2013, με κατηγόρημα «δημιουργήθηκε» με URI: http://www.test.com/data/date 42
Δημιουργός, με κατηγόρημα «έχει γραφεί» με URI: http://www.test.com/data/creator Το αντικείμενο «δημιουργός» μπορεί να έχει ως τύπο (http://www.w3.org/1999/02/22-rdf-syntax-ns#type) ένα πρόσωπο με URI: http://www.test.com/data/person. Για τον ορισμό του τύπου χρησιμοποιήσαμε ένα γενικά αποδεκτό URI από τον οργανισμό W3C. Τα υπόλοιπα URI του domain http://www.test.com μπορεί να τα έχουμε δημοσιεύσει για την προσθήκη μεταδεδομένων στην σελίδα ή την ενσωμάτωση οντολογίας. Με τον τρόπο αυτό ορίζουμε ότι ένα υποκείμενο Α είναι τύπου αντικειμένου Β, με σχέση της μορφής isa. Οι σχέσεις αυτές, σε γλώσσες, όπως η Java για παράδειγμα, μοιάζουν με δηλώσεις μεταβλητών (π.χ. μεταβλητή - αντικείμενο τύπου creator), ενώ στις οντολογίες χρησιμοποιείται η αντίστοιχη τριπλέτα. Αν επανέλθουμε στο παράδειγμά μας και θέσουμε ως υποκείμενο τον δημιουργό, μπορούμε να διακρίνουμε τα αντικείμενα με τιμές: Αθανάσιος Αντωνίου, με κατηγόρημα «ονομάζεται» και URI: http://www.test.com/data/creatorname 28, με κατηγόρημα είναι ετών και URI: http://www.test.com/data/creatorage Θεσσαλονίκη, με κατηγόρημα διαμένει και URI: http://www.test.com/data/creatorcity Ο δημιουργός είναι μια οντότητα, η οποία περιγράφεται από κάποιες ιδιότητες και είναι συγκεκριμένου τύπου (person). Για την αναφορά σε μια οντότητα με όλες τις τριπλέτες που αυτή περιλαμβάνει, χρησιμοποιούμε ένα μοναδικό κλειδί για τον συγκεκριμένο κόμβο. Τέτοια κλειδιά παράγονται συνήθως αυτόματα από εφαρμογές δημιουργίας οντολογιών με σκοπό να δημιουργηθεί ένας σύνδεσμος για τις σχέσεις μεταξύ των διαφόρων οντοτήτων εννοιών, έτσι ώστε να είναι εύκολη οι αναφορά σε αυτές. Με την χρήση του κλειδιού ως υποκείμενο μπορούμε να δημιουργήσουμε τριπλέτες για την περιγραφή της οντότητας. Για την αναπαράσταση γνώσης, εννοιών ή οντοτήτων μπορούμε, εν ολίγοις, να δημιουργούμε βασικές τριπλέτες και να τις αποθηκεύσουμε σε ένα έγγραφο RDF ή σε μια βάση δεδομένων ως ένα μέσο για την αναπαράσταση οντολογιών. Στην εικόνα που ακολουθεί μπορούμε να δούμε τον γράφο RDF για το παράδειγμα της ιστοσελίδας που χρησιμοποιήσαμε παραπάνω, ο οποίος θα έχει την εξής μορφή: 43
www.test.com/aa http://www.test.com/data/type http://www.test.com/data/date Σελίδα http://www.test.com/data/creatorcity http://www.test.com/data/creator Δεκέμβρης 2013 Θεσσαλονίκη http://www.test.com /data/creatorage http://www.w3.org/1999/02/22-rdfsyntax-ns#type http://www.test.com/data/person 28 http://www.test.com/data/creatorname Αντωνίου Αθανάσιος Εικόνα 7: Γράφος RDF, παράδειγμα ιστοσελίδας 44
3.5 RDF Schema (RDFS) To RDFS μπορούμε να πούμε ότι αποτελεί το πρότυπο αναπαράστασης της RDF, για να χρησιμοποιηθεί για την σημασιολογική περιγραφή του περιεχομένου του Ιστού. Καθορίζει, δηλαδή το βασικό λεξιλόγιο που χρησιμοποιείται για την περιγραφή οντολογιών, με σκοπό την κατάλληλη δόμηση πόρων RDF, οι οποίοι μπορούν στην συνέχεια να αποθηκευτούν σε μια σημασιολογική αποθήκη με σκοπό την ανάκτησή τους μέσω μιας γλώσσας επερωτήσεων, όπως η SPARQL. Με την χρήση ενός σχήματος μπορούμε να συμπεράνουμε αν κάποιο έγγραφο τηρεί κάποιους κανόνες, να ερμηνεύσουμε συγκεκριμένα δεδομένα ή να οργανώσουμε την πληροφορία που έχουμε στην κατοχή μας, δηλαδή - σε γενικές γραμμές - να μοντελοποιήσουμε [30]. Με το RDFS επεκτείνουμε την RDF με την προσθήκη πόρων και νέων τύπων αντικειμένων. Οι βασικές κλάσεις του RDF Schema είναι οι εξής: rdfs:resource, rdfs:class, rdfs:literal, rdfs:property, rdfs:statement. Αυτές αφορούν τους πόρους, τις κλάσεις, τα λεκτικά, τις ιδιότητες και τις προτάσεις, αντίστοιχα. Οι κλάσεις αυτές μπορούν να έχουν μεταξύ τους συσχετίσεις τύπου: rdf:type, που συνδέει έναν πόρο με μια κλάση, rdfs:subclassof, rdfs:subclassof, rdfs:domain ότι τα μέλη μιας κλάσης συμπεριλαμβάνονται σε μια άλλη, rdfs:subpropertyof, για τον τρόπο με τον οποίο δύο ιδιότητες συσχετίζονται μεταξύ τους, rdfs:label, για τον καθορισμό του ονόματος ενός πόρου σε μορφή αναγνώσιμη από τον άνθρωπο και rdfs:comment, που αφορά την περιγραφή ενός πόρου σε μορφή σχολίου. Επίσης, είναι διαθέσιμες οι ιδιότητες rdfs:domain και rdfs:range, που μας επιτρέπουν να περιγράψουμε την σχέση μεταξύ ιδιοτήτων και κλάσεων με τον καθορισμό του πεδίο ορισμού μιας ιδιότητας και του πεδίου τιμών της, αντίστοιχα. Τέλος, με την ιδιότητα rdfs:seealso μπορούμε να συνδέσουμε ένα πόρο με άλλον και με την rdfs:isdefinedby έναν πόρο με τον ορισμό του. Σε σύγκριση με τον αντικειμενοστραφή προγραμματισμό, το RDFS έχει κάποιες ιδιαιτερότητες όσον αφορά την έννοια της κληρονομικότητας. Σε γενικές γραμμές, μπορούμε να πούμε ότι η κληρονομικότητα αφορά το γεγονός ότι μια μέθοδος ή μια μεταβλητή που ορίζεται σε μια κλάση π.χ. στην Java, μπορεί να χρησιμοποιηθεί και από τις υποκλάσεις της. Στο RDFS, αυτό που φαίνεται σαν κληρονομικότητα, στην πραγματικότητα είναι κανόνες συμπερασματικής λογικής, ιδιαίτερα στο γεγονός ότι 45
τα μέλη μιας υποκλάσης αποτελούν και μέλη μιας κλάσης, αφού αν ένα στιγμιότυπο μιας υποκλάσης είναι στιγμιότυπο και της κλάσης γονέα, τότε ότι ισχύει και για τα μέλη της αρχικής κλάσης, θα ισχύει και για όλα τα μέλη της υποκλάσης [30]. Στο Σημασιολογικό Ιστό, μια ιδιότητα μπορεί να χρησιμοποιηθεί οπουδήποτε και για τον λόγο αυτό είναι σημαντική η ανεξαρτησία της από οποιαδήποτε κλάση και ο καθορισμός μέσω των συσχετίσεων σχετικά με τα συμπεράσματα που μπορούμε να βγάλουμε για την ιδιότητα αυτή. Το RDFS αποτελεί ένα πλαίσιο περιγραφής πόρων με σκοπό την δόμηση της RDF για την αναπαράσταση της γνώσης και αποτελείται από URIs. Αν και οι κανόνες και οι τρόποι έκφρασης του RDFS φαίνονται αρχικά λίγοι και ίσως απλοϊκοί, μας επιτρέπει την ανάλυση ποικιλίας θεμάτων ολοκλήρωσης και διασύνδεσης. Μπορούν να εκτελεστούν λογικές πράξεις όπως είναι η ένωση, η τομή και να δημιουργηθούν συγκεκριμένοι συνδυασμοί από σύνολα με κάποιες ιδιότητες. Με την χρήση RDFS και κανόνων εξαγωγής συμπερασμάτων μπορούμε να προσδιορίσουμε αν κατά την σύνδεση γνωστικών θεμάτων, το αποτέλεσμα που λαμβάνουμε είναι το επιθυμητό ή ακατάλληλο. Το RDFS όμως διαθέτει και κάποια μειονεκτήματα. Η εμβέλεια όλων των ιδιοτήτων ορίζεται από το rdfs: range και δεν είναι δυνατό να επιβάλλουμε περιορισμούς στο πλήθος διακριτών τιμών μιας ιδιότητας. Δεν μπορούμε να δημιουργήσουμε έγκυρες κλάσεις μέσω λογικών συνδυασμών κλάσεων, με πράξεις όπως η τομή, η ένωση και το συμπλήρωμα και να δηλώσουμε κλάσεις, οι οποίες είναι ξένες μεταξύ τους. Έτσι, προέκυψε η ανάγκη για μια νέα γλώσσα οντολογιών, όπως είναι η OWL που θα δούμε στην συνέχεια. Εικόνα 8: Σύγχρονες γλώσσες οντολογιών (http://www.jot.fm/issues/issue_2006_11/article4/) 46
3.6 Web Ontology Language (OWL) 3.6.1 Γενικά για τη γλώσσα OWL Το 2000 η DARPA ξεκίνησε την ανάπτυξη της DAML, η οποία σε συνδυασμό με την OIL παρήγαγε την DAML+OIL ως επέκταση του RDFS. Η DAML+OIL, όπως και η OIL επιτρέπει την τομή, ένωση και άρνηση μεταξύ εκφράσεων κλάσεων και επίσης έχει τη δυνατότητα να θέτει περιορισμούς σε αριθμούς συνόλων. Η OWL ξεκίνησε ως έρευνα για την αναθεώρηση των DAML και OIL, με στόχο την αξιοποίησή τους στον σημασιολογικό ιστό [32]. Με την γλώσσα οντολογιών OWL προσπαθούμε να πετύχουμε ότι και με το RDFS, να ορίσουμε, δηλαδή, οντολογίες για την περιγραφή ενός πεδίου γνώσης, οι οποίες περιέχουν κλάσεις, ιδιότητες και τις σχέσεις μεταξύ τους, με την διαφορά ότι με την OWL μας δίνεται η δυνατότητα να εκφράσουμε πιο περίπλοκες συσχετίσεις, δημιουργώντας, με τον τρόπο αυτό, εφαρμογές που περιέχουν συστήματα και κανόνες συλλογιστικής [17]. Εν ολίγοις, OWL είναι η επέκταση του RDFS, περιέχει το λεξιλόγιο του, αλλά προσφέρει μεγαλύτερη εκφραστικότητα στην οποία ο κόσμος είναι ένα σύνολο από κλάσεις, ιδιότητες και άτομα. Για την καλύτερη εξαγωγή συμπερασμάτων αυξανόμενης πολυπλοκότητας και την ευκολία έκφρασης, ο W3C διαχωρίζει την OWL σε τρεις γλώσσες με διαφορετική εκφραστική ισχύ: OWL Lite, OWL DL, OWL Full. Η πρώτη έχει την μικρότερη ισχύ και η τρίτη την μεγαλύτερη, όσον αφορά την εκφραστικότητα. Όσον αφορά την συμβατότητα μεταξύ τους, μπορούμε να πούμε ότι κάθε έγκυρη οντολογία και κάθε έγκυρο συμπέρασμα OWL Lite είναι έγκυρα και στην OWL DL και αντίστοιχα κάθε έγκυρο συμπέρασμα και κάθε έγκυρη οντολογία σε OWL DL είναι έγκυρα και στην OWL Full. Οι τρεις αυτές υπογλώσσες ακολουθούν σύνταξη RDF και η μία αποτελεί υποσύνολο της άλλης. Η OWL Lite είναι πιο εύκολη στην εκμάθηση και έχει σχεδιαστεί με σκοπό να υποστηρίξει την ανάγκη για ιεραρχία ταξινόμησης και απλούς περιορισμούς ιδιοτήτων και περιέχει ένα υποσύνολο του λεξιλογίου της OWL, αφού δεν δηλώνονται σε αυτή οι αριθμημένες κλάσεις, οι αμοιβαία αποκλειόμενες και ο πληθάριθμος (enumerated, disjoint, cardinality) [33]. Μια οντολογία OWL Lite μπορεί να επιτρέπει βασικές έννοιες Περιγραφικής Λογικής, μεταβατικές και 47
αντίστροφες ιδιότητες, αλλά ικανοποιεί περιορισμούς όπως είναι η μη χρήση ιδιοτήτων όπως owl:oneof, owl:disjointwith, owl:unionof, owl:complementof και owl:hasvalue, ο πληθάριθμος μπορεί να έχει τις τιμές 0-1 και δεν επιτρέπονται οι δηλώσεις owl:equivalentclass μεταξύ ανώνυμων κλάσεων [34]. Με την απλότητα της στην έκφραση και την κατανόηση, η OWL Lite, χρησιμοποιείται σε περιπτώσεις όπου υπάρχει ανάγκη για ταχύτητα. Η OWL DL παρέχει μεγαλύτερη εκφραστικότητα, διατηρώντας ως ένα βαθμό υπολογιστική πληρότητα, επιτρέποντας, έτσι, την υποστήριξη συλλογισμών, αλλά χάνοντας την συμβατότητα της με την RDF. Κάθε έγκυρο έγγραφο OWL DL είναι και έγκυρο έγγραφο RDF, αλλά ένα έγγραφο RDF θα πρέπει να τροποποιηθεί και να επεκταθεί αρκετά, έτσι ώστε να καταστεί συμβατό με την OWL DL. Τα αρχικά DL προέρχονται από τα συστήματα Περιγραφικής Λογικής (Description Logic), για την περιγραφή τάξεων αντικειμένων και την πραγματοποίηση ελέγχων υπαγωγής και ταξινόμησης ανάμεσα σε τάξεις και οντότητες. Η οντολογία που χρησιμοποιείται στην εργασία αυτή, προέρχεται από μια παλαιότερη εργασία [33] και κάνει χρήση της υπογλώσσας OWL DL. Η OWL DL έχει ιδιότητες επισημείωσης και είναι περιγραφική, αφού μπορούμε να χρησιμοποιήσουμε συστήματα συλλογιστικής. Το λεξικό που χρησιμοποιείται σε αυτή είναι υποσύνολο της OWL Full και ικανοποιεί κάποιους περιορισμούς όπως [34]: Ένας πόρος μπορεί να είναι κάτι συγκεκριμένο και μόνο αυτό. Για παράδειγμα, μια κλάση μπορεί να είναι μόνο μια κλάση και όχι παράλληλα και τύπος δεδομένων ή αντικείμενο, μια ιδιότητα μπορεί να έχει συγκεκριμένες τιμές και όχι μερικές από έναν τύπο δεδομένων και άλλες από μια κλάση. Οι ιδιότητες τύπου δεδομένων και οι ιδιότητες αντικειμένου είναι αμοιβαία αποκλειόμενα σύνολα. Οι περιορισμοί πληθικότητας δεν είναι μεταβατικές ιδιότητες. Δε μπορούν να τεθούν περιορισμοί από μεταβατικές ιδιότητες στα στοιχεία συνόλων. Χρήση ανώνυμων κλάσεων γίνεται μόνο για range της rdfs:subclassof και domain και range των owl:equivalentclass και owl:disjointwith. Η OWL Full χρησιμοποιεί όλες τις θεμελιώδεις αρχές των άλλων υπογλωσσών και σε συνδυασμό με την RDF και το RDF Schema, επιτρέπει μέγιστη εκφραστικότητα 48
χωρίς όμως εγγυήσεις επιλυσιμότητας, αφού είναι τόσο ισχυρή που δεν μπορεί να παρέχει αποδοτική υποστήριξη συλλογισμών. Η OWL Full είναι αναδρομικά συμβατή με RDF, RDFS, OWL Lite και OWL DL, περιέχει ολόκληρη τη γλώσσα OWL και χρησιμοποιεί όλα τα δομικά συστατικά της. Οποιοδήποτε έγγραφο είναι έγκυρο στις παραπάνω γλώσσες είναι έγκυρο και στην OWL Full. Το ίδιο ισχύει και για τα συμπεράσματα. Εξαιτίας όμως αυτής της εκφραστικότητας δεν είναι σίγουρο ότι θα λήγουν οι διαδικασίες συλλογιστικής σε πεπερασμένο χρόνο [34]. 3.6.2 Περιγραφή Σύνταξη της OWL Η σύνταξη της OWL βασίζεται στην XML και έχει τα παρακάτω χαρακτηριστικά, σε γενικές γραμμές (τα παραδείγματα προέρχονται από [16] [33]). Επικεφαλίδες: Στην αρχή έχουμε καθορισμό των namespaces και ακολουθούν κάποιοι ισχυρισμοί που αφορούν την οντολογία. <rdf:rdf xmlns:owl ="http://www.w3.org/2002/07/owl#" xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntaxns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd ="http://www.w3.org/2001/xmlschema#"> <owl:ontology rdf:about=""> <rdfs:comment>an example OWL ontology</rdfs:comment> <owl:priorversion rdf:resource="http://www.mydomain.org/uni-ns-old"/> <owl:imports rdf:resource="http://www.mydomain.org/persons"/> <rdfs:label>university Ontology</rdfs:label> </owl:ontology> Κλάσεις: Στην OWL έχουμε κλάσεις (owl:class) και υποκλάσεις (rdfs:subclass) για να υποδηλώσουμε ιεραρχίες. Για να δηλώσουμε την απόλυτη υπερκλάση Thing γράφουμε owl:thing και αντίστοιχα για την απόλυτη υποκλάση Nothing, owl:nothing. 49
<owl:class rdf:id="associateprofessor"> <rdfs:subclassof rdf:resource="#academicstaffmember"/> </owl:class> Αν έχουμε ισοδυναμία, αυτή ορίζεται με owl:equivalentclass. Συνήθως, συναντούμε ισοδυναμία όταν κάποιες έννοιες που είναι ισοδύναμες περιέχουν κλάσεις με διαφορετικά ονόματα. <owl:class rdf:id="faculty"> <owl:equivalentclass rdf:resource="#academicstaffmember"/> </owl:class> Ιδιότητες: Οι ιδιότητες μπορεί να είναι: ιδιότητες αντικειμένων, που μπορούν να συνδέουν αντικείμενα με άλλα αντικείμενα <owl:objectproperty rdf:id="istaughtby"> <rdfs:domain rdf:resource="#course"/> <rdfs:range rdf:resource="#academicstaffmember"/> <rdfs:subpropertyof rdf:resource="#involves"/> </owl:objectproperty> και ιδιότητες τύπων δεδομένων, που συνδέουν αντικείμενα με κάποιες τιμές. Οι τύποι δεδομένων αν και δεν υπάρχουν στην OWL, ορίζονται στο XML Schema. Για παράδειγμα, για τον τύπο datetime έχουμε: <owl:datatypeproperty rdf:about = "#timestamp"> <rdfs:domain rdf:resource = "#Measurement"/> <rdf:range rdf:resource = "&xsd;datetime"/> </owl:datatypeproperty> Επίσης, μπορούμε να θέσουμε κάποιους περιορισμούς με owl:restriction, όπως είναι: rdfs:subclassof: για να ορίσουμε μια υποκλάση owl:onproperty: για την ιδιότητα στην οποία εφαρμόζεται ο περιορισμός owl:allvaluesfrom: για να καθορίσουμε την κλάση από την οποία προέρχονται όλες οι τιμές μιας ιδιότητας 50
owl:somevaluesfrom: κάποιες από τις τιμές μιας ιδιότητας owl:hasvalue: ορίζει μια συγκεκριμένη τιμή μιας ιδιότητας Ακολουθεί ένα παράδειγμα περιορισμού: <owl:class rdf:about="#firstyearcourse"> <rdfs:subclassof> <owl:restriction> <owl:onproperty rdf:resource="#istaughtby"/> <owl:allvaluesfrom rdf:resource="#professor"/> </owl:restriction> </rdfs:subclassof> </owl:class> Κάποιες ιδιότητες μπορούν να οριστούν απευθείας σε κάποια στοιχεία, όπως είναι οι: owl:transitiveproperty, owl:symmetricproperty, owl:functionalproperty, owl:inversefunctionalproperty. Για παράδειγμα: <owl:objectproperty rdf:id="hassamegradeas"> <rdf:type rdf:resource="&owl;transitiveproperty" /> <rdf:type rdf:resource="&owl;symmetricproperty" /> <rdfs:domain rdf:resource="#student" /> <rdfs:range rdf:resource="#student" /> </owl:objectproperty> Μπορούμε να εκφράσουμε συνδυασμούς κλάσεων με την δημιουργία νέων κλάσεων, με πράξεις λογικής από την θεωρία συνόλων, όπως είναι η τομή (owl:intersectionof), η ένωση (owl:unionof) και το συμπλήρωμα (owl:complementof). Έχουμε, επίσης, τη δυνατότητα να ορίσουμε δύο ξένες κλάσεις (owl:disjointwith) και μία κλάση μέσω απαρίθμησης των οντοτήτων από τις οποίες αποτελείται (owl:oneof). Για τα στιγμιότυπα μιας κλάσης μπορούμε να γράψουμε: <academicstaffmember rdf:id="949352"> <uni:age rdf:datatype="&xsd;integer">39</uni:age> </academicstaffmember> Τέλος, αν θέλουμε να προσθέσουμε σχόλια, χρησιμοποιούμε τις εξής ιδιότητες: owl:versioninfo : πληροφορίες για την έκδοση της οντολογίας (με τη μορφή σχολίων φυσικής γλώσσας) rdfs:label : περιγραφή σε φυσική γλώσσα για κλάσεις, οντότητες και ιδιότητες rdfs:comment : εισαγωγή σχολίου rdfs:seealso : περισσότερες σχετικές πληροφορίες rdfs:isdefinedby : καθορισμός των σχετικών διευθύνσεων που παρέχουν πληροφορίες για την οντολογία. 51
3.7 SPARQL Protocol and RDF Query Language 3.7.1 Γενικά για την SPARQL Με την RDF μπορούμε να δημιουργήσουμε δομημένο περιεχόμενο, το οποίο είναι αναγνώσιμο από τις μηχανές. Με τις οντολογίες σε RDFS και OWL μπορούμε να περιγράψουμε και να προσδιορίσουμε τα δεδομένα τα οποία είναι σε μορφή RDF. Για να εκμεταλλευτούμε το περιεχόμενο του Σημασιολογικού Ιστού θα πρέπει να χρησιμοποιήσουμε μια γλώσσα επερωτήσεων (όπως είναι π.χ. η SQL στις βάσεις δεδομένων). Η SPARQL είναι μια γλώσσα ερωτημάτων σε δεδομένα RDF για ανάκτηση και διαχείριση τους και παρέχει ένα πρωτόκολλο για την πραγματοποίηση των ερωτημάτων αυτών σε ένα απομακρυσμένο σύνολο δεδομένων RDF. Με τη γλώσσα αυτή μπορούμε να δημιουργήσουμε ερωτήματα σε γράφους ή απομακρυσμένους εξυπηρετητές RDF και να λάβουμε συγκεκριμένες πληροφορίες ή αναφορές από σύνολα δεδομένων. Η SPARQL είναι σχεδιασμένη να λειτουργεί μεταξύ ασύνδετων πόρων σε ένα δίκτυο, αποτελεί βασική τεχνολογία Σημασιολογικού Ιστού και καθιερώθηκε ως πρότυπο από το W3C SPARQL Working Group (πρώην RDF Data Access Working Group) στις 15 Ιανουαρίου 2008 [35]. Για να δημιουργήσουμε τα κατάλληλα ερωτήματα, τα δεδομένα μας πρέπει να είναι αποθηκευμένα σε μια αποθήκη δεδομένων RDF (RDF data store, RDF database, triple store), η οποία δεν είναι παρά ένα σύστημα βάσης δεδομένων για την αποθήκευση και ανάκτηση προτάσεων δηλώσεων RDF. Μια αποθήκη δεδομένων RDF, προσφέρει ένα μέσο αποθήκευσης για κάθε εφαρμογή που διαχειρίζεται περιεχόμενο RDF και ένα API (Application programming interface) το οποίο, εν ολίγοις, επιτρέπει σε εφαρμογές να προσθέσουν τριπλέτες RDF, να πραγματοποιήσουν ερωτήματα και να διαγράψουν τριπλέτες RDF [17]. Με την έννοια του endpoint, περιγράφουμε μια διεπαφή (interface), η οποία επιτρέπει σε χρήστες ή προγράμματα να πραγματοποιήσουν ερωτήματα σε μια αποθήκη δεδομένων RDF και να λάβουν αποτελέσματα σε κάποια αναγνωρίσιμη μορφή. Με το πρωτόκολλο SPARQL μπορούμε να μεταβιβάσουμε ερωτήματα και αποτελέσματα μεταξύ ενός client (πελάτη) και ενός server στον οποίο εκτίθενται τα δεδομένα με το ίδιο πρωτόκολλο. Ανάλογα με την υλοποίηση της αποθήκης δεδομένων από τον εκάστοτε προμηθευτή (Sesame, Virtuoso, Joseki), προσφέρονται και επιπλέον 52
χαρακτηριστικά όπως είναι για παράδειγμα βασική εξαγωγή συμπερασμάτων μέσω κανόνων. Στην βασική του μορφή, ένα ερώτημα SPARQL είναι ένας γράφος RDF με μεταβλητές. Η SPARQL, όπως και η RDF, βασίζεται σε τριπλέτες δεδομένων με υποκείμενο κατηγόρημα αντικείμενο, σε προτάσεις που τελειώνουν με κάτω τελεία. Μια τριπλέτα RDF μπορεί να είναι και τριπλέτα SPARQL. Η διαφορά μεταξύ τους είναι ότι η SPARQL μπορεί να περιέχει μεταβλητές σε οποιοδήποτε μέλος της πρότασης αυτής. Μια μεταβλητή SPARQL έχει σαν πρόθεμα ένα «?» ή «$», π.χ.?variable. Η διαδικασία που εκτελείται όταν γίνεται ένα ερώτημα SPARQL είναι συνοπτικά η εξής [17]: @prefix foaf: <http://xmlns.com/foaf/0.1/>. <http://danbri.org/foaf.rdf#danbri> foaf:name?name. 1. Δημιούργησε ένα resultset με μορφή άδειου RDF 2. Βρες την επόμενη τριπλέτα από τον δοσμένο γράφο RDF. Αν δεν υπάρχουν άλλες τριπλέτες εμφάνισε το resultset 3. Βρες την τιμή της ιδιότητας για τον πόρο στον οποίο αντιστοιχεί το URI. 4. Αντιστοίχησε την τιμή στην μεταβλητή που δηλώθηκε. 5. Δημιούργησε μια νέα τριπλέτα στο resultset. 6. Πήγαινε στο βήμα 2 3.7.2 Τύποι Ερωτημάτων SPARQL Όπως και στην SQL για τις σχεσιακές βάσεις δεδομένων, έτσι και στην SPARQL έχουμε κάποιους τύπους ερωτημάτων, οι οποίοι έχουν μια συγκεκριμένοι δομή και χρησιμοποιούν κάποιες εντολές και λέξεις κλειδιά. Αυτές οι εντολές και λέξεις κλειδιά δεν έχει σημασία αν θα γραφούν με μικρά ή κεφαλαία γράμματα. Σε γενικές γραμμές, ένα ερώτημα SPARQL αποτελείται από: τις δηλώσεις προθεμάτων (prefix), μια συνθήκη αποτελεσμάτων (result clause), έναν ορισμό συνόλου δεδομένων (dataset definition), τους περιορισμούς (query pattern) και τελεστές οργάνωσης αποτελεσμάτων (modifiers). Αν θέλουμε για παράδειγμα, τα ονόματα κάποιων προσώπων και τον αριθμό των φίλων τους θα κάνουμε το ερώτημα [36]: 53
PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name (COUNT(?friend) AS?count) WHERE {?person foaf:name?name.?person foaf:knows?friend. } GROUP BY?person?name Οι λέξεις κλειδιά που χρησιμοποιούνται συνήθως είναι [30][17]: PREFIX: Περιγράφει δηλώσεις προθεμάτων για συντετμημένα URIs. FROM: Επιλέγουμε σε ποιο γράφο ή σύνολο δεδομένων θα γίνει η αναζήτηση και η χρήση του είναι προαιρετική. WHERE: Προσδιορίζει τους τύπους γράφων που πρέπει να συνδυαστούν για το ερώτημα και αποτελεί το σημαντικότερο τμήμα του. Ένα πρότυπο γράφου είναι ουσιαστικά ένα RDF με μεταβλητές. UNION: Αποτελεί μια διάζευξη (OR) μεταξύ των δύο βασικών τύπων γράφων. DISTINCT: Εξαλείφει τα διπλότυπα από τον πίνακα των αποτελεσμάτων. OPTIONAL: Επιστρέφει δεδομένα αν αυτά υπάρχουν, αλλιώς τα αγνοεί. Χρησιμοποιείται γιατί μπορεί να υπάρχουν ελλιπείς πληροφορίες σε έναν γράφο RDF. ORDER BY: Καθορίζει τη σειρά των αποτελεσμάτων και μπορεί να είναι σε αύξουσα (ASC) ή φθίνουσα (DESC). LIMIT: Θέτει ένα άνω όριο για τον αριθμό των αποτελεσμάτων. OFFSET: Ορίζει ότι τα αποτελέσματα θα ξεκινήσουν μετά από έναν συγκεκριμένο αριθμό. FILTER: Περιορίζει τα αποτελέσματα που θα ανακτηθούν με βάση κάποιους περιορισμούς, με τελεστές όπως: o Λογικοί: &&,,! o Μαθηματικοί: +, -,*,/ o Συγκριτικοί: =,!=, <, >, <=, >= o SPARQL tests: isuri(), isblank(), isliteral(), bound() o SPARQL accessors: str(), lang(), datatype() o Άλλοι: sameterm(), langmatches(), regex() 54
Οι τύποι ερωτημάτων που παρέχονται από την SPARQL είναι τέσσερεις [17] [16]: SELECT για ανάκτηση δεδομένων και επιστροφή αποτελεσμάτων σε μορφή πίνακα. CONSTRUCT για την ανάκτηση δεδομένων και την μετατροπή τους σε έγκυρη μορφή RDF. ASK για έλεγχο αν υπάρχει έστω και ένα αποτέλεσμα το οποίο είναι της μορφής Αληθής / Ψευδής. DESCRIBE για την ανάκτηση ενός γράφου RDF, ο οποίος περιγράφει έναν πόρο. Τα ερωτήματα SELECT αποτελούν τον τύπο ερωτήματος που χρησιμοποιείται συχνότερα και ξεκινούν με μια σειρά από προθέματα PREFIX. Αν γράψουμε π.χ. PREFIX foaf <URI>, τότε μπορούμε να χρησιμοποιήσουμε το foaf αντί για το URI σε κάποιο μέρος του ερωτήματος. Στη συνέχεια, έχουμε την εντολή SELECT, η οποία είναι παρόμοια με την ίδια εντολή σε SQL και επιστρέφει κάποια στοιχεία από τα δεδομένα, στα οποία ισχύουν συγκεκριμένοι περιορισμοί. Με το FROM επιλέγουμε σε ποιο γράφο ή σύνολο δεδομένων θα γίνει η αναζήτηση. Με το WHERE ορίζουμε τα κριτήρια για τα δεδομένα που θα ανακτηθούν και το τύπο του γράφου που επιθυμούμε. Τέλος, μπορούμε να θέσουμε κάποιους περιορισμούς ή κάποιες τροποποιήσεις στα αποτελέσματα που θα επιστραφούν για να τα οργανώσουμε καλύτερα, με εντολές όπως OFFSET, ORDER BY, LIMIT. Ένα παράδειγμα SELECT σε SPARQL, που απαντά στο ερώτημα ποιες είναι οι πρωτεύουσες των χωρών της Ευρώπης, είναι: PREFIX onto: <http://example.com/exampleontology#> SELECT?capital?country WHERE {?x onto:cityname?capital ; onto:iscapitalof?y.?y onto:countryname?country ; onto:isincontinent onto:europe. } ORDER BY?capital Με τα ερωτήματα τύπου CONSTRUCT, έχουμε ως αποτέλεσμα έναν γράφο RDF, ο οποίος δημιουργείται με βάση κάποιο πρότυπο που καθορίζουμε στο ερώτημα. Συνήθως χρησιμοποιείται όταν θέλουμε να μετατρέψουμε έναν γράφο σε έναν νέο 55
που χρησιμοποιεί μια διαφορετική οντολογία. Αυτό μπορεί να συμβεί όταν θέλουμε να επεξεργαστούμε δεδομένα που δημιουργήθηκαν με αυτοματοποιημένες διαδικασίες ή όταν θέλουμε να συγχωνεύσουμε γράφους. Με ερωτήματα τύπου ASK, επιστρέφεται απλά ως αποτέλεσμα μια τιμή: true (αληθές) ή false (ψευδές). Για παράδειγμα, μπορούμε να κάνουμε το ερώτημα αν υπάρχει μια πόλη στο Τέξας με πληθυσμό μεγαλύτερο από 100.000, στην dbpedia (http://dbpedia.org/sparql): PREFIX rdf: <http://www.w3.org/1999/02/22-rdfsyntax-ns#> PREFIX dbp: <http://dbpedia.org/ontology/> ASK WHERE {?city rdf:type <http://dbpedia.org/class/yago/citiesintexas> ; dbp:populationtotal?poptotal. FILTER (?poptotal > 100000) } Για όλα τα ερωτήματα που θέσαμε παραπάνω, έχουμε γνώση του γράφου δεδομένων, όπως και στις παραδοσιακές βάσεις δεδομένων γνωρίζουμε την δομή των πινάκων ενός σχήματος βάσης. Με ερωτήματα τύπου DESCRIBE, μπορούμε να λάβουμε μια περιγραφή του πόρου που μας ενδιαφέρει σε μορφή γράφου. Η συμπεριφορά αυτής της εντολής εξαρτάται από το σύστημα το οποίο χρησιμοποιούμε. Για παράδειγμα, το σύστημα Virtuoso επιστρέφει έναν γράφο, όπου ο πόρος είναι είτε υποκείμενο, είτε αντικείμενο. Αυτό μπορούμε να το ελέγξουμε κάνοντας στην dbpedia το ερώτημα: DESCRIBE <http://dbpedia.org/resource/austin,_texas> Είδαμε παραπάνω τα βασικά στοιχεία της γλώσσας επερωτήσεων SPARQL. Αν συγκρίνουμε με την SQL, θα δούμε ότι υπάρχουν κάποιες βασικές διαφορές. Στην έκδοση 1, η SPARQL μπορεί απλά να ανακτήσει δεδομένα, χωρίς την δυνατότητα εισαγωγής (INSERT), ενημέρωσης (UPDATE), διαγραφής (DELETE). Επίσης, λείπουν δυνατότητες ομαδοποίησης ή αθροίσματος των δεδομένων όπως min, max, avg, sum κτλ. Πολλές από τις δυνατότητες που λείπουν προστέθηκαν στην έκδοση 1.1 και γίνεται προσπάθεια σε επόμενες εκδόσεις να προστεθούν ακόμα περισσότερες από τον επίσημο οργανισμό W3C SPARQL Working Group. Με την SPARQL, μπορούμε να κάνουμε ερωτήματα μέσω HTTP σε δεδομένα που βρίσκονται σε οποιονδήποτε διακομιστή (server) με την χρήση μιας διεπαφής στον πελάτη (client) και να τα συνδυάσουμε δυναμικά για να δημιουργήσουμε νέες χρήσιμες 56
πληροφορίες. Οι δυνατότητες που μας προσφέρει είναι απαραίτητες στην προσπάθεια που γίνεται για διασύνδεση των πληροφοριών στην εποχή του Σημασιολογικού Ιστού. 3.8 Semantic Web Rule Language (SWRL) Οι γλώσσες και τα συστήματα κανόνων χρησιμοποιούνται ευρέως σε εφαρμογές επιχειρήσεων, αλλά δεν υπάρχει αρκετή διαλειτουργικότητα μεταξύ των τωρινών συστημάτων. Η SWRL είναι μια νέα τεχνολογία Σημασιολογικού Ιστού, η οποία επεκτείνει την OWL-DL και επιτρέπει τη χρήση περιγραφικής λογικής με ορισμένα είδη κανόνων [27], ενισχύοντας με αυτόν τον τρόπο στην αφηρημένη σύνταξη της OWL και την διαλειτουργικότητα μεταξύ των εφαρμογών. Άρα, μπορούμε να πούμε ότι αυτό που προσφέρει η SWRL είναι η δήλωση κανόνων εντός μιας οντολογίας. Με την SWRL μπορούν να γραφούν κανόνες τύπου Horn, για να εξάγουμε συμπεράσματα από υπάρχουσες βάσεις γνώσεις OWL. Η γενική μορφή των κανόνων της SWRL είναι: Antecedent Consequent. Το αριστερό μέλος των κανόνων (Antecedent) ονομάζεται σώμα (body), ενώ το δεξί (Consequent) κεφαλή (head) [37]. Μεταβλητές μπορούν να υπάρχουν στο σώμα ή στην κεφαλή των κανόνων, τα ονόματά τους ξεκινούν με ένα αγγλικό ερωτηματικό (?) και οι προτεινόμενοι κανόνες είναι σε μορφή επαγωγικού συμπεράσματος. Μπορούμε να πούμε ότι ο κάθε κανόνας ερμηνεύεται ως εξής: «Όταν ισχύουν οι συνθήκες που αναφέρονται στο σώμα, θα πρέπει να ισχύουν και οι συνθήκες που προδιαγράφονται από την κεφαλή.» Ένα παράδειγμα κανόνα, αν υποθέσουμε ότι με τον συνδυασμό των ιδιοτήτων hasparent και hasbrother εννοείται η ιδιότητα hasuncle είναι [38]: hasparent(?x1,?x2) hasbrother(?x2,?x3) hasuncle(?x1,?x3) Με αφηρημένη σύνταξη το παράδειγμα αυτό γίνεται: Implies(Antecedent(hasParent (I-variable(x1)I-variable(x2)) hasbrother(i-variable(x2) I-variable(x3))) Consequent(hasUncle(I-variable(x1) I-variable(x3)))) 57
4 Εφαρμογές Σημασιολογικού Ιστού Σε αυτή την ενότητα, θα παρουσιάσουμε αρχικά ποιες είναι οι βασικές δραστηριότητες που εκτελεί ένας χρήστης κατά την χρήση διαδικτυακών εφαρμογών και σε ποιους γενικότερους τομείς μπορεί να συμβάλλει η χρήση Σημασιολογικών Τεχνολογιών. Στη συνέχεια, θα αναφερθούμε σε μερικές εφαρμογές που έχουν αναπτυχθεί από γνωστούς οργανισμούς με τη χρήση τέτοιου είδους τεχνολογιών. Μέσα από την μελέτη αυτή, σκοπός είναι να αναδείξουμε την χρησιμότητα του Σημασιολογικού Ιστού και τις δυνατότητες που δίνει για αποκεντρωμένα συστήματα με την κατάργηση ως έναν βαθμό της ανθρώπινης παρέμβασης. 4.1 Οφέλη από την εφαρμογή Σημασιολογικών Τεχνολογιών Όπως είδαμε και παραπάνω, αρχικά ο Ιστός ήταν ένα σύνολο ιστοσελίδων που παρουσίαζε περιεχόμενο στους χρήστες, σχεδόν μονόπλευρα, με σκοπό την ανάκτηση πληροφοριών. Στην συνέχεια, οι χρήστες μπορούσαν να δημιουργούν περιεχόμενο και να επικοινωνούν ο ένας με τον άλλο κατά την παραγωγή του, αντί απλά να διαβάζουν μια σελίδα. Οι κοινωνικές υπηρεσίες του Ιστού γνώρισαν σημαντική ανάπτυξη, καθώς οι χρήστες συμμετέχουν σε κοινωνικά δίκτυα, σε δωμάτια συζητήσεων, αγοράζουν προϊόντα και υπηρεσίες μέσω Internet και παρακολουθούν πολυμεσικό περιεχόμενο. Από την πλευρά των προγραμματιστών, δεν αρκεί η ανάπτυξη στατικών σελίδων, αλλά πρέπει το περιεχόμενο να ανανεώνεται δυναμικά για να καλυφθούν οι απαιτήσεις των χρηστών. Όλο και περισσότερες επαγγελματικές ιστοσελίδες ή σελίδες μεγάλων επιχειρήσεων παρέχουν δομημένα δεδομένα που αντλούνται από τις παραδοσιακές βάσεις δεδομένων μέσω διαφόρων προτύπων, έτσι ώστε να είναι δυνατή η δημιουργία εφαρμογών με την χρήση τους. Για να κατανοήσουμε καλύτερα τον τρόπο που μπορεί να ενισχύσουν οι τεχνολογίες Σημασιολογικού Ιστού την βελτίωση της χρήσης του Ιστού θα δούμε στην συνέχεια πως μπορεί να γίνει αξιοποίηση των τεχνολογιών αυτών σε κάποιες από τις βασικές λειτουργίες του. 58
Ο τρόπος που αλληλεπιδρούν οι χρήστες με τον Ιστό, κυρίως όσον αφορά το περιεχόμενό του και όχι τα πολυμέσα ή την επικοινωνία μέσω chat, αποτελεί και ένδειξη για το που πρέπει να επικεντρωθούν οι προσπάθειες για την βελτίωσή του. Η βασική χρήση αποτελείται από τρεις δραστηριότητες, ανεξάρτητα από την κατηγορία στην οποία ανήκει ο χρήστης. Αυτές επιγραμματικά είναι οι εξής: Αναζήτηση, Ενοποίηση Πληροφοριών και Εξόρυξη Δεδομένων. Η Αναζήτηση αποτελεί την πιο συχνή χρήση του διαδικτύου με σκοπό την εύρεση πληροφοριών ή πόρων. Με την σημερινή μορφή της η αναζήτηση δεν είναι αρκετά αποδοτική, καθώς στηρίζεται στην εύρεση σελίδων που περιέχουν τον όρο αναζήτησης ή μια λέξη κλειδί. Αν η λέξη περιέχεται σε κάποιο έγγραφο αυτό εμφανίζεται στα αποτελέσματα και στον χρήστη, ο οποίος είναι υπεύθυνος για την ανάγνωση και την ερμηνεία του, χωρίς να είναι απαραίτητα σίγουρος ότι βρήκε αυτό που ψάχνει. Η Ενοποίηση των Πληροφοριών μπορεί να διευκολύνει τους ανθρώπους και να μειώσει τον χρόνο που απαιτείται για την οργάνωση κάποιας δραστηριότητας. Για παράδειγμα, αν κάποιος επιθυμεί να δοκιμάσει κινέζικο φαγητό, αρχικά θα πρέπει να ψάξει για μια λίστα εστιατορίων της συγκεκριμένης κουζίνας και να σημειώσει κάποιο από αυτά. Στη συνέχεια, σε ένα νέο παράθυρο περιήγησης ανοίγει μια εφαρμογή χαρτών (π.χ. google maps), όπου πληκτρολογεί την διεύθυνση για να λάβει οδηγίες μετάβασης στο εστιατόριο που επέλεξε. Τα παραπάνω βήματα μπορούν να απλοποιηθούν με την χρήση τεχνολογιών Σημασιολογικού Ιστού και να μας δοθούν ακόμη και επιπλέον πληροφορίες σχετικά με τη δραστηριότητα που μας ενδιαφέρει (π.χ. τα συστατικά του γεύματος που τρώμε). Μια εφαρμογή που βρίσκει αυτόματα όλες τις υπηρεσίες που μας ενδιαφέρουν και χρησιμοποιεί δυναμικά όσες χρειάζονται για την επίτευξη των στόχων θα μας διευκόλυνε αρκετά. Η Εξόρυξη Δεδομένων από μια βάση δεδομένων ή από ένα σύνολο δεδομένων είναι μια ακόμη δραστηριότητα που μας ενδιαφέρει κατά τη χρήση του Ιστού, ειδικά αν σκεφτούμε ότι και ο ίδιος αποτελεί μια τεράστια κατανεμημένη αποθήκη δεδομένων. Έστω ότι θέλουμε να ελέγξουμε πως επηρεάζουν οι καιρικές συνθήκες τις πυρκαγιές σε μια περιοχή. Για να το πετύχουμε αυτό, είναι αναγκαίο να δούμε το ιστορικό πυρκαγιών στην περιοχή και να το συγκρίνουμε με τις καιρικές συνθήκες που επικρατούσαν, αλλά το ιστορικό αυτό μπορεί να βρίσκεται σε άλλες ιστοσελίδες μαζί με άλλα δεδομένα που δεν μας ενδιαφέρουν. Μπορούμε να αναπτύξουμε μια εφαρμογή τύπου web crawler, η οποία θα επισκέπτεται τις εκάστοτε σελίδες, θα 59
συλλέγει μόνο τα δεδομένα που μας ενδιαφέρουν και θα τα αποθηκεύει σε κάποιο τύπο δεδομένων που έχουμε επιλέξει. Η εφαρμογή, όμως, μπορεί να χρειαστεί επαναπρογραμματισμό σε περίπτωση που αλλάξουν κάποιες πληροφορίες στις σελίδες που επισκεπτόμαστε και θα μας διευκόλυνε αν η εφαρμογή μπορούσε να «κατανοήσει» την σημασία του περιεχομένου, έτσι ώστε να μην χρειάζεται συχνές αλλαγές στον κώδικα. Σημαντικός τομέας, ο οποίος μπορεί να ενισχυθεί με την χρήση του Σημασιολογικού Ιστού είναι η Διαχείριση Γνώσης. O όρος «διαχείριση γνώσης» (knowledge management) περιλαμβάνει επιχειρηματικές πρακτικές και προσεγγίσεις που ασχολούνται με τη δημιουργία, την επεξεργασία και τη διάχυση γνώσης και τεχνογνωσίας σε μια επιχείρηση [39]. Έχει να κάνει κυρίως με την δημιουργία, την διάχυση, την συλλογή, την επεξεργασία, την συντήρηση και αναβάθμιση της συσσωρευμένης εμπειρίας μιας επιχείρησης ή ενός οργανισμού με σκοπό την εφαρμογή της για την αύξηση της παραγωγικότητας, την δημιουργία αξίας και την ανταγωνιστικότητα. Όπως αναφέρουν και οι Grigoris Antoniou και Frank van Harmelen [16], υπάρχουν περιορισμοί για την διαχείριση γνώσης με την χρήση της σημερινής τεχνολογίας, οι οποίοι μπορούν να εντοπιστούν στους παρακάτω τομείς: Αναζήτηση πληροφοριών με λέξεις κλειδιά Εξαγωγή πληροφοριών, λόγω της καταβολής χρόνου και προσπάθειας από την ανθρώπινη πλευρά Συντήρηση και αναβάθμιση της πληροφορίας, λόγω ασυνέπειας στην ορολογία και διατήρησης παρωχημένων πληροφοριών Ανακάλυψη πληροφοριών με εξόρυξη δεδομένων Προβολή πληροφοριών με δικαιώματα ανάλογα με τον χρήστη Πολλά από αυτά τα μειονεκτήματα συνδυάζονται και με τις περιπτώσεις χρήσης του Ιστού, που αναφέραμε προηγουμένως. Με την χρήση Σημασιολογικού Ιστού μπορούμε να εξελίξουμε τα συστήματα διαχείρισης γνώσης, με αποτέλεσμα την οργάνωση της γνώσης ανάλογα με την σημασία της και την αυτόματη συντήρηση και αναβάθμιση των βάσεων με διάφορα εργαλεία. Η απλή αναζήτηση θα αντικατασταθεί με την αναζήτηση μέσω ερωτημάτων και οι απαντήσεις θα δίνονται με τρόπο φιλικό προς το χρήστη, μετά το συνδυασμό πολλών σελίδων και εγγράφων και ανάλογα με τα δικαιώματα του χρήστη. 60
Ο Σημασιολογικός Ιστός μπορεί να προσφέρει πολλά και στον κλάδο του ηλεκτρονικού εμπορίου. Με την ανάπτυξη πρακτόρων λογισμικού, ικανών να ερμηνεύσουν τις πληροφορίες προϊόντος και τους όρους χρήσης μιας υπηρεσίας, θα είχαμε ορθή εξαγωγή των πληροφοριών αυτών, διαπραγματεύσεις για την τιμολόγηση και άμεση σύγκριση με τις ανάγκες του χρήστη. Θα ήταν δυνατό να έχουμε επιπλέον πληροφορίες σχετικά με την φήμη των καταστημάτων, οι οποίες θα αντλούνται από άλλες πήγες, όπως είναι ανεξάρτητες ιστοσελίδες με βαθμολογίες καταναλωτών ή ειδικών. Ακόμη και σε συναλλαγές μεταξύ των επιχειρήσεων (B2B), που αποτελεί ίσως και το πιο σημαντικό κομμάτι του ηλεκτρονικού εμπορίου, θα μπορούσε να επιτευχθεί σημαντική πρόοδος με την χρήση αυτών των νέων τεχνολογιών. Η γλώσσα HTML που χρησιμοποιείται είναι αρκετά αδύναμη για την υποστήριξη πυλών B2B, καθώς δεν έχει την κατάλληλη δομή και δεν μπορούν να ερμηνευθούν πολλές πληροφορίες και η XML έχει αρκετές ατέλειες όσον αφορά το λεξιλόγιο, παρόλο που αποτελεί σημαντική βελτίωση. Αυτά τα προβλήματα μπορούν να εξαλειφθούν με την χρήση μοντέλων αφηρημένου τομέα και υπηρεσιών μετάφρασης σε ένα κοινό πρότυπο. Όπως είπαμε και παραπάνω, η έντονη συμμετοχή των χρηστών είναι ένα χαρακτηριστικό του Ιστού. Τα wiki είναι σελίδες που επιτρέπουν σε πολλούς χρήστες ταυτόχρονα να προσθέτουν ή να μεταβάλλουν και να διαγράφουν περιεχόμενο με την χρήση ενός προγράμματος περιήγησης και χρησιμοποιούνται συνήθως είτε για ανταλλαγή ιδεών και οργάνωση ενός project, είτε για την δημιουργία γνώσης με την συμβολή πολλών (π.χ. Wikipedia). Ο εμπλουτισμός του δομημένου κειμένου και των υπερσυνδέσμων με σημασιολογικές αναφορές, μπορεί να κάνει το περιεχόμενο ενός wiki προσβάσιμο από μηχανές και να δώσει την δυνατότητα χρήσης επερωτήσεων και βελτίωσης της παρουσίασης του, ανάλογα με το πλαίσιο που ανήκει. Η ηλεκτρονική μάθηση είναι άλλος ένας τομέας ο οποίος γνωρίζει ιδιαίτερη ανάπτυξη στην εποχή μας, αφού δεν αφορά μόνο τους μαθητές, αλλά και τους ανθρώπους όλων των ηλικιών που έχουν ενδιαφέρον για μάθηση και συνεχής εκπαίδευση. Με την χρήση τεχνολογιών Σημασιολογικού Ιστού είναι δυνατό να επιτευχθεί διαλειτουργικότητα, μέσω της κεφαλαιοποίησης των οντολογιών, της τυποποιημένης σύνταξης της επικοινωνίας και της ολοκλήρωσης και χρήσης του εκπαιδευτικού περιεχομένου σε μεγάλο βαθμό [40]. Πλέον είναι εύκολη η επαναχρησιμοποίηση και επανεμφάνιση των πληροφοριών με την χρήση RDF. Η 61
αναζήτηση θα γίνεται με λίγους συγκεκριμένους όρους και οι κατάλογοι μιας βιβλιοθήκης θα ανιχνεύονται αυτόματα. Με αναδιάρθρωση των πληροφοριών, το περιεχόμενο θα προσαρμόζεται ανάλογα με τον τελικό χρήστη, λαμβάνοντας υπόψη τις ανάγκες, τις προτιμήσεις αλλά και τις γνώσεις του. 4.2 Παραδείγματα Εφαρμογών Σημασιολογικού Ιστού Η χρήση τεχνολογιών Σημασιολογικού Ιστού σε πολλούς τομείς από εταιρείες παγκόσμιας εμβέλειας είναι διαρκώς αυξανόμενη. Εταιρείες όπως η Adobe, η Oracle, η Microsoft και η Google προσφέρουν εργαλεία Σημασιολογικού Ιστού ή συστήματα που βασίζονται σε αντίστοιχες τεχνολογίες και είναι ενεργά μέλη του W3C, βοηθώντας στην ανάπτυξη και επέκταση του Σημασιολογικού Ιστού [41]. Στο W3C μπορούμε να βρούμε ένα αρχείο περιπτώσεων χρήσης, αλλά και μελέτες περιπτώσεων εφαρμογών είτε από επιχειρήσεις ή από κυβερνήσεις και άλλους οργανισμούς [42]. Στη συνέχεια, θα περιγράψουμε σύντομα κάποιες εφαρμογές των τεχνολογιών Σημασιολογικού Ιστού. 4.2.1 BBC Διαχείριση ΜΜΕ Το BBC (British Broadcasting Corporation) είναι η μεγαλύτερη επιχείρηση ραδιοφωνίας και τηλεόρασης στον κόσμο, αποτελεί δημόσιο ΜΜΕ και χρηματοδοτείται από τους κατοίκους της Μεγάλης Βρετανίας. Το περιεχόμενο το οποίο δημοσιεύεται διαδικτυακά από την ιστοσελίδα του (http://www.bbc.co.uk/) είναι τεράστιων διαστάσεων και καλύπτει τομείς όπως ειδήσεις, ενδιαφέροντα, ψυχαγωγία. Το περιεχόμενο αυτό διαμοιράζεται σε διακριτές HTML σελίδες, οι οποίες δεν είναι σωστά διασυνδεδεμένες, με αποτέλεσμα να μην είναι χρηστικές, αν κάποιος τηλεθεατής έχει ενδιαφέροντα τα οποία εκτείνονται σε πολλές ξεχωριστές σελίδες (domains) και να περιορίζεται η αλληλεπίδραση του χρήστη με την πληροφορία [43]. Η διαδικασία αποθήκευσης, διαλογής και παρουσίασης των μέσων ενημέρωσης μπορεί να επωφεληθεί σε πολλούς τομείς από τη χρήση των τεχνολογιών του Σημασιολογικού Ιστού. Μπορεί να γίνει αξιοποίηση αδόμητης πληροφορίας και των σχέσεων και επισημειώσεων (annotations) μεταξύ εγγράφων. Κάποια έγγραφα μπορεί 62
έχουν συγγραφείς, οι οποίοι να έχουν συντάξει άλλα έγγραφα και να περιλαμβάνουν αναφορές ή να έχουν πολλαπλές αναθεωρήσεις. Η διαχείριση αυτών των σχέσεων με τις παραδοσιακές σχεσιακές βάσεις δεδομένων μπορεί να πάρει πολύ χρόνο και να μην είναι η καλύτερη δυνατή. Οι ιστοσελίδες πρέπει να μεταβάλλονται συνεχώς για να παραμένουν ενδιαφέρουσες, τόσο όσον αφορά το περιεχόμενο, αλλά και όσον αφορά τη σχεδίασή τους και πρέπει να υπάρχουν συνδέσεις μεταξύ σελίδων, βίντεο, πολυμέσων blogs, κ.λπ., οι οποίες να αλλάζουν με την πάροδο του χρόνου. Με την χρήση αναγνωριστικών, με σελίδες HTML και ροές πληροφοριών (feeds), αναγνώσιμων από μηχανές με βάση τεχνολογίες όπως RDF/XML, JSON, απλή XML, έγινε δυνατή η διασύνδεση του περιεχομένου. Το περιεχόμενο του BBC μπορεί να παρουσιαστεί με πολλούς διαφορετικούς τρόπους και οι ομάδες οργάνωσης του, έχουν ένα κομβικό σημείο γύρω από το οποίο μπορούν να το διαμορφώσουν και να το επεκτείνουν. Οι προγραμματιστές εντός και εκτός του οργανισμού μπορούν να χρησιμοποιήσουν τα δεδομένα για την δημιουργία εφαρμογών, αφού αυτά είναι σε μορφή RDF, εύκολα αναγνώσιμα από τους υπολογιστές και με συνδέσμους προς περαιτέρω πληροφορίες [43]. Όλοι οι πόροι είναι διακριτοί, διασυνδεδεμένοι και εύκολα προσπελάσιμοι, αφού χρησιμοποιείται ένα URI τόσο από τους περιηγητές όσο και από τις εφαρμογές που αναπτύσσονται. Εικόνα 9: BBC - Semantic Web 63
Τα αποτελέσματα είναι εμφανή στις σελίδες BBC programmes, BBC Music και BBC Wildlife Finder. Η προσέγγιση αυτή επιτρέπει διαφορετικές ομάδες περιεχομένου και προγραμματιστών να επικεντρωθούν στον τομέα τους, ενώ παράλληλα επωφελούνται και από το περιεχόμενο και τα δεδομένα που παράγουν οι υπόλοιπες ομάδες. Όλοι οι πόροι υπάρχουν ανά πάσα στιγμή για όλους και είναι διασυνδεδεμένοι μεταξύ τους. Όλοι οι όροι που χρησιμοποιούνται στο λεξικό του BBC έχουν σχετικούς πόρους στην DBpedia, με σκοπό να διασυνδεθούν και με άλλες αποθήκες δεδομένων στο μέλλον. Το BBC δεν είναι η μόνη εταιρεία μέσων ενημέρωσης που χρησιμοποιεί τεχνολογίες Σημασιολογικού Ιστού. Οι Time Inc, Elsevier, και η Βιβλιοθήκη του Κογκρέσου διαθέτουν συστήματα παραγωγής, τα οποία κατασκευάστηκαν με τη χρήση τεχνολογιών Σημασιολογικού Ιστού. 4.2.2 Chevron Πετρελαϊκές Εταιρείες Η εταιρεία Chevron αποτελεί ένα παράδειγμα αμερικανικής πολυεθνικής εταιρείας του ενεργειακού τομέα με έδρα την Καλιφόρνια και δραστηριότητες σε πάνω από 180 χώρες (http://www.chevron.com) και μία από τις μεγαλύτερες επιχειρήσεις παγκοσμίως. Η άντληση πετρελαίου αποτελεί μια διαδικασία κατά την οποία χρησιμοποιείται πλήθος δεδομένων από την στιγμή της εύρεσης ως την παραγωγή. Μια υπεράκτια εγκατάσταση παράγει terabyte δεδομένων με πληροφορίες που μπορούν να προβλέψουν βλάβες, οι οποίες κοστίζουν εκατομμύρια. Στον τομέα της ενέργειας, πολλές δραστηριότητες είναι πειραματικές, δεν υπάρχει κατάλληλη τυποποίηση και κάθε νέα συσκευή κάνει χρήση νέων παραμέτρων που πρέπει να συνυπολογιστούν με τα ήδη υπάρχοντα δεδομένα. Χρησιμοποιώντας τεχνολογίες Σημασιολογικού Ιστού, όπως η RDF, οι μηχανικοί και οι ερευνητές μπορούν να συνδυάσουν και να επαναχρησιμοποιήσουν δεδομένα με διάφορους τρόπους και χωρίς περιορισμούς από τις εφαρμογές, για να κατανοήσουν και να προβλέψουν τις λειτουργίες των μονάδων παραγωγής [44]. Οι οντολογίες είναι απαραίτητες, αφού παρέχουν μια κοινή αντίληψη των δεδομένων ενός πεδίου γνώσης και με την οργάνωση και την ανταλλαγή πληροφοριών των επιχειρήσεων, καθώς και τη διαχείριση περιεχομένου και γνώσης, επιτρέπουν καλύτερη διαλειτουργικότητα και ολοκλήρωση των ενδοεταιρικών και διαεταιρικών πληροφοριακών συστημάτων [45]. Με την χρήση μιας δικτυακής πύλης (portal) μπορεί να γίνει αναζήτηση, πλοήγηση και εμφάνιση στους πόρους και την αποθηκευμένη γνώση και η πύλη αυτή 64
μπορεί εύκολα να αναδιοργανωθεί, ανεξάρτητα από το «πίσω» κομμάτι της εφαρμογής (backend) και ανάλογα με τις ανάγκες των χρηστών. Στο έργο ADI (Fluor Corporation s Accelerating Deployment of ISO 15926), γίνονται αναφορές σε και ορίζονται πάνω από 12000 αντικείμενα μιας μονάδας παραγωγής. Με την παροχή αυτών των αναφορών σε RDF/ OWL το έργο αυτό έχει ως σκοπό την διαλειτουργικότητα (καθ όλα τα στάδια της παραγωγής) με βάση κάποια πρότυπα ISO και με την χρήση μιας βάσης γνώσης που προέρχεται από τον συνδυασμό των ειδικών σε κάθε τομέα κάθε εταιρείας [46]. Στο έργο IIP (Integrated Information Platform) υπό την αιγίδα του Συμβουλίου Έρευνας της Νορβηγίας, γίνεται προσπάθεια για τη δημιουργία μιας πλατφόρμας πληροφοριών για την ενεργειακή βιομηχανία, με την ενσωμάτωση οντολογιών από διάφορες βιομηχανικές εφαρμογές και τεχνολογικά πρότυπα, αλλά και με τη δημιουργία νέων οντολογιών. Λαμβάνονται δεδομένα και πληροφορίες για τον υποθαλάσσιο σεισμικό εξοπλισμό, την άντληση, την παραγωγή και συντήρηση για τους πωλητές και τους διαχειριστές, καθώς και γνώση από εμπειρογνώμονες και συνδυάζονται με ταξινομήσεις και οντολογίες, που υποστηρίζουν ανταλλαγή δεδομένων σε πραγματικό χρόνο, καθώς και βελτιστοποίηση των διαδικασιών σε διάφορους τομείς [47]. Με τη χρήση OWL και κανόνων καθορίζονται οι ιδιότητες του εξοπλισμού που χρησιμοποιείται και ποια μέτρα πρέπει να ληφθούν εάν παραβιαστεί ένας περιορισμός. Με τις οντολογίες μπορεί να γίνει πιο ακριβής αναπαράσταση εννοιών που αφορούν την ενεργειακή βιομηχανία, πράγμα που ευνοεί την χρήση αυτοματοποιημένων διαδικασιών όπως είναι τα Web Services. Με την χρήση γλωσσών όπως είναι η OWL-S, μπορούν τα Web Services να ενσωματωθούν σε οντολογίες και να παρέχουν έτσι συλλογιστική με βάση κάποιους κανόνες σε περίπλοκες εφαρμογές που έχουν σχέση με την ενέργεια. Νέα δεδομένα και οντολογίες θα μπορούν να συνδυαστούν με ήδη υπάρχοντα επεκτείνοντας τα αντίστοιχα λεξιλόγια και καθιστώντας δυνατή την επαναχρησιμοποίηση όρων και εννοιών σε διάφορους τομείς. 4.2.3 DBpedia Από τη σελίδα http://dbpedia.org/about, μπορούμε να δούμε την περιγραφή αυτού του εγχειρήματος Σημασιολογικού Ιστού. Η DBpedia αποτελεί μια προσπάθεια της διαδικτυακής κοινότητας για εξαγωγή δομημένων πληροφοριών από τη Wikipedia με σκοπό να γίνουν οι πληροφορίες αυτές ευρέως διαθέσιμες στο διαδίκτυο. Με την 65
DBpedia μπορούν να πραγματοποιηθούν σύνθετα ερωτήματα στη Wikipedia, με μια γλώσσα ερωτημάτων - όπως η SPARQL - και να συνδεθούν διάφορα σύνολα δεδομένων του Παγκόσμιου Ιστού με τα δεδομένα της. Με τον τρόπο αυτό, το τεράστιο σύνολο πληροφοριών της Wikipedia μπορεί να χρησιμοποιηθεί με νέους τρόπους και να βελτιωθεί ακόμα και η εμπειρία χρήσης της ίδιας της εγκυκλοπαίδειας. Στην DBpedia, αναπτύσσεται ένα πλαίσιο εξαγωγής πληροφοριών, το οποία μετατρέπει το περιεχόμενο της Wikipedia σε RDF. Αυτό το σύνολο δεδομένων RDF, το οποίο περιλαμβάνει πάνω από 103 εκατομμύρια τριπλέτες RDF, μπορεί να χρησιμοποιηθεί σε άλλες εφαρμογές και να συνδεθεί με άλλα σύνολα δεδομένων, δημιουργώντας έτσι έναν πραγματικό Ιστό Δεδομένων (Web 3.0) [48]. Επίσης, έχει δημιουργηθεί μια σειρά διασυνδέσεων, διεπαφών και μονάδων πρόσβασης, έτσι ώστε να είναι δυνατή η πρόσβαση στις πληροφορίες μέσω υπηρεσιών Web και η σύνδεση με άλλες ιστοσελίδες και διαδικτυακές εφαρμογές. Στην παρακάτω εικόνα μπορούμε να διακρίνουμε την διαδικασία εξαγωγής πληροφοριών και δημοσίευσής τους στο διαδίκτυο. Εικόνα 10: Αρχιτεκτονική της DBpedia Αρχικά, έχουμε χαρτογράφηση των πινάκων στις βάσεις δεδομένων και την μετατροπή τους σε RDF και εξαγωγή πληροφοριών από το κείμενο των άρθρων. Με αλγορίθμους, οι οποίοι χρησιμοποιούν τεχνικές μετα-επεξεργασίας και είναι συνήθως γραμμένοι σε PHP, ανιχνεύονται πρότυπα, αναλύονται και εξάγονται πληροφορίες σε 66
τριπλέτες RDF. Κάθε πόρος που εμφανίζεται, περιγράφεται από ένα URI του τύπου http://dbpedia.org/resource/resource, όπου Resource είναι το URL από το άρθρο της Wikipedia. Έτσι, τα αναγνωριστικά που χρησιμοποιούνται είναι ευδιάκριτα και καλύπτουν μεγάλο εύρος θεμάτων για τα οποία υπάρχει ήδη πληροφορία σε μορφή κειμένου στην ιστοσελίδα της Wikipedia. Από το σύνολο δεδομένων της DBpedia, ενδιαφέρον σημασιολογικά τουλάχιστον παρουσιάζει το σύνολο δεδομένων που αφορά περίπου 80000 πρόσωπα. Για την πρόσβαση σε αυτούς τους πόρους, ιδιαίτερα από προγραμματιστές, χρησιμοποιούνται τρεις τρόποι: Linked Data, SPARQL και RDF dumps. Με το SPARQL endpoint (από Virtuoso Universal Server), το οποίο παρέχεται στο σύνδεσμο: http://dbpedia.org/sparql, μπορεί ο καθένας με την σύνταξη ερωτημάτων SPARQL να λάβει πληροφορίες, αρκεί να γνωρίζει ακριβώς ποιες πληροφορίες επιθυμεί [48] (είδαμε μερικά παραδείγματα σε προηγούμενη ενότητα, όπου περιγράψαμε βασικά χαρακτηριστικά της γλώσσας). Βέβαια, υπάρχουν όρια στα αποτελέσματα που επιστρέφονται, για να προστατευτεί το σύστημα από υπερφόρτωση δεδομένων. Όπως αναφέραμε και παραπάνω, τα δεδομένα της DBpedia είναι διασυνδεδεμένα με διάφορα άλλα σύνολα δεδομένων με την χρήση συνδέσεων RDF και αποτελούν κομμάτι ενός μεγαλύτερου έργου, του Linking Open Data, από το W3C. Μερικά από τα σύνολα αυτά είναι τα Geonames, MusicBrainz, WordNet κτλ. Η DBpedia μπορεί να αποτελέσει τον συνδετικό κρίκο μεταξύ αυτών των συνόλων, διευκολύνοντας την εργασία που μπορεί να επιτελεσθεί από πράκτορες λογισμικού στην προσπάθεια ανάκτησης και οργάνωσης πληροφοριών από πολλαπλές πηγές. 4.2.4 CISMeF: Catalog and Index of French-language Health Internet resources Η CISMeF είναι μια πύλη για την υγεία που προσπαθεί να καταγράψει και να κατηγοριοποιήσει, στα γαλλικά, τις πιο σημαντικές και ελεγμένες από διάφορα ιδρύματα, πληροφορίες, οι οποίες είναι σχετικές με τον τομέα της υγείας [49]. Ο στόχος της CISMeF είναι να βοηθήσει τους επαγγελματίες της υγείας και τους καταναλωτές στην αναζήτησή τους για ηλεκτρονικές πληροφορίες που διατίθενται μέσω του Διαδικτύου. Γίνεται τακτικός έλεγχος και ενημέρωση για να εξασφαλιστεί 67
η βέλτιστη διαχείριση της συλλογής δεδομένων. Πρέπει να είναι σε θέση να παρέχει υψηλής ποιότητας πρόσβαση σε ποικιλία θεμάτων, κατηγοριοποιώντας τους πόρους σε ευρετήρια, με τη χρήση ελεγχόμενων λεξιλογίων και προσφέροντας μια βαθιά δομή ταξινόμησης για προηγμένη αναζήτηση και περιήγηση [50]. Για την οργάνωση των πληροφοριών χρησιμοποιούνται δύο εργαλεία: ένα λεξιλόγιο, βασισμένο στο θησαυρό λέξεων MeSH (Medical Subject Heading) και διάφορα σύνολα μεταδεδομένων με τη μορφή Dublin Core, όπου οι πόροι περιγράφονται με: τίτλο, δημιουργό, θέμα και λέξεις κλειδιά, περιγραφή, εκδότη, ημερομηνία, τον τύπο των πόρων, μορφή, αναγνωριστικό και γλώσσα [50]. Η χρήση ειδικών μεταπληροφοριών είναι πολύ σημαντική για τη βελτίωση της ακρίβειας των αναζητήσεων στο Διαδίκτυο. Η CISMeF χρησιμοποιεί XML και RDF για να ανταποκριθεί σε αυτές τις απαιτήσεις, αποτελώντας έτσι μια εφαρμογή Τεχνολογιών Σημασιολογικού Ιστού. Στην παρακάτω εικόνα μπορούμε να διακρίνουμε την σημασιολογική σύνδεση όρων του MeSH με πόρους από τη CISMeF. Εικόνα 11: Σημασιολογική σύνδεση μετα-όρων CISMeF και MeSH 4.2.5 Friend of a Friend (FOAF) project Το εγχείρημα FOAF (http://www.foaf-project.org/), δηλαδή φίλος ενός φίλου, επιτρέπει στους ανθρώπους να δημοσιεύουν απλές βιογραφικές πληροφορίες για τον 68
εαυτό τους και τους φίλους τους σε προσωπικές ιστοσελίδες. Τα δεδομένα αυτά έχουν ενταχθεί στο παρελθόν σε ιστοσελίδες κοινωνικής δικτύωσης, όπως είναι το LiveJournal και το hi5. Το Drupal, ένα δημοφιλές πακέτο διαχείρισης περιεχομένου Web (CMS), δημοσιεύει αυτόματα δεδομένα Σημασιολογικού Ιστού, τα οποία σχετίζονται με όποιον το χρησιμοποιεί. Η υλοποίησή του FOAF έχει γίνει με την χρήση RDF και OWL, έτσι ώστε τα δεδομένα να είναι αναγνώσιμα και από πράκτορες λογισμικού. Το έργο ξεκίνησε το 2000 από τους Libby Miller και Dan Brickley, αποτελώντας για πολλούς την πρώτη εφαρμογή Σημασιολογικού Ιστού, για αυτό και κρίθηκε σκόπιμο να αναφερθεί στην παρούσα μελέτη. 4.2.6 Swoogle Το Swoogle είναι ένα σύστημα ανάκτησης και δημιουργίας ευρετηρίου εγγράφων RDF ή OWL, το οποίο έχει αναπτυχθεί από το Πανεπιστήμιο Maryland Baltimore Country. Το σύστημα εξάγει μεταδεδομένα για κάθε έγγραφο και υπολογίζει τις σχέσεις μεταξύ των εγγράφων. Τα έγγραφα κατηγοριοποιούνται με ένα σύστημα το οποίο χρησιμοποιεί URIs ως λέξεις κλειδιά για την εύρεση άλλων σχετικών εγγράφων και για τον υπολογισμό της ομοιότητας μεταξύ τους. Η αρχιτεκτονική του Swoogle μπορεί να χωριστεί σε τέσσερα βασικά συστατικά: την εύρεση των εγγράφων του Σημασιολογικού Ιστού, τη δημιουργία μεταδεδομένων, την ανάλυση δεδομένων και τη διεπαφή, τα οποία εργάζονται ανεξάρτητα και αλληλεπιδρούν μεταξύ τους μέσω μιας βάσης δεδομένων [51]. Τα έγγραφα Σημασιολογικού Ιστού (SWD, Semantic Web Document) είναι έγγραφα τα οποία είναι γραμμένα σε μια γλώσσα όπως OWL και RDF και βρίσκονται στο διαδίκτυο, έτσι ώστε να είναι προσβάσιμα από χρήστες ή πράκτορες λογισμικού. Μια μηχανή αναζήτησης, η οποία θα έχει προσαρμοστεί κατάλληλα για αναζήτηση σε έγγραφα τέτοιου τύπου και ειδικά για οντολογίες, είναι απαραίτητη για την πρόσβαση, την εξερεύνηση και την υποβολή επερωτήσεων σε έγγραφα Σημασιολογικού Ιστού. Με το Swoogle είναι δυνατή η εύρεση των κατάλληλων οντολογιών και ο καθορισμός όρων, κλάσεων ή ιδιοτήτων. Διατίθεται, επίσης, ένας μηχανισμός ιεράρχησης των οντολογιών με βάση την σημαντικότητά τους. Το Swoogle περιέχει δύο crawlers, οι οποίοι αναζητούν Σημασιολογικά Έγγραφα και τις σχέσεις μεταξύ τους και έχει σχεδιαστεί για την διαχείριση εκατομμυρίων εγγράφων και πολύπλοκων ερωτημάτων για σημασιολογικές σχέσεις. 69
5 Παρουσίαση Συστήματος Εργαλείων Υλοποίησης Στα προηγούμενα κεφάλαια ορίσαμε την έννοια του Σημασιολογικού Ιστού, περιγράψαμε την αρχιτεκτονική του, στην πιο πρόσφατη μορφή της, των τεχνολογιών που περιέχει και αναφερθήκαμε σε εφαρμογές όπου αξιοποιείται. Στο σημείο αυτό θα επικεντρωθούμε στην περιγραφή της εφαρμογής, η οποία αναπτύχθηκε στα πλαίσια αυτής της εργασίας. Αρχικά, θα προσπαθήσουμε να περιγράψουμε το πρόβλημα, με αφορμή το οποίο οδηγηθήκαμε στην εκπόνηση της παρούσας εργασίας και την γενική αρχιτεκτονική της εφαρμογής. Στην συνέχεια, θα αναφέρουμε συνοπτικά τα εργαλεία, τις τεχνολογίες που χρησιμοποιήθηκαν και την οντολογία στην οποία βασιστήκαμε. Τέλος, θα περιγράψουμε την υλοποίηση, τα τμήματά της και θα παρουσιάσουμε με εικόνες την χρήση της εφαρμογής. 5.1 Περιγραφή Προβλήματος - Αρχιτεκτονική Εφαρμογής Όπως είδαμε σε προηγούμενα κεφάλαια, οι Σημασιολογικές Τεχνολογίες μπορούν να διευκολύνουν διάφορες ανθρώπινες δραστηριότητες και να γίνει αυτοματοποίηση ορισμένων λειτουργιών. Η δημιουργία ερωτημάτων σε μια Σημασιολογική Αποθήκη, η ανάκτηση αποτελεσμάτων και η διαχείριση μιας οντολογίας και των σχετικών δεδομένων, γίνεται συνήθως με την χρήση κατάλληλων εργαλείων, τα οποία απευθύνονται σε εξειδικευμένους χρήστες με γνώσεις πάνω στο αντικείμενο. Σκοπός μας είναι να δημιουργηθεί μια διαδικτυακή εφαρμογή, στην οποία θα μπορεί να συνδέεται ή να εγγράφεται ένας χρήστης με κατάλληλα διαπιστευτήρια και να επιτελέσει αναζητήσεις σχετικές με θέματα του Εσωτερικού Κανονισμού (Ε.Κ) του ΔΠΜΣ Πληροφορική και Διοίκηση σε ένα εύχρηστο περιβάλλον, χωρίς την προϋπόθεση εξειδικευμένων γνώσεων. Αρχικά, έγινε περιγραφή του Ε.Κ. μέσω οντολογίας, η οποία αναπτύχθηκε στην γλώσσα OWL, σε συνδυασμό με κανόνες SWRL για τον έλεγχο κάποιων προϋποθέσεων, έτσι ώστε να είναι σε μορφή επεξεργάσιμη από κάποιο πρόγραμμα 70
υπολογιστή ή μια διαδικτυακή εφαρμογή. Στην συνέχεια, τα δοκιμαστικά δεδομένα, τα οποία υπήρχαν σε μορφή.xlsx, μετατράπηκαν σε μορφή RDF, έτσι ώστε να συνδεθούν με την οντολογία και τους κανόνες SWRL. Επίσης, είναι διαθέσιμη μια βάση δεδομένων χρηστών για την αποθήκευση του ονόματος χρήστη, του κωδικού και όποιων άλλων στοιχείων χρειάζεται. Με την χρήση των παραπάνω υλοποιήσαμε μια εφαρμογή μέσω της οποίας γίνεται έλεγχος της τήρησής του Ε.Κ και παρακολούθησή του. Για την υλοποίηση της εφαρμογής προτιμήθηκε η γλώσσα προγραμματισμού JAVA, σε συνδυασμό με τεχνολογίες Web (HTML, CSS, JSP, JSTL) και ενός API (Stardog - SNARL) για σύνδεση και επεξεργασία σε σημασιολογική βάση και υποβολή ερωτημάτων SPARQL. Μετά από επεξεργασία των δεδομένων, αφού βρίσκονται πλέον σε μορφή κατανοητή από μηχανές (RDF), μπορούν να δοθούν απαντήσεις σε ερωτήματα σχετικά με τον κανονισμό. Για παράδειγμα, η γραμματεία της σχολής μπορεί να ελέγξει εάν κάποιος φοιτητής έχει εκπληρώσει όλες τις υποχρεώσεις του για την ολοκλήρωση των σπουδών του ή εάν έχει κάνει κάποιες απουσίες σε κάποιο μάθημα. Ελέγχοντας όλες τις απαραίτητες προϋποθέσεις, μέσω κατάλληλων ερωτημάτων σε SPARQL, μπορούν να δοθούν απαντήσεις σε ερωτήματα τέτοιου τύπου. Η χρήση των σημασιολογικών τεχνολογιών γίνεται στο παρασκήνιο και στον χρήστη εμφανίζονται οι επιλογές που διαθέτει και τα αποτελέσματα τους, σε ένα απλό περιβάλλον. Μπορούμε να αναπαραστήσουμε την διαδικασία χρήσης της εφαρμογής στο παρακάτω διάγραμμα (τα διαγράμματα έχουν δημιουργηθεί με το δωρεάν διαδικτυακό εργαλείο draw.io [52]): Εικόνα 12: Η χρήση της εφαρμογής σε γενικές γραμμές Είναι απαραίτητο η εφαρμογή μας να περιέχει μια βάση χρηστών, στην οποία θα αποθηκεύονται πληροφορίες σχετικές με αυτούς που έχουν το δικαίωμα χρήσης της εφαρμογής. Κατά την σύνδεση ενός χρήστη γίνονται οι κατάλληλοι έλεγχοι στη βάση και δίνεται δικαίωμα εισόδου. Επίσης, υπάρχει η δυνατότητα προσθήκης και άλλων 71
χρηστών μέσα από την εφαρμογή. Στη συνέχεια, μέσα από ένα απλό περιβάλλον, εμφανίζονται επιλογές που αφορούν κάποια τμήματα του εσωτερικού κανονισμού (κυρίως για την φοίτηση και την ολοκλήρωση των σπουδών), έτσι ώστε να γίνονται τα κατάλληλα ερωτήματα. Τέλος, εμφανίζονται τα αντίστοιχα αποτελέσματα και δίνεται στον χρήστη η δυνατότητα αποσύνδεσης ή επιστροφής στο κύριο μέρος της εφαρμογής. Η αρχιτεκτονική της εφαρμογής, όσον αφορά την υλοποίησή της, σχηματικά είναι η εξής: Εικόνα 13: Αρχιτεκτονική Εφαρμογής Εν συντομία, μπορούμε να παρατηρήσουμε ότι υπάρχει ένα τμήμα το οποίο επικεντρώνεται στην σύνδεση και την υποβολή ερωτημάτων στην βάση δεδομένων, ένα που έχει να κάνει με την σύνδεση και υποβολή ερωτημάτων στην σημασιολογική αποθήκη που δημιουργούμε κατά την εκτέλεση της εφαρμογής και ένα που αφορά την γενικότερη εμφάνιση της εφαρμογής. Οι κλάσεις που φαίνονται στο παραπάνω σχήμα, όπως και οι λειτουργίες που επιτελούν θα παρουσιαστούν αναλυτικά στο κεφάλαιο 5.4, το οποίο αναφέρεται στην υλοποίηση της εφαρμογής. Στην συνέχεια (5.2), θα παρουσιάσουμε τα εργαλεία και τις τεχνολογίες που χρησιμοποιήθηκαν. 72
5.2 Παρουσίαση των εργαλείων τεχνολογιών υλοποίησης Για την υλοποίηση της σημασιολογικής εφαρμογής παρακολούθησης του εσωτερικού κανονισμού, χρησιμοποιήθηκαν τα εξής εργαλεία τεχνολογίες: Stardog, Apache Tomcat Server, MySQL, OpenRefine, RDF Refine, Protégé, Netbeans, JAVA, JSP, CSS, SPARQL και OWL. Αναφορά σε OWL, SPARQL έγινε κατά την περιγραφή τεχνολογιών Σημασιολογικού Ιστού σε προηγούμενο κεφάλαιο. Στο σημείο αυτό θα παρουσιάσουμε συνοπτικά τα υπόλοιπα εργαλεία και τεχνολογίες, καθώς και το που χρησιμοποιήθηκαν στην διαδικασία δημιουργίας της εφαρμογής. 5.2.1 Stardog Το Stardog [53] είναι μια σημασιολογική βάση δεδομένων RDF και είναι κατασκευασμένο με σκοπό την εύκολη χρήση, την ταχύτητα στην εκτέλεση ερωτημάτων, την υποστήριξη της OWL και των κανόνων SWRL και την ασφάλεια. Χρησιμοποιείται, συνήθως, σε JAVA εφαρμογές για μέγιστη ευελιξία και υποστηρίζει: Το μοντέλο RDF Την γλώσσα ερωτημάτων SPARQL 1.1 Τα πρωτόκολλα HTTP και SNARL για απομακρυσμένη πρόσβαση και διαχείριση Την OWL 2 και κανόνες εξαγωγής συμπερασμάτων και ανάλυσης δεδομένων JAVA μέσω SNARL, Jena, Sesame, HTTP Η εταιρεία Clark & Parsia, η οποία το προμηθεύει, ιδρύθηκε το 2005 και εξειδικεύεται σε εφαρμογές Σημασιολογικού Ιστού και διασυνδεδεμένων δεδομένων (Linked Data). Υπάρχουν τρεις διαθέσιμες εκδόσεις με κάποιες διαφορές σε χαρακτηριστικά: Community, Developer, Enterprise. Η πρώτη, την οποία και χρησιμοποιούμε στην συγκεκριμένη εφαρμογή στην έκδοση 2.1, είναι διαθέσιμη κυρίως για εκπαιδευτικούς σκοπούς και έχει αρκετούς περιορισμούς, όπως 10 βάσεις, 25 εκατομμύρια τριπλέτες ανά βάση, 8 ταυτόχρονες συνδέσεις, 10000 αξιώματα OWL και 4 χρήστες με 4 ρόλους. Η διανομή της είναι δωρεάν και κρίνεται επαρκής για την ανάπτυξη του συστήματος της διπλωματικής εργασίας, αφού τα δεδομένα δεν 73
είναι μεγάλα σε όγκο και η χρήση είναι εκπαιδευτική. Η δεύτερη απευθύνεται σε απαιτητικούς προγραμματιστές σημασιολογικών εφαρμογών και η τρίτη σε επιχειρήσεις με σκοπό την δημιουργία εμπορικών εφαρμογών. Η άδεια χρήσης της έκδοσης αποστέλλεται στον κάτοχο μετά από απλή εγγραφή στην αρχική σελίδα. Μετά από εκτεταμένη διερεύνηση σε αντίστοιχα εργαλεία, όπως OWLIM Lite, Jena, Sesame, προτιμήθηκε το Stardog, λόγω ευχρηστίας, συμβατότητας, υποστήριξης reasoning και κανόνων SWRL. Για παράδειγμα, στην OWLIM οι κανόνες έπρεπε να μετατραπούν σε μορφή συμβατή με OWLIM Lite και να αποθηκευθούν σε συγκεκριμένο αρχείο (.pie) ή να εκφραστούν σε SPARQL, με αρκετούς περιορισμούς, όπως η μη υποστήριξη aggregates (π.χ. SUM, AVG, MAX). Το Stardog προσφέρει δυνατότητες συλλογιστικής (Reasoning) πολλαπλών επιπέδων: None, RDFS, OWL 2 QL, OWL 2 RL, OWL 2 EL, OWL 2 DL, καθώς και συνδυασμό RDFS, QL, RL, EL με κανόνες SWRL (SL). Ένα σύστημα συλλογιστικής επιτελεί τον εννοιολογικό έλεγχο μιας οντολογίας και εφαρμόζει σε αυτή έλεγχους συνέπειας, στιγμιότυπων, ικανοποιησιμότητας και κατηγοριοποίηση, υπολογίζοντας το ιεραρχικό δέντρο κλάσεων και υποκλάσεων [34]. Με την εφαρμογή κανόνων λογικής και διαδικασιών συλλογιστικής, μπορούν να δοθούν απαντήσεις σε ερωτήματα και να εξαχθεί η απαραίτητη πληροφορία από μια βάση γνώσης. Η εμπειρία της εταιρείας Clark & Parsia σε συστήματα συλλογιστικής (reasoners) προέρχεται από την δημιουργία ενός από τους πιο γνωστούς reasoners για OWL DL, του Pellet, αφού σχεδιάστηκε εξαρχής για συνεργασία με την OWL [54]. Ο Pellet είναι γραμμένος σε Java και μπορεί να ελέγξει έγγραφα OWL Full και την δυνατότητα έκφρασής τους σε OWL DL, να τα επεξεργαστεί και να εκτελέσει αποσφαλμάτωση και επεξήγηση οντολογιών. Η αρχιτεκτονική του επιτρέπει την εύκολη δημιουργία επεκτάσεων, ακόμη και στον πυρήνα του. Για την εγκατάσταση και εκτέλεση του Stardog 2.1 χρειαζόμαστε την έκδοση 6 ή 7 της JAVA και κατά προτίμηση ένα σύστημα 64 bit. Ακολουθώντας τις οδηγίες στην σελίδα http://docs.stardog.com/quick-start/ μπορούμε να ρυθμίσουμε το Stardog, καθορίζοντας την μεταβλητή συστήματος STARDOG_HOME και αντιγράφοντας την άδεια χρήσης της έκδοσης στον ίδιο φάκελο. Στην συνέχεια, ενεργοποιούμε τον server του με την εντολή «stardog-admin.bat server start» από την γραμμή εντολών των windows (Start > Run cmd ). Ανοίγοντας ένα ακόμη παράθυρο γραμμής 74
εντολών, μπορούμε να δημιουργήσουμε μια νέα βάση δεδομένων από το αρχείο της οντολογίας μας, για παράδειγμα, με την εντολή «stardog-admin.bat db create -n csddb Desktop/data/IR-InformaticsAndManagement.owl». Αφού γίνει η δημιουργία της βάσης μπορούμε, γράφοντας http://localhost:5820/csddb σε κάποιον browser και με προκαθορισμένο όνομα χρήστη admin και κωδικό admin, να εκτελέσουμε την Web Console, η οποία είναι πιο εύχρηστη από την γραμμή εντολών. Μέσω της Web Console μπορούμε να δούμε χαρακτηριστικά της βάσης μας και την δομή της, να ελέγξουμε την λειτουργικότητα του server, να προσθέσουμε επιπλέον αρχεία δεδομένων και να εκτελέσουμε ερωτήματα SPARQL ή άλλες λειτουργίες στην Σημασιολογική Βάση που δημιουργήθηκε. Αυτό ήταν ιδιαίτερα χρήσιμο για να μπορούμε να δοκιμάσουμε ερωτήματα τα οποία θα χρησιμοποιήσουμε και στην Java (Παράρτημα Β), για να ελέγξουμε αν είναι ορθά διατυπωμένα και αν μας εμφανίζουν τα αποτελέσματα που περιμένουμε σύμφωνα με τα δοκιμαστικά δεδομένα. Στην εφαρμογή, το Stardog χρησιμοποιήθηκε σαν ενσωματωμένος server, με διαδικασίες που θα περιγράψουμε στην παράγραφο 5.4. 5.2.2 Protégé Το Protégé [55] είναι μια πλατφόρμα ανοιχτού λογισμικού, βασισμένη σε Java, για την δημιουργία και επεξεργασία οντολογιών. Η ανάπτυξή του γίνεται από το ερευνητικό τμήμα της Βιοϊατρικής Πληροφορικής, της Ιατρικής σχολής του Πανεπιστημίου του Στανφορντ (Stanford University School of Medicine) και βρίσκεται στην έκδοση 4.3 (Ιανουάριος 2014). Παρέχει ένα σύνολο υποδομών για την μοντελοποίηση της γνώσης, τη δημιουργία, οπτικοποίηση και διαχείριση οντολογιών, είναι επεκτάσιμο με την χρήση διάφορων επεκτάσεων (plugins) και υποστηρίζει πλήρως την OWL. Ένα εργαλείο για δημιουργία και διαχείριση οντολογιών πρέπει να είναι εξελίξιμο, αυτόνομο και επεκτάσιμο, όσον αφορά την αρχιτεκτονική του, να συνεργάζεται με άλλα εργαλεία και γλώσσες, να έχει δυνατότητες αναπαράστασης της γνώση και να παρέχει υπηρεσίες εξαγωγής συμπερασμάτων [56]. Η ενεργή κοινότητα των χρηστών του, η ευκολία χρήσης του, η δωρεάν διανομή και η υποστήριξή του, έχουν καθιερώσει το Protégé ως ένα από τα σημαντικότερα εργαλεία Σημασιολογικού Ιστού. 75
Για την επεξεργασία της οντολογίας του Εσωτερικού Κανονισμού και την μελέτη της, χρησιμοποιήθηκε παλαιότερη έκδοση του προγράμματος και συγκεκριμένα η 3.5 (build 663), καθώς παρατηρήθηκαν κάποιες ασυμβατότητες με την τελευταία έκδοση και δεν ήταν τόσο εύκολη η διαχείριση, επεξεργασία και προσθήκη των κανόνων SWRL. Στο περιβάλλον του Protégé, τα εργαλεία παρουσιάζονται σε καρτέλες ανάλογα με την λειτουργικότητά τους, όπως φαίνεται και στην παρακάτω εικόνα. Στην συνέχεια, θα περιγράψουμε συνοπτικά τις καρτέλες που χρησιμοποιήθηκαν. Εικόνα 14: Το περιβάλλον του Protege Η πρώτη καρτέλα ονομάζεται OWL Classes και εδώ μπορούμε να εισάγουμε τις κλάσεις, να γράψουμε σχόλια και να προσθέσουμε κάποιους περιορισμούς. Στην καρτέλα Properties, μπορούμε να εισάγουμε τις ιδιότητες των κλάσεων ανάλογα με τον τύπο τους, τις τιμές που μπορούν να πάρουν, τις κλάσεις με τις οποίες αλληλεπιδρούν και προσδιορίζουμε και την ιεραρχία τους. Στην καρτέλα Individuals, δημιουργούμε τα στιγμιότυπα της οντολογίας, αφού επιλέξουμε την κλάση στην οποία ανήκουν και μπορούμε να δούμε τις τιμές που είναι δυνατόν να λάβουν και τους περιορισμούς στους οποίους υπόκεινται. Στην καρτέλα Forms, βλέπουμε τις ιδιότητες του κάθε Individual και μπορούμε να την μεταβάλουμε όπως επιθυμούμε. 76
Στην καρτέλα SWRL Rules, μπορούμε να δημιουργήσουμε, να προσθέσουμε και να επεξεργαστούμε κανόνες SWRL. Στην παράγραφο 5.2 παρουσιάζουμε συνοπτικά την δομή της οντολογίας που χρησιμοποιήθηκε και στο παράρτημα Α τους κανόνες SWRL που γράφτηκαν στο SWRL Tab. 5.2.3 OpenRefine, RDF Refine Για να εισάγουμε δεδομένα στην εφαρμογή, πρέπει στην διαδρομή web\web- INF\classes\data να υπάρχουν τα δεδομένα σε κατάλληλη μορφή RDF/XML. Για να το πραγματοποιήσουμε αυτό, χρησιμοποιούμε το εργαλείο OpenRefine (πρώην Google-Refine) το οποίο είναι διαθέσιμο στην ιστοσελίδα http://openrefine.org/, σε συνδυασμό με την επέκταση RDF Refine, η οποία είναι διαθέσιμη στην σελίδα http://refine.deri.ie/. Το OpenRefine [57] είναι ένα εργαλείο για την διαχείριση μεγάλων συνόλων δεδομένων, τον καθαρισμό τους, την μετατροπή τους από έναν τύπο σε άλλον και την διασύνδεση δεδομένων με άλλα. Αφού κατεβάσουμε το κατάλληλο αρχείο ανάλογα με το λειτουργικό μας σύστημα, κάνουμε αποσυμπίεση του φακέλου στον υπολογιστή. Λόγω του ότι η εφαρμογή δημιουργήθηκε σε λειτουργικό σύστημα Windows 764 bit, θα δούμε σε αυτό το σημείο ένα παράδειγμα της διαδικασίας για το συγκεκριμένο λειτουργικό σύστημα. Αποσυμπιέζουμε το περιεχόμενο του φακέλου σε έναν φάκελο π.χ. C:\Google-Refine και εκτελούμε το αρχείο google-refine.exe. Για να προσθέσουμε την επέκταση RDF Refine επιλέγουμε το σύνδεσμο Browse workspace directory στο κάτω μέρος της οθόνης και αντιγράφουμε το φάκελο από το συμπιεσμένο αρχείο της επέκτασης στον φάκελο που ανοίγει. Τα δεδομένα μας υπάρχουν σε ένα αρχείο.xlsx και με την βοήθεια των εργαλείων θα μετατραπούν σε RDF/XML. Επιλέγοντας αριστερά Create Project και Get data from: This Computer επιλέγουμε το αρχείο που μας ενδιαφέρει, το οποίο στην περίπτωσή μας είναι το new test data 1 και πατάμε next. 77
Εικόνα 15: Αρχική Οθόνη OpenRefine Εικόνα 16: Επιλογή αρχείων για επεξεργασία Στην επόμενη οθόνη εμφανίζονται τα περιεχόμενα του φύλου excel για να επιλέξουμε αυτά που μας ενδιαφέρουν και μπορούμε να δώσουμε κάποιο όνομα στο project. Ας δούμε, για παράδειγμα, τα δεδομένα που αφορούν τις παρουσίες των φοιτητών στα μαθήματα, οπότε επιλέγουμε το φύλλο απουσίες και ονομάζουμε το project presence και επιλέγουμε Create Project. 78
Εικόνα 17: Δημιουργία νέου project Στην επόμενη σελίδα, στο πάνω δεξιά μέρος της σελίδας υπάρχει η επιλογή RDF και στην συνέχεια Edit RDF Skeleton. Με την επιλογή αυτή μπορούμε να ορίσουμε τους τύπους των δεδομένων ανάλογα με τους τύπους που χρησιμοποιούνται στην οντολογία μας, καθώς και να προσθέσουμε τα URI και τα properties που χρειάζονται. Εικόνα 18: Δημιουργία δομής RDF Αρχικά, δίνουμε μια τιμή στο Base URI, το οποίο στη συγκεκριμένη περίπτωση μπορεί να είναι το http://csd.auth.gr/master/resources/. Με το RDF Preview μπορούμε να βλέπουμε όποτε κρίνουμε απαραίτητο, την πρόοδο του αρχείου που δημιουργούμε και πως είναι η μορφή του αυτή τη στιγμή. 79
Εικόνα 19: Base URI Έπειτα, επιλέγουμε (row index) URI για να δώσουμε ένα κλειδί στα συγκεκριμένα δεδομένα. Αφού τα δεδομένα μας αποτελούνται από σπουδαστές και παρουσίες το κλειδί θα είναι σύνθετο και θα περιλαμβάνει τον Αριθμό Ειδικού Μητρώου του φοιτητή και την παρουσία του σε ένα συγκεκριμένο μάθημα. Οπότε με την χρήση του Use custom expression δημιουργούμε την κατάλληλη έκφραση, η οποία θα είναι: "student/"+floor(cells["αεμ"].value)+"/presence/"+floor(cells["id Μαθήματος"].value). Επίσης, επιλέγοντας add rdf:type προσθέτουμε, όπως γνωρίζουμε από την οντολογία, την κλάση http://lpis.csd.auth.gr/ontologies/2011/ir- InformaticsAndManagement.owl#StudentPresence Με την χρήση του floor(.) μπορούμε να παραλείψουμε δεκαδικά ψηφία αφού δεν είναι απαραίτητα στην συγκεκριμένη περίπτωση και να μην δημιουργήσουμε πρόβλημα στα δεδομένα και την οντολογία μας, όσον αφορά τα ερωτήματα SPARQL και την φόρτωση στο Stardog. 80
Εικόνα 20: Προσθήκη σύνθετου κλειδιού Στην συνέχεια θα προσθέσουμε τις κατάλληλες ιδιότητες στα δεδομένα. Από την οντολογία μας γνωρίζουμε ότι για κάθε φοιτητή έχουμε http://lpis.csd.auth.gr/ontologies/2011/irinformaticsandmanagement.owl#studentpre sencestudent, το οποίο αντιστοιχίζεται στο πεδίο ΑΕΜ, το οποίο είναι URI με τιμή "student/"+floor(value). Επίσης, έχουμε την ιδιότητα http://lpis.csd.auth.gr/ontologies/2011/irinformaticsandmanagement.owl#studentpre sencelesson, την οποία προσθέτουμε στο πεδίο property? και η οποία υποδηλώνει την παρουσία του φοιτητή σε ένα μάθημα και αντιστοιχεί στα δεδομένα μας στο ID Μαθήματος το οποίο είναι ένα URI με τιμή "course/"+floor(value). 81
Εικόνα 21: Προσθήκη course Απομένει να προσθέσουμε των αριθμό των απουσιών, ο οποίος στην οντολογία μας είναι στη μορφή http://lpis.csd.auth.gr/ontologies/2011/ir- InformaticsAndManagement.owl#studentNotPresentCount, είναι τύπου integer με τιμή επίσης floor(value), αφού θέλουμε να αποφύγουμε τα δεκαδικά ψηφία. Επιλέγοντας preview μπορούμε να δούμε την μορφή που έχουν τα δεδομένα που προσθέσαμε και να ελέγξουμε για τυχόν παραβλέψεις και διορθώσεις. 82
Εικόνα 22: Προεπισκόπηση αρχείου RDF Αφού γίνουν οι τελευταίοι έλεγχοι αποδεχόμαστε την μορφή με ΟΚ. Στη συνέχεια, από το μενού, που υπάρχει στην πάνω δεξιά γωνία, επιλέγουμε export σε μορφή RDF/XML. Εικόνα 23: Εξαγωγή δεδομένων σε μορφή RDF 83
Με τον τρόπο αυτό προσθέσαμε τα δεδομένα που χρειαζόμαστε για την παρουσία των φοιτητών στα μαθήματα. Αντίστοιχα, αν έχουμε και άλλα δεδομένα, σε μορφή excel μπορούν να προστεθούν στην εφαρμογή και να αξιοποιηθούν καταλλήλως. 5.2.4 Άλλα Εργαλεία - Τεχνολογίες Η εφαρμογή, ως διαδικτυακή, πρέπει να λειτουργεί στον περιηγητή (browser) ενός υπολογιστή. Για τον λόγο αυτό χρειάζεται η χρήση ενός web server σε επίπεδο λογισμικού ή σε επίπεδο υλικού. Σε επίπεδο λογισμικού, ένας application server, αναλαμβάνει την εκτέλεση διαδικασιών που είναι απαραίτητες (προγράμματα, ρουτίνες, script) για την εκτέλεση και υποστήριξη της εφαρμογής. Πιο συγκεκριμένα, οι servers, οι οποίοι χρησιμοποιούνται σε εφαρμογές Java, αποτελούν επέκταση της εικονικής μηχανής (virtual machine JVM) για την διαχείριση διεργασιών, όπως είναι η σύνδεση με μια βάση δεδομένων, η επικοινωνία με τον πελάτη (Web client) ή η επικοινωνία με μια σημασιολογική αποθήκη δεδομένων. Ο server που χρησιμοποιήθηκε στην ανάπτυξη της εφαρμογής είναι ο Apache Tomcat [58] στην έκδοση 7.0.41 από τον οργανισμό Apache Software Foundation. Ο Tomcat είναι ένας server ανοιχτού κώδικα για την εκτέλεση εφαρμογών Java, που περιλαμβάνουν Servlets και JavaServer Pages (JSP). Το servlet είναι μια κλάση Java, η οποία - ως επέκταση του server - χρησιμοποιείται για την διαχείριση αιτημάτων (requests), μέσω διαφόρων πρωτοκόλλων επικοινωνίας (συνήθως με το πρωτόκολλο HTTP) και την δημιουργία των κατάλληλων απαντήσεων (response). Κάποιες χρήσεις των servlet είναι η επεξεργασία ή αποθήκευση δεδομένων που έχουν υποβληθεί από μια φόρμα ή η δημιουργία δυναμικού περιεχομένου (π.χ. παρουσίαση αποτελεσμάτων από ερωτήματα σε μια βάση δεδομένων ή ανανέωση αποθεμάτων προϊόντων σε μια σελίδα). Για την εκτέλεση των servlet χρησιμοποιείται ένας web container, τμήμα του web server το οποίο είναι υπεύθυνο για την αλληλεπίδραση με τα servlet. Οι σελίδες της εφαρμογής δημιουργήθηκαν σε JSP, μια τεχνολογία με την οποία με την χρήση HTML, XML και Java μπορούμε να δημιουργήσουμε σελίδες με δυναμικό περιεχόμενο. Με το συνδυασμό γλωσσών σήμανσης για το στατικό περιεχόμενο των σελίδων και κομμάτια κώδικα Java, τα JSP αναλύονται από τον μεταγλωττιστή 84
(compiler), ο οποίος συνήθως βρίσκεται στον web server και μετατρέπονται σε servlet. Το στατικό περιεχόμενο εμπλουτίστηκε με Cascading Style Sheets (CSS), για να εμφανίζεται στον χρήστη με την μορφή που επιθυμούμε. Επίσης, σε ορισμένα σημεία έγινε χρήση Javascript. Για την αποθήκευση των δεδομένων των χρηστών της εφαρμογής χρησιμοποιήθηκε η MySQL [59], ένα σύστημα διαχείρισης βάσεων δεδομένων ανοιχτού κώδικα το οποίο χρησιμοποιείται ευρέως σε διαδικτυακές εφαρμογές. Η έκδοση 5.6 Community, η οποία χρησιμοποιήθηκε στην εφαρμογή, διανέμεται δωρεάν με άδεια χρήσης GPL και μπορεί να χρησιμοποιηθεί σε εφαρμογές Java με την χρήση JDBC. Για την διαχείριση της βάσης σε γραφικό περιβάλλον και όχι από τη γραμμή εντολών μπορεί να χρησιμοποιηθεί το εργαλείο MySQL Workbench. Ένα παράδειγμα δημιουργίας ενός πίνακα χρηστών είναι: CREATE TABLE `ir_users` ( `users_id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(45) DEFAULT NULL, `password` varchar(45) DEFAULT NULL, `realname` varchar(45) DEFAULT NULL, `usertype` varchar(45) DEFAULT NULL, `userdate` timestamp NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`users_id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=greek; Η εισαγωγή των δεδομένων για κάποιον χρήστη μπορεί να γίνει ως εξής: INSERT INTO `ir_users` VALUES (1,'ta','tatest','Αθανάσιος Αντωνίου','admin','2013-12-22 08:56:15') Για την ανάπτυξη της εφαρμογής χρησιμοποιήθηκε το περιβάλλον προγραμματισμού (IDE) Netbeans [60] στην έκδοση 7.4, το οποίο υποστηρίζει την γλώσσα προγραμματισμού Java (έκδοση 1.7). Το Netbeans IDE είναι από τα πιο διαδεδομένα IDE (μαζί με το Eclipse) και χρησιμοποιείται για την ανάπτυξη εφαρμογών σε διάφορες γλώσσες προγραμματισμού. Ο λόγος που προτιμήθηκε έναντι ανταγωνιστικών προϊόντων είναι η εξοικείωση με αυτό και η ευκολία χρήσης του. 85
5.3 Σύντομη Παρουσίαση Οντολογίας Εφαρμογής Η οντολογία αναπτύχθηκε στα πλαίσια παλαιότερης διπλωματικής εργασίας [33] με την χρήση του εργαλείου Protégé και της OWL DL και στη συνέχεια χρησιμοποιήθηκε με κάποιες τροποποιήσεις για τις ανάγκες της τωρινής εργασίας. Με την οντολογία αυτή αναπαριστάται ο Εσωτερικός Κανονισμός του Διατμηματικού Προγράμματος Μεταπτυχιακών Σπουδών (ΔΠΜΣ) Πληροφορική και Διοίκηση [61]. Εσωτερικός Κανονισμός ενός Α.Ε.Ι. είναι ο κανονισμός λειτουργίας του, ο οποίος ρυθμίζει θέματα διοικητικής λειτουργίας, οργανωτικής δομής, ελέγχου της τήρησης των θεσπισμένων κανόνων, καθώς και τις κυρώσεις σε περίπτωση μη εφαρμογής ή παραβίασής τους [62]. Οι Βασικές κλάσεις της Οντολογίας είναι: Άτομο o Διδάσκων Εξωτερικός Συνεργάτης Μέλος ΔΕΠ o Φοιτητής Κατεύθυνση Πληροφορικής Κατεύθυνση Οικονομικού o Άλλος Αξιολόγηση o Αξιολόγηση Διδάσκοντα o Αξιολόγηση ΔΠΜΣ o Αξιολόγηση Μαθημάτων o Αξιολόγηση Υποψήφιου Φοιτητή Βαθμολογία Μαθήματος Φοιτητή Παρουσία Φοιτητή σε Μάθημα Θέματα που ρυθμίζει ο Εσωτερικός Κανονισμός ΔΠΜΣ o Διαδικασία ΔΠΜΣ Διαδικασία Επιτυχούς Παρακολούθησης Διαδικασία Εξέτασης Διαδικασία Επανεξέτασης 86
Διαδικασία Εξέτασης Μεταπτυχιακής Εργασίας Διαδικασία Εισαγωγής Φοιτητών Διαδικασία Επιλογής Φοιτητών Διαδικασία Εισαγωγής από Γραμματεία Διαδικασία Συλλογής Δικαιολογητικών Διαδικασία Φοίτησης στο ΔΠΜΣ Διαδικασία κατά την Φοίτηση Διαδικασία Υποτροφίας Διαδικασία Διακοπής Σπουδών o Επιλογή Διοίκησης ΔΠΜΣ Γραμματέας Διευθυντής ΕΔΕ ΣΕΔΠΜΣ o Επιλογή Φοιτητή Λίστα Μαθημάτων του Έτους Μάθημα o Επιλογής o Υποχρεωτικό Κατεύθυνσης Οικονομικού o Υποχρεωτικό Κατεύθυνσης Πληροφορικής Μεταπτυχιακή Διπλωματική Εργασία Χρονική Περίοδος Αυτές είναι οι βασικές κλάσεις έτσι ώστε να παρουσιαστεί η κεντρική δομή της οντολογίας. Στην οντολογία υπάρχουν και άλλες υποκλάσεις, οι οποίες αναλυτικά φαίνονται στο αρχείο IR-InformaticsAndManagement.owl, είτε με κάποιον editor, είτε με ένα εργαλείο επεξεργασίας, όπως είναι το Protégé, το οποίο αναφέραμε και παραπάνω. 87
Εικόνα 24: Οι βασικές κλάσεις του ΕΚ από Protege 88
Από την παραπάνω οντολογία και χρησιμοποιώντας κάποια τυχαία δεδομένα φοιτητών, που συμπεριλαμβάνουν τις βαθμολογίες τους σε μαθήματα, στην διπλωματική εργασία και την παρουσία τους στα μαθήματα που παρακολούθησαν, θα προσπαθήσουμε με την σύνθεση κατάλληλων ερωτημάτων να ελέγξουμε αν τηρήθηκε ο ΕΚ σε ορισμένες περιπτώσεις. Αναλυτική περιγραφή της οντολογίας γίνεται σε παλαιότερη εργασία, οπότε δεν θα επεκταθούμε ιδιαίτερα. Αξίζει να αναφέρουμε όμως κάποιες μετατροπές που έγιναν για την χρήση της στην εφαρμογή. Καταρχάς, να αναφέρουμε σε γενικές γραμμές ότι είναι καλή πρακτική σε μια οντολογία να υπάρχουν οι κλάσεις και οι ιδιότητες και κάποια πιο γενικά στιγμιότυπα, τα οποία συνδέονται με κάποια εξωτερικά δεδομένα. Αφαιρέθηκαν, λοιπόν, δεδομένα που αφορούν τους υποψήφιους προς εισαγωγή στο ΔΠΜΣ, τους φοιτητές που φοιτούν στο πρόγραμμα και τα μαθήματα του ΔΠΜΣ. Επίσης, αφαιρέθηκαν λίστες και περιγραφές τους (rdf:first, rdf:list), καθώς σκοπός της εργασίας είναι να παρουσιάσει κάποια αποτελέσματα, εκτελώντας ερωτήματα SPARQL, ανεξάρτητα από τις λίστες στην οντολογία. Επίσης, αφαιρέθηκαν κανόνες υπολογισμού, αφού ο υπολογισμός θα γίνει μέσω ερωτημάτων SPARQL. Για τον έλεγχο της παρουσίας των φοιτητών προστέθηκε η κλάση StudentPresence. Με την κλάση αυτή θα είναι εφικτό να ελέγχουμε την παρουσία του φοιτητή σε κάθε μάθημα, σημειώνοντας τις απουσίες του από 0 και πάνω. Η κλάση GradeOfStudentPerCourse περιγράφει τις βαθμολογίες των φοιτητών ανά μάθημα και χαρακτηρίζουμε την εξέταση ως επαναληπτική ή κανονική ανάλογα με την περίοδο που πραγματοποιήθηκε. Η κλάση Lesson χρησιμοποιείται για την περιγραφή των μαθημάτων. Για να μπορέσουμε να ελέγξουμε αν ο φοιτητής έχει ολοκληρώσει την διπλωματική του εργασία με βαθμό πάνω από 6,9 προστέθηκε ο κανόνας ThesisFinishedRule, ο οποίος έχει ως εξής: Student(?st) MasterThesis(?th) thesisauthor(?th,?st) thesisgrade(?th,?thgrade) swrlb:greaterthan(?thgrade, 6.9) Student_Finish_his_Thesis(?st, true) 89
5.4 Υλοποίηση Εφαρμογής Η υλοποίηση της εφαρμογής έγινε στο Netbeans IDE με την γλώσσα προγραμματισμού Java. Το όνομα που δόθηκε στην εφαρμογή για τις ανάγκες της εργασίας είναι «Informatics and Management - Internal Regulation Web Application». Τα αρχεία του Netbeans Project IR, καθώς και όλα τα αρχεία τα οποία είναι απαραίτητα για την λειτουργία της εφαρμογής, όπως είναι τα δεδομένα, η οντολογία και η βάση των χρηστών, περιλαμβάνονται στον ψηφιακό δίσκο (CD) που παραδόθηκε με την ολοκλήρωση της εργασίας και είναι διαθέσιμα (από τον φοιτητή) εάν χρειαστούν (Παράρτημα Γ). Στον κώδικα της εφαρμογής υπάρχουν σχόλια σε αρκετά σημεία, τα οποία αναφέρονται στις λειτουργίες που επιτελούνται σε εκείνο το σημείο. Σε αυτή την παράγραφο θα προσπαθήσουμε να παρουσιάσουμε την υλοποίηση της εφαρμογής, με την περιγραφή των κλάσεων, των σελίδων και των αρχείων που χρησιμοποιήθηκαν. Παραπάνω είδαμε τις απαιτήσεις που έχουμε από την εφαρμογή και την δομή της αρχιτεκτονικής της, όπως αρχικά την σχεδιάσαμε. Εδώ θα περιγράψουμε πιο αναλυτικά τις λειτουργίες των κλάσεων. Μπορούμε να χωρίσουμε την εφαρμογή σε τρία τμήματα, όσο αφορά το κομμάτι της υλοποίησης: το περιβάλλον χρήσης της εφαρμογής, το κομμάτι της σύνδεσης χρήστη στην εφαρμογή και το κομμάτι της σύνδεσης και υποβολής ερωτημάτων στην σημασιολογική βάση. Το περιβάλλον χρήσης της εφαρμογής αποτελείται από σελίδες που υλοποιήθηκαν σε jsp και αποτελούνται κυρίως από html, με ορισμένα τμήματα κώδικα Java, για διαδικασίες όπως ο τερματισμός ενός session. Ως frontend, μπορούμε να το δούμε ως το κομμάτι που αφορά το τι βλέπει ο χρήστης και να το διαχωρίσουμε από το backend. Χρησιμοποιήθηκαν κυρίως φόρμες, μέσω των οποίων επικοινωνούμε με τα κατάλληλα servlet με μεθόδους post και get για την υποβολή ερωτημάτων στην βάση δεδομένων MySQL και στην σημασιολογική βάση csddb, η οποία δημιουργείται μέσω του Stardog. Για το κομμάτι της διεπαφής, χρησιμοποιήθηκαν, επίσης, τεχνολογίες css και javascript σε ορισμένα σημεία. Στο επόμενο κεφάλαιο, όπου και περιγράφουμε κάποιες περιπτώσεις χρήσης της εφαρμογής παρουσιάζουμε και κάποια χαρακτηριστικά σημεία σχετικά με την εμφάνισή της. Οι σελίδες από τις οποίες αποτελείται η εφαρμογή και οι λειτουργίες τους συνοπτικά είναι: 90
Login.jsp: Είσοδος χρήστη ή επιλογή εγγραφής νέου χρήστη Signup.jsp: Εγγραφή νέου χρήστη Main.jsp: Η σελίδα όπου εμφανίζονται οι επιλογές αναζήτησης των χρηστών Resultsxxxx.jsp: Οι σελίδες όπου εμφανίζονται τα αποτελέσματα και δίνεται επιλογή για έξοδο ή επανάληψη αναζήτησης, όπου xxxx το αποτέλεσμα από το αντίστοιχο ερώτημα. Logout.jsp: Η σελίδα, η οποία παρουσιάζεται με την έξοδο του χρήστη και την λήξη του session InvalidLogin.jsp: Η σελίδα που εμφανίζεται σε περίπτωση λάθους κωδικού ή όνομα χρήστη Όσον αφορά την διαχείριση των λειτουργιών που αφορούν το κομμάτι της σύνδεσης στην εφαρμογή και την βάση δεδομένων της εφαρμογής, αυτή γίνεται στο πακέτο LogInOut. Το πακέτο περιέχει το servlet LoginServlet.java στο οποίο λαμβάνονται οι παράμετροι username(un) και password(pw) και ορίζονται ως ιδιότητες του αντικειμένου user, το οποίο δημιουργείται στην κλάση UserBean.java. Στην κλάση με όνομα ConnectionManager.java γίνονται οι διαδικασίες σύνδεσης με την βάση MySQL, χρησιμοποιώντας το κατάλληλο URL, τον driver, το κατάλληλο όνομα χρήστη και κωδικό πρόσβασης. Στην κλάση UserDAO.java, συνδεόμαστε στην βάση και εκτελούμε ελέγχους μέσω ερωτημάτων SQL, αν υπάρχει ο χρήστης με τα username, password που δόθηκαν. Αν ισχύει αυτό, δίνεται η τιμή true στην ιδιότητα setvalid του UserBean, αλλιώς δίνεται η τιμή false. Οι τιμές αυτές λαμβάνονται από το servlet LoginServlet.java και αν είναι true, δημιουργούμε ένα session για τον χρήστη, ο οποίος εισήλθε στο σύστημα. Σε διαφορετική περίπτωση (false), προβάλλουμε μια σελίδα σφάλματος, όπου υπάρχει η προτροπή για να επανεισαγάγει ο χρήστης τα διαπιστευτήρια του. Στο servlet με όνομα LogoutServlet κλείνουμε το session, κάθε φορά που ο χρήστης επιλέγει έξοδο από το σύστημα. Στο SignupServlet συνδεόμαστε στην βάση δεδομένων και δημιουργούμε έναν νέο χρήστη. Αυτό γίνεται κάνοντας INSERT με ερώτημα SQL τα στοιχεία, τα οποία γράφονται από τον νέο χρήστη στην φόρμα του Signup.jsp. Με την υποβολή των νέων στοιχείων εμφανίζεται η οθόνη εισαγωγής στοιχείων, σε περίπτωση που ο χρήστης, ο οποίος έκανε εγγραφή, επιθυμεί να εισέλθει στο σύστημα. 91
Στο πακέτο IRSearch, μπορούμε να βρούμε τις κλάσεις και τα servlet, που είναι απαραίτητα για λειτουργίες οι οποίες αφορούν την σημασιολογική αποθήκη που δημιουργείται κατά την πρώτη εκτέλεση της εφαρμογής. Στο αρχείο StardogServlet.java γίνεται ουσιαστικά η αρχικοποίηση της σημασιολογικής βάσης με όνομα csddb. Αρχικά, διαβάζουμε από την διαδρομή /WEB-INF/classes/stardog/ το αρχείο με την άδεια χρήσης του Stardog, stardog-license-key.bin. Στη διαδρομή /WEB-INF/classes/ontology/ διαβάζουμε τα αρχεία οντολογιών που μας ενδιαφέρουν, που είναι ένα στην προκειμένη περίπτωση, δηλαδή η οντολογία του εσωτερικού κανονισμού που δημιουργήσαμε στο Protégé. Στη διαδρομή /WEB-INF/classes/data/ είναι αποθηκευμένα τα δεδομένα σε μορφή RDF. Όλα τα παραπάνω προστίθενται σε: ArrayList<InputStream> inputs = new ArrayList<InputStream>() με την μέθοδο inputs.add. Η σημασιολογική βάση δημιουργείται με την μέθοδο: StardogManager.createDB("csdDB", inputs). Στην κλάση StardogManager.java δημιουργούμε ένα αντικείμενο Stardog server με SNARL API, έτσι ώστε να είναι η σημασιολογική βάση ενσωματωμένη στην εφαρμογή και επιλέγουμε τι είδους ερωτήματα και συστήματα συλλογιστικής θα χρησιμοποιήσουμε. Αρχικά, δημιουργούμε την βάση στην μέθοδο public static void createdb(string databasename, ArrayList<InputStream> datafiles). Στην συνέχεια, χρησιμοποιώντας το ConnectionConfiguration, δημιουργούμε μια σύνδεση με τη βάση με τις παραμέτρους που επιθυμούμε, το είδος των ερωτημάτων SPARQL που θα χρησιμοποιήσουμε (SELECT στην συγκεκριμένη περίπτωση) και τελικά κλείνουμε τη σύνδεση. Στις παραμέτρους συμπεριλαμβάνεται το όνομα της βάσης, το όνομα χρήστη και ο κωδικός πρόσβασης στη βάση, το είδος συλλογιστικής που υποστηρίζεται από το Stardog και είναι κατάλληλο για την χρήση μας (SL). Το αντικείμενο που θα δημιουργήσουμε έχει κατά συνέπεια την μορφή: ReasoningConnection aconn = ConnectionConfiguration.to(dbName).credentials("admin", "admin").reasoning(reasoningtype.sl).connect().as(reasoningconnection.class); SelectQuery aquery = aconn.select(query); 92
Στο servlet SearchServlet.java συνθέτουμε και εκτελούμε τα κατάλληλα ερωτήματα SPARQL ανάλογα με τις παραμέτρους που λαμβάνουμε από την φόρμα στην σελίδα main.jsp. Εκτελούμε ελέγχους με if και else if για τις παραμέτρους που δίνει ο χρήστης επιλέγοντας μια πρόταση από την σελίδα της εφαρμογής. Αν για παράδειγμα λάβουμε την παράμετρο graduates τότε εκτελείται το εξής τμήμα κώδικα: if (request.getparameter("graduates")!= null) { try { StardogManager sm = new StardogManager(); String graduates = "PREFIX csd: <http://lpis.csd.auth.gr/ontologies/2011/ir- InformaticsAndManagement.owl#>\n" + "\n" + "SELECT?student (sample(?fullname) as?fullname) {\n" + "?gradepercourse csd:student_lesson_rating?student.\n" + "?gradepercourse csd:student_lesson_pass true.\n" + " \n" + "?student csd:student_finish_his_thesis true.\n" + "\n" + "?student a csd:student.\n" + "?student csd:full_name?fullname.\n" + "\n" + "?gradepercourse a csd:gradeofstudentpercourse.\n" + "\n" + "}\n" + "group by?student\n" + "HAVING( (count(distinct?gradepercourse)>11))"; HashMap params = new HashMap<String, Object>(); try { ArrayList<HashMap<String, Value>> res = sm.select(graduates, params); out.print(res.tostring()); } Στο παραπάνω τμήμα κώδικα συνθέτουμε ένα ερώτημα SPARQL select, με το οποίο λαμβάνουμε ως αποτέλεσμα τους φοιτητές που έχουν εκπληρώσει τις υποχρεώσεις τους για την απονομή πτυχίου. Στο παράρτημα Β υπάρχουν τα ερωτήματα σε SPARQL και μπορούμε να τα συνθέσουμε σε Java. Για κάθε ερώτημα που υποβάλουμε στην σημασιολογική βάση ακολουθείται παρόμοια διαδικασία. Αφού αποθηκεύσουμε το αποτέλεσμα του ερωτήματος στην μεταβλητή res, στην συνέχεια την ενσωματώνουμε στο response του sevlet και κάνουμε Redirect στο αντίστοιχο jsp με τον εξής τρόπο: 93
request.setattribute("datalist", res); request.getrequestdispatcher("resultsgrade.jsp").forward( request, response); Η διαμόρφωση των αποτελεσμάτων γίνεται στο αντίστοιχο.jsp. Για το παραπάνω ερώτημα δημιουργούμε δυναμικά έναν πίνακα για όσα αποτελέσματα επιστρέφονται από την Arraylist res. Αυτό είναι δυνατό με την χρήση της βιβλιοθήκης JSTL. Με το dataitem.student μπορούμε να πάρουμε π.χ. το id από την οντολογία μας για κάθε φοιτητή. Αντίστοιχα, βλέπουμε τι έχουμε ζητήσει να επιστρέψει το SELECT που υποβάλλαμε παραπάνω και προσθέτουμε dataitem.xxxx, όπου xxx το στοιχείο της λίστας που θέλουμε να εμφανιστεί στο αντίστοιχο κελί του πίνακα. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>... <table> <tr><th>κωδικός Φοιτητή (AEM)</th> <th>όνομα Φοιτητή</th><th>Βαθμός Πτυχίου</th> <th>βαθμός Διπλωματικής</th> <th>βαθμός μαθημάτων</th></tr> <c:foreach items="${datalist}" var="dataitem"> <tr> <td>${dataitem.student}</td> <td>${dataitem.fullname}</td> <td>${dataitem.result}</td> <td>${dataitem.thesisgrade}</td> <td>${dataitem.grade}</td> </tr> </c:foreach> </table> Από τα παραπάνω μπορούμε να κατανοήσουμε πως λειτουργεί η εφαρμογή και εκτελούνται τα ερωτήματα που χρειάζονται στην οντολογία και τα δεδομένα μας. Σχετικά με τα αρχεία που χρησιμοποιούνται στην εφαρμογή πρέπει να σημειώσουμε τα εξής. Με την διαδικασία που αναφέραμε και παραπάνω (5.2.3), μετατρέψαμε τα δεδομένα που βρίσκονται στο αρχείο με όνομα «new test data final.xlsx» σε rdf. Με τον τρόπο αυτό δημιουργήσαμε τα εξής αρχεία: 94
courses.rdf: Εδώ βρίσκονται τα δεδομένα σχετικά με τα μαθήματα του ΔΠΜΣ students.rdf: Δεδομένα που αφορούν τους φοιτητές, όπως ΑΕΜ, όνομα. exams.rdf: Δεδομένα που αφορούν την εξέταση του κάθε μαθήματος για κάθε φοιτητή, όπως είναι η βαθμολογία, ο τύπος της εξέτασης (κανονική ή επαναληπτική) και το εξάμηνο δήλωσης του μαθήματος (1, 2, 3). presence.rdf: Δεδομένα που αφορούν τις απουσίες των φοιτητών σε κάθε μάθημα theses.rdf: Δεδομένα που αφορούν τις διπλωματικές εργασίες Αυτά τα αρχεία πρέπει βρίσκονται στο φάκελο web/classes/data του project, όπου μελλοντικά μπορούμε να αποθηκεύσουμε και άλλα δεδομένα που αφορούν την εφαρμογή. Το αρχείο της οντολογίας (IR-InformaticsAndManagement.owl) πρέπει να βρίσκεται στη διαδρομή web/classes/ontology. Επίσης, κατά τη διαδικασία εγγραφής στο Stardog μας δόθηκε μια άδεια χρήσης με όνομα stardog-license-key.bin, η οποία και αποθηκεύεται στη διαδρομή web/classes/stardog, για να μπορέσουμε να χρησιμοποιήσουμε τις βιβλιοθήκες του stardog στην java. Όλα τα παραπάνω αρχεία είναι απαραίτητα για τη δημιουργία μιας σημασιολογικής βάσης κατά την εκκίνηση της εφαρμογής, η οποία είναι ενσωματωμένη (embedded) στην εφαρμογή. Επίσης, για να είναι δυνατή η χρήση του SNARL API, πρέπει να συμπεριλάβουμε όλες τις βιβλιοθήκες που βρίσκονται στις διαδρομές stardog-2.1\client\api\ και stardog-2.1\client\snarl\ του φακέλου που κατεβάσαμε από την ιστοσελίδα του Stardog. Στον φάκελο client μπορούμε επίσης να βρούμε αρχεία που χρειάζονται για να κάνουμε χρήση API όπως Sesame και Jena, αλλά εμείς ακολουθώντας την παρότρυνση των δημιουργών του Stardog χρησιμοποιήσαμε το SNARL, για μεγαλύτερη ευκολία και καλύτερη απόδοση. Επίσης, πρέπει να υπάρχει η βάση δεδομένων MySQL με τις πληροφορίες των χρηστών της εφαρμογής στον server όπου αυτή θα τρέχει. 95
5.5 Περιγραφή Εφαρμογής Με την πληκτρολόγηση του URL της εφαρμογής, ο χρήστης μεταφέρεται στην αρχική σελίδα της. Στο σημείο αυτό θα πρέπει να γίνει εισαγωγή όνομα χρήστη και κωδικού πρόσβασης ή εγγραφή στην εφαρμογή. Το κεντρικό τμήμα της σελίδας καλύπτεται από την φόρμα εισαγωγής και την επιλογή για εγγραφή στην εφαρμογή. Εικόνα 25: Λογότυπο Εφαρμογής Εικόνα 26: Είσοδος Αν ο χρήστης επιλέξει εγγραφή μεταφέρεται στην σελίδα με την φόρμα εγγραφής. Εικόνα 27:Εγγραφή 96
Αφού εισέλθει, ο χρήστης μεταφέρεται στην κεντρική οθόνη της εφαρμογής. Εικόνα 28: Κεντρική Σελίδα Στην οθόνη αυτή μπορούμε να διακρίνουμε τις βασικές λειτουργίες της εφαρμογής. Εδώ ο χρήστης μπορεί να επιλέξει την ερώτηση που θέλει να υποβάλλει στο σύστημα και στη συνέχεια θα του επιστραφούν τα κατάλληλα αποτελέσματα. Εικόνα 29: Επιλογές Χρήστη 97