Πτυχιακή Εργασία. Διαμόρφωση προσωπικής οντολογίας για χρήση από οντολογικό διαχειριστή αρχείων. Γιώργος Περικλέους. Επιβλέπων: Κώστας Βασιλάκης



Σχετικά έγγραφα
ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

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

Δημιουργία μιας εφαρμογής Java με το NetBeans

Οντολογία για την περιγραφή των προσωπικοτήτων της Σάμου, την κατηγοριοποίηση και τις σχέσεις τους

Διαχείριση Έργων Πληροφορικής Εργαστήριο

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS

Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795

Υπηρεσία διαμοιρασμού αρχείων

Βιοϊατρική τεχνολογία

Διαχείριση Γνώσης Ροές Διαδικασιών

SilverPlatter WebSPIRS 4.1.

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Σχεδιασμός Βάσεων Δεδομένων

Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

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

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

2. Εισαγωγή Δεδομένων σε Σχεσιακή Βάση Δεδομένων

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

ΕΘΝΙΚΟ ΚΕΝΤΡΟ ΔΗΜΟΣΙΑΣ ΔΙΟΙΚΗΣΗΣ & ΑΥΤΟΔΙΟΙΚΗΣΗΣ. 3.4 Παραδείγματα χρήσης ψηφιακών υπογραφών

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Σχεδιασμός Βάσεων Δεδομένων

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Περιγραφή της εργασίας

ΤΕΙ Ιονίων Νήσων Εργαστηριακές Ασκήσεις στα Γεωγραφικά Συστήματα Πληροφοριών

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

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Επεξεργασίας Κειμένου. 2. Κύρια Οθόνη Της Εφαρμογής Κειμένου ΣΤΟΧΟΙ:

Ο ArcCatalog χρησιμοποιείται για την πλοήγηση / διαχείριση χωρικών δεδοµένων.

METALIB Σύστημα μετα-αναζήτησης για ηλεκτρονικές πηγές πληροφόρησης

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Document Scanning System Ιανουάριος, 2014

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

ΙΔΡΥΜΑΤΙΚΟ ΑΠΟΘΕΤΗΡΙΟ Dspace

Αικατερίνη Καμπάση, PhD. Τμήμα Προστασίας και Συντήρησης Πολιτισμικής Κληρονομιάς Α.Τ.Ε.Ι. Ιονίων Νήσων

Διδάσκων: Παναγιώτης Ανδρέου

Searching and Downloading OpenStreetMap Data

Εγγραφή στο Portal για νέους συνδρομητές

Management Classes Create Class Create Class Management Classes List of Classes

Pylon Entry. Πόροι. Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων

Ερευνητικό Αποθετήριο Πανεπιστημίου Πειραία

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Ερευνητικό Αποθετήριο ΤΕΙ Ηπείρου. Οδηγίες κατάθεσης δημοσίευσης στο σύστημα Ερευνητικού Αποθετηρίου CRIS

Εγχειρίδιο Χρήσης για Διαχειριστές. Πλατφόρμα Μεταφόρτωσης και Μετατροπής Βίντεο

ΥΠ.ΕΣ. - Δ.Μ.Η.Ε.Σ. ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΛΗΞΙΑΡΧΕΙΟΥ V 1.2

Όλοι οι χρήστες του Turnitin πρέπει να δημιουργήσουν ένα προφίλ χρήστη.

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

ΒΟΗΘΕΙΑ για τη χρήση του ιδρυματικού αποθετηρίου ΥΠΑΤΙΑ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΠΑ-24γ Εγχειρίδιο Χρήσης Δ.Δ.Π. Του Δήμου Αιγάλεω

ΕΡΓΑΣΙΑ 2 - MOODLE ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ακ. Έτος ΔΙΔΑΣΚΩΝ: Π. Εφραιμίδης. Υπεύθυνος εργαστηρίου: Α. Κουτσιαμάνης

Πρόσβαση μέσω webdav. ΚΕ.Δ.Δ. Τ.Ε.Ι. Μεσολογγίου. 3. Στην συνέχεια πληκτρολογούμε το username και το password και πατάμε στο κουμπί Είσοδος.

Είσοδος στην εφαρμογή Δημιουργία Εταιρίας Καρτέλα Στοιχεία εταιρίας: Καρτέλα Πρόσθετα στοιχεία: Καρτέλα Τράπεζα:...

Διαχείριση Βάσης Δεδομένων (dbadmin)

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Ηλεκτρονικά έγγραφα - επεξεργασία

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

Διάλεξη 20: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

Αυτόματο Κλείσιμο Ισολογισμού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Οδηγός υποβολής σε αποθετήριο SaaS

Mendeley - εισαγωγή βιβλιογραφικών παραπομπών στον κειμενογράφο

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

(Διαφάνειες Νίκου Βιδάκη)

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Aναπαράσταση Γνώσης στο Σημασιολογικό Ιστό

Management School School Profile Save

ΤΕΙ ΚΡΗΤΗΣ ΚΕΝΤΡΙΚΗ ΒΙΒΛΙΟΘΗΚΗ. Η χρήση του. Βήμα προς Βήμα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Οδηγός Γρήγορης Παραμετροποίησης Auto Moto Cube

Πληροφοριακά Συστήματα

Κατάλογος Βιβλιοθήκης ΤΕΙ Ηπείρου Ιδρυματικό αποθετήριο ΤΕΙ Ηπείρου Ερευνητικό αποθετήριο ΤΕΙ Ηπείρου:

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Ψηφιακή Υπογραφή και Portable Document Format (pdf) Acrobat Reader, Sinadura

How to register an account with the Hellenic Community of Sheffield.

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Σημασιολογικός Ιστός (Semantic Web) - XML

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Transcript:

Πανεπιστήμιο Πελοποννήσου Σχολή Θετικών Επιστημών και Τεχνολογίας Τμήμα Επιστήμης και Τεχνολογίας Υπολογιστών Πτυχιακή Εργασία Διαμόρφωση προσωπικής οντολογίας για χρήση από οντολογικό διαχειριστή αρχείων Γιώργος Περικλέους Επιβλέπων: Κώστας Βασιλάκης Τρίπολη, 2013

