OWL
-
Upload
eleanor-parker -
Category
Documents
-
view
23 -
download
0
description
Transcript of OWL
Semantic Web - Layers
1
23
4
5
1
2
3
4
5
URIs. [ Τι είναι - διαφορά με URL ]
XML. [ Basics ]
RDF. [ Basics ]
RDF Schema. [ Basics ]
OWL. [ Αναλυτική παρουσίαση ]
Semantic web - URIs
• Ενα URI ( Uniform Resource Identifier ) χρησιμοποιείται ως αναγνωριστικό για οποιοδήποτε resource.
• Ένα URI μας δίνει πληροφορία για ακριβώς ένα resource.
• Μπορεί να υπάρχουν περισσότερα από ένα URIs που να “δείχνουν” στο ίδιο resource.
Semantic web - URIs
• Το URL ( Uniform Resource Locator )μας δίνει πληροφορία για το που βρίσκεται ένα resource στο δίκτυο.
• Στο RDF τα URIs είναι συνήθως URLs της μορφής:
http:www.example.com#something
Semantic web - XML
• H XML (eXtensible Markup Language ) είναι μια γλώσσα που περιγράφει τη δομή αποθήκευσης της πληροφορίας.
• H XML όπως και η HTML είναι mark-up language και το συντακτικό της βασίζεται στα tags <….>
• Στην XML ο χρήστης μπορεί να ορίσει τα δικά του tags χωρίς περιορισμούς.
Semantic web - XML
<XML>
<PERSON><NAME>JOHN</NAME><AGE>22</AGE><PHONE>28210-32432</PHONE></PERSON>
<PERSON><NAME>GEORGE</NAME><AGE>43</AGE><PHONE>28210-22332</PHONE></PERSON>
</XML>
<XML>
<IMAGE><ID>IMG1</ID><TITLE>TREE</TITLE><PATH>C:\images\tree.jpg</PATH><CAPTION>This is a tree</caption></IMAGE>
<IMAGE><ID>IMG2</ID><TITLE>CAR</TITLE><PATH>C:\images\cars\car.jpg</PATH><CAPTION>This is a car</caption></IMAGE>
</XML>
Παράδειγμα 1 Παράδειγμα 2
Semantic web - RDF
• Τριπλέτες subject – predicate – object
• Κάθε description element περιγράφει ένα resource.
• Κάθε attribute ή Nested element σε ένα description tag είναι property του συγκεκριμένου resource.
Semantic web - RDF
<rdf:Description rdf:about="some.uri/person/John"> <ex:hasFriend resource="some.uri/person/George"/>
</rdf:Description>
<rdf:Description rdf:about="some.uri/person/John"> <ex:hasHomePage>http://www.john.gr</ex:hasHomePage>
</rdf:Description>
<rdf:Description rdf:about="some.uri/person/George"> <ex:hasFriend resource="some.uri/person/Tom"/>
</rdf:Description>
Παράδειγμα σύνταξης RDF:
Semantic web - RDF namespaces
• Συντομογραφίες για τα resource identifiers για να γίνεται ποιο ευανάγνωστο ένα RDF Document.
• <rdf:RDF xmlns:owl ="http://www.w3.org/2002/07/owl#" xmlns:rdf = “http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd ="http://www.w3.org/2001/XMLSchema#">
Semantic web - RDF schema
• To RDFS μας δίνει τη δυνατότητα να προσθέσουμε semantics στο RDF.
• Μέσω του RDFS μπορούμε να δημιουργήσουμε ένα λεξικό από όρους που έχουν κάποια σημασιολογία και να καθορίσουμε τις σχέσεις μεταξύ τους.
Semantic web - RDF schema
• Μερικά RDF Schema terms : Class , Property , type , subClassOf ,range domain
• Φτιάχνοντας τριπλέτες με αυτούς τους όρους:<Person,type,Class>
<hasFriend,type,Property>
<Professor,subClassOf,Person>
<John,type,Professor>
<hasFriend,range,Person>
<hasFriend,domain,Person>
Semantic web - RDF schema
• Προβλήματα του RDF Schema :Αδυναμία να περιγράψει με περισσότερη λεπτομέρια τα
resources :– No localised range and domain constraints
• Πχ το range του hasChild είναι person για τους ανθρώπους και elephant για τους ελέφαντες.
– No existence/cardinality constraints• Πχ. Ενας άνθρωπος έχει ακριβώς 2 γονείς.
– No transitive, inverse or symmetrical properties• Can’t say that isPartOf is a transitive property, that hasPart is the
inverse of isPartOf or that touches is symmetrical– Κτλ κτλ
OWL - Γενικά
• H OWL βρίσκεται ένα επίπεδο πάνω από το RDF schema του οποίου είναι ουσιαστικά μια επέκταση.
• H OWL μας προσφέρει ένα πολύ πιο πλούσιο και εκφραστικό συντακτικό για να περιγράψουμε classes, properties και τις μεταξύ τους σχέσεις.
• Ότι χρησιμοποιείται στο RDF-RDFS συντακτικά είναι valid και στην OWL
OWL - Classes
• owl:class είναι subclass του rdfs:class
• Πολύ μεγαλύτερη εκφραστικότητα από rdfs:class
<owl:Classrdf:ID=“Bear"><rdfs:subClassOf rdf:resource="#Animal"/></owl:Class>
<rdfs:Classrdf:ID=“Bear"><rdfs:subClassOf rdf:resource="#Animal"/></rdfs:Class>
OWL - Classes
• IntersectionOf : Χρησιμοποιώντας το μπορούμε να κατασκευάσουμε μια κλάση συνδέοντας την με μια άλλη ή με μια ιδιότητα.
Παράδειγμα : Ο JohnΕίναι ένα Intersection του Human και του male.
<owl:Class rdf:ID=“John"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Human" /> <owl:Class rdf:about="#Male" /> </owl:intersectionOf> </owl:Class>
OWL - Classes
• UnionOf : Χρησιμοποιείται για να καθορίσουμε ότι μια κλάση είναι “κάτι” και “κάτι άλλο” αλλα ποτέ και τα δύο .
<owl:Class rdf:ID="Fruit"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#SweetFruit" /> <owl:Class rdf:about="#NonSweetFruit" /> </owl:unionOf> </owl:Class>
Παράδειγμα : Ένα φρούτο Μπορεί να είναι γλυκό ή οχιΓλυκό.
OWL - Classes
• ComplementOf : Χρησιμοποιείται για να πάρουμε το συμπλήρωμα.
<owl:Class rdf:ID=“Alive"> <owl:complementOf rdf:resource="#Dead" /> </owl:Class>
Παράδειγμα : Alive είναιComplementOf του Dead
OWL - Classes
• oneOf : Περιορίζουμε τα Instances τα οποία μπορούν να δημιουργηθούν για μια κλάση.
<owl:Class rdf:ID=“Day_Of_Week"><owl:oneOf rdf:parseType="Collection">< Day_Of_Week rdf:about="http://www.ex.com#Monday"/>< Day_Of_Week rdf:about="http://www.ex.com#Tuesday"/>< Day_Of_Week rdf:about="http://www.ex.com#Wednesday"/>…</owl:oneOf></owl:Class>
Παράδειγμα : H κλάσηDay_Of_Week
OWL - Classes
• disJointWith : Oταν δυο κλάσεις δηλώνονται ως disJoint αυτό σημαίνει ότι εάν ένα individual ανήκει στη μια τότε δε μπορεί να ανήκει και στην άλλη.
<owl:Class rdf:ID="Pasta"> <owl:disjointWith rdf:resource="#Meat"/> <owl:disjointWith rdf:resource="#Fowl"/> <owl:disjointWith rdf:resource="#Seafood"/> <owl:disjointWith rdf:resource="#Dessert"/> <owl:disjointWith rdf:resource="#Fruit"/> </owl:Class>
Παράδειγμα : Εάν ένα instanceΑνήκει στην κλάση pasta δε μπορείΝα ανήκει και στις υπόλοιπες
OWL - Properties
• Στην owl έχουμε 2 ειδών properties
1) Object properties
2) Datatype properties
Τα object συσχετίζουν δύο resources ενώ τα datatype συσχετίζουν ένα resource με ένα literal ( string , value , date κτλ )
Και τα 2 είναι subclasses του rdf:property
OWL - Property Characteristics
1) Symmetric
Παράδειγμα :
X touches Y Y touches X
X connects to Y Y connects to X
<owl:ObjectProperty rdf:ID=“touches"><rdf:type rdf:resource="http://www.w3.org/2002/07/owl#SymmetricProperty"/><rdfs:domain rdf:resource="#Person"/><rdfs:range rdf:resource="#Person"/></owl:ObjectProperty>
OWL - Property Characteristics
2) Transitive
Παράδειγμα :
X includes Y , Y includes Z X includes Z
Bear is an animal , Grizzly is a bear Grizzly is an animal
<owl:ObjectProperty rdf:ID=“includes"><rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/><rdfs:domain rdf:resource="#shape"/><rdfs:range rdf:resource="#shape"/></owl:ObjectProperty>
OWL - Property Characteristics
3) Functional
Για κάθε Instance υπάρχει μόνο μία τιμή που συνδέεται με το Property.
• Παρακάτω βλέπουμε πως μπορεί να δημιουργηθεί σύγχηση από τις τριπλέτες του RDF όταν δεν έχουμε cardinality restrictions και πως η OWL λύνει αυτό το πρόβλημα.
OWL - Functional Example
RDF : Δεν μπορούμε να βρούμε ποιο από τα παρακάτω είναι αληθές.
<Person rdf:about="http://www.person.org#John"><birthplace rdf:about="http://www.country.org#USA"/></Person>
<Person rdf:about="http://www.person.org#John"><birthplace rdf:about="http://www.country.org#GREECE"/></Person>
<Person rdf:about="http://www.person.org#John"><birthplace rdf:about="http://www.country.org#GERMANY"/></Person>
OWL - Functional Example
<owl:DatatypeProperty rdf:ID=“birthPlace"><rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/><rdfs:domain rdf:resource="#Person"/><rdfs:range rdf:resource=“Country"/></owl:ObjectProperty>
Στην owl μπορούμε να λύσουμε το πρόβλημα ορίζοντας το birthPlace ως functional :
OWL – Cardinality restriction
<owl:Class rdf:ID=“Person"> <owl:Restriction> <owl:onProperty rdf:resource="#birthPlace"/> <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality> </owl:Restriction></owl:Class>
Εναλακτικά με τη δήλωση functional του property θα Μπορούσαμε να φτιάξουμε ένα cardinality restriction :
OWL - Property Characteristics
4) Inverse Functional
Σχέση 1 προς 1.
Παράδειγμα:
Ενας άνθρωπος έχει έναν αριθμό ταυτότητας και ένας αριθμός ταυτότητας αντιστοιχεί σε έναν ανθρωπο.
OWL - Property Characteristics
5) Inverse
Καθορίζει την αντίστροφη σχέση.
Παράδειγμα :
Employee1 worksfor Company1
Company1 hasEmployee Employee1
<owl:ObjectProperty rdf:ID=“worksFor"><owl:inverseOf rdf:resource="#hasEmployee"/><rdfs:domain rdf:resource="#Employee"/><rdfs:range rdf:resource="#Company"/></owl:ObjectProperty>
OWL - Individuals
• Individuals είναι τα instances των κλάσεων
• Στην owl υπάρχουν κάποια statements που περιγράφουν σχέσεις ανάμεσα στα individuals.
• Παρακάτω θα δουμε τα :
sameIndividualAs
differentFrom
allDifferent
OWL - Individuals
<Criminal rdf:ID=“Johnson"<owl:sameIndividualAs rdf:resource="http://www.fbi.com/criminals#Jackson"/><owl:sameIndividualAs rdf:resource="http://www.fbi.com/criminals#Larson"/>
...</Criminal>
sameIndividualAs : Χρησιμοποιείται για να δείξουμε ότι δύο διαφορετικά individuals αναφέρονται στο ίδιο resource ( περιγράφουν δηλαδή το ίδιο πράγμα ).
Παράδειγμα: Κακοποιός με διπλή ταυτότητα. Στα αρχεία του FBI φαίνεται ότι χρησιμοποιεί δύο (ή και περισσότερα) ονόματα.
OWL - Individuals
<Criminal rdf:ID=“Johnson"<owl:differentFrom rdf:resource="http://www.fbi.com/criminals#Jeferson“ />...
</Criminal>
differentFrom : Χρησιμοποιείται για να δείξουμε ότι δύο individuals διαφορετικά και δεν υπάρχει περίπτωση να αναφέρονται στο ίδιο resource.
Παράδειγμα: Δυο κακοποιοί των οποίων τα στοιχεία έχουν ταυτοποιηθεί και είμαστε σίγουροι πως δεν είναι το ίδιο άτομο.
OWL - Individuals
<owl:AllDifferent><owl:distinctMembers rdf:parseType="Collection"><Criminal rdf:about="http://www.fbi.com/criminals#Johnson"/><Criminal rdf:about="http://www.fbi.com/criminals#Jackson"/><Criminal rdf:about="http://www.fbi.com/criminals#Larson"/><Criminal rdf:about="http://www.fbi.com/criminals#Jeferson"/></owl:distinctMembers>
</owl:AllDifferent>
allDifferent : Χρησιμοποιόντας το allDifferent μπορούμε να δείξουμε ότι μια συλλογή από individuals είναι όλα διαφορετικά μεταξύ τους.
Παράδειγμα: Ονόματα κακοποιών που έχουν ταυτοποιηθεί ότι είναι διαφορετικά πρόσωπα.