ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΣΠΟΥ ΑΣΤΗΣ: Γιαννόπουλος Γεώργιος ΕΠΙΒΛΕΠΩΝ: Καθ. Ι. Βασιλείου ΒΟΗΘΟΙ: Α. ηµητρίου, Θ. αλαµάγκας Γενικά Οι µηχανές αναζήτησης που προσφέρονται σήµερα (desktop search engines) λειτουργούν µε τον κλασσικό τρόπο αναζήτησης, δηλαδή µε χρήση λέξεων-κλειδιών. Συγκεκριµένα, διατρέχουν τον σκληρό δίσκο, εξάγουν από το κάθε έγγραφο πληροφορία που αφορά το περιεχόµενό του και αποθηκεύουν σε ευρετήρια την πληροφορία αυτή. Έτσι, καθίσταται δυνατή η αναζήτηση λέξεων κλειδιών στον τίτλο ή στο κείµενο κάποιου εγγράφου, µέσω των ευρετηρίων αυτών. Το πρόβληµα που προκύπτει µε τον παραπάνω τρόπο αναζήτησης είναι ότι, κάποια έγγραφα ενδέχεται να µην περιέχουν στο κείµενο ή στον τίτλο τους µία συγκεκριµένη λέξη ή φράση, παρόλα αυτά, όµως, να ανήκουν σηµασιολογικά στην ευρύτερη έννοια που περιγράφεται από την ίδια λέξη. Για παράδειγµα, ένα πολύ εξειδικευµένο κείµενο που περιγράφει τη γλώσσα SQL, µπορεί να µην περιέχει τη λέξη database, έχει, όµως, σχέση µε βάσεις δεδοµένων. Λύση στο παραπάνω πρόβληµα προσφέρει η χρήση οντολογιών. Με τη βοήθεια µίας οντολογίας, ο χρήστης δύναται να χαρακτηρίζει σηµασιολογικά ένα έγγραφο, µε βάση τις έννοιες τις οντολογίας, και ανεξάρτητα από τις λέξεις κλειδιά που περιέχει το έγγραφο. Ύστερα, µπορεί να πλοηγείται στις έννοιες της οντολογίας και να αναζητά τα επιθυµητά έγγραφα, εκτελώντας διαφόρων ειδών επερωτήµατα (queries) στην οντολογία. Αντικείµενο Αντικείµενο της διπλωµατικής είναι η ανάπτυξη µίας µηχανής αναζήτησης εγγράφων (GoNToggle) σε σκληρό δίσκο υπολογιστών, που συνδυάζει την κλασσική αναζήτηση µε λέξεις κλειδιά µε αναζήτηση-περιήγηση στις έννοιες µίας οντολογίας. Για την ανάπτυξη της
εφαρµογής χρησιµοποιήθηκαν βιβλιοθήκες συναρτήσεων από δύο διαφορετικά εργαλεία, το lucene και το protégé. Εργαλεία και βιβλιοθήκες που χρησιµοποιήθηκαν Το lucene είναι µία ολοκληρωµένη βιβλιοθήκη συναρτήσεων για αναζήτηση κειµένων, υλοποιηµένη σε Java. Παρέχει συναρτήσεις για διάσχιση του σκληρού δίσκου, εξαγωγή κειµένου από διάφορους τύπους εγγράφων, ανάλυση του κειµένου και αποθήκευση της εξαγόµενης πληροφορίας σε ευρετήρια και αναζήτηση λέξεων κλειδιών σε αυτά. Οι συναρτήσεις αυτές του lucene χρησιµοποιήθηκαν για την υλοποίηση του ενός µέρους της εφαρµογής µας, δηλαδή της αναζήτησης µε λέξεις κλειδιά. Η βιβλιοθήκη δεν χρησιµοποιήθηκε ως είχε, αλλά έγιναν ορισµένες τροποποιήσεις, ώστε, για παράδειγµα να είναι δυνατή η αναγνώριση από την εφαρµογή όσο το δυνατόν περισσοτέρων τύπων αρχείων. Το protégé, σε αντίθεση µε το lucene, είναι µία ολοκληρωµένη εφαρµογή διαχείρισης οντολογίων, υλοποιηµένη και αυτή σε Java, που προσφέρει επιπλέον και API (protégé και protégé-owl) για χρησιµοποίηση από άλλα προγράµµατα. Με τη χρήση συναρτήσεων του protégé καθίσταται δυνατή η δηµιουργία µίας OWL οντολογίας, η επεξεργασία των στοιχείων (κλάσεων, στιγµιοτύπων, ιδιοτήτων) της οντολογίας και η εκτέλεση ερωτηµάτων πάνω στην οντολογία. Αρκετές από αυτές τις λειτουργίες συνοδεύονται από ολοκληρωµένες διαπροσωπείες (GUI), τις οποίες ο χρήστης µπορεί να χρησιµοποιήσει χωρίς αλλαγές. Βέβαια, η βιβλιοθήκη συναρτήσεων του protégé είναι αρκετά µεγαλύτερη και πιο πολύπλοκη από αυτή του lucene, παρέχοντας ταυτόχρονα περισσότερες και πιο ολοκληρωµένες συναρτήσεις. Για αυτό, σχεδόν όλες οι συναρτήσεις της (που χρειάστηκαν για την ανάπτυξη της εφαρµογής) χρησιµοποιήθηκαν ως είχαν, χωρίς να τροποποιηθούν. Η ανάπτυξη του GoNToggle έγινε σε γλώσσα Java 2. Η κύρια πλατφόρµα ανάπτυξης, η οποία στηρίχθηκε στα j2sdk1.4.2_07 και j2re-1_4_2_07 είναι το NetBeans IDE 5.0. Επιπλέον, ειδικά για την ανάπτυξη (µεταβολή, προσαρµογή, δηµιουργία νέων) συναρτήσεων της βιβλιοθήκης lucene χρησιµοποιήθηκαν δευτερεύοντα εργαλεία όπως τα apache-ant-1.6.5, javacc-4.0 και junit4.0. Περιγραφή της εφαρµογής Η εφαρµογή αποτελείται από τρία βασικά υποσυστήµατα: Το υποσύστηµα δηµιουργίας ευρετηρίου, το υποσύστηµα σηµασιολογικού χαρακτηρισµού κειµένων και επεξεργασίας οντολογιών και το υποσύστηµα αναζήτησης. Ακολουθούν οι λειτουργίες που επιτελούνται σε κάθε υποσύστηµα. 1. ηµιουργία ευρετηρίου
Το υποσύστηµα δηµιουργίας ευρετηρίου δίνει στο χρήστη τη δυνατότητα να επιλέξει αν θα δηµιουργήσει ένα νέο ευρετήριο ή αν θα επεξεργαστεί ήδη υπάρχον ευρετήριο, να επιλέξει το φάκελο αρχείων που θα δεικτοδοτηθούν και τέλος, να δηµιουργήσει το ευρετήριο πάνω στο οποίο θα εκτελεστεί αργότερα αναζήτηση µε λέξεις κλειδιά. Τα είδη εγγράφων που υποστηρίζονται, δηλαδή τα είδη των εγγράφων από τα οποία µπορεί να εξαχθεί πληροφορία και να αποθηκευθεί στο ευρετήριο είναι τα εξής: doc, pdf, txt, rtf, xls, html. Η ανάπτυξη αυτού του υποσυστήµατος πραγµατοποιήθηκε µε τη βοήθεια συναρτήσεων του lucene. 2. Σηµασιολογικός χαρακτηρισµός Επεξεργασία οντολογίας Το υποσύστηµα σηµασιολογικού χαρακτηρισµού κειµένων και επεξεργασίας οντολογιών δίνει στο χρήστη δυνατότητα επιλογής ενός εγγράφου, προβολής του κειµένου του και επιλογής όλου του κειµένου ή µόνο ενός µέρους του για σηµασιολογική επισηµείωση. Το σηµασιολογικά χαρακτηρισµένο κείµενο (ή κοµµάτι κειµένου) αποθηκεύεται σε µία επιλεγµένη από το χρήστη οντολογία ως στιγµιότυπο µίας ή περισσοτέρων κλάσεων που καθορίζει ο χρήστης. Αυτό το στιγµιότυπο περιέχει σηµαντική πληροφορία (όνοµα-µονοπάτι του εγγράφου στο δίσκο, έννοιες-κλάσεις µε τις οποίες έχει χαρακτηριστεί) οι οποίες είναι απαραίτητες για το κοµµάτι της σηµασιολογικής αναζήτησης. Επιπλέον, ο χρήστης µπορεί να επιλέγει την οντολογία µε την οποία θα εργαστεί, να επεξεργάζεται την οντολογία και τα στιγµιότυπά της, καθώς και να αποθηκεύσει τις αλλαγές. Συγκεκριµένα, είναι δυνατή η επεξεργασία της ιεραρχίας της οντολογίας (προσθαφαίρεση κλάσεων-εννοιών, δηµιουργία υπερκλάσεων-υποκλάσεων, προσθαφαίρεση ιδιοτήτων των κλάσεων) καθώς και η επεξεργασία των στιγµιοτύπων που περιγράφηκαν παραπάνω (διαγραφή στιγµιοτύπων, προσθαφαίρεση στιγµιοτύπων από κλάσεις της οντολογίας, σύνδεση στιγµιοτύπων µέσω ιδιοτήτων). Για την ανάπτυξη του υποσυστήµατος χρησιµοποιήθηκαν συναρτήσεις του protégé. 3. Αναζήτηση Το υποσύστηµα αναζήτησης δίνει στο χρήστη τη δυνατότητα να εκτελεί αναζήτηση µε λέξεις κλειδιά, αναζήτηση µε ερωτήσεις στην οντολογία και συνδυαστική αναζήτηση. Συγκεκριµένα, µε τη συνδυαστική αναζήτηση, ο χρήστης εκτελεί ταυτόχρονα αναζήτηση µε λέξεις κλειδιά στο ευρετήριο και σηµασιολογική αναζήτηση-περιήγηση στις έννοιες της οντολογίας, έχοντας τη δυνατότητα να επιλέξει ως αποτέλεσµα την ένωση ή την τοµή των δύο αναζητήσεων. Επίσης, µπορεί να εκτελεί αναζήτηση στα αποτελέσµατα προηγούµενης αναζήτησης. Όσον αφορά την αναζήτηση µε λέξεις κλειδιά, προσφέρονται κάποιες προχωρηµένες επιλογές, όπως αναζήτηση ολόκληρων φράσεων, αναζήτηση µε AND, OR και ΝΟΤ, αναζήτηση στον τίτλο των εγγράφων κ.α. Με τη σηµασιολογική αναζήτηση, δίνεται η δυνατότητα περιήγησης στην ιεραρχία της οντολογίας, επιλογής µίας ή περισσοτέρων κλάσεων-εννοιών και περαιτέρω επιλογής, από τις επιλεγµένες κλάσεις (και τις υποκλάσεις
τους), των στιγµιοτύπων των εγγράφων που επιθυµεί ο χρήστης. Επίσης, µε την επιλογή ενός εγγράφου από τη λίστα των αποτελεσµάτων µίας αναζήτησης, διατίθενται επιπλέον δυνατότητες: Ο χρήστης µπορεί να αναζητήσει έγγραφα τα οποία ανήκουν στις ίδιες κλάσεις της οντολογίας µε το επιλεγµένο έγγραφο αλλά και να αναζητήσει έγγραφα που συνδέονται µε ορισµένες ιδιότητες µε το επιλεγµένο έγγραφο. Η παρουσίαση των αποτελεσµάτων γίνεται µε τέτοιο τρόπο ώστε ο χρήστης να αντλεί πληροφορίες σχετικές µε το σκορ του κάθε εγγράφου, το είδος της αναζήτησης από την οποία προήλθε, αλλά και πληροφορίες σηµασιολογικού περιεχοµένου. Το συνολικό σκορ κάθε εγγράφου προέρχεται από έναν συνδυασµό του σκορ που προκύπτει από την αναζήτηση µε λέξεις κλειδιά και του σκορ που προκύπτει από το ποσοστό του κειµένου που έχει χαρακτηριστεί σηµασιολογικά. Επίσης, για κάθε έγγραφο επισηµαίνεται αν είναι ολόκληρο χαρακτηρισµένο µε συγκεκριµένη κλάση, αν είναι κοµµάτια του χαρακτηρισµένα και αν περιέχει συγκεκριµένη λέξη κλειδί, δηλαδή ουσιαστικά καθορίζεται το είδος αναζήτησης από το οποίο προήλθε το συγκεκριµένο αποτέλεσµα. Μάλιστα, σε περίπτωση εγγράφων που προέκυψαν από αναζήτηση στην οντολογία, εµφανίζονται και οι κλάσεις που περιέχουν στιγµιότυπα του εγγράφου, για τη συγκεκριµένη αναζήτηση. Τέλος, ο χρήστης µπορεί να ανοίξει κάποιο έγγραφο (αρκεί αυτό να ανήκει στους υποστηριζόµενους τύπους) και να δει αναλυτικά στο κείµενό του τις σηµασιολογικές επισηµειώσεις που έχουν πραγµατοποιηθεί στο έγγραφο, µε βάση κάποια οντολογία. Για την ανάπτυξη του υποσυστήµατος χρησιµοποιήθηκαν συναρτήσεις του lucene και του protégé. Συνεισφορά της εργασίας Με την εφαρµογή GoNToggle, υλοποιήθηκε «έξυπνη» µηχανή αναζήτησης εγγράφων αξιοποιώντας τις δυνατότητες που προσφέρει το εργαλείο ανοιχτού κώδικα για διαχείριση οντολογιών Protégé. Η εφαρµογή, εκτός από παροχή δυνατοτήτων επεξεργασίας µίας οντολογίας, έχει ως κύρια λειτουργία της την αναζήτηση σηµασιολογικά χαρακτηρισµένων εγγράφων και την προβολή στο χρήστη της σηµασιολογικής πληροφορίας που ο ίδιος τους έχει προσδώσει, µέσω της οντολογίας. Συγκεκριµένα αναπτύχθηκαν τα εξής: ιαδικασία σηµασιολογικού χαρακτηρισµού εγγράφων µέσω οντολογίας ιαδικασία επεξεργασίας επισηµειωµένων εγγράφων Αναζήτηση µε λέξεις κλειδιά και συνδυασµό τους Σηµασιολογική αναζήτηση µε πλήθος επιλογών Βαθµολόγηση αποτελεσµάτων αναζήτησης Ολοκλήρωση των παραπάνω µε τα εργαλεία ανοιχτού κώδικα Lucene και Protégé
Ανάπτυξη διαπροσωπείας χρήστη σε γραφικό περιβάλλον για εκτέλεση όλων των παραπάνω ενεργειών και παρουσίαση αποτελεσµάτων Μελλοντικές επεκτάσεις Μελλοντικές επεκτάσεις της διπλωµατικής θα µπορούσαν να γίνουν όσον αφορά την αυτοµατοποίηση της διαδικασίας σηµασιολογικού χαρακτηρισµού εγγράφων. ηλαδή, πέραν του χειρωνακτικού χαρακτηρισµού από το χρήστη, το ίδιο το πρόγραµµα θα µπορούσε αυτόµατα να χαρακτηρίζει σηµασιολογικά ένα έγγραφο, ή κοµµάτια του, µε βάση, για παράδειγµα, ένα ποσοστό λέξεων κλειδιών που περιέχει και που αντιστοιχούν σε κάποια έννοια της οντολογίας. Επιπλέον, η εφαρµογή θα µπορούσε να επεκταθεί πέρα από το σκληρό δίσκο ενός υπολογιστή και να αναζητά λέξεις κλειδιά και έννοιες οντολογιών σε περισσότερους από έναν υπολογιστές ή στο διαδίκτυο.