ΠΕΡΙΛΗΨΗ Ο σκοπός της πτυχιακής εργασίας ήταν η υλοποίηση μιας εφαρμογής, η οποία συλλέγει μεταδεδομένα από αρχεία ενός προσωπικού υπολογιστή και δημιουργεί μια προσωπική οντολογία με σκοπό τη χρήση της σε οντολογικό διαχειριστή αρχείων ή σε άλλες εφαρμογές που προϋποθέτουν την ύπαρξή της. Πιο συγκεκριμένα, στο πλαίσιο της παρούσας πτυχιακής εργασίας υλοποιήθηκε μία εφαρμογή η οποία διατρέχει ένα μέρος της δομής του συστήματος αρχείων που ορίζει ο χρήστης και συλλέγει ένα σύνολο μεταδεδομένων από τα αρχεία και τα εντάσσει σε μία οντολογία, η οποία αποθηκεύεται με τη μορφή OWL. Η μορφή OWL είναι μία ευρέως διαδεδομένη αναπαράσταση οντολογιών και έχει την δυνατότητα να χρησιμοποιηθεί σε πληθώρα εφαρμογών, συμπεριλαμβανομένου και του Protégé (λογισμικό επεξεργασίας οντολογιών). Στα πλαίσια του οντολογικού διαχειριστή αρχείων, εκμεταλλευόμαστε τις πληροφορίες της οντολογίας με στόχο τη σημασιολογική πλοήγηση και αναζήτηση των πληροφοριών που περιέχονται στη δομή του συστήματος αρχείων του χρήστη. Λέξεις κλειδιά: Προσωπική οντολογία, Protégé, μεταδεδομένα, οντολογικός διαχειριστής αρχείων, σημασιολογική πλοήγηση. 2

ABSTRACT The goal of this dissertation was the development of an application that collects metadata from files in a personal computer and creates a personal ontology, which can be used as underpinning for an ontology based file manager or for other applications that require its presence. More specifically, within the context of this dissertation, an application was implemented which traverses a part of the filesystem structure that the user defines and collects a set of the metadata from the files. These metadata are then incorporated in an ontology, which is saved in an OWL format. The OWL format is a well known representation for ontologies, which can be readily used in various applications, including Protégé (ontology editing software). Regarding the ontology based file manager, the information within the ontology can be exploited for semantic navigation, as well as for searching for information included in the portion of the filesystem designated by the user. Keywords: personal ontology, Protégé, metadata, ontology file manager, semantic navigation 3

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΠΕΡΙΛΗΨΗ 2 ABSTRACT 3 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 4 ΕΥΡΕΤΗΡΙΟ ΕΙΚΟΝΩΝ ΚΑΙ ΣΧΗΜΑΤΩΝ 5 1 ΕΙΣΑΓΩΓΗ 6 2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 8 2.1 Οντολογία 8 2.2 Αναπαράσταση οντολογιών στη μορφή OWL 9 2.3 Σημασιολογική πλοήγηση 13 2.4 Δομή οντολογίας 15 2.4.1 Βασικές κλάσεις της οντολογίας 16 2.4.2 Ιδιότητες Κλάσεων/Υποκλάσεων 17 3 Λειτουργικότητα Προγράμματος 19 3.1 Δημιουργία Οντολογίας 19 3.2 Βιβλιοθήκες 21 3.3 Οδηγίες Χρήσης 23 4 Μελλοντικές Επεκτάσεις 27 5 Βιβλιογραφία 28 Παράρτημα Κύρια αρχεία κώδικα 29 Αρχείο Main.java 29 Αρχείο OntologyGenerator.java 33 4

ΕΥΡΕΤΗΡΙΟ ΕΙΚΟΝΩΝ ΚΑΙ ΣΧΗΜΑΤΩΝ Εικόνα 2.1 Ιδιότητες τύπου ObjectProperty όπως φαίνονται στο Protégé 11 Εικόνα 2.2 Η οθόνη προβολής των οντοτήτων στο Protégé 4.2 13 Εικόνα 2.3 Κλάσεις Υποκλάσεις 15 Εικόνα 3.1 Μέρος Κώδικα δημιουργίας κλάσεων 21 Εικόνα 3.2 Παράθυρο δήλωσης Arguments NetBeans 7.3 25 Εικόνα 3.3 Μήνυμα Επιτυχούς λειτουργίας κώδικα 26 5

1 ΕΙΣΑΓΩΓΗ Καθώς ο αριθμός των αρχείων που ένας χρήστης αποθηκεύει στον υπολογιστή του αυξάνεται όλο ένα και περισσότερο, γίνεται όλο και πιο δύσκολο για τον χρήστη να διαχειριστεί τα αποθηκευμένα έγγραφα. Εδώ γεννιέται η ανάγκη για τη δημιουργία ενός έξυπνου μοντέλου, το οποίο να μπορεί να προσαρμόζεται στα προσωπικά δεδομένα του χρήστη και να τον βοηθά στη σημασιολογική αναζήτηση ανάμεσα στα αρχεία (Rompa et al., 2011). Για τη δημιουργία αυτού ακριβώς του μοντέλου έχουν προταθεί οι προσωπικές οντολογίες ως μέσο για την υποστήριξη της σημασιολογικής διαχείρισης των πληροφοριών των χρηστών. Στα πλαίσια της παρούσας πτυχιακής εργασίας αναπτύχθηκε μία εφαρμογή που διατρέχει ένα οριζόμενο από τον χρήστη τμήμα της δομής του συστήματος αρχείων ενός προσωπικού υπολογιστή και συλλέγει ένα πλήθος μεταδεδομένων τα οποία και στη συνέχεια αποθηκεύει σε μία προσωπική οντολογία. Η προσωπική αυτή οντολογία, πέραν από την εφαρμογή της σε λογισμικό για σημασιολογική αναζήτηση αρχείων, μπορεί επίσης να χρησιμοποιηθεί και σε πολλές άλλες εφαρμογές. Για παράδειγμα: 1. Μπορεί να είναι πολύ χρήσιμη στο ευρύτερο πλαίσιο της διαχείρισης προσωπικών πληροφοριών (personal information management PIM) καθώς και στη διαχείριση πληροφοριών δραστηριοτήτων (Task Information Management TIM). 2. Επίσης μπορεί να χρησιμοποιηθεί ως αρχικό template (πρότυπο) σε διάφορα εργαλεία όπου ο χρήστης θα μπορεί να προσαρμόσει και να συμπληρώσει τη δική του προσωπική οντολογία. Το υπόλοιπο τμήμα της παρούσας εργασίας έχει δομηθεί ως ακολούθως: Στο κεφάλαιο 2 αναλύεται περαιτέρω το θέμα της σημασιολογικής πλοήγησης. Παρουσιάζεται η δομή της οντολογίας που θα χρησιμοποιηθεί και επίσης περιγράφεται το πώς συγκεκριμένες πληροφορίες της οντολογίας συσχετίζονται άμεσα με τις 6

