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.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related download