University of Crete Computer Science Department Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών CONFERENCE ONTOLOGY ΑΠΟΣΤΟΛΟΠΟΥΛΟΣ ΗΛΙΑΣ ΜΕΤ ΚΡΟΝΤΗΡΗΣ ΑΘΑΝΑΣΙΟΣ ΜΕΤ ΦΙΛΙΟΠΟΥΛΟΥ ΕΙΡΗΝΗ ΜΕΤ
Πίνακας Περιεχομένων Πίνακας περιεχομένων... 2 1. Εισαγωγή... 3 2. Domain... 4 3. Χρήση της Οντολογίας... 5 4. Γλώσσα Οντολογίας... 6 5. Στοιχεία της Γλώσσας... 7 6. Ανάλυση Οντολογίας... 11 6.1. Κλάσεις... 11 6.2. Σχέσεις κλάσεων... 12 6.3. Ιδιότητες κλάσεων... 13 7. Οντολογία... 16 ΗΥ ΑΣΚΗΣΗ Σελίδα 2
1. Εισαγωγή Ο όρος οντολογία προέρχεται από τη φιλοσοφία και αναφέρεται στην επιστήμη της περιγραφής των ειδών οντοτήτων στον κόσμο και πώς συσχετίζονται. Μια οντολογία καθορίζει τους όρους που χρησιμοποιούνται για να περιγράψουν και να αντιπροσωπεύσουν έναν τομέα της γνώσης. Οι οντολογίες χρησιμοποιούνται από τους ανθρώπους, τις βάσεις δεδομένων, και τις εφαρμογές που πρέπει να μοιραστούν τις πληροφορίες διαφόρων θεματικών περιοχών (domains). Οι οντολογίες περιλαμβάνουν ορισμούς βασικών εννοιών που αφορούν κάποια περιοχή και τις σχέσεις μεταξύ τους. Ο όρος οντολογία έχει χρησιμοποιηθεί για να περιγράψει αντικείμενα με διαφορετικούς βαθμούς δομής. Αυτοί ποικίλουν από απλές ταξινομίες, ως και θεωρίες λογικής. Οι οντολογίες αυτές πρέπει να διευκρινίζουν τις παρακάτω έννοιες: Τάξεις αντικειμένων (classes) στις διάφορες περιοχές ενδιαφέροντος Τις σχέσεις (relationships) που μπορούν να υπάρξουν μεταξύ των αντικειμένων Τις ιδιότητες (properties, attributes) που τα αντικείμενα μπορούν να έχουν. ΗΥ ΑΣΚΗΣΗ Σελίδα 3
2. Domain Το domain που περιγράφει η οντολόγια που επίλεξαμε αφορά την διοργάνωση ενός conference. ΗΥ ΑΣΚΗΣΗ Σελίδα 4
3. Χρήση της Οντολογίας Η οντολογία conference ontology που επιλέξαμε χρησιμοποιείται για την σχεδίαση και διοργάνωση events και πιο συγκεκριμένα conferences. Πιο χυγκεκριμένα χρησιμοποιήθηκε για την διοργάνωση του 3 ο European Semantic Web Conference που πραγματοποιήθηκε στη Budva του Μαυροβούνιου 11 με 14 Ιουνίου το 2006. Υπάρχουν αναφόρες για την χρησιμοποίηση του και από άλλες διοργανώσεις που πραγματοποιήθηκαν. ΗΥ ΑΣΚΗΣΗ Σελίδα 5
4. Γλώσσα Οντολογίας Η γλώσσα στην οποία είναι γραμμένη η οντολογία που επιλέξαμε είναι η OWL. Η Γλώσσα Οντολογιών Ιστού OWL (Web Ontology Language) είναι μια σημασιολογική γλώσσα σήμανσης για την δημιουργία και τη διανομή οντολογιών στο διαδίκτυο. Έχει αναπτυχθεί από το Web Ontology Working Group ως τμήμα του W3C Semantic Web Activity και προορίζεται να χρησιμοποιηθεί σε περιπτώσεις όπου η πληροφορία που περιλαμβάνεται στα έγγραφα του Ιστού πρέπει να υποβληθεί σε επεξεργασία από εφαρμογές λογισμικού. Μπορεί να χρησιμοποιηθεί για να αναπαραστήσει τις έννοιες των όρων και των σχέσεων ανάμεσά τους. Αυτή η σημασιολογική αναπαράσταση των όρων και των αλληλεξαρτήσεών τους καλείται οντολογία [4]. Η OWL παρέχει περισσότερες δυνατότητες κατά τον ορισμό οντολογιών από ό,τι η XML, η RDF, και το RDFS. H OWL γλώσσα στην οποία είναι γραμμένη η οντολογία που επιλέξαμε, είναι η πιο κατάλληλη γλώσσα οντολογιών λόγω των θετικών στοιχείων και πλεονεκτημάτων της, σε σχέση με τις υπόλοιπες διαδεδομένες γλώσσες οντολογιών. Επιπλέον το ότι προτείνεται ως η πιο κατάλληλη γλώσσα οντολογιών για τον Σημασιολογικό Ιστό από το W3C αποτελεί ένα επιπλέον σημαντικό στοιχείο που θα βοηθήσει στην ευρεία και γρήγορη καθιέρωσή της. Η OWL παρέχει τρεις υπογλώσσες, τις OWL Lite, DL και FULL, που σχεδιάστηκαν για να χρησιμοποιηθούν από διαφορετικές κοινότητες δημιουργών λογισμικού και χρηστών. Οι τρεις αυτές γλώσσες διαφέρουν ως προς την εκφραστικότητά τους και παρακάτω παρουσιάζονται στη σειρά, από την λιγότερο προς την περισσότερο εκφραστική. Κάθε μια από αυτές τις υπογλώσσες είναι μια επέκταση του απλούστερου προκατόχου της. ΗΥ ΑΣΚΗΣΗ Σελίδα 6
5. Στοιχεία της Γλώσσας Όπως αναφέραμαι και παραπάνω η οντολογία είναι γραμμένη σε OWL. Στην οντολογία που επιλέξαμε χρησιμοποιούνται κάποια στοιχεία της γλώσσας για κάποιο σκοπό. Στη συνέχεια αναλύουμε τα στοιχεία αυτά και το σκοπό για τον οποίο χρησιμοποιούνται. owl:class Καθορίζει μια τάξη οντοτήτων που μοιράζονται μερικές κοινές ιδιότητες. Παραδείγματος χάριν, <owl:class rdf:id="event"/>. Οι τάξεις μπορούν να οργανωθούν σε μια ιεραρχία ορίζοντας υποτάξεις με την χρήση του χαρακτηριστικού subclassof. owl:equivalentclass Δύο τάξεις μπορούν να δηλωθούν ως ισοδύναμες. Οι ισοδύναμες τάξεις έχουν τις ίδιες οντότητες. Η ισοδυναμία μπορεί να χρησιμοποιηθεί για να δημιουργήσει συνώνυμες τάξεις. Παραδείγματος χάριν, <owl:class rdf:id="person"> <owl:equivalentclass rdf:resource="http://xmlns.com/foaf/0.1/person"/> η τάξη Person έχει δηλωθεί ως equivalentclass της τάξης foaf:person. owl:objectproperty Οι ιδιότητες μπορούν να χρησιμοποιηθούν για να δηλώσουν σχέσεις μεταξύ οντοτήτων που παίρνουν τιμές από συγκεκριμένους τύπους δεδομένων. Παραδείγματος χάριν, <owl:objectproperty rdf:id="memberof"> ΗΥ ΑΣΚΗΣΗ Σελίδα 7
<rdfs:domain rdf:resource="#person"/> <rdfs:range rdf:resource="#group"/> <owl:inverseof rdf:resource="#hasmember"/> owl:inverseof Μια ιδιότητα μπορεί να δηλωθεί ως αντίστροφη μιας άλλης ιδιότητας. Εάν αν η ιδιότητα P1 δηλωθεί ως αντίστροφη της ιδιότητας P2 και το Χ συσχετίζεται με το Υ με την ιδιότητα P2, τότε το Υ συσχετίζεται με το Χ με την ιδιότητα P1. Παραδείγματος χάριν, <owl:objectproperty rdf:id="hasmember"> <rdfs:domain rdf:resource="#group"/> <rdfs:range rdf:resource="#person"/> <owl:inverseof rdf:resource="#memberof"/> η ιδιότητα hasmember είναι αντίστροφη της memberof. owl:datatypeproperty Οι ιδιότητες μπορούν να χρησιμοποιηθούν για να δηλώσουν σχέσεις μεταξύ χαρακτηριστικά οντοτήτων που παίρνουν τιμές από συγκεκριμένους τύπους δεδομένων. <owl:datatypeproperty rdf:id="hasstartdate"> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="http://www.w3.org/2001/xmlschema#datetime"/> </owl:datatypeproperty> ΗΥ ΑΣΚΗΣΗ Σελίδα 8
owl:restriction Η OWL επιτρέπει περιορισμούς για να καθορίσει τον τρόπο με τον οποίο οι ιδιότητες μπορούν να χρησιμοποιηθούν από τις οντότητες μιας τάξης. Οι περιορισμοί αυτοί τοποθετούνται μέσα στο πλαίσιο ενός owl:restriction. <owl:onproperty rdf:resource="#hasmember"/> <owl:mincardinality rdf:datatype = "http://www.w3.org/2001/xmlschema#nonnegativeinteger"> 1 </owl:mincardinality> owl:onproperty Η OWL επιτρέπει περιορισμούς για να καθορίσει τον τρόπο με τον οποίο οι ιδιότητες μπορούν να χρησιμοποιηθούν από τις οντότητες μιας τάξης. Οι περιορισμοί αυτοί τοποθετούνται μέσα στο πλαίσιο ενός owl:restriction. Η ετικέτα owl:onproperty δείχνει στην περιοριζόμενη ιδιότητα owl:mincardinality Ο ελάχιστος πληθάριθμος του συνόλου τιμών μιας ιδιότητας δηλώνεται μέσα σε κάποια τάξη. Εάν δηλωθεί mincardinality 1 για μια ιδιότητα σε μια τάξη, τότε οποιαδήποτε οντότητα εκείνης της τάξης θα πρέπει να έχει τουλάχιστον μια τιμή για την ιδιότητα αυτή. Παραδείγματος χάριν, <owl:mincardinality rdf:datatype="http://www.w3.org/2001/xmlschema#nonnegativeinteger">1 </owl:mincardinality> ΗΥ ΑΣΚΗΣΗ Σελίδα 9
owl:somevaluesfrom Ο περιορισμός somevaluesfrom δηλώνεται σε μια ιδιότητα και δείχνει σε μια τάξη. Μια τάξη μπορεί να έχει έναν περιορισμό somevaluesfrom σε μια ιδιότητα της, που θα καθορίζει ότι τουλάχιστον μια από τις (πιθανώς πολλές) τιμές της ιδιότητας αυτής ανήκει σε κάποιο συγκεκριμένο τύπο. Παραδείγματος χάριν, <owl:somevaluesfrom rdf:resource="#committee"/> ΗΥ ΑΣΚΗΣΗ Σελίδα 10
6. Ανάλυση Οντολογίας Οι βασικές κλάσεις που χρησιμοποιεί η οντολογία είναι: 6.1. Κλάσεις ΗΥ ΑΣΚΗΣΗ Σελίδα 11
6.2. Σχέσεις κλάσεων Οι κλάσεις της οντολογίας μας, foaf: Organization και foaf:person, ορίζονται πλήρως στην πηγή http://xmlns.com/foaf/spec/. Η foaf: Organization ορίζεται και χρησιμοποιείται από την πηγή http://xmlns.com/foaf/0.1/organization. o Η κλάση Organization που ορίζεται μέσα στην οντολογία είναι η υποκλάση της foaf:organization. Η foaf:person ορίζεται και χρησιμοποιείται από την πηγή http://xmlns.com/foaf/0.1/person. Η κλάση Person που ορίζεται μέσα στην οντολογία είναι ισοδύναμη της foaf:person και οποιαδήποτε κλάση που ανήκει στην foaf:person ανήκει και στην Person. Η Event έχει σαν υποκλάσεις τις : Conference, Presentation, SocialEvent, Workshop. o Η κλάση Presentation περιέχει σαν υποκλάση την Keynote Talk H κλάση Group έχει σαν υποκλάσεις τις : Committee, Organization, Panel Η κλάση Location δεν έχει υποκλάσεις Η κλάση Person έχει σαν υποκλάση την Attendee, Chair, CommitteeMember o Η κλάση Attendee έχει σαν υποκλάση την Presenter Η κλάση Presenter έχει σαν υποκλάση την KeynoteSpeaker. ΗΥ ΑΣΚΗΣΗ Σελίδα 12
6.3. Ιδιότητες κλάσεων Η Organization o συνδέεται με την Person με την ιδιότητα hasmember και μπορεί να έχει πολλά στιγμιότυπα της Person Η κλάση Event o Συνδέεται με την Location με την ιδιότητα haslocation και μπορεί να έχει πολλά στιγμιότυπα της Location o Συνδέεται με την Person με τις ιδιότητες hasorganizer και hasparticipant και μπορεί να έχει πολλά στιγμιότυπα της Person o Συνδέεται με την Event με τις ιδιότητες hassubevent και subeventof και μπορεί να έχει πολλά στιγμιότυπα της Event. Οι ιδιότητες αυτές συνδέονται με τη σχέση InverseOf της OWL και η μια είναι η αντίστροφη σχέση της άλλης o Έχει ως ιδιότητες τις : hasstartdate, hasenddate, hasstarttime, hasendtime οι οποίες μπορούν να έχουν πολλά στιγμιότυπα του datetime. Η κλάση Conference έχει τις ίδιες ιδιότητες με την Event λόγω κληρονομηκότιτας. Η Conference ορίζει επιπλεόν τους εξής περιορισμούς: o Η ιδιότητες hasstartdate, hasenddate μπορούν να έχουν μόνο μία τιμή. o Η ιδιότητα haslocation πρέπει να έχει τουλάχιστον μια τιμή. Η κλάση Presentation έχει τις ίδιες ιδιότητες με την Event λόγω κληρονομηκότιτας. Η Presentation ορίζει επιπλέον την ιδιότητα : o haspresenter η οποία πρέπει να έχει τουλάχιστον μια τιμή. Η κλάση KeynoteTalk έχει τις ίδιες ιδιότητες με την Presentation λόγω κληρονομηκότιτας. Η KeynoteTalk ορίζει επιπλεόν τους εξής περιορισμούς : o Στην haspresenter τουλάχιστον ένας Presenter πρέπει να ανήκει στην KeynoteSpeaker. ΗΥ ΑΣΚΗΣΗ Σελίδα 13
Η κλάση SocialEvent έχει τις ίδιες ιδιότητες με την Event λόγω κληρονομηκότιτας. Η κλάση Workshop έχει τις ίδιες ιδιότητες με την Event λόγω κληρονομηκότιτας. Η Workshop ορίζει επιπλεόν τους εξής περιορισμούς : o Η ιδιότητες hasstartdate, hasenddate μπορούν να έχουν μόνο μία τιμή. o Η ιδιότητα haslocation πρέπει να έχει τουλάχιστον μια τιμή. Η Group o Συνδέεται με την Person με την ιδιότητα hasmember και μπορεί να έχει πολλά στιγμιότυπα της Person Η κλάση Committee έχει τις ίδιες ιδιότητες με την Group λόγω κληρονομηκότιτας. Η Committee ορίζει επιπλεόν τους εξής περιορισμούς: o Η ιδιότητα hasmember πρέπει να έχει τουλάχιστον μια τιμή. Η κλάση Organization έχει τις ίδιες ιδιότητες με την Group λόγω κληρονομηκότιτας. Η κλάση Panel έχει τις ίδιες ιδιότητες με την Group λόγω κληρονομηκότιτας. Η Panel ορίζει επιπλεόν τους εξής περιορισμούς: o Η ιδιότητα hasmember πρέπει να έχει τουλάχιστον μια τιμή. Η κλάση Location o Συνδέεται με την Event με την ιδιότητα locationof και μπορεί να έχει πολλά στιγμιότυπα της Event. Η ιδιότητα αυτή είναι αντίστροφη της haslocation που έχει η Event. o Συνδέεται με την Event με τις ιδιότητες hassublocation και sublocationof και μπορεί να έχει πολλά στιγμιότυπα της Location. Οι ιδιότητες αυτές συνδέονται με τη σχέση InverseOf της OWL και η μια είναι η αντίστροφη σχέση της άλλης H κλάση Person o Συνδέεται με την Group με την ιδιότητα memberof και μπορεί να έχει πολλά στιγμιότυπα της Group. Η ιδιότητα αυτή είναι αντίστροφη της hasmember που έχει η Group. ΗΥ ΑΣΚΗΣΗ Σελίδα 14
o Συνδέεται με την Event με τις ιδιότητες organizerof και participantof και μπορεί να έχει πολλά στιγμιότυπα της Event. Οι ιδιότητες αυτές είναι αντίστροφες των hasorganizer και hasparticipant, που έχει η Event, αντίστοιχα. Η κλάση Attendee έχει τις ίδιες ιδιότητες με την Person λόγω κληρονομηκότιτας. Η Attendee ορίζει επιπλεόν τους εξής περιορισμούς : o Η ιδιότητα participantof πρέπει να έχει τουλάχιστον μια τιμή. Η κλάση Presenter έχει τις ίδιες ιδιότητες με την Attendee λόγω κληρονομηκότιτας. Η Presenter ορίζει επιπλεόν την ιδιότητα : o Συνδέεται με την Presentation με την ιδιότητα presenterof και μπορεί να έχει πολλά στιγμιότυπα της Presentation. Η ιδιότητα αυτή είναι αντίστροφη της haspresenter που έχει η Presentation.Η ιδιότητα presenterof πρέπει να έχει τουλάχιστον μια τιμή. Η κλάση KeynoteSpeaker έχει τις ίδιες ιδιότητες με την Presenter λόγω κληρονομηκότιτας. Η KeynoteSpeaker ορίζει επιπλεόν τους εξής περιορισμούς : o Στην presenterof τουλάχιστον ένα Presentation πρέπει να ανήκει στην KeynoteTalk. Η κλάση Chair έχει τις ίδιες ιδιότητες με την Person λόγω κληρονομηκότιτας. Η Chair ορίζει επιπλεόν τους εξής περιορισμούς : o Η ιδιότητα organizerof πρέπει να έχει τουλάχιστον μια τιμή. Η κλάση CommitteeMember έχει τις ίδιες ιδιότητες με την Person λόγω κληρονομηκότιτας. Η CommitteeMember ορίζει επιπλεόν τους εξής περιορισμούς : o Στην memberof τουλάχιστον ένα Group πρέπει να ανήκει στην Committee και πρέπει να έχει τουλάχιστον μια τιμή. ΗΥ ΑΣΚΗΣΗ Σελίδα 15
7. Οντολογία <owl:class rdf:id="event"/> <owl:class rdf:id="location"/> <rdf:description rdf:about="http://xmlns.com/foaf/0.1/person"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#class"/> </rdf:description> <rdf:description rdf:about="http://xmlns.com/foaf/0.1/organization"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#class"/> </rdf:description> <owl:class rdf:id="person"> <owl:equivalentclass rdf:resource="http://xmlns.com/foaf/0.1/person"/> <owl:class rdf:id="group"/> <owl:class rdf:id="organization"> <rdfs:subclassof rdf:resource="http://xmlns.com/foaf/0.1/organization"/> <rdfs:subclassof rdf:resource="#group"/> <owl:objectproperty rdf:id="memberof"> <rdfs:domain rdf:resource="#person"/> <rdfs:range rdf:resource="#group"/> <owl:inverseof rdf:resource="#hasmember"/> <owl:objectproperty rdf:id="hasmember"> <rdfs:domain rdf:resource="#group"/> <rdfs:range rdf:resource="#person"/> <owl:inverseof rdf:resource="#memberof"/> <owl:objectproperty rdf:id="haslocation"> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="#location"/> <owl:inverseof rdf:resource="#locationof"/> <owl:objectproperty rdf:id="locationof"> <rdfs:domain rdf:resource="#location"/> <rdfs:range rdf:resource="#event"/> <owl:inverseof rdf:resource="#haslocation"/> <owl:objectproperty rdf:id="hasparticipant"> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="#person"/> <owl:inverseof rdf:resource="#participantof"/> <owl:objectproperty rdf:id="participantof"> <rdfs:domain rdf:resource="#person"/> <rdfs:range rdf:resource="#event"/> ΗΥ ΑΣΚΗΣΗ Σελίδα 16
<owl:inverseof rdf:resource="#hasparticipant"/> <owl:objectproperty rdf:id="hasorganizer"> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="#person"/> <owl:inverseof rdf:resource="#organizerof"/> <owl:objectproperty rdf:id="organizerof"> <rdfs:domain rdf:resource="#person"/> <rdfs:range rdf:resource="#event"/> <owl:inverseof rdf:resource="#hasorganizer"/> <owl:objectproperty rdf:id="hassubevent"> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="#event"/> <owl:inverseof rdf:resource="#subeventof"/> <owl:objectproperty rdf:id="subeventof"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#transitiveproperty"/> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="#event"/> <owl:inverseof rdf:resource="#hassubevent"/> <owl:objectproperty rdf:id="hassublocation"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#transitiveproperty"/> <rdfs:domain rdf:resource="#location"/> <rdfs:range rdf:resource="#location"/> <owl:inverseof rdf:resource="#sublocationof"/> <owl:objectproperty rdf:id="sublocationof"> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#transitiveproperty"/> <rdfs:domain rdf:resource="#location"/> <rdfs:range rdf:resource="#location"/> <owl:inverseof rdf:resource="#hassublocation"/> <owl:datatypeproperty rdf:id="hasstartdate"> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="http://www.w3.org/2001/xmlschema#datetime"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="hasenddate"> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="http://www.w3.org/2001/xmlschema#datetime"/> </owl:datatypeproperty> ΗΥ ΑΣΚΗΣΗ Σελίδα 17
<owl:datatypeproperty rdf:id="hasstarttime"> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="http://www.w3.org/2001/xmlschema#datetime"/> </owl:datatypeproperty> <owl:datatypeproperty rdf:id="hasendtime"> <rdfs:domain rdf:resource="#event"/> <rdfs:range rdf:resource="http://www.w3.org/2001/xmlschema#datetime"/> </owl:datatypeproperty> <!-- Some Conference Specific Things --> <owl:class rdf:id="committee"> <rdfs:subclassof rdf:resource="#group"/> <owl:onproperty rdf:resource="#hasmember"/> <owl:mincardinality /owl:mincardinality> <owl:class rdf:id="panel"> <rdfs:subclassof rdf:resource="#group"/> <owl:onproperty rdf:resource="#hasmember"/> <owl:mincardinality /owl:mincardinality> <owl:class rdf:id="conference"> <rdfs:subclassof rdf:resource="#event"/> <owl:onproperty rdf:resource="#haslocation"/> <owl:mincardinality /owl:mincardinality> <owl:onproperty rdf:resource="#hasstartdate"/> <owl:cardinality /owl:cardinality> ΗΥ ΑΣΚΗΣΗ Σελίδα 18
<owl:onproperty rdf:resource="#hasenddate"/> <owl:cardinality /owl:cardinality> <owl:class rdf:id="workshop"> <rdfs:subclassof rdf:resource="#event"/> <owl:onproperty rdf:resource="#haslocation"/> <owl:mincardinality /owl:mincardinality> <owl:onproperty rdf:resource="#hasstartdate"/> <owl:cardinality /owl:cardinality> <owl:onproperty rdf:resource="#hasenddate"/> <owl:cardinality /owl:cardinality> <owl:class rdf:id="chair"> <rdfs:subclassof rdf:resource="#person"/> <owl:onproperty rdf:resource="#organizerof"/> <owl:mincardinality /owl:mincardinality> ΗΥ ΑΣΚΗΣΗ Σελίδα 19
<owl:class rdf:id="committeemember"> <owl:onproperty rdf:resource="#memberof"/> <owl:somevaluesfrom rdf:resource="#committee"/> <owl:onproperty rdf:resource="#memberof"/> <owl:mincardinality /owl:mincardinality> <rdfs:subclassof rdf:resource="#person"/> <owl:class rdf:id="attendee"> <rdfs:subclassof rdf:resource="#person"/> <owl:onproperty rdf:resource="#participantof"/> <owl:mincardinality /owl:mincardinality> <owl:class rdf:id="presentation"> <rdfs:subclassof rdf:resource="#event"/> <owl:onproperty rdf:resource="#haspresenter"/> <owl:mincardinality /owl:mincardinality> <owl:class rdf:id="presenter"> <rdfs:subclassof rdf:resource="#attendee"/> <owl:onproperty rdf:resource="#presenterof"/> ΗΥ ΑΣΚΗΣΗ Σελίδα 20
<owl:mincardinality /owl:mincardinality> <owl:objectproperty rdf:id="presenterof"> <rdfs:domain rdf:resource="#presenter"/> <rdfs:range rdf:resource="#presentation"/> <owl:inverseof rdf:resource="#haspresenter"/> <owl:objectproperty rdf:id="haspresenter"> <rdfs:domain rdf:resource="#presentation"/> <rdfs:range rdf:resource="#presenter"/> <owl:inverseof rdf:resource="#presenterof"/> <owl:class rdf:id="keynotespeaker"> <rdfs:subclassof rdf:resource="#presenter"/> <owl:onproperty rdf:resource="#presenterof"/> <owl:somevaluesfrom rdf:resource="#keynotetalk"/> <owl:class rdf:id="keynotetalk"> <rdfs:subclassof rdf:resource="#presentation"/> <owl:onproperty rdf:resource="#haspresenter"/> <owl:somevaluesfrom rdf:resource="#keynotespeaker"/> <owl:class rdf:id="socialevent"> <rdfs:subclassof rdf:resource="#event"/> ΗΥ ΑΣΚΗΣΗ Σελίδα 21