ιδιότητες που μπορούμε να εξάγουμε από το σύστημα αρχείων ή από τα μεταδεδομένα των αρχείων (authors, companies, κ.λπ.). Τέλος, περιγράφεται εν συντομία η αναπαράσταση OWL. Στο κεφάλαιο 3 περιγράφεται η λειτουργία του λογισμικού, παραθέτοντας τη γενική του διάρθρωση και οι βιβλιοθήκες που έχουν χρησιμοποιηθεί, ενώ δίνονται και οδηγίες για την χρήση του. Στο κεφάλαιο 4 εξάγονται συμπεράσματα και περιγράφονται μελλοντικές επεκτάσεις που μπορεί να έχει η προσωπική οντολογία. 7

2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 2.1 Οντολογία Ο όρος «οντολογία» έχει μακρά ιστορία, η οποία χρονολογείται από την αρχαία Ελλάδα και συγκεκριμένα προέρχεται από την Φιλοσοφία και τον Αριστοτέλη. Γενικότερα οι αρχαίοι Έλληνες χρησιμοποίησαν την έννοια της οντολογίας στην προσπάθεια τους να απαντήσουν σε κάποια φιλοσοφικά ερωτήματα σχετικά με την ουσία και την ύπαρξη κάποιων πραγμάτων και εννοιών. Με τον όρο οντολογία εννοούμε τη ρητή περιγραφή πραγμάτων και εννοιών καθώς και των σχέσεων που υπάρχουν ανάμεσα τους [1]. Ο Αριστοτέλης όρισε την λέξη οντολογία ως: «Η μεταφυσική μελέτη της φύσης, της ζωής και της ύπαρξης» Αργότερα και στις αρχές της σύγχρονης ιστορίας ο όρος είχε υιοθετηθεί από ερευνητές της Τεχνητής Νοημοσύνης, οι οποίοι αναγνώρισαν τις δυνατότητες εφαρμογής των οντολογιών από μαθηματική λογική σκοπιά και υποστήριξαν ότι οι ερευνητές της Τεχνητής Νοημοσύνης θα μπορούσαν να δημιουργήσουν νέες οντολογίες όπως υπολογιστικά μοντέλα που επιτρέπουν ορισμένα είδη της αυτοματοποιημένης συλλογιστικής. Στη δεκαετία του 1980 η κοινότητα της Τεχνητής Νοημοσύνης ήρθε να χρησιμοποιήσει τον όρο οντολογία για να αναφερθεί τόσο στην θεωρία του μοντελοποιημένου κόσμου τόσο μέρος των συστημάτων γνώσης. Στις αρχές της δεκαετίας του 1990 μία προσπάθεια για τη δημιουργία προτύπων διαλειτουργικότητας προσδιορίζουν μία τεχνολογική στοίβα που ονομάζεται στρώμα οντολογίας ως πρότυπο στοιχείο των συστημάτων γνώσης. Μία ευρέως γνωστή ιστοσελίδα που σχετίζεται με την πιο πάνω προσπάθεια πιστώνεται ένα σκόπιμο ορισμό της οντολογίας ως «ρητή προδιαγραφή ενός τομέα», όπου με τον όρο «τομέας» αναφερόμαστε «στα αντικείμενα, έννοιες, και άλλες οντότητες που τεκμαίρεται ότι 8

υπάρχουν σε κάποια περιοχή ενδιαφέροντος και τις σχέσεις που διατηρούν μεταξύ τους». Αν και η περιγραφή του όρου έχει προκαλέσει πολλές συζητήσεις, ο ορισμός αυτός μπορεί να οδηγήσει στην ακόλουθη διατύπωση αναφορικά με την οντολογία: Μια οντολογία ορίζει (προσδιορίζει) τις έννοιες, τις σχέσεις, και άλλα στοιχεία που έχουν σημασία για τη διαμόρφωση ενός τομέα. Η προδιαγραφή λαμβάνει τη μορφή των ορισμών του παραστατικού λεξιλογίου (κλάσεις, σχέσεις, και ούτω καθεξής), τα οποία παρέχουν νοήματα για το λεξιλόγιο και τυπικούς περιορισμούς σε μια συνεκτική χρήση του. Ο πιο γνωστός ορισμός για την οντολογία, στην επιστήμη των υπολογιστών, πάνω στον οποίο στηρίχθηκαν και άλλοι ορισμοί, δόθηκε από τον Gruber και είναι ο ακόλουθος (Gruber, 2008): «Μια διαμοιρασμένη και από κοινού κατανόηση κάποιου τομέα, η οποία μπορεί να ανταλλαγεί μεταξύ ανθρώπων και συστημάτων εφαρμογών» Συνοψίζοντας τα ανωτέρω, μία οντολογία είναι ένας τυπικός και σαφής ορισμός μιας από κοινού και συμφωνημένης εννοιολογικής αναπαράστασης που αφορά σε ένα πεδίο ενδιαφέροντος. Αυτή η τυπική αναπαράσταση γνώσης ως ένα σύνολο εννοιών, σχέσεων και ιδιοτήτων μπορεί να χρησιμοποιηθεί στα πλαίσια της διαδικασίας συμπερασμού (εξαγωγή συμπερασμάτων/νέας γνώσης), καθώς και για την δομημένη περιγραφή γνώσης ενός πεδίου ενδιαφέροντος. Οι οντολογίες έχουν καθιερωθεί ως δομημένα πλαίσια για την οργάνωση πληροφορίας και χρησιμοποιούνται κυρίως στην Τεχνητή Νοημοσύνη, στον Σημασιολογικό Ιστό, στη Βιοπληροφορική, στην επιστήμη Βιβλιοθηκονομίας, και σε άλλες επιστήμες/κλάδους ως μια μορφή αναπαράστασης γνώσης για τον κόσμο. 2.2 Αναπαράσταση οντολογιών στη μορφή OWL Η OWL είναι ένα διεθνές πρότυπο για την κωδικοποίηση και την ανταλλαγή οντολογιών και έχει σχεδιαστεί για να υποστηρίξει το Σημασιολογικό ιστό. Καθιερώθηκε επίσημα 9

