OWL RDFRDFS 3 37 David Billington owl has
OWL ΚΑΙ RDF/RDFS 3
Περιορισμοί Ιδιοτήτων (3/7) � Μπορούμε να δηλώσουμε ότι τα μαθήματα των μαθηματικών διδάσκονται από τον David Billington ως εξής: ◦ Το στοιχείο owl: has. Value δηλώνει μία συγκεκριμένη τιμή, την οποία πρέπει να έχει η ιδιότητα που καθορίζεται από το owl: on. Property � Μπορούμε επίσης να δηλώσουμε ότι όλα τα μέλη του ακαδημαϊκού προσωπικού πρέπει να διδάσκουν τουλάχιστον ένα προπτυχιακό μάθημα: <owl: Class rdf: about="#math. Course"> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#is. Taught. By"/> <owl: has. Value rdf: resource="#949318"/> </owl: Restriction> </rdfs: sub. Class. Of> </owl: Class> <owl: Class rdf: about="#academic. Staff. Member"> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#teaches"/> <owl: some. Values. From rdf: resource="#undergraduate. Course"/> </owl: Restriction> </rdfs: sub. Class. Of> </owl: Class> 34
Περιορισμοί Ιδιοτήτων (6/7) � Επίσης θα μπορούσαμε να δηλώσουμε ότι ένα τμήμα (department) πρέπει να έχει τουλάχιστον δέκα και το πολύ τριάντα μέλη: � Είναι δυνατό να καθορίσουμε ένα ακριβή αριθμό Π. χ. Ένας υποψήφιος διδάκτορας πρέπει να έχει ακριβώς δύο επιβλέποντες � Αυτό μπορεί να επιτευχθεί, χρησιμοποιώντας τον ίδιο αριθμό στα owl: min. Cardinality και owl: max. Cardinality � Για ευκολία, η OWL παρέχει και το owl: cardinality � <owl: Class rdf: about="#department"> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#has. Member"/> <owl: min. Cardinality rdf: datatype="&xsd; non. Negative. Integer" > 10 </owl: min. Cardinality> </owl: Restriction> </rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#has. Member"/> <owl: max. Cardinality rdf: datatype="&xsd; non. Negative. Integer" > 30 </owl: max. Cardinality> </owl: Restriction> 37 </rdfs: sub. Class. Of>
Απαριθμήσεις �Η απαρίθμηση είναι ένα στοιχείο owl: one. Of που χρησιμοποιείται για τον ορισμό μιας κλάσης με παράθεση όλων των στοιχείων της: <owl: Class rdf: ID="weekdays"> <owl: one. Of rdf: parse. Type="Collection"> <owl: Thing rdf: about="#Monday"/> <owl: Thing rdf: about="#Tuesday"/> <owl: Thing rdf: about="#Wednesday"/> <owl: Thing rdf: about="#Thursday"/> <owl: Thing rdf: about="#Friday"/> <owl: Thing rdf: about="#Saturday"/> <owl: Thing rdf: about="#Sunday"/> </owl: one. Of> </owl: Class> 44
Μια οντολογία για την αφρικανική άγρια πανίδα (2/7) <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: rdfs="http: //www. w 3. org/2000/01/rdf-schema#" xmlns: owl ="http: //www. w 3. org/2002/07/owl#"> <owl: Ontology rdf: about="xml: base"/> <owl: Class rdf: ID="animal"> <rdfs: comment>Animals form a class. </rdfs: comment> </owl: Class> <owl: Class rdf: ID="plant"> <rdfs: comment> Plants form a class disjoint from animals. </rdfs: comment> <owl: disjoint. With rdf: resource="#animal"/> </owl: Class> <owl: Class rdf: ID="tree"> <rdfs: comment>Trees are a type of plant. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#plant"/> </owl: Class> 63
Μια οντολογία για την αφρικανική άγρια πανίδα (3/7) �… <owl: Class rdf: ID="branch"> <rdfs: comment>Branches are parts of trees. </rdfs: comment> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#is_part_of"/> <owl: all. Values. From rdf: resource="#tree"/> </owl: Restriction> </rdfs: sub. Class. Of> </owl: Class> <owl: Class rdf: ID="leaf"> <rdfs: comment>Leaves are parts of branches. </rdfs: comment> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#is_part_of"/> <owl: all. Values. From rdf: resource="#branch"/> </owl: Restriction> </rdfs: sub. Class. Of> </owl: Class> 64
Μια οντολογία για την αφρικανική άγρια πανίδα (4/7) �… <owl: Class rdf: ID="herbivore"> <rdfs: comment> Herbivores are exactly those animals that eat only plants or parts of plants. </rdfs: comment> <owl: intersection. Of rdf: parse. Type="Collection"> <owl: Class rdf: about="#animal"/> <owl: Restriction> <owl: on. Property rdf: resource="#eats"/> <owl: all. Values. From> <owl: Class> <owl: union. Of rdf: parse. Type="Collection"> <owl: Class rdf: about="#plant"/> <owl: Restriction> <owl: on. Property rdf: resource="#is_part_of"/> <owl: all. Values. From rdf: resource="#plant"/> </owl: Restriction> </owl: union. Of> </owl: Class> </owl: all. Values. From> </owl: Restriction> </owl: intersection. Of> 65 </owl: Class>
Μια οντολογία για την αφρικανική άγρια πανίδα (5/7) … � <owl: Class rdf: ID="carnivore"> <rdfs: comment> Carnivores are exactly those animals that eat animals. </rdfs: comment> <owl: intersection. Of rdf: parse. Type="Collection"> <owl: Class rdf: about="#animal"/> <owl: Restriction> <owl: on. Property rdf: resource="#eats"/> <owl: some. Values. From rdf: resource="#animal"/> </owl: Restriction> </owl: intersection. Of> </owl: Class> <owl: Class rdf: ID="giraffe"> <rdfs: comment> Giraffes are herbivores, and they eat only leaves. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#herbivore"/> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#eats"/> <owl: all. Values. From rdf: resource="#leaf"/> </owl: Restriction> </rdfs: sub. Class. Of> </owl: Class> 66
Μια οντολογία για την αφρικανική άγρια πανίδα (6/7) �… <owl: Class rdf: ID="lion"> <rdfs: comment> Lions are animals that eat only herbivores. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#carnivore"/> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#eats"/> <owl: all. Values. From rdf: resource="#herbivore"/> </owl: Restriction> </rdfs: sub. Class. Of> </owl: Class> <owl: Class rdf: ID="tasty_plant"> <rdfs: comment> Tasty plants are plants that are eaten both by herbivores and carnivores. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#plant"/> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#eaten_by"/> <owl: some. Values. From> 67
Μια οντολογία για την αφρικανική άγρια πανίδα (7/7) �… <owl: Class rdf: about="#herbivore"/> </owl: some. Values. From> </owl: Restriction> </rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#eaten_by"/> <owl: some. Values. From> <owl: Class rdf: about="#carnivore"/> </owl: some. Values. From> </owl: Restriction> </rdfs: sub. Class. Of> </owl: Class> <owl: Transitive. Property rdf: ID="is_part_of"/> <owl: Object. Property rdf: ID="eats“> <rdfs: domain rdf: resource="#animal"/> </owl: Object. Property> <owl: Object. Property rdf: ID="eaten_by"> <owl: inverse. Of rdf: resource="#eats"/> </owl: Object. Property> 68
Μία οντολογία εκτυπωτών (2/9) <!DOCTYPE owl [ <!ENTITY xsd "http: //www. w 3. org/2001/XMLSchema#" > ]> <rdf: RDF xmlns: rdf="http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#" xmlns: rdfs="http: //www. w 3. org/2000/01/rdf-schema#" xmlns: xsd="http: //www. w 3. org/2001/XMLSchema#" xmlns: owl ="http: //www. w 3. org/2002/07/owl#" xmlns="http: //www. cs. vu. nl/~frankh/spool/printer. owl#"> <owl: Ontology rdf: about=""> <owl: version. Info> My example version 1. 2, 17 October 2002 </owl: version. Info> </owl: Ontology> <owl: Class rdf: ID="product"> <rdfs: comment>Products form a class. </rdfs: comment> </owl: Class> 70
Μία οντολογία εκτυπωτών (3/9) �… <owl: Class rdf: ID="padid"> <rdfs: comment> Printing and digital imaging devices form a subclass of products. </rdfs: comment> <rdfs: label>Device</rdfs: label> <rdfs: sub. Class. Of rdf: resource="#product"/> </owl: Class> <owl: Class rdf: ID="hp. Product"> <rdfs: comment> HP products are exactly those products that are manufactured by Hewlett Packard. </rdfs: comment> <owl: intersection. Of rdf: parse. Type="Collection"> <owl: Class rdf: about="#product"/> <owl: Restriction> <owl: on. Property rdf: resource="#manufactured_by"/> <owl: has. Value rdf: datatype="&xsd; string“> Hewlett Packard </owl: has. Value> </owl: Restriction> </owl: intersection. Of> </owl: Class> 71
Μία οντολογία εκτυπωτών (4/9) �… <owl: Class rdf: ID="printer"> <rdfs: comment> Printers are printing and digital imaging devices. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#padid"/> </owl: Class> <owl: Class rdf: ID="personal. Printer"> <rdfs: comment> Printers for personal use form a subclass of printers. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#printer"/> </owl: Class> <owl: Class rdf: ID="hp. Printer"> <rdfs: comment> HP printers are HP products and printers. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#printer"/> <rdfs: sub. Class. Of rdf: resource="#hp. Product"/> </owl: Class> 72
Μία οντολογία εκτυπωτών (5/9) �… <owl: Class rdf: ID="laser. Jet. Printer"> <rdfs: comment> Laser jet printers are exactly those printers that use laser jet printing technology. </rdfs: comment> <owl: intersection. Of rdf: parse. Type="Collection"> <owl: Class rdf: about="#printer"/> <owl: Restriction> <owl: on. Property rdf: resource="#printing. Technology"/> <owl: has. Value rdf: datatype="&xsd; string"> laser jet </owl: has. Value> </owl: Restriction> </owl: intersection. Of> </owl: Class> <owl: Class rdf: ID="hp. Laser. Jet. Printer"> <rdfs: comment> HP laser jet printers are HP products and laser jet printers. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#laser. Jet. Printer"/> <rdfs: sub. Class. Of rdf: resource="#hp. Printer"/> </owl: Class> 73
Μία οντολογία εκτυπωτών (6/9) �… <owl: Class rdf: ID="1100 series"> <rdfs: comment> 1100 series printers are HP laser jet printers with 8 ppm printing speed and 600 dpi printing resolution. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#hp. Laser. Jet. Printer"/> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#printing. Speed"/> <owl: has. Value rdf: datatype="&xsd; string“> 8 ppm </owl: has. Value> </owl: Restriction> </rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#printing. Resolution"/> <owl: has. Value rdf: datatype="&xsd; string“> 600 dpi </owl: has. Value> </owl: Restriction> </rdfs: sub. Class. Of> </owl: Class> 74
Μία οντολογία εκτυπωτών (7/9) … � <owl: Class rdf: ID="1100 se"> <rdfs: comment> 1100 se printers belong to the 1100 series and cost $450. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#1100 series"/> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#price"/> <owl: has. Value rdf: datatype="&xsd; integer“> 450 </owl: has. Value> </owl: Restriction> </rdfs: sub. Class. Of> </owl: Class> <owl: Class rdf: ID="1100 xi"> <rdfs: comment> 1100 xi printers belong to the 1100 series and cost $350. </rdfs: comment> <rdfs: sub. Class. Of rdf: resource="#1100 series"/> <rdfs: sub. Class. Of> <owl: Restriction> <owl: on. Property rdf: resource="#price"/> <owl: has. Value rdf: datatype="&xsd; integer“> 350 </owl: has. Value> </owl: Restriction> </rdfs: sub. Class. Of> 75
Μία οντολογία εκτυπωτών (8/9) �… <owl: Datatype. Property rdf: ID="manufactured_by"> <rdfs: domain rdf: resource="#product"/> <rdfs: range rdf: resource="&xsd; string"/> </owl: Datatype. Property> <owl: Datatype. Property rdf: ID="price"> <rdfs: domain rdf: resource="#product"/> <rdfs: range rdf: resource="&xsd; non. Negative. Integer"/> </owl: Datatype. Property> <owl: Datatype. Property rdf: ID="printing. Technology"> <rdfs: domain rdf: resource="#printer"/> <rdfs: range rdf: resource="&xsd; string"/> </owl: Datatype. Property> <owl: Datatype. Property rdf: ID="printing. Resolution"> <rdfs: domain rdf: resource="#printer"/> <rdfs: range rdf: resource="&xsd; string"/> </owl: Datatype. Property> 76
Κλάσεις κλάσεων (μετακλάσεις) � Η κλάση όλων των κλάσεων της OWL είναι και η ίδια υποκλάση όλων των κλάσεων της γλώσσας RDF Schema: � Η κλάσηThing <rdfs: Class rdf: ID="Class"> <rdfs: label>Class</rdfs: label> <rdfs: comment>The class of all OWL classes</rdfs: comment> <rdfs: sub. Class. Of rdf: resource="&rdfs; Class"/> </rdfs: Class> είναι η γενικότερη κλάση αντικειμένων στην OWL, και η Nothing είναι η ειδικότερη (δηλ. η κενή) � Ισχύουν οι σχέσεις: Thing = Nothing ∪ Nothingc Nothing = Thingc = Nothingc ∩ Nothingcc =∅ <Class rdf: ID="Thing"> <rdfs: label>Thing</rdfs: label> <union. Of rdf: parse. Type="Collection"> <Class rdf: about="#Nothing"/> <Class> <complement. Of rdf: resource="#Nothing"/> </Class> </union. Of> </Class> <Class rdf: ID="Nothing“> <rdfs: label>Nothing</rdfs: label> <complement. Of rdf: resource="#Thing"/> </Class> 80
Ισοδυναμία κλάσεων (1/3) � Η ισοδυναμία κλάσεων, που εκφράζεται με το στοιχείο owl: Equivalent. Class, υποδηλώνει μία σχέση υποκλάσεων και ορίζεται πάντα μεταξύ δύο κλάσεων ◦ Αυτό είναι ανάλογο με το owl: Equivalent. Property � Οι προτάσεις μη επικάλυψης μπορούν να διατυπωθούν μόνο μεταξύ κλάσεων <rdf: Property rdf: ID="Equivalent. Class"> <rdfs: label>Equivalent. Class</rdfs: label> <rdfs: sub. Property. Of rdf: resource="&rdfs; sub. Class. Of"/> <rdfs: domain rdf: resource="#Class"/> <rdfs: range rdf: resource="#Class"/> </rdf: Property> <rdf: Property rdf: ID="Equivalent. Property"> <rdfs: label>Equivalent. Property</rdfs: label> <rdfs: sub. Property. Of rdf: resource="&rdfs; sub. Property. Of"/> </rdf: Property> <rdf: Property rdf: ID="disjoint. With"> <rdfs: label>disjoint. With</rdfs: label> <rdfs: domain rdf: resource="#Class"/> <rdfs: range rdf: resource="#Class"/> </rdf: Property> 81
Ισοδυναμία κλάσεων (2/3) � Η ισότητα και η ανισότητα μπορούν να δηλωθούν μεταξύ αυθαίρετων αντικειμένων ◦ Στην OWL Full αυτό μπορεί να ισχύει και για κλάσεις ◦ Το στοιχείο owl: same. As είναι απλώς συνώνυμο του owl: same. Individual. As <rdf: Property rdf: ID="same. Individual. As"> <rdfs: label>same. Individual. As</rdfs: label> <rdfs: domain rdf: resource="#Thing"/> <rdfs: range rdf: resource="#Thing"/> </rdf: Property> <rdf: Property rdf: ID="different. From"> <rdfs: label>different. From</rdfs: label> <rdfs: domain rdf: resource="#Thing"/> <rdfs: range rdf: resource="#Thing"/> </rdf: Property> <rdf: Property rdf: ID="same. As"> <rdfs: label>same. As</rdfs: label> <Equivalent. Property rdf: resource="#same. Individual. As"/> </rdf: Property> 82
Ισοδυναμία κλάσεων (3/3) �Το owl: distinct. Members μπορεί να χρησιμοποιηθεί μόνο για το owl: All. Different: <rdfs: Class rdf: ID="All. Different"> <rdfs: label>All. Different</rdfs: label> </rdfs: Class> <rdf: Property rdf: ID="distinct. Members"> <rdfs: label>distinct. Members</rdfs: label> <rdfs: domain rdf: resource="#All. Different"/> <rdfs: range rdf: resource="&rdf; List"/> </rdf: Property> 83
Περιορισμοί ιδιοτήτων κλάσεων (2/2) <rdf: Property rdf: ID="all. Values. From"> �… Τα στοιχεία owl: max. Cardinality και owl: cardinality ορίζονται ανάλογα με το owl: min. Cardinality, και το owl: some. Values. From ορίζεται ανάλογο με το owl: all. Values. From � Το owl: on. Property επιτρέπει τον περιορισμό μιας ιδιότητας αντικειμένου ή τύπου δεδομένων. Επομένως, το σύνολο τιμών των ιδιοτήτων περιορισμού, όπως το owl: all. Values. From δεν είναι η κλάση owl: Class αλλά η πιο � <rdfs: label>all. Values. From</rdfs: label> <rdfs: domain rdf: resource="#Restriction"/> <rdfs: range rdf: resource="&rdfs; Class"/> </rdf: Property> <rdf: Property rdf: ID="has. Value"> <rdfs: label>has. Value</rdfs: label> <rdfs: domain rdf: resource="#Restriction"/> </rdf: Property> <rdf: Property rdf: ID="min. Cardinality"> <rdfs: label>min. Cardinality</rdfs: label> <rdfs: domain rdf: resource="#Restriction"/> <rdfs: range rdf: resource="&xsd; non. Negative. Integer"/ > </rdf: Property> 86
Ιδιότητες � Το στοιχείο owl: Object. Property είναι ειδική περίπτωση του rdf: Property � Ομοίως και το owl: Datatype. Property <rdfs: Class rdf: ID="Object. Property"> <rdfs: label>Object. Property</rdfs: label> <rdfs: sub. Class. Of rdf: resource="&rdf; Property"/> </rdfs: Class> � Το owl: Transitive. Property μπορεί να εφαρμοστεί μόνο σε ιδιότητες αντικειμένου <rdfs: Class rdf: ID="Transitive. Property"> � Ομοίως για τις <rdfs: label>Transitive. Property</rdfs: label> συμμετρικές, <rdfs: sub. Class. Of συναρτησιακές και rdf: resource="#Object. Property"/> αντίστροφες συναρτησιακές ιδιότητες </rdfs: Class> � Το owl: inverse. Of συσχετίζει δύο ιδιότητες ενός <rdf: Property rdf: ID="inverse. Of"> αντικειμένου: <rdfs: label>inverse. Of</rdfs: label> <rdfs: domain rdf: resource="#Object. Property"/> <rdfs: range rdf: resource="#Object. Property"/> </rdf: Property> 87
- Slides: 93