Περίληψη |
Η γνώση είναι δυναμική και υπόκειται σε συνεχείς αλλαγές, που προκαλούνται από την δυναμικότητα του περιβάλλοντος, την ανακάλυψη ή αποκάλυψη νέας πληροφορίας και άλλες αιτίες. ΄Ενα τέτοιο δυναμικό σύστημα γνώσης είναι και ο Σημασιολογικός Ιστός, στον οποίο οι αντίστοιχοι φορείς γνώσης
(οντολογίες και στιγμιότυπα οντολογιών) αλλάζουν, δημιουργώντας νέες εκδόσεις, συχνά χωρίς τον
έλεγχο του διαχειριστή ή δημιουργού τους. Σε τέτοιες συνθήκες, είναι απαραίτητη η καταγραφή και αποθήκευση των διαφορών μεταξύ των εκδόσεων της οντολογίας (και των στιγμιοτύπων της), μία λειτουργικότητα η οποία επιτρέπει τον συγχρονισμό των διαφόρων εκδόσεων, την καταγραφή και τεκμηρίωση του εξελικτικού ιστορικού, την οπτικοποίηση των διαφορών μεταξύ των εκδόσεων, καθώς και την αποδοτική διακίνηση (μέσω δικτύου, σε κατανεμημένα περιβάλλοντα), αλλά και αποθήκευση
των εκδόσεων (αφού η καταγραφή των διαφορών μεταξύ των εκδόσεων απαιτεί κατά κανόνα λιγότερο
χώρο από την καταγραφή των ίδιων των εκδόσεων, άρα είναι αποδοτικότερη η αποθήκευση μίας έκδοσης και των διαφορών της με τις υπόλοιπες, παρά όλων των εκδόσεων
ανεξάρτητα).
Δυστυχώς, η καταγραφή των διαφορών με το χέρι είναι αδύνατη σε ορισμένες εφαρμογές (για παράδειγμα σε συνεργατικά ή κατανεμημένα περιβάλλοντα όπου δεν υπάρχει κεντρική διαχείριση των αλλαγών). Αλλά και όπου μια τέτοια καταγραφή είναι δυνατή, αυτή αποτελεί μια δύσκολη και επίπονη εργασία, η οποία οδηγεί συχνά σε λανθασμένες, ελλιπείς ή προβληματικές περιγραφές.
Στην εργασία αυτή επικεντρωνόμαστε στην εκ των υστέρων καταγραφή των αλλαγών, δηλαδή στην ανίχνευση των αλλαγών μεταξύ δύο εκδόσεων, δοθέντων μόνο των δύο αυτών εκδόσεων.
Η καταγραφή των διαφορών, γενικά, γίνεται διαμέσου γλωσσών περιγραφής
διαφορών (ή αλλιώς γλωσσών περιγραφής αλλαγών), οι οποίες μπορεί να είναι χαμηλού ή υψηλού επιπέδου. Οι γλώσσες χαμηλού επιπέδου περιγράφουν τις αλλαγές σε συντακτικό επίπεδο, με υψηλό βαθμό λεπτομέρειας και είναι ευκολότερο να περιγραφούν και υλοποιηθούν. Αντίθετα, οι γλώσσες υψηλού επιπέδου παρέχουν περιγραφές αλλαγών σε υψηλότερο, σημασιολογικό-λογικό επίπεδο. Αυτό επιτυγχάνεται ομαδοποιώντας τις συντακτικές (χαμηλού επιπέδου) αλλαγές σε λογικές
ενότητες (υψηλού επιπέδου αλλαγές). Με τον τρόπο αυτό, οι γλώσσες υψηλού επιπέδου προσφέρουν πιο συμπαγή αποθήκευση των αλλαγών, και επιτρέπουν μία πλησιέστερη προς την ανθρώπινη διαίσθηση περιγραφή της εξέλιξης των εκδόσεων, χωρίς απώλεια πληροφορίας. Από την άλλη, ο ορισμός,
περιγραφή και υλοποίηση γλωσσών υψηλού επιπέδου είναι αρκετά δυσκολότερος.
Στην εργασία αυτή ορίσαμε μία γλώσσα περιγραφής αλλαγών υψηλού επιπέδου, και αποδείξαμε ότι η γλώσσα αυτή ικανοποιεί μία σειρά από επιθυμητές ιδιότητες. Επιπλέον, περιγράψαμε έναν αποδοτικό αλγόριθμο ανίχνευσης αλλαγών μεταξύ εκδόσεων, ο οποίος βασίζεται στην εν λόγω γλώσσα. Τέλος, εξετάσαμε πειραματικά την ποιότητα της γλώσσας και του σχετικού αλγόριθμου εκτελώντας πειράματα πάνω σε διαφορετικές εκδόσεις των γνωστών οντολογιών GO και CIDOC, ώστε να διαπιστώσουμε και την πρακτική-διαισθητική αξία της προτεινόμενης γλώσσας.
|