ως πρότυπο τον Φεβρουάριο του 2004 από τη W3C. Τα αρχικά αντιστοιχούν στη Web Ontology Language ωστόσο προτιμήθηκε, για λόγους ευφωνίας η ονομασία OWL αντί για WOL. Η γλώσσα OWL καθορίζει τρεις διαφορετικές μορφές αναπαράστασης, οι οποίες διαθέτουν διαφορετικά επίπεδα εκφραστικής ισχύος. Οι μορφές ωστόσο που διαθέτουν μεγαλύτερη εκφραστική είναι λιγότερο αποδοτικές σε σχέση με τις διαδικασίες συμπερασμού (ειδικότερα η μορφή με τη μέγιστη εκφραστική ισχύ είναι μη αποφασίσιμη), συνεπώς οι χρήστες της οντολογίας θα πρέπει να επιλέξουν ποια από τις μορφές ταιριάζει καλύτερα στα χαρακτηριστικά της εφαρμογής τους, έχοντας κατά νου το αντιστάθμισμα αυτό. Οι τρεις διαφορετικές μορφές στις οποίες εμφανίζεται η γλώσσα OWL είναι οι εξής: OWL Lite: Η γλώσσα αυτή απευθύνεται σε χρήστες οι οποίοι επιθυμούν να χρησιμοποιήσουν την OWL για την περιγραφή γνώσης σε εφαρμογές που δεν έχουν μεγάλες απαιτήσεις σε εκφραστικές δυνατότητες. Έτσι δίνεται η δυνατότητα ανάπτυξης εξειδικευμένων εργαλείων και μηχανισμών εξαγωγής συμπερασμάτων τα οποία αναμένεται να λειτουργούν ταχύτερα από εργαλεία τα οποία υλοποιούν περισσότερο εκφραστικές γλώσσες. Ο στόχος ανάπτυξης της OWL lite ήταν να βοηθηθούν τα συστήματα που χρησιμοποιούσαν ταξινομίες και θησαυρούς στη μετάβασή τους σε χρήση οντολογιών. Πρακτικά ωστόσο, η OWL lite δεν περιορίζει ιδιαίτερα την εκφραστική ισχύ, ενώ έχει φανεί ότι το κέρδος σε απλότητα και αποδοτικότητα των εργαλείων που τη χρησιμοποιούν ως υπόβαθρο αναπαράστασης γνώσης είναι μικρό, με αποτέλεσμα να μην χρησιμοποιείται ευρέως. OWL DL: Η γλώσσα αυτή παρέχει μεγαλύτερη εκφραστική ισχύ σε σχέση με τον OWL Lite, διατηρώντας την υπολογιστική πληρότητα (είτε το φ είτε το φ ανήκουν στην οντολογία), την αποφασισιμότητα (υπάρχει εφικτός τρόπος να αποφασιστεί αν το φ ανήκει ή όχι στην οντολογία) και τη διαθεσιμότητα πρακτικά χρήσιμων αλγορίθμων συμπερασμού. 10

OWL Full: Η γλώσσα αυτή προσφέρει το ίδιο λεξιλόγιο με τη γλώσσα OWL DL. Επιπρόσθετα όμως παρέχει τη συντακτική ελευθερία και τα χαρακτηριστικά της γλώσσας RDF και πιο συγκεκριμένα τη δυνατότητα μεταμοντελοποίησης (π.χ. μία κλάση μπορεί να είναι ταυτόχρονα (α) μία συλλογή στιγμιότυπων και (β) ένα στιγμιότυπο αφ εαυτής, κάτι που δεν επιτρέπεται στην OWL DL). H OWL full είναι μη αποφασίσιμη, συνεπώς δεν υπάρχει λογισμικό για πραγματοποίηση συμπερασμών πάνω σε γνώση που αναπαρίσταται με τη μορφή OWL full. Μια οντολογία OWL αποτελείται από κλάσεις (classes), ιδιότητες (properties) και στιγμιότυπα (instances). Η OWL επιτρέπει την οργάνωση των κλάσεων και των σχέσεων σε μια ιεραρχία. Όταν και το πεδίο ορισμού και το πεδίο τιμών μιας ιδιότητας αποτελείται από κλάσεις, η ιδιότητα καλείται ιδιότητα αντικειμένου (ObjectProperty) και ουσιαστικά μοντελοποιεί σχέσεις μεταξύ αντικειμένων, ενώ αν το πεδίο τιμών μιας ιδιότητας είναι ένας τύπος, η ιδιότητα είναι γνωστή ως ιδιότητα τύπου δεδομένων (DatatypeProperty) και μοντελοποιεί ένα γνώρισμα (attribute) του αντικειμένου. Εικόνα 2.1 Ιδιότητες τύπου ObjectProperty όπως φαίνονται στο Protégé Στην OWL οι σχέσεις μπορούν να διέπονται από αξιώματα. Έτσι λοιπόν μια σχέση μπορεί να είναι: 11

Αντίστροφη (inverse of): Εάν μια ιδιότητα P είναι αντίστροφη της P, τότε εάν ένα στιγμιότυπο p(a, b) της P ανήκει στην οντολογία συνεπάγεται ότι και το στιγμιότυπο p (b, a) ανήκει στην οντολογία. Για παράδειγμα η ιδιότητα αντικειμένου πρόγονος είναι αντίστροφη της ιδιότητας αντικειμένου απόγονος. Συναρτησιακή (functional property): Αν μια ιδιότητα P είναι συναρτησιακή, τότε για κάθε στιγμιότυπο inst που υπάρχει στην οντολογία, το πολύ ένα στιγμιότυπο p(inst, x) της ιδιότητας P μπορεί να ανήκει στην οντολογία. Ουσιαστικά η συναρτησιακή ιδιότητα είναι το αντίστοιχο του να τίθεται ο πληθάριθμος μιας συσχέτισης σε διάγραμμα οντοτήτων συσχετίσεων ίσος με ένα. Αντίστροφα συναρτησιακή (inverse functional property): Αν μια ιδιότητα P είναι αντίστροφα συναρτησιακή, τότε πρέπει να υπάρχει η αντίστροφή της P και η P να είναι συναρτησιακή, δηλ. για κάθε στιγμιότυπο inst που υπάρχει στην οντολογία, το πολύ ένα στιγμιότυπο p (inst, x) της ιδιότητας P μπορεί να ανήκει στην οντολογία. Μεταβατική (transitive property): Αν μια ιδιότητα P είναι μεταβατική, τότε αν η P συνδέει το στιγμιότυπο a με το στιγμιότυπο b και το στιγμιότυπο b με το στιγμιότυπο c, τότε και το στιγμιότυπο a συνδέεται με το στιγμιότυπο c μέσω της ιδιότητας P. Πιο τυπικά, αν τα στιγμιότυπα της P p(a, b) και p(b, c) ανήκουν στην οντολογία, συνεπάγεται ότι και το στιγμιότυπο p(a, c) ανήκει στην οντολογία. Η σχέση πρόγονος είναι ένα παράδειγμα μεταβατικής ιδιότητας. Συμμετρική (inverse property): Εάν μια ιδιότητα αντικειμένου OP είναι συμμετρική, τότε εάν το στιγμιότυπό της op=(a,b) ανήκει στην οντολογία, τότε και το στιγμιότυπο op =(b,a) ανήκει επίσης στην οντολογία. Η ιδιότητα διπλανόσπίτι είναι ένα παράδειγμα συμμετρικής ιδιότητας. Παράλληλα με τις γλώσσες ορισμού οντολογιών υπάρχουν και διάφορα εργαλεία με εύχρηστο γραφικό περιβάλλον που διευκολύνουν τη δημιουργία και την επιμέλεια οντολογιών. Μερικά από αυτά είναι Protégé, WebODE, OntoEdit, κ.ά. Στην παρούσα 12

εργασία χρησιμοποιήθηκε το Protégé 4.2 το οποίο έχει υλοποιηθεί στη γλώσσα Java και κατασκευάστηκε στο πανεπιστήμιο Stanford. Εικόνα 2.2 Η οθόνη προβολής των οντοτήτων στο Protégé 4.2 2.3 Σημασιολογική πλοήγηση Τα τελευταία χρόνια παρατηρείται μία ραγδαία ανάπτυξη του όγκου των πληροφοριών που περιέχουν τα αρχεία που έχουμε αποθηκευμένα στους προσωπικούς μας υπολογιστές. Το γεγονός αυτό κυρίως οφείλεται στο ότι όλα πλέον μετατρέπονται σε ηλεκτρονική μορφή, για πιο εύκολη χρήση και επεξεργασία: από τραγούδια και ταινίες μέχρι και βιβλία, και από τις προσωπικές μας σημειώσεις μέχρι την επικοινωνία μας με πρόσωπα και οργανισμούς. Καθώς όμως ο όγκος των πληροφοριών αυξάνεται, η ανάγκη για αποτελεσματική αναζήτηση/πλοήγηση στον προσωπικό χώρο ψηφιακής πληροφορίας γίνεται συνεχώς πιο επιτακτική. Η αναζήτηση με βάση τη δομή (ιεραρχίες καταλόγων) εκτιμάται ότι έχει φτάσει στα όριά της και εκτιμάται ότι πιο αποτελεσματική μέθοδος αναζήτησης των πληροφοριών που περιέχουν τα αρχεία θα είναι μέσω της σημασιολογικής περιγραφής τους. Η περιγραφή αυτή ασχολείται με τον σημασιολογικό προσδιορισμό των αρχείων, ο οποίος βασίζεται στον συνδυασμό των πληροφοριών που προκύπτουν από την εξαγωγή χαρακτηριστικών από τα αρχεία. Το βασικό πλεονέκτημα της σημασιολογικής αναζήτησης είναι ότι προσπαθεί να προσεγγίσει την ανθρώπινη αντίληψη των αρχείων, 13

με αποτέλεσμα να είναι πιο περιγραφική και πιο εύχρηστη, καθώς δεν θα χρειάζεται να μετατρέψει ο χρήστης το ερώτημά όπως το αντιλαμβάνεται σε μία διαφορετική μορφή προκειμένου να το εισάγει στην κατάλληλη εφαρμογή. Λόγω της επιτακτικής αναγκαιότητας για αναζήτηση/πλοήγηση των αρχείων δόθηκε μεγάλη βαρύτητα στην κατασκευή διαφόρων εργαλείων διαχείρισης αρχείων (file managers) με σκοπό τον εντοπισμό των αρχείων που βρίσκονται στο προσωπικό μας σύστημα αρχείων. Ο τρόπος αναζήτησης που εφαρμόζουν οι εφαρμογές διαχείρισης αρχείων για αναζήτηση/πλοήγηση εξαρτάται από την πληροφορία που ήδη γνωρίζει ο χρήστης και βάσει αυτού χωρίζονται στις εξής κατηγορίες: (α) τέλεια αναζήτηση (perfect exploration), όταν δηλαδή ο χρήστης θέλει να εντοπίσει ένα αρχείο στο οποίο γνωρίζει το όνομα του και την τοποθεσία του, και (β) περιορισμένη/ατελής/μερική αναζήτηση (limited/incomplete/partial exploration) όταν δηλαδή ο χρήστης θέλει να εντοπίσει ένα αρχείο στο οποίο έχει ελλιπείς πληροφορίες. Πιθανές περιπτώσεις και στρατηγικές ανάκτησης αρχείων για αυτό το αρχείο είναι: Τοποθεσία γνωστή: Αν η τοποθεσία του αρχείου είναι γνωστή, ο χρήστης μπορεί να πλοηγηθεί στη συγκεκριμένη τοποθεσία και κατόπιν να αναζητήσει το αρχείο που χρειάζεται. Όνομα αρχείου γνωστό: Αν ολόκληρο ή μέρος του ονόματος του αρχείου είναι γνωστό, τότε ο χρήστης μπορεί να εκτελέσει αναζήτηση μέσω κάποιου σχετικού εργαλείου στο σύστημα αρχείων. Μεταδεδομένα γνωστά (ημερομηνία, λέξεις κλειδιά από το περιεχόμενο, συγγραφέας, κ.ά.): Ο χρήστης μπορεί να χρησιμοποιήσει μία εξειδικευμένη εφαρμογή διαχείρισης αρχείων που να επιτρέπει την αναζήτηση στα συγκεκριμένα μεταδεδομένα. Για παράδειγμα ο χρήστης μπορεί να κάνει αναζήτηση βάσει του τύπου αρχείου ή την ημερομηνία δημιουργίας του αρχείου. Σε ορισμένες εφαρμογές διαχείρισης αρχείων τα κριτήρια αναζήτησης μπορεί να εκλεπτυνθούν σταδιακά ώστε να περιορίσουν τον αριθμό των αποτελεσμάτων, ωστόσο η αναζήτηση δεν ήταν πάντα εύκολη. Η 14

αναζήτηση μπορεί να παρουσιάσει πάρα πολλά αποτελέσματα, τα μεταδεδομένα ενδέχεται να μην φιλτράρουν τα αποτελέσματα επαρκώς, ή ακόμη ο χρήστης μπορεί να μην θυμάται τις ακριβείς λέξεις κλειδιά. Η οντολογία που δημιουργείται στην παρούσα εργασία μπορεί να χρησιμοποιηθεί για να υποστηριχθούν όλοι οι ανωτέρω τύποι αναζήτησης, μέσα από μία ενιαία εφαρμογή που θα χρησιμοποιεί την οντολογία ως πληροφοριακό αποθετήριο. 2.4 Δομή οντολογίας Οι κλάσεις της οντολογίας μας διαχωρίζονται σε δύο κύριες κατηγορίες, την Thing και τη Value class. Η κλάση Thing δείχνει το σύνολο όλων τον προσωπικών αντικειμένων που μπορεί να αποτελούνται από αφηρημένα ή απτά αντικείμενα. Η Value class είναι το σύνολο όλων των δυνατών τιμών. Ο λόγος προσθήκης της Value class στην οντολογία είναι η ανάγκη ύπαρξης αντικειμένων πληροφορίας, όπως για παράδειγμα τοποθεσία αρχείων, όνομα ιδιοκτήτη αρχείων (σε αντιδιαστολή με ένα πρόσωπο το οποίο έχει το όνομα ως ιδιότητα) κ.ο.κ. Η Εικόνα 2.3 παρουσιάζει τις κύριες κλάσεις της οντολογίας και την ιεραρχία is a (σχέση κλάσης υποκλάσης) που τις συνδέει. Εικόνα 2.3 Κλάσεις Υποκλάσεις 15

2.4.1 Βασικές κλάσεις της οντολογίας 2.4.1.1 Κλάση Thing Σύνοψη: Η κλάση Thing αντιστοιχεί στη γενική έννοια του «Πράγματος», οποιασδήποτε δηλαδή έννοιας του πραγματικού κόσμου που θα αναπαρασταθεί στην οντολογία. Κύριες Υποκλάσεις: Living_Thing, Non_LivingThing, Organization 2.4.1.2 Κλάση Living_Thing Σύνοψη: Η κλάση Living_Thing αντιστοιχεί στη γενική έννοια του «Έμβιου Όντος», περιλαμβάνοντας ανθρώπους, ζώα και φυτά. Κύριες Υποκλάσεις: Animal, Person, Plant 2.4.1.3 Κλάση Person Σύνοψη: Η κλάση Person αντιστοιχεί στη γενική έννοια του «προσώπου», δηλ. του ανθρώπου. Η κλάση Person έχει μία υποκλάση τη Self που αναπαριστά τον ιδιοκτήτη της οντολογίας. Ο διαχωρισμός της κλάσης Self από την Person αποσκοπεί στο να ξεχωρίζουν εύκολα οι συσχετίσεις προς το αντικείμενο Self (που είναι πολυάριθμες) από τις συσχετίσεις προς τα άλλα αντικείμενα που αναπαριστούν πρόσωπα, κάτι που μπορεί να αξιοποιηθεί στην οπτικοποίηση της οντολογίας. 2.4.1.4 Κλάση Non_Living_Thing Σύνοψη: Η κλάση Non_Living_Thing αντιστοιχεί στη γενική έννοια του «μη έμβιου πράγματος», που μπορεί να περιγράψει μεταξύ άλλων και τους δίσκους του συστήματος. Κύρια υποκλάση: Disk 2.4.1.5 Κλάση Disk Σύνοψη: Η κλάση Disk αντιστοιχεί στην έννοια του δίσκου του ηλεκτρονικού υπολογιστή. Ως στιγμιότυπα της κλάσης Disk καταχωρούνται όλοι οι δίσκοι που περιέχουν αρχεία, τα οποία εξετάζει η εφαρμογή που αναπτύχθηκε. 16

2.4.1.6 Κλάση StorageMedia Η κλάση StorageMedia είναι υποκλάση της ValueClass και μοντελοποιεί τις πηγές από τις οποίες αντλούνται δεδομένα. Οι πηγές μπορεί να είναι οι δίσκοι, τα αρχεία, τα email, οι εφαρμογές τύπου instant messaging κ.λπ. 2.4.1.7 Κλάση Location Η κλάση Location είναι υποκλάση της ValueClass και μοντελοποιεί τους καταλόγους του δίσκου όπου αποθηκεύονται αρχεία. 2.4.2 Ιδιότητες Κλάσεων/Υποκλάσεων Πιο κάτω βλέπουμε τις διάφορες ιδιότητες που χαρακτηρίζουν μια κλάση. Η στήλη «Πεδίο ορισμού» δείχνει σε ποιες κλάσεις απαντάται η κάθε ιδιότητα, π.χ. η ιδιότητα creationdate αποτελεί ιδιότητα της File. Σημειώστε ότι μερικές ιδιότητες μπορεί να απαντώνται σε πάνω από μία κλάσεις. Όνομα ιδιότητας Τύπος ιδιότητας Πεδίο ορισμού haslocation String File hasname String File or Location or Not_Living_Thing Owner String Not_Living_Thing personname String Person relatedfile String Location or Organization or Person relatedthing String File comment String File creationdate String File disk_id String Disk filetype String File firstname String Person_Name honorificprefix String Person_Name 17

Όνομα ιδιότητας Τύπος ιδιότητας Πεδίο ορισμού honorificsuffix String Person_Name lastaccessdate String File lastmodifieddate String File metadata String File middle_name String Person_Name name String Name or Organization nickname String Person_Name path String Location prefix String Disk size String File surname String Person_Name 18

3 Λειτουργικότητα Προγράμματος 3.1 Δημιουργία Οντολογίας Αρχικά δημιουργείται ένα στιγμιότυπο της κλάσης Thing / Living Thing / Person / Self που αντιστοιχεί στον χρήστη. Στο συγκεκριμένο στιγμιότυπο συμπληρώνουμε μόνο το PersonName όπου αντιστοιχείται στο κατάλληλο instance Value Class / Name / Person name (το οποίο επίσης δημιουργείται). Για κάθε δίσκο του συστήματος δημιουργείται μία κλάση του Value Class / Storage Media / Disk όπου ιδιοκτήτης (owner) είναι το στιγμιότυπο Self (το οποίο ήδη έχουμε δημιουργήσει), πρόθεμα (prefix) είναι το γράμμα με το οποίο συμβολίζεται ο δίσκος (drive letter) 1 και hasname χρησιμοποιείται το label του δίσκου. Για κάθε κατάλογο που εντοπίζεται, δημιουργείται ένα στιγμιότυπο της κλάσης Value Class / Location. Στις ιδιότητες διαδρομή (path) και όνομα (hasname) καταχωρείται ως τιμή η διαδρομή του καταλόγου. Για κάθε αρχείο που εντοπίζεται, δημιουργείται ένα στιγμιότυπο της κλάσης Value Class / Storage media / File. Η ιδιότητα διαδρομή (haslocation) συνδέεται με το στιγμιότυπο της κλάσης Location που αντιστοιχεί στον κατάλογο που περιέχει το αρχείο. Η ιδιότητα ημερομηνίαδημιουργίας (creationdate) τίθεται στην τιμή που εξάγεται από το σύστημα ως ημερομηνία δημιουργίας του αρχείου και αντίστοιχα τίθενται και οι τιμές των ιδιοτήτων ημερομηνίατελευταίαςπρόσβασης (lastaccessdate) και ημερομηνίατελευταίαςτροποποίησης (LastModifiedDate). Η ιδιότητα τύποςαρχείου (filetype) αντιστοιχεί στο κομμάτι του ονόματος του αρχείου μετά την τελευταία τελεία (π.χ. doc, pdf κ.λπ.) και η ιδιότητα μέγεθος (size) αντιστοιχεί στο μέγεθος του αρχείου, όπως το αναφέρει το σύστημα. Τα προαναφερθέντα στοιχεία υπάρχουν σε όλα τα αρχεία, συνεπώς τίθενται για κάθε στιγμιότυπο της κλάσης Αρχείο. Ωστόσο, για τα αρχεία του Office μπορούμε να εξαγάγουμε ακόμα περισσότερες πληροφορίες, όπως: 1 Ο συμβολισμός δίσκων με γράμμα ισχύει για περιβάλλον windows. Για συστήματα Unix θα μπορούσε να χρησιμοποιηθεί το σημείο προσάρτησης (mount point) του δίσκου. 19

Author (συγγραφέας). Η ιδιότητα αυτή διαβάζεται από το αρχείο και αν δεν υπάρχει ήδη αντίστοιχο στιγμιότυπο της κλάσης Thing / Living thing / Person δημιουργείται ένα καινούργιο (αν υπάρχει, χρησιμοποιείται αυτό που ήδη υπάρχει). Το υπό εξέταση στιγμιότυπο της κλάσης Αρχείο συνδέεται με το σχετικό στιγμιότυπο της κλάσης Thing / Living thing / Person. Keywords (λέξεις κλειδιά). Κάθε keyword KW γίνεται μία τιμή της μορφής keyword: KW στο slot metadata. Comments (σχόλια). Τα σχόλια που είναι καταχωρημένα στα δεδομένα του αρχείου αντιγράφονται στην ιδιότητα "comment" του υπό εξέταση στιγμιότυπου της κλάσης Αρχείο. Company (εταιρεία). Η ιδιότητα αυτή διαβάζεται από το αρχείο και αν δεν υπάρχει ήδη αντίστοιχο στιγμιότυπο της κλάσης Thing / Organization δημιουργείται ένα (αν υπάρχει χρησιμοποιείται αυτό που ήδη υπάρχει). Το υπό εξέταση στιγμιότυπο της κλάσης Αρχείο συνδέεται με το σχετικό στιγμιότυπο της κλάσης Thing / Organization. Επίσης εξετάζονται και τα πεδία Title, Subject και Category των μεταδεδομένων, και αν εντοπισθούν μέσα σε αυτά ονόματα στιγμιότυπων της οντολογίας, τότε συνδέεται το υπό εξέταση στιγμιότυπο της κλάσης Αρχείο με το στιγμιότυπο. Για παράδειγμα αν ο τίτλο ενός εγγράφου είναι Πτυχιακή εργασία Περικλέους Και στην οντολογία υπάρχουν τα στιγμιότυπα Ι1 με όνομα Πτυχιακή εργασία Ι2 με όνομα Περικλέους 20

Τότε το καινούργιο αντικείμενο file συνδέεται με τα στιγμιότυπα Ι1 και Ι2. Με τον τρόπο αυτό, αν ο χρήστης έχει δημιουργήσει εκ των προτέρων αντικείμενα στην προσωπική του οντολογία, τα αντικείμενα συνδέονται με τα αρχεία με τα οποία τεκμαίρεται ότι συνδέονται. Η διαδικασία που περιγράφεται ανωτέρω εκτελείται αναδρομικά για όλο το τμήμα του συστήματος αρχείων που προσδιόρισε ο χρήστης. Όταν ολοκληρωθεί η εξέταση όλου του τμήματος του συστήματος αρχείων, η οντολογία αποθηκεύεται σε ένα αρχείο μορφής owl, το οποίο έχει ορίσει ο χρήστης. Εικόνα 3.1 Μέρος Κώδικα δημιουργίας κλάσεων 3.2 Βιβλιοθήκες Οι βιβλιοθήκες είναι υφιστάμενος κώδικας που μας παρέχει «έτοιμες» κάποιες βασικές λειτουργίες ώστε να μην χρειάζεται να τις υλοποιήσουμε εξαρχής, π.χ. εύρεση και διαχείριση ημερομηνίας/ώρας. Στην παρούσα πτυχιακή εργασία χρησιμοποιήθηκαν συνολικά πέντε βιβλιοθήκες της γλώσσας java. Η βασική λειτουργικότητα των βιβλιοθηκών αυτών, περιγράφεται συνοπτικά στη συνέχεια. 21

1. commons lang3 3.1 Οι τυποποιημένες βιβλιοθήκες της Java αποτυγχάνουν στην παροχή αρκετών μεθόδων για το χειρισμό των κλάσεων πυρήνα. Η βιβλιοθήκη Commons Lang παρέχει αυτές τις επιπλέον μεθόδους. H Lang παρέχει μια σειρά από βοηθητικά προγράμματα για το API java.lang, ιδίως για τις μεθόδους διαχείρισης συμβολοσειρών (String manipulation), βασικές αριθμητικές μεθόδους, object reflection, συγχρονισμός, δημιουργία και serialization και τις ιδιότητες του συστήματος. Επιπλέον περιέχει βασικές βελτιώσεις για java.util.date και μια σειρά από βοηθητικά προγράμματα αφιερωμένα στο να βοηθήσουν με τις μεθόδους δόμησης, όπως hashcode, tostring και equals. 2. poi 3.8 20120326 Η βιβλιοθήκη POI είναι μια βιβλιοθήκη της Java η οποία έχει σκοπό να επιτρέπει την ανάλυση αρχείων του Microsoft Office με διαφορετικές μορφές, όπως Excel, Power point, Visio, MS Word, κ.λπ. Το όνομα POI είναι αρκτικόλεξο της φράσης «Poor Obfuscation Implementation» («υλοποίηση κακής συσκότισης»), αναφερόμενο χιουμοριστικά στο γεγονός ότι οι μορφές αρχείων φαινόταν να είναι σκόπιμα ασαφής. Μαζί με την POI υπάρχουν και άλλες βιβλιοθήκες και εξαρτήσεις που την πλαισιώνουν, οι οποίες είναι: α. poi examples 3.8 20120326 β. poi excelant 3.8 20120326 γ. poi ooxml 3.8 20120326 δ. poi ooxml schemas 3.8 20120326 ε. poi scratchpad 3.8 20120326 3. stax api 1.0.1 Η βιβλιοθήκη Stax υλοποιεί ένα πρότυπο API επεξεργασίας XML που μας επιτρέπει να κάνουμε streaming XML δεδομένα από και προς την εφαρμογή μας. 4. xmlbeans 2.3.0 XMLBeans είναι ένα εργαλείο που μας επιτρέπει να έχουμε πρόσβαση σε όλες τις δυνατότητες της XML μέσω της γλώσσας Java. Η ιδέα είναι ότι μπορούμε να επωφεληθούμε από τον πλούτο και τα χαρακτηριστικά της XML και XML Schema και 22

να έχουμε αυτά τα χαρακτηριστικά ομαδοποιημένα όσο το δυνατόν πιο φυσικά με την αντίστοιχη γλώσσα της Java. 5. dom4j 1.6.1 Η dom4j είναι μία εύκολή στη χρήση,open source βιβλιοθήκη για εργασία με XML, XPath και XLST για την πλατφόρμα Java. 3.3 Οδηγίες Χρήσης Έχοντας στη διάθεσή μας τον πρωτογενή κώδικα, απαιτείται να ακολουθήσουμε μία σειρά από βήματα ούτως ώστε αυτός να μεταγλωττισθεί και να εκτελεστεί, προκειμένου επιτύχουμε τη διαδρομή της προσωπικής οντολογίας. Ο ακριβής τρόπος μεταγλώττισης και εκτέλεσης ωστόσο είναι ισχυρά εξαρτώμενος από το περιβάλλον ανάπτυξης που χρησιμοποιείται. Στη συνέχεια, θα περιγραφούν τα απαραίτητα βήματα που πρέπει να εκτελεσθούν όταν χρησιμοποιείται το περιβάλλον ανάπτυξης NetBeans IDE 7.3. Θεωρώντας ότι έχουμε εγκαταστημένο το NetBeans IDE 7.3 αρχικά: 1. Ανοίγουμε την καρτέλα File New Project. 2. Στο παράθυρο categories επιλέγουμε Java. 3. Στο παράθυρο Projects επιλέγουμε Java Projects with Existing Sources. 4. Πατούμε το κουμπί Next 5. Στο πεδίο Project Name γράφουμε πώς θέλουμε να ονομάσουμε το συγκεκριμένο project. 6. Στο πεδίο Project Location επιλέγω τον κατάλογο (folder) εντός του οποίου περιέχονται οι κατάλογοι source και lib. 7. Πατάμε το κουμπί Finish. Μετά από τα πιο πάνω βήματα μας φορτώνει το project με όλα τα αρχεία του κώδικα που υπάρχουν. Προκειμένου ωστόσο να μεταγλωττισθεί και να εκτελεσθεί επιτυχώς ο κώδικας, είναι απαραίτητο να προσθέσουμε και τις βιβλιοθήκες που περιέχουν την «έτοιμη» λειτουργικότητα που χρησιμοποιεί ο κώδικας (πρβλ. ενότητα 3.2). 23

8. Αριστερά στο παράθυρο project θα βρούμε το δέντρο με τις ιδιότητες του. Κάνουμε δεξί κλικ στο Libraries και επιλέγουμε Add Jar/Folder. 9. Επιλέγουμε όλες τις βιβλιοθήκες που υπάρχουν στον κατάλογο lib και πατάμε Open. 10. Τώρα κάνουμε δεξί κλικ στο όνομα του project και πατάμε properties. 11. Πηγαίνουμε στο tab Run. 12. Στο πεδίο Arguments (εικόνα 3.2) γράφουμε -o owlfilespec i directory όπου owlfilespec είναι το όνομα του αρχείου OWL όπου επιθυμούμε να αποθηκευθεί η οντολογία και directory είναι η ρίζα της ιεραρχίας του συστήματος αρχείων που επιθυμούμε να εξετάσουμε. Για παράδειγμα, αν εισάγουμε o c:\users\g.pericleous\desktop\test.owl i C:\Users\g.pericleous\Desktop\test θα εξετασθεί το σύστημα αρχείων κάτω από τον κατάλογο C:\Users\g.pericleous\Desktop\test και η οντολογία θα γραφεί σε μορφή OWL στο αρχείο c:\users\g.pericleous\desktop\test.owl 13. Πατάμε OK. 24

Εικόνα 3.2 Παράθυρο δήλωσης Arguments NetBeans 7.3 Τώρα μπορούμε να εκτελέσουμε το πρόγραμμα. Μετά από μία επιτυχή εκτέλεση, το πρόγραμμα θα εμφανίζει το μήνυμα «BUILD SUCCESSFUL» και θα δημιουργήσει το αρχείο στο σημείο και το όνομα που του δηλώσαμε στο βήμα 12. Το αρχείο της οντολογίας που έχει δημιουργηθεί μπορούμε να το ανοίξουμε στο Protégé για περαιτέρω επεξεργασία και εξαγωγή διαφόρων συμπερασμάτων, να το φορτώσουμε σε μία εφαρμογή οπτικοποίησης κ.ο.κ. 25