ιαχείριση Γνώσης σε Ενδοεπιχειρισιακά ίκτυα και το ιαδίκτυο (ΗΥ-566) Άσκηση 3 - Αναφορά "Κατασκευή Οντολογίας σε DAML+OIL για την Περιγραφή του Παραδείγµατος που εκφράστηκε σε RDFS στην Άσκηση 2" Γιαννακόπουλος Ιωάννης giannak@csd.uoc.gr Γεωργίου Γεώργιος georgg@csd.uoc.gr Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης, Ηράκλειο 1 Εισαγωγή Στην άσκηση 2, επιλέξαµε ένα παράδειγµα πεδίου εφαρµογής περιγραφής γνώσης και γι αυτό το domain έγιναν τα ακόλουθα: (i) καταρχήν συντάχθηκε το σχήµα του σε RDFS (οντολογία), (ii) δηµιουργήθηκαν κάποια δεδοµένα που σχετίζονται µε αυτό το σχήµα και αποθηκεύτηκαν σε βάση δεδοµένων (PostgreSQL), (iii) εξάχθηκαν queries που µας ενδιαφέρουν και εκφράστηκαν στη γλώσσα επερωτήσεων RQL και τέλος (iv) εξετάστηκαν τα πιθανά limitations του RDF σχήµατος. Η άσκηση 3, είχε ως στόχο την αντιµετώπιση των τυχόν limitations του RDF σχήµατος, Αυτό έγινε µε την κατασκευή της οντολογίας µας σε DAML+OIL. 2 Παράδειγµα Πεδίου Εφαρµογής Περιγραφής Γνώσης Όπως αναφέρθηκε και στην άσκηση 2, το domain της εφαρµογής που µοντελοποιήσαµε είναι το web portal ενός ηλεκτρονικού βιβλιοπωλείου. Στις προδιαγραφές του βιβλιοπωλείου περιλαµβάνονται οντότητες που έχουν να κάνουν µε τίτλους βιβλίων ή περιοδικών, θεµατικές ενότητες, πελάτες του βιβλιοπωλείου, προτιµήσεις και συναλλαγές αυτών, προσφορές σε κάποιους τίτλους κ.τ.λ. Συγκεκριµένα το ηλεκτρονικό βιβλιοπωλείο υποστηρίζει τις παρακάτω λειτουργίες: Καταγραφή των τίτλων βιβλίων ή περιοδικών που διαθέτει το βιβλιοπωλείο. Κατηγοριοποίηση των τίτλων µε βάση θεµατικές ενότητες. Κάθε τίτλος µπορεί να ανήκει σε περισσότερες από µία θεµατικές ενότητες. Καταγραφή στοιχείων (όνοµα, επίθετο, διεύθυνση, επάγγελµα, τηλέφωνο, e-mail, κ.τ.λ.) για τους πελάτες του βιβλιοπωλείου. Επίσης καταγραφή των προτιµήσεων και του επιπέδου γνώσεων κάθε πελάτη ως προς θεµατικές ενότητες. Αναλυτική καταγραφή των πρόσφατων συναλλαγών κάθε πελάτη. Πρόσφατες θεωρούνται οι συναλλαγές του τελευταίου έτους. Υποστήριξη on-line συναλλαγών των πελατών µε το βιβλιοπωλείο και κατάταξη των συναλλαγών µε βάση τον τρόπο πληρωµής (πληρωµή µε αντικαταβολή ή on-line πληρωµή µε πιστωτική κάρτα). Ύπαρξη προσωπικού κωδικού για κάθε πελάτη.
Καταγραφή των προσφορών που κάνει το βιβλιοπωλείο και αναζήτηση των πελατών που πρέπει να ειδοποιηθούν για τις προσφορές, επειδή έχουν δείξει προτίµηση για τη συγκεκριµένη θεµατική ενότητα. Καταγραφή των σχολίων κάποιου πελάτη για έναν τίτλο και αξιολόγηση του τίτλου από µέρους του πελάτη σε "κακό", "µέτριο", "καλό" ή "πολύ καλό". Αναζήτηση τίτλων µε βάση τίτλο, συγγραφέα, εκδοτικό οίκο, ISBN, serial number. Αναζήτηση των δηµοφιλέστερων τίτλων για κάθε θεµατική ενότητα µαζί µε τη γνώµη των πελατών. 3 Oντολογία σε RDF Schema Στο Σχήµα 1 που ακολουθεί παρατίθεται η οντολογία του ηλεκτρονικού βιβλιοπωλείου σε RDF Schema. Σηµειώνουµε ότι στο παρακάτω σχήµα φαίνονται µόνο τα RDF properties που έχουν domain καθώς και range, κλάσεις. Αυτό κρίθηκε σκόπιµο να γίνει για λόγους ευανάγνωσης του σχήµατος. Για τα properties που έχουν domain κλάση και range literal, γίνεται λόγος αργότερα σ' αυτή την αναφορά. Σχήµα 1: Η οντολογία του ηλεκτρονικού βιβλιοπωλείου σε RDF Schema (RDFS) Όπως βλέπουµε στο Σχήµα 1, η οντολογία µας αποτελείται από δέκα κλάσεις. Με τον ορισµό τόσο των κλάσεων αυτών, όσο και των χαρακτηριστικών τους, ικανοποιούνται πλήρως οι προδιαγραφές του βιβλιοπωλείου που είχαν τεθεί εξ' αρχής (βλέπε Εδάφιο 2). Τα χαρακτηριστικά της κάθε κλάσης (properties µε domain την κλάση στην οποία αναφέρονται και range literal), φαίνονται παρακάτω: Title: Όνοµα τίτλου, συγγραφέας, έτος έκδοσης, τιµή Book: ISBN Magazine: Serial no Knowledge Area: Όνοµα γνωστικής περιοχής Publisher: Όνοµα εκδοτικού οίκου, περιοχή ενδιαφέροντος, ηλεκτρονική διεύθυνση Offer: Αρχική ηµεροµηνία προσφοράς, τελική ηµεροµηνία Customer: Όνοµα πελάτη, επίθετο, διεύθυνση, επάγγελµα, πόλη, e-mail, τηλέφωνο, login, password Preferences: Επίπεδο γνώσης του πελάτη ως προς θεµατικές ενότητες
Purchase: Ηµεροµηνία συνδιαλλαγής (αγοράς κάποιου τίτλου) του πελάτη, τρόπος πληρωµής (on-line ή µε αντικαταβολή) Review: Σχόλια του πελάτη ως προς κάποιον τίτλο, βαθµός αξιολόγησης 4 Limitations του RDF Σχήµατος Το σχήµα του βιβλιοπωλείου, εκπεφρασµένο σε RDFS, παρουσιάζει κάποιες αδυναµίες όσον αφορά την εκφραστικότητα των οντοτήτων που περιέχονται σ' αυτό καθώς και των ιδιοτήτων τους. Τα limitations αυτά εντοπίζονται στα ακόλουθα: Οι κλάσεις Book και Magazine είναι disjoint. Κάτι τέτοιο όµως δε µπορούµε να το εκφράσουµε στο RDF schema Εκτός από Literals δεν υπάρχουν πιο restrictive τιµές γνωρισµάτων (π.χ. boolean) Cardinality restrictions: Π.χ. Θέλουµε να πούµε ότι ένας τίτλος έχει ακριβώς µία προσφορά, πράγµα που δε µπορούµε στο RDF schema Τα range restrictions (transitive properties) που υπάρχουν σε κάποια attributes των properties της οντολογίας, δε µπορούν να εκφραστούν στο RDF schema Τα παραπάνω limitations αντιµετωπίστηκαν αποτελεσµατικά, χρησιµοποιώντας την εκφραστική δύναµη της DAML+OIL, στην οποία και κατασκευάστηκε η νέα οντολογία. Στις παραγράφους που ακολουθούν, φαίνεται πώς µε την DAML+OIL, αντιµετωπίστηκε κάθε ένα από τα παραπάνω limitations: 1. Οι κλάσεις Book και Magazine είναι pairwise disjoint. Επιπρόσθετα, κάθε τίτλος του βιβλιοπωλείου είναι ένα βιβλίο ή περιοδικό. <daml:disjointunionof rdf:parsetype= daml:collection > <daml:class rdf:about= #Book /> <daml:class rdf:about= #Magazine /> </daml:disjointunionof> 2. Εκτός από Literals, δεν υπάρχουν πιο restrictive τιµές γνωρισµάτων (π.χ. integer) Datatype properties. <daml:datatypeproperty rdf:id= age > <rdf:type rdf:resource= http://www.daml.org/2001/03/daml#uniqueproperty /> <rdfs:range rdf:resource= http://www.w3.org/2000/xmlschema#nonnegativeinteger> </daml:datatypeproperty> 3. Cardinality restrictions: Ένας τίτλος έχει ακριβώς µία προσφορά ή δε βρίσκεται καθόλου σε προσφορά. <daml:onproperty rdf:resource= #offerid /> <daml:maxcardinality>1</daml:maxcardinality>
Ένας τίτλος µπορεί να ανήκει σε περισσότερες από µία θεµατικές ενότητες. <daml:onproperty rdf:resource= #karea /> <daml:mincardinality>1</daml:mincardinality> Ένας τίτλος ανήκει σε ακριβώς έναν εκδοτικό οίκο. <daml:onproperty rdf:resource= #publishedby /> <daml:cardinality>1</daml:cardinality> 4. Τα range restrictions που υπάρχουν σε κάποια attributes των properties της οντολογίας, δε µπορούν να εκφραστούν στο RDF schema. Στην οντολογία µας σε RDFS, υπάρχει το property grade της κλάσης Review, το οποίο είναι ο πιθανός βαθµός αξιολόγησης που µπορεί να δώσει κάποιος πελάτης ως προς κάποιον τίτλο. Κατά τη σχεδίαση της οντολογίας του βιβλιοπωλείου, ήταν επιθυµητό ο βαθµός αυτός να µπορεί να πάρει 4 τιµές: «κακό», «µέτριο», «καλό» και «πολύ καλό». Κάτι τέτοιο δε µπορούσε να εκφραστεί όµως µε την RDFS. Στην DAML+OIL, αυτό έγινε, όπως φαίνεται παρακάτω: Αρχικά ορίζουµε την κλάση Possible_Grade, χρησιµοποιώντας το oneof statement της DAML+OIL, ως εξής: <daml:class rdf:id= Possible_Grade > <daml:oneof rdf:parsetype= daml:collection > <Possible_Grade rdf:id= bad /> <Possible_Grade rdf:id= moderate /> <Possible_Grade rdf:id= good /> <Possible_Grade rdf:id= very_good /> </daml:oneof> Κατόπιν, ορίζουµε το ObjectProperty grade, να έχει ως range την κλάση Possible_Grade, ως εξής: <daml:objectproperty rdf:id= grade > <rdfs:domain rdf:resource= #Review /> <rdfs:range rdf:resource= #Possible_Grade /> </daml:objectproperty> Τέλος, ένα instance κλάσης Review (RDF επίπεδο), θα είναι το ακόλουθο:
<Review rdf:id= Review1 > <cid rdf:resource= #Cust1 /> <tid rdf:resource= #Book1 /> <grade><possible_grade rdf:resource= #very_good /></grade> </Review> Στην RDFS οντολογία επίσης, υπάρχει το property payment_way της κλάσης Purchase, το οποίο είναι ο τρόπος πληρωµής κάποιου πελάτη για κάποιον τίτλο. Κατά τη σχεδίαση της οντολογίας του βιβλιοπωλείου, ήταν επιθυµητό το εν λόγω property να µπορεί να πάρει τις τιµές: «πληρωµή µε αντικαταβολή» και «πληρωµή µε πιστωτική κάρτα», πράγµα που δε γινόταν στην RDFS. Στην DAML+OIL, αυτό έγινε ορίζοντας την κλάση Payment_Way, όπως φαίνεται παρακάτω: <daml:class rdf:id= Payment_Way > <daml:oneof rdf:parsetype= daml:collection > <Payment_Way rdf:id= cash_on_delivery /> <Payment_Way rdf:id= by_credit_card /> </daml:oneof> 5 OilEd Ontology Editor Η οντολογία του βιβλιοπωλείου σε DAML+OIL, αναπτύχθηκε στο περιβάλλον του OilEd ontology editor. Αυτό κρίθηκε σκόπιµο να γίνει για λόγους validation της οντολογίας µας (διότι ο συγκεκριµένος editor διαθέτει reasoner (FaCT)). Από τα παραπάνω limitations, το µόνο που δεν έγινε validate από τον OidEd, ήταν το limitation 2 (βλέπε Εδάφιο 4), κι αυτό διότι ο OidEd δε διαθέτει τα DatatypeProperties της DAML+OIL.