Www.csd.uoc.gr
ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ ΗΥ566 – ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ
«ΔΗΜΙΟΥΡΓΙΑ ΟΝΤΟΛΟΓΙΑΣ ΣΕ DAML-OIL»
Κυριάκος Ε. Κρητικός – Υποψήφιος Διδάκτωρ
Μίλτος Στρατάκης – Μεταπτυχιακός Φοιτητής
Πέμπτη, 22 Μαΐου 2003
Πίνακας Περιεχομένων
Πίνακας Εικόνων 5
Εισαγωγή 7
Αρχικό σχήμα 9
Αλλαγές πριν τη μετατροπή 13
Μετασχηματισμός σε DAML-OIL 17
Ειδικές Ιδιότητες 17
Ισοδυναμία κλάσεων 18
Διαχωρισμός Κλάσεων και Λογικός Συνδυασμός Κλάσεων 18
Τοπική εμβέλεια Μεταβλητών και Περιορισμοί Ακεραιότητας 20
Προβλήματα 21
Παράρτημα 23
Πίνακας Εικόνων
Εικόνα 1 - Η κλάση Body_Part και οι υποκλάσεις της 9
Εικόνα 2 - Η έννοια Climate και οι υποκλάσεις της 10
Εικόνα 3 - Η κλάση Location και οι υποκλάσεις της 10
Εικόνα 4 - Η κλάση insemination και οι υποκλάσεις της 10
Εικόνα 5 - Η κλάση Organism και οι υποκλάσεις της 11
Εικόνα 6 - Η κλάση Animal και οι υποκλάσεις της μέχρι βάθος 2 11
Εικόνα 7 - Οι ιδιότητες της οντολογίας 12
Εικόνα 8 - Αλλαγή για την κλάση Climate 13
Εικόνα 9 - Μια νέα ιδιότητα με όνομα is_eaten_by 14
Εικόνα 10 - Αλλαγή με την εισαγωγή της κλάσης Animal_Couple 15
Εισαγωγή
Στα πλαίσια αυτής της εργασίας μας ζητήθηκε να μετασχηματίσουμε την οντολογία που είχαμε σχεδιάσει με βάση την γλώσσα RDF(S) στην ίδια οντολογία με βάση τη γλώσσα DAML-OIL. Προφανώς, το νέο σχήμα που προέκυψε είναι σαφώς πιο πλούσιο σημασιολογικά από αυτό της προηγούμενης εργασίας λόγω της χρησιμοποίησης της γλώσσας DAML-OIL έναντι της RDF(S).
Η αναφορά αυτή, που συνοψίζει τα κεκτημένα από την υλοποίηση της τρίτης εργασίας, είναι χωρισμένη σε τέσσερις ενότητες:
• Η πρώτη ενότητα με τίτλο ‘Αρχικό Σχήμα’ αφορά το σχήμα της οντολογίας που είχαμε σχεδιάσει κατά τη διάρκεια της δεύτερης εργασίας. Ουσιαστικά, έχει σκοπό αφενός να παρουσιάσει τις βασικές έννοιες και ιδιότητες της οντολογίας και αφετέρου να αποσαφηνίσει το πεδίο εφαρμογής της οντολογίας.
• Η δεύτερη ενότητα με τίτλο ‘Αλλαγές πριν τη μετατροπή’ αφορά κάποιες αλλαγές που κρίθηκε σκόπιμο να επιτελεστούν στο σχήμα της οντολογίας. Στόχος αυτών των αλλαγών ήταν τόσο μια πιο βέλτιστη μοντελοποίηση του πεδίου εφαρμογής της οντολογίας όσο και η προετοιμασία του εδάφους για τον επικείμενο μετασχηματισμό της οντολογίας στη γλώσσα DAML-OIL.
• Η τρίτη ενότητα με τίτλο ‘Μετασχηματισμός σε DAML-OIL’ αφορά τον σημασιολογικό εμπλουτισμό της οντολογίας μας με τη χρήση πληθώρας δομικών στοιχείων της γλώσσας DAML-OIL. Επίσης, γίνεται μια μικρή αναφορά στον τρόπο που έγινε η μετατροπή του RDF σχήματος σε DAML-OIL με τη χρήση ενός κειμενογράφου με όνομα ‘Oil-Ed’.
• Η τέταρτη ενότητα με τίτλο ‘Προβλήματα’ αναφέρεται σε προβλήματα λειτουργικότητας και User Interface του Oil-Ed αλλά και σε μια αδυναμία εκφραστικότητας της DAML-OIL την οποία ανακαλύψαμε.
Αρχικό σχήμα
Το πεδίο εφαρμογής (domain) που μοντελοποιήσαμε αφορούσε ένα οικοσύστημα στο οποίο μεγάλο βάρος και προσοχή δόθηκε στη περιγραφή του ζωικού βασιλείου. Η σχεδίαση της οντολογίας επικεντρώθηκε περισσότερο στη δύσκολη και επίπονη προσπάθεια κατηγοριοποίησης των οντοτήτων/κλάσεων του ζωικού βασιλείου παρά στην εξειδικευμένη απόδοση ιδιοτήτων στις κλάσεις/οντότητες.
Τόσο η σωστή και προσεκτική σχεδίαση της εν λόγω οντολογίας όσο και η πλούσια σημασιολογικά ενθυλάκωση μεγάλου πλήθους πληροφορίας για το ζωικό βασίλειο καθιστούν την οντολογίας μας ένα σημαντικό εργαλείο μοντελοποίησης γνώσης για την περιγραφή του οικοσυστήματος , το οποίο βρίσκει εφαρμογές γενικά σε οτιδήποτε σχετίζεται με την επιστήμη της ζωολογίας, είτε για κατηγοριοποίηση, είτε για εξαγωγή συμπερασμάτων πάνω σε έρευνα (π.χ. ανάθεση ενός ζώου ως είδος προς εξαφάνιση, γενεαλογικές εξαρτήσεις, μελέτη της τροφικής αλυσίδας κτλ.). Πιο συγκεκριμένες εφαρμογές της εν λόγω οντολογίας μπορούν να αφορούν τόσο μουσεία φυσικής ιστορίας για την παροχή ταξινόμησης ζώων όσο και σε προσομοιώσεις χώρων στους οποίους περιέχονται ζώα (π.χ. ζωολογικούς κήπους).
Παρακάτω παραθέτουμε τις πιο βασικές οντότητες της οντολογίας μας χρησιμοποιώντας ταξινομίες ‘κλάσης-υποκλάσης’. Όμως, δεν προχωράμε κατά ένα μεγάλο βάθος διότι σκοπός μας είναι να επανα-εισάγουμε τον χρήστη στα πιο βασικά σημασιολογικά μέρη της οντολογίας μας και όχι να εκφράσουμε ολόκληρη την οντολογία. Για περαιτέρω πληροφορίες, συμβουλεύουμε τον αναγνώστη να ανατρέξει στη αναφορά της δεύτερης εργασίας μας. Επίσης, θα αναφερθούμε σε όλες τις ιδιότητες της οντολογίας μας βάση ενός συγκεντρωτικού πίνακα. Οι ιδιότητες είναι ένα κρίσιμο σημασιολογικό κομμάτι και της αναφέρουμε όλες ανεξαιρέτως.
[pic]
Εικόνα 1 - Η κλάση Body_Part και οι υποκλάσεις της
Η πρώτη αρχική/ριζική έννοια του σχήματός μας αφορά της έννοια του Μέρους Σώματος. Με αυτό τον τρόπο θέλουμε να εκφράσουμε ότι ένα ζώο αποτελείται από κάποια βασικά μέρη σώματος. Ένα μέρος σώματος μπορεί να είναι το Κεφάλι(Head), το Κυρίως Σώμα(Main_Body) ή το Άκρο(limb). Το Άκρο χωρίζεται σε Χέρι(talon), Πόδι(leg) και Ουρά(tail). Στη εικόνα δεν φαίνεται, αλλά το Άκρο μπορεί να χωρίζεται και στην έννοια Φτερό(Wing). Επίσης, έπειτα από υπόδειξη του βοηθού του μαθήματος, η έννοια ‘talon’ μετονομάστηκε σε ‘hand’.
[pic]
Εικόνα 2 - Η έννοια Climate και οι υποκλάσεις της
Με την έννοια Climate εννοούμε το κλίμα που έχει μια τοποθεσία. Σε αυτή την τοποθεσία ζεί/διαβιώνει ένα οποιοδήποτε ζώο (γενικά οργανισμός). Το Κλίμα χωρίζεται σε Κρύο(Cold), Ξηρό(Dry), Ζεστό(Warm) και Υγρό(Wet).
[pic]
Εικόνα 3 - Η κλάση Location και οι υποκλάσεις της
Η κλάση Location φανερώνει το τόπο διαβίωσης ενός ζώου. Οι υποκλάσεις της είναι η Γη (Land) και το Νερό(Water). Η Γη χωρίζεται σε Δάσος (Forest), Στέπα (Steppe) και Κοιλάδα (Valley). Το Νερό χωρίζεται σε Λίμνη (Lake), Ποτάμι (River) και σε Θάλασσα (Sea).
[pic]
Εικόνα 4 - Η κλάση insemination και οι υποκλάσεις της
Η κλάση insemination φανερώνει τον τρόπο αναπαραγωγής ενός ζώου ή ενός φυτού. Ο τρόπος αναπαραγωγής μπορεί να είναι με αμφιγονία (amphigony), με μονογονία (monogony), με επίβρεξη (be_aspertion), με παρθενογένεση (parthenogenesis) ή με εκβλάστηση (pollination). Για την κλάση ενός ζώου μπορεί να οριστούν παραπάνω από ένας τρόποι αναπαραγωγής. Για τις περιπτώσεις ζώων, ο τρόπος που ήρθαν στον κόσμο θα είναι πάντα ένας.
[pic]
Εικόνα 5 - Η κλάση Organism και οι υποκλάσεις της
Με την οντότητα Organism περικλείουμε οποιοδήποτε ζωικό και φυτικό οργανισμό. Οι Οργανισμοί χωρίζονται σε πολυκύτταρους (multicellular) και σε μονοκύτταρους (unicellular). Οι μονοκύτταροι οργανισμοί χωρίζονται σε στα μονήρη (lonesome) και στα πρώτιστα (protιst). Οι πολυκύτταροι οργανισμοί χωρίζονται στους μύκητες (mycetous) και στα Ζώα_και_Φυτά (Animals_and_Plants). Τα Ζώα_και_Φυτά είναι μια ενδιάμεση κλάση που είναι η ένωση των ζώων και των φυτών και άρα αυτομάτως χωρίζεται σε Ζώα (Animal) και σε Φυτά (Plant).
[pic]
Εικόνα 6 - Η κλάση Animal και οι υποκλάσεις της μέχρι βάθος 2
Η κλάση Animal είναι η πιό βασική έννοια της οντολογίας μας και εκφράζει τη κλάση των ζώων. Χωρίζεται σε 4 υποκατηγορίες: Ζώα με τροφικές προτιμήσεις (Animal_by_eat_prefs), Ζώα με τρόπο αναπαραγωγής (Animal_by_reproduction_type), Ζώα με τύπο φύλου (Animal_by_sex_type) και Ζώα με ύπαρξη ή μη σκελετού (Animal_by_vertebra_existence). Ουσιαστικά αυτές δεν είναι υποκλάσεις της κλάσης Ζώου άλλα ταυτόσημες κλάσεις που κατατάσσουν τις κλάσεις-φύλλα των ζώων ανάλογα με κάποια οπτική γωνία. Το παραπάνω γεγονός θα το αναλύσουμε και στην επόμενη ενότητα. Τα Ζώα με τροφικές προτιμήσεις είναι είτε φυτοφάγα (herbivore) είτε σαρκοφάγα (carnivore) είτε παμφάγα (omnivore). Τα Ζώα με τρόπο αναπαραγωγής χωρίζονται σε Ωοτόκα (oviparous) και σε Ζωοτόκα (viviparous). Τα ζώα με τύπο φύλου είναι είτε ερμαφρόδιτα (hermaphrodite) είτε γονοχωριστικά (sex-separated). Τα ζώα με ύπαρξη ή μη σκελετού χωρίζονται σε σπονδυλωτά (vertebrate) ή σε ασπόνδυλα (invertebrate).
|Domain |Property |Range |
|Organism |lives_in |Location |
|Location |has_climate |Climate |
|Location |longitude |rdfs:Literal |
|Location |latitude |rdfs:Literal |
|Animals_and_Plants |produced_method |insemination |
|Animals_and_Plants |color |rdfs:Literal |
|Animal |eats |Animals_and_Plants |
|Animal |has_body_part |Body_Part |
|Animal |has_enemy |Animal |
|Animal |matches_with |Animal |
|Animal |height |rdfs:Literal |
|Animal |weight |rdfs:Literal |
|Animal |age |rdfs:Literal |
|Animal |max_age |rdfs:Literal |
Εικόνα 7 - Οι ιδιότητες της οντολογίας
Ο παραπάνω πίνακας (εικόνα) παρουσιάζει όλες τις ιδιότητες ταξινομημένες ως προς το πεδίο ορισμού τους. Η πρώτη ιδιότητα φανερώνει ότι ένας οργανισμός ζει σε μια τοποθεσία. Η δεύτερη ιδιότητα υποδηλώνει ότι μια τοποθεσία έχει και κάποιο κλίμα. Η τρίτη και η τέταρτη ιδιότητα προσδιορίζουν ότι μια τοποθεσία έχει ένα συγκεκριμένο γεωγραφικό μήκος και πλάτος. Η πέμπτη και η έκτη ιδιότητα φανερώνουν ότι και τα ζώα και τα φυτά έχουν ένα συγκεκριμένο τρόπο αναπαραγωγής και κάποιο χρώμα στο δέρμα τους (ή στο κορμό/φύλλα τους). Η έβδομη ως τη δέκατη-τέταρτη ιδιότητα έχουν ως πεδίο ορισμού το ζώο και δηλώνουν τα εξής. Κάθε ζώο μπορεί να τρώει ζώα ή/και φυτά. Ένα ζώο έχει ως μέρος σώματος ένα Μέρος Σώματος. Ένα ζώο έχει ως εχθρούς άλλα ζώα. Επίσης, ένα ζώο ταιριάζει με ένα άλλο ζώο. Τέλος, ένα ζώο έχει κάποιες χαρακτηριστικές ιδιότητες όπως το ύψος του, το βάρος του, η ηλικία του καθώς και η μέγιστη ηλικία του. Προφανώς, για κάθε μια από τις παραπάνω ιδιότητες θέλουμε να ισχύουν συγκεκριμένοι περιορισμοί που δεν μπορούν να εκφραστούν μέσω ενός RDF(S) αλλά μπορούν εύκολα να εκφραστούν μέσω της DAML-OIL.
Αλλαγές πριν τη μετατροπή
Κατά τη διάρκεια της τρίτης εργασίας μας αντιληφθήκαμε ότι στο αρχικό σχήμα της οντολογίας που σχεδιάσαμε μέσω της RDF(S) υπήρχαν κάποιες ασάφειες, κάποιες εκφραστικές αδυναμίες ενώ παρατηρήσαμε ότι έπρεπε να γίνουν ορισμένες μικρο-αλλαγές ώστε να πραγματοποιηθεί η σημασιολογική μετατροπή στην DAML-OIL. Λόγω των παραπάνω προχωρήσαμε σε κάποιες σημαντικές αλλαγές πάνω στο σχήμα, τις οποίες θα αναφέρουμε 1-1 παρακάτω.
Πρώτα από όλα, επικεντρωθήκαμε στην κλάση Climate. Σε αυτή τη κλάση υπήρχαν ορισμένες υπο-κλάσεις τις οποίες προορίζαμε ως distinct όταν θα τις εκφράζαμε σε DAML-OIL. Παρατηρήσαμε όμως ότι ένα κλίμα μπορεί να είναι και ζεστό(warm) και υγρό(wet) και άρα μπορούμε να συνδυάσουμε τις 4 υποκλάσεις μεταξύ τους. Η αλήθεια είναι όμως ότι οι κλάσεις Dry και Wet είναι distinct καθώς επίσης και οι Cold και Warm. Επομένως, όσες κλάσεις είναι distinct δεν μπορούν να συνδυαστούν μεταξύ τους. Επομένως, οι δυνατοί συνδυασμοί είναι 4 και όχι 4 * 3 = 12. Επίσης, σκεφθήκαμε ότι εφόσον έχουμε 2 διαφορετικές ομάδες distinct κλάσεων να δημιουργήσουμε 2 υπερ-κλάσεις των 4 υποκλάσεων που θα κρέμονται από την κλάση Climate. Με αυτό τον τρόπο δημιουργήσαμε 2 υποκλάσεις της κλάσης Climate: Temp_Climate και Humid_Climate. Η Temp_Climate αναφέρεται σε κατηγοριοποίηση ενός κλίματος ανάλογα με την θερμοκρασία και χωρίζεται σε Θερμό(Warm) και Κρύο(Cold) κλίμα. Ενώ η Humid_Climate αναφέρεται στην κατηγοριοποίηση ενός κλίματος ανάλογα με την υγρασία και χωρίζεται στις κλάσεις Υγρό(Wet) και Ξηρό(Dry) κλίμα. Με το ίδιο σκεπτικό, η ιδιότητα has_climate αποκτά 2 υπο-ιδιότητες: has_temp_climate και has_humid_climate. Η πρώτη ιδιότητα υποδηλώνει ότι μια τοποθεσία μπορεί να έχει κλίμα που έχει σχέση με θερμοκρασία. Αντίθετα, η δεύτερη ιδιότητα υποδηλώνει ότι μια τοποθεσία μπορεί να έχει ένα κλίμα που να έχει σχέση με την υγρασία. Έτσι, μια τοποθεσία μπορεί να σχετίζεται τόσο με κλίμα που αφορά θερμοκρασία όσο και με κλίμα που αφορά την υγρασία. Οι αλλαγές στο σχήμα της οντολογίας όσο αφορά το κλίμα και την ιδιότητα has_climate φαίνονται στο παρακάτω σχήμα:
[pic]
Εικόνα 8 - Αλλαγή για την κλάση Climate
Η επόμενη αλλαγή αφορά την κλάση insemination. Στην υλοποίησης της δεύτερης εργασίας η κλάση insemination αποτελούνταν από 5 υποκλάσεις: amphigony, monogony, by_aspertion, parthenogenesis και pollination. Επειδή όμως για κάθε περίπτωση ζώου λέγαμε ότι έχει ως μέθοδο αναπαραγωγής π.χ ένα instance της κλάσης amphigony, αναγκαζόμασταν να δημιουργούμε για κάθε instance ζώου ένα instance από μια από τις 5 υποκλάσεις. Με αυτό το τρόπο σκεφθήκαμε ότι θα ήταν προτιμότερο να μετατρέπαμε τις 5 υποκλάσεις ως 5 instances της κλάσης insemination. Έτσι τώρα μια περίπτωση ζώου θα λέμε ότι αναπαράγεται π.χ από την περίπτωση amphigony της κλάσης insemination. Από σημασιολογικής πλευράς δεν χάσαμε τίποτε. Από πλευράς υλοποίησης (‘γέμισμα’ σχήματος με περιπτώσεις) κερδίσαμε αρκετά.
Μια από τις πιο σημαντικές αλλαγές αφορά τις ιδιότητες has_enemy και eats. Στο προηγούμενο σχήμα, η μεν has_enemy είχε domain τα ζώα και range πάλι τα ζώα, η δε eats είχε domain τα ζώα και range τα ζώα και τα φυτά. Όμως, εμείς θέλαμε με κάποιο τρόπο να εκφράσουμε αργότερα στην DAML-OIL ότι οι 2 ιδιότητες είναι αντίθετες μεταξύ τους. Όμως, ύστερα από μια πιο προσεκτική ματιά καταλάβαμε ότι αυτό πρακτικά δεν γίνεται διότι θα πρέπει το domain της 1ης ιδιότητας να είναι το ίδιο με το range της 2ης ιδιότητας και το range της 1ης ιδιότητας να είναι το ίδιο με το domain της 2ης ιδιότητας. Εισάγαμε, λοιπόν, μια νέα ιδιότητα με όνομα is_eaten_by, η οποία εκφράζει ότι ένα ζώο ή/και φυτό τρώγεται από ένα άλλο ζώο. Η ιδιότητα αυτή πράγματι είναι αντίστροφη της eats. Έτσι, η has_enemy θα είναι υπο-ιδιότητα της νέας ιδιότητας. Με αυτό τον τρόπο, όταν δηλώνουμε ότι ένα ζώο έχει εχθρό κάποιο δεύτερο ζώο, τότε το ζώο τρώγεται από το δεύτερο ζώο και άρα το δεύτερο ζώο τρώει το εν λόγω ζώο. Επίσης, αποφεύγεται η δήλωση ότι ένα φυτό έχει εχθρό ένα ζώο διότι δεν έχει νόημα. Και αυτό γιατί όταν λέμε ότι ένα ζώο τρώει ένα φυτό τότε το φυτό τρώγεται από το άλλο ζώο. Η ιδιότητα has_enemy δεν πρέπει να αφορά τα φυτά! Οι αλλαγές αντικατοπτρίζονται στο παρακάτω σχήμα:
[pic]
Εικόνα 9 - Μια νέα ιδιότητα με όνομα is_eaten_by
Τώρα ερχόμαστε στην ιδιότητα has_body_part. Αυτή εκφράζει το γεγονός ότι ένα ζώο έχει ως μέλος ένα μέρος σώματος (Body_Part). Όμως, στην DAML-OIL θα υπήρχε ένα πρόβλημα. Θέλαμε να εκφράσουμε ότι ένα ζώο έχει ακριβώς δύο πόδια και ακριβώς δύο χέρια. Αυτό δεν γίνεται διότι η DAML-OIL θεωρεί ότι αν δύο περιορισμοί ισχύουν για μια ιδιότητα για μια συγκεκριμένη κλάση, τότε παίρνονται οι τομές των 2 περιορισμών και θα είχαμε πρόβλημα. Η λύση που σκεφτήκαμε ήταν να δημιουργήσουμε 6 υπο-ιδιότητες της ιδιότητας has_body_part, τις εξής:
• Has_head(Animal->Head): Ένα ζώο έχει κεφάλι.
• Has_body(Animal->Main_Body): Ένα ζώο έχει κυρίως σώμα.
• Has_hand(Animal->hand): Ένα ζώο έχει χέρι.
• Has_leg(Animal->leg): Ένα ζώο έχει πόδι.
• Has_tail(Animal->tail): Ένα ζώο έχει ουρά.
• Has_wing(Animal->wing): Ένα ζώο έχει φτερό.
Με αυτό τον τρόπο βάζουμε τους περιορισμούς που θέλουμε στις υπο-ιδιότητες της ιδιότητας has_body_part για μια ορισμένη κλάση και λύνουμε το πρόβλημά μας.
Η τελευταία αλλαγή που κάναμε αφορούσε την matches_with. Στην DAML-Oil θα θέλαμε να είναι μια symmetric property και να έχει ως πεδίο ορισμού την τομή Animal και Male και ως πεδίο τιμών την τομή Animal και Female. Δυστυχώς, αυτό δεν γίνεται στην DAML-OIL διότι απαιτείται το πεδίο ορισμού και πεδίο τιμών να ταυτίζονται και εμάς δυστυχώς φαίνεται ότι είναι και distinct. Στην εν λόγω περίπτωση αλλάξαμε άρδην το σχήμα μας. Δημιουργήσαμε μια νέα κλάση με όνομα Animal_Couple που μοντελοποιεί όλα τα ζευγάρια ζώων που έχουν ζευγαρώσει μαζί. Επίσης, δημιουργήσαμε την ιδιότητα has_partner που έχει ως πεδίο ορισμού την κλάση Animal_Couple και ως πεδίο τιμών την κλάση Animal. Με αυτό τον τρόπο δηλώσαμε ότι ένα ζώο μετέχει ως σύντροφος σε ένα ζευγάρι ζώων. Για την συγκεκριμένη ιδιότητα δημιουργήσαμε 2 υπο-ιδιότητες. Την has_male_partner που συνδέει ζευγάρια ζώων με ζώα που είναι αρσενικά (Animal τομή Male). Και την has_female_partner που συνδέει ζευγάρια ζώων με θηλυκά ζώα. Επίσης, δηλώσαμε ότι ένα Animal_Couple έχει ακριβώς ένα θηλυκό σύντροφο και ακριβώς ένα αρσενικό σύντροφο. Οπότε αυτό που ζητούσαμε το πετύχαμε με λίγο παραπάνω κόπο. Τώρα για να δηλώσουμε ότι δύο περιπτώσεις ζώων αποτελούν ζευγάρι, δημιουργούμε μια περίπτωση της κλάσης Animal_Couple και βάζουμε μέσω της ιδιότητας has_male_partner να συνδέεται με την περίπτωση αρσενικού ζώου ενώ με την ιδιότητα has_female_partner το εν λόγω ζευγάρι θα συνδέεται με την περίπτωση θηλυκού ζώου. Οι αλλαγές που έγιναν φαίνονται στην παρακάτω εικόνα:
[pic]
Εικόνα 10 - Αλλαγή με την εισαγωγή της κλάσης Animal_Couple
Μετασχηματισμός σε DAML-OIL
Όπως αναφέρθηκε και στην προηγούμενη αναφορά, οι δυνατότητα εκφραστικότητας της RDF είναι περιορισμένη. Και αυτό διότι μέσω της RDF δεν μπορούν να εκφραστούν τα εξής:
• Τοπική εμβέλεια ιδιοτήτων. Για μια κλάση θέλουμε να ισχύει κάποιος περιορισμός σε μια ιδιότητα που την έχει κληρονομήσει από την υπερ-κλάση της.
• Ειδικές ιδιότητες. Θέλουμε να εκφράσουμε ότι μια ιδιότητα είναι μοναδική, υποχρεωτική, συμμετρική ή αντίστροφη μιας άλλης.
• Περιορισμοί ακεραιότητας σε ιδιότητες. Θέλουμε μια ιδιότητα να παίρνει ορισμένο αριθμό τιμών για μια τιμή του πεδίου ορισμού της.
• Συνδυασμοί κλάσεων. Θέλουμε να εκφράσουμε μια κλάση ως λογικό συνδυασμό άλλων κλάσεων.
• Ισοδυναμία κλάσεων. Θέλουμε να εκφράσουμε ότι μια κλάση είναι ίδια/ισοδύναμη με μια άλλη.
• Ξεχωριστές κλάσεις. Θέλουμε να εκφράσουμε ότι δύο κλάσεις δεν έχουν κοινές περιπτώσεις/μέλη.
Για αυτό τον λόγο, μας ζητήθηκε να μετατρέψουμε ένα σχήμα εκφρασμένο σε RDF σε ένα σχήμα εκφρασμένο σε DAML-OIL. Στην προηγούμενη ενότητα αναφερθήκαμε στην προετοιμασία εδάφους για την εν λόγω μετατροπή. Σε αυτή την ενότητα θα αναφερθούμε για το πώς έγινε η μετατροπή και ποια επιπρόσθετα δομικά στοιχεία της DAML-OIL χρησιμοποιήσαμε για να εμπλουτίσουμε το σχήμα μας.
Αρχικά, θα πρέπει να αναφέρουμε ότι στον μετασχηματισμό του σχήματός μας από την RDF σε DAML-Oil βοηθηθήκαμε από ένα κειμενογράφο με όνομα Oil-ED. Αυτός με μια κίνηση πήρε ένα αρχείο (το σχήμα μας) εκφρασμένο σε RDF και το μετέτρεψε σε ένα άλλο αρχείο εκφρασμένο σε DAML-OIL. Η μετατροπή έγινε σε επίπεδο κλάσεων και ιδιοτήτων. Όλες οι κλάσεις και οι ιδιότητες της RDF μετατράπηκαν σε κλάσεις και ιδιότητες της DAML-OIL. Έπειτα, με την βοήθεια του User Interface του εν λόγω κειμενογράφου κατορθώσαμε να εμπλουτίσουμε το σχήμα μας με εκείνα τα στοιχεία που λείπουν από την RDF και υπάρχουν στη DAML-OIL. Παρακάτω παραθέτουμε τις προσθήκες που έγιναν στο σχήμα μας κατηγοριοποιημένες σε 4 κατηγορίες:
Ειδικές Ιδιότητες
Οι ειδικές ιδιότητες που χρησιμοποιήθηκαν στο σχήμα μας είναι οι εξής:
• Η eats είναι inverse of is_eaten_by.
• Οι ιδιότητες age, max_age, height, weight, longitude και latitude είναι unique properties
Ισοδυναμία κλάσεων
Όπως αναφέρθηκε και στην προηγούμενη ενότητα, οι κλάσεις Animal, Animal_by_eat_prefs, Animal_by_reproduction_type, Animal_by_sex_type, Animal_by_vertebra_existence είναι ισοδύναμες διότι όλες έχουν ως μέλη όλα τα ζώα. Απλώς, για τις 4 τελευταίες, γίνεται μια κατηγοριοποίηση των ζώων από κάποια οπτική γωνία. Όμως, αυτή η κατηγοριοποίηση περιλαμβάνει όλες τις κλάσεις-φύλα των ζώων του σχήματός μας. Επίσης, η herbivore είναι ισοδύναμη με μια ανώνυμη κλάση που είναι υποκλάση των ζώων που τρώνε μόνο φυτά. Για την carnivore γίνεται κάτι αντίστοιχο διότι αυτή είναι ισοδύναμη με μια κλάση που είναι υποκλάση όλων των ζώων που τρώνε μόνο άλλα ζώα. Τέλος, η κλάση sex-separated είναι ισοδύναμη με μια ανώνυμη κλάση που είναι υποκλάση όλων των ζώων που αναπαράγονται με την περίπτωση γονιμοποίησης με όνομα αμφιγονία.
Διαχωρισμός Κλάσεων και Λογικός Συνδυασμός Κλάσεων
Στην DAML-OIL μπορούμε να εκφράσουμε ότι μια κλάση είναι disjoint union άλλων κλάσεων. Εμείς, όμως, επειδή ξέρουμε ότι αυτό το χαρακτηριστικό της γλώσσας είναι ισοδύναμο με το συνδυασμό δύο άλλων χαρακτηριστικών, χρησιμοποιήσαμε τον δεύτερο τρόπο. Αυτός άλλωστε είναι και ο μοναδικός τρόπος που χρησιμοποιείται στον OIL-Ed. Έτσι εκφράσαμε πρώτα ότι κάποιες κλάσεις είναι disjoint μεταξύ τους και έπειτα εκφράσαμε μια κλάση ως λογικό συνδυασμό των προηγούμενων προαναφερόμενων κλάσεων. Παρακάτω παραθέτουμε όλες τις κλάσεις που είναι disjoint μεταξύ τους:
• Head, limb, Main_body.
• Wing, hand, tail, leg.
• Temp_Climate, Humid_Climate.
• Cold, Warm.
• Dry, Wet.
• Land, Water.
• Desert, Forest, Steppe, Valley.
• Lake, River, Sea.
• Multicellular, unicellular.
• Lonesome, protist.
• Mycetous, Animals_and_Plants.
• Animal, Plant.
• Oviparous, viviparous.
• Vertebrate, invertebrate.
• Metazoan, mollusk, rustacea, worms.
• Amphineyrous, gasteropodous, kefalopodous, pelekypodous, scafopodous.
• Carcinoid, insects, million-legged, spider-like.
• Ring-worms, platythelminth, nemathelminth.
• Amphibian, fish, fowl, mammal, reptile.
• Legless, tailess, tailed.
• Fatfish, jawless, osteal.
• Chiropterus, lagomorph, artiodactylus, cetacean, perissodactylus, rodent, primate, proboscius.
• Crocodilian, squamous, scrofula.
• Male, Female.
Οι κλάσεις που εκφράζονται ως λογικοί συνδυασμοί κλάσεων που είναι disjoint μεταξύ τους είναι οι ακόλουθες:
• Body_Part = Head U Limb U Main_Body.
• Limb = Hand U Leg U Tail U Wing.
• Climate = Temp_Climate U Humid_Climate.
• Temp_Climate = Cold U Warm.
• Humid_Climate = Dry U Wet.
• Location = Land U Water.
• Land = Desert U Steppe U Valley U Forest.
• Water = Lake U River U Sea.
• Organism = Multicellular U unicellular.
• Multicellular = Mycetous U Animals_and_Plants.
• Unicellular = Lonesome U protist.
• Animals_and_Plants = Animal U Plant.
• Animals_by_reproduction_type = oviparous U viviparous.
• Animals_by_vertebra_existence = vertebrate U invertebrate.
• Invertebrate = Metazoan U mollusk U rustacea U worms.
• Mollusk = Amphineyrous U gasteropodous U kefalopodous U pelekypodous U scafopodous.
• Rustacea = Carcinoid U insects U million-legged U spider-like.
• Worms = Ring-worms U platythelminth U nemathelminth.
• Vertebrate = Amphibian U fish U fowl U mammal U reptile.
• Amphibian = Legless U tailess U tailed.
• Fish = Fatfish U jawless U osteal.
• Mammal = Chiropterus U lagomorph U artiodactylus U cetacean U perissodactylus U rodent U primate U proboscius.
• Reptile = Crocodilian U squamous U scrofula.
• Sex-separated = Male U Female.
Εκτός όμως από unions of disjointed classes έχουμε και απλά unions όπως τα παρακάτω:
• Animal_by_eat_prefs = Herbivore U Carnivore U Omnivore. Λόγω της χελώνας που έχει είδη που παίζουν και στις 3 υποκλάσεις.
• Animal_by_sex_type = Hermaphrodite U sex-separated. Ο σπόγγος είναι και ερμαφρόδιτος και γονοχωριστικός.
Τοπική εμβέλεια Μεταβλητών και Περιορισμοί Ακεραιότητας
Επειδή οι περιορισμοί που έχουμε στο σχήμα μας είναι τεράστιοι και θα είναι κουραστικό να τους διαβάσει ο αναγνώστης , αναφέρουμε ορισμένους από αυτούς ενδεικτικά:
• Ένας οργανισμός έχει ζήσει τουλάχιστον σε μια τοποθεσία στη ζωή του.
• Τα Ζώα και Φυτά έχουν τουλάχιστον ένα χρώμα.
• Όλα τα φυτά τρώγονται από χορτοφάγα ζώα ενώ παράγονται μόνο με εκβλάστηση.
• Ένα ζώο έχει ακριβώς ένα κεφάλι και ένα κυρίως σώμα ενώ έχει τουλάχιστον 0 πόδια, τουλάχιστον 0 χέρια, τουλάχιστον 0 φτερά και τουλάχιστον 0 ουρές.
• Ο άνθρωπος έχει ακριβώς μια μέγιστη ηλικία με τιμή 110. Ζεί αποκλειστικά στη Γη. Παράγεται μόνο με αμφιγονία. Τρώει τα εξής ζώα: land_worm U fish U whale U crocodile U snake U hare U turtle U horse U hen U cock U lobster U frog U mollusk. Έχει ως εχθρούς την ένωση των ζώων: snake, crocodile, shark. Έχει ακριβώς 2 πόδια, ακριβώς 2 χέρια, κανένα φτερό και καμμία ουρά.
• Το φίδι τρώει την ένωση των ζώων : man, mouse, frog. Έχει εχθρό μόνο τον άνθρωπο. Παράγεται αποκλειστικά με αμφιγονία. Ζεί σε τοποθεσίες όπου το κλίμα είναι αποκλειστικά ζεστό. Έχει ακριβώς 1 ουρά, κανένα πόδι, κανένα χέρι και κανένα φτερό.
• Η οχιά τρώει μόνο βάτραχους ή ποντίκια. Και έχει μια ακριβώς μέγιστη ηλικία με τιμή 5.
Προβλήματα
Δυστυχώς, το σχήμα που αναπτύχθηκε με τον OIL-Ed είναι αρκετά μεγάλο και τώρα δεν μπορεί να το ανοίγει σωστά. Αυτό είναι ένα από τα πολλά προβλήματα που συναντήσαμε στον OIL-Ed που αφορούν αφενός την κακή διαπαφή χρήσης του αλλά και ορισμένες δυσλειτουργίες του. Το σχήμα εκφρασμένο σε OIL-Ed παρατίθεται στο Παράρτημα. Παρακάτω θα περιγράψουμε αρκετά από τα προβλήματα που συναντήσαμε στον OIL-Ed. Τέλος, θα αναφέρουμε και ορισμένα προβλήματα έκφρασης που παρουσιάζει η DAML-OIL.
Τα προβλήματα του OIL-Ed είναι τα ακόλουθα:
• Ενώ ορίζουμε κανονικά 3 και παραπάνω disjoint κλάσεις μεταξύ τους, όταν κλείσουμε το αρχείο και το ξαναανοίξουμε τότε από μια disjoint δήλωση έχουν προκύψει τουλάχιστον 3 ζευγάρια. Το ίδιο ισχύει και για τη σχέση sameClassAs.
• Επειδή κάθε υποκλάση των θηλαστικών είναι υποκλάση είτε των herbivore, carnivore ή omnivore ζώων, όλα τα θηλαστικά αυτόματα θεωρούνται ως υποκλάση της Animal_by_eat_prefs.
• Χρησιμοποιούμε τον reasoner και ενώ το σχήμα μας είναι μεγάλο και περνάει, όταν το ξαναανοίγουμε του βρίσκει λάθη.
• Δεν μπορείς να αντιγράψεις κλάσεις, ιδιότητες ή περιπτώσεις κλάσεων. Έτσι μειώνεται η ταχύτητα ανάπτυξης του σχήματος.
• Ο Reasoner καθυστερεί αρκετά όταν το σχήμα είναι πολύ μεγάλο.
Τα προβλήματα έκφρασης της DAML-OIL είναι δύο. Πρώτα από όλα δεν υπάρχει μηχανισμός για την δήλωση τιμής μιας ιδιότητας μιας κλάσης που θα ισχύει για όλες τις περιπτώσεις της κλάσης. Δεύτερον, μάλλον δεν υποστηρίζει την έννοια των μετα-κλάσεων.
Παράρτημα
Παρακάτω παραθέτουμε το σχήμα μας εκφρασμένο σε DAML-OIL:
"An Ontology"
Animal
bassfish
Desert
lobster
Forest
proboscius
Steppe
crocodilian
Valley
Cold
Head
Lake
Land
Warm
cock
fish
fowl
frog
hand
hare
limb
male
tail
wing
crocodile
Humidity_Climate
vertebrate
reptile
amphibian
beaver
echinococcus
gasteropodous
squamous
mollusk
donkey
female
cetacean
land_worm
chiropterus
lizard
mammal
mussel
unicellular
kefalopodous
osteal
metazoan
plants
scafopodous
scrofula
rabbit
rodent
mycetous
salmon
spider
sponge
tailed
turtle
Main_Body
insemination
Animal_by_sex_type
artiodactylus
dogfish
dolphin
Animal_Couple
Temperature_Climate
herbivore
Animal_by_eat_prefs
insects
Animals_and_Plants
elephant
invertebrate
River
Water
hermaphrodite
camel
horse
mouse
shark
snail
snake
squid
viper
whale
worms
spider-like
multicellular
jawless
Climate
octopus
oviparous
sex-separated
rustacea
salamander
Animal_by_vertebra_existence
fatfish
Body_Part
millipede
Organism
omnivore
amphineyrous
perissodactylus
nemathelminth
million-legged
alegator
Animal_by_reproduction_type
Location
primate
protist
carcinoid
Resource
lagomorph
platyhelminth
pelecypodous
tail-less
viviparous
lonesome
carnivore
legless
Dry
Sea
Wet
ape
bat
bee
cow
hen
leg
man
pig
Literal
ring-worms
female_partner_in
produced_method
has_hand
has_tail
has_wing
latitude
has_climate
eats
max_age
has_humid_climate
height
weight
has_leg
color
has_temp_climate
is_eaten_by
has_main_body
male_partner_in
has_head
lives_in
partner_in
has_body_part
has_enemy
longitude
age
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.