330 likes | 415 Views
Semantic Web Technologies. OWL. Semantic Web - Layers. 1. URIs. [ Τι είναι - διαφορά με URL ]. XML. [ Basics ]. 2. RDF. [ Basics ]. 3. RDF Schema. [ Basics ]. 4. 5. OWL. [ Αναλυτική παρουσίαση ]. 5. 4. 3. 2. 1. Semantic web - URIs.
E N D
Semantic Web - Layers 1 URIs. [ Τι είναι - διαφορά με URL ] XML. [ Basics ] 2 RDF. [ Basics ] 3 RDF Schema. [ Basics ] 4 5 OWL. [ Αναλυτική παρουσίαση ] 5 4 3 2 1
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 Παράδειγμα 1 Παράδειγμα 2 <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>
Semantic web - RDF Τριπλέτες subject – predicate – object Κάθε description element περιγράφει ένα resource. Κάθε attribute ή Nested element σε ένα description tag είναι property του συγκεκριμένου resource.
Semantic web - RDF Παράδειγμασύνταξης 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>
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 <rdfs:Classrdf:ID=“Bear"> <rdfs:subClassOf rdf:resource="#Animal"/> </rdfs:Class> <owl:Classrdf:ID=“Bear"> <rdfs:subClassOf rdf:resource="#Animal"/> </owl:Class> owl:class είναι subclass του rdfs:class Πολύ μεγαλύτερη εκφραστικότητα από rdfs:class
OWL - Classes <owl:Class rdf:ID=“John"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Human" /> <owl:Class rdf:about="#Male" /> </owl:intersectionOf> </owl:Class> Παράδειγμα : Ο John Είναι ένα Intersection του Human και του male. IntersectionOf : Χρησιμοποιώντας το μπορούμε να κατασκευάσουμε μια κλάση συνδέοντας την με μια άλλη ή με μια ιδιότητα.
OWL - Classes <owl:Class rdf:ID="Fruit"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#SweetFruit" /> <owl:Class rdf:about="#NonSweetFruit" /> </owl:unionOf> </owl:Class> Παράδειγμα : Ένα φρούτο Μπορεί να είναι γλυκό ή οχι Γλυκό. UnionOf : Χρησιμοποιείται για να καθορίσουμε ότι μια κλάση είναι “κάτι” και “κάτι άλλο” αλλα ποτέ και τα δύο .
OWL - Classes <owl:Class rdf:ID=“Alive"> <owl:complementOf rdf:resource="#Dead" /> </owl:Class> Παράδειγμα : Alive είναι ComplementOf του Dead ComplementOf : Χρησιμοποιείται για να πάρουμε το συμπλήρωμα.
OWL - Classes <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 oneOf : Περιορίζουμε τα Instances τα οποία μπορούν να δημιουργηθούν για μια κλάση.
OWL - Classes <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 δε μπορεί Να ανήκει και στις υπόλοιπες disJointWith :Oταν δυο κλάσεις δηλώνονται ως disJoint αυτό σημαίνει ότι εάν ένα individual ανήκει στη μια τότε δε μπορεί να ανήκει και στην άλλη.
OWL - Properties Στην owl έχουμε 2 ειδών properties Object properties Datatype properties Τα object συσχετίζουν δύο resources ενώ τα datatype συσχετίζουν ένα resource με ένα literal ( string , value , date κτλ ) Και τα 2 είναι subclasses του rdf:property
OWL - Property Characteristics <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> Symmetric Παράδειγμα : X touches Y Y touches X X connects to Y Y connects to X
OWL - Property Characteristics <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> 2) Transitive Παράδειγμα : X includes Y , Y includes Z X includes Z Bear is an animal , Grizzly is a bear Grizzly is an animal
OWL - Property Characteristics 3) Functional Για κάθε Instance υπάρχει μόνο μία τιμή που συνδέεται με το Property. Παρακάτω βλέπουμε πως μπορεί να δημιουργηθεί σύγχηση από τις τριπλέτες του RDF όταν δεν έχουμε cardinality restrictions και πως η OWL λύνει αυτό το πρόβλημα.
OWL - Functional Example RDF : Δεν μπορούμε να βρούμε ποιο από τα παρακάτω είναι αληθές. <Person rdf:about="http://www.person.org#John"> <birthplacerdf:about="http://www.country.org#USA"/> </Person> <Person rdf:about="http://www.person.org#John"> <birthplacerdf:about="http://www.country.org#GREECE"/> </Person> <Person rdf:about="http://www.person.org#John"> <birthplacerdf:about="http://www.country.org#GERMANY"/> </Person>
OWL - Functional Example Στην owl μπορούμε ναλύσουμε το πρόβλημα ορίζοντας το birthPlace ως functional : <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 – Cardinality restriction Εναλακτικά με τη δήλωση functional του property θα Μπορούσαμε να φτιάξουμε ένα 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>
OWL - Property Characteristics 4) Inverse Functional Σχέση 1 προς 1. Παράδειγμα: Ενας άνθρωπος έχει έναν αριθμό ταυτότητας και ένας αριθμός ταυτότητας αντιστοιχεί σε έναν ανθρωπο.
OWL - Property Characteristics <owl:ObjectProperty rdf:ID=“worksFor"> <owl:inverseOf rdf:resource="#hasEmployee"/> <rdfs:domain rdf:resource="#Employee"/> <rdfs:range rdf:resource="#Company"/> </owl:ObjectProperty> 5) Inverse Καθορίζει την αντίστροφη σχέση. Παράδειγμα : Employee1 worksfor Company1 Company1 hasEmployee Employee1
OWL - Individuals Individuals είναι τα instances των κλάσεων Στην owl υπάρχουν κάποια statements που περιγράφουν σχέσεις ανάμεσα στα individuals. Παρακάτω θα δουμε τα : sameIndividualAs differentFrom allDifferent
OWL - Individuals sameIndividualAs : Χρησιμοποιείται για να δείξουμε ότι δύο διαφορετικά individuals αναφέρονται στο ίδιο resource ( περιγράφουν δηλαδή το ίδιο πράγμα ). Παράδειγμα:Κακοποιός με διπλή ταυτότητα. Στα αρχεία του FBI φαίνεται ότι χρησιμοποιεί δύο (ή και περισσότερα) ονόματα. • <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>
OWL - Individuals differentFrom : Χρησιμοποιείται για να δείξουμε ότι δύο individuals διαφορετικά και δεν υπάρχει περίπτωση να αναφέρονται στο ίδιο resource. Παράδειγμα:Δυο κακοποιοί των οποίων τα στοιχεία έχουν ταυτοποιηθεί και είμαστε σίγουροι πως δεν είναι το ίδιο άτομο. • <Criminal rdf:ID=“Johnson" • <owl:differentFrom rdf:resource="http://www.fbi.com/criminals#Jeferson“ /> • ... • </Criminal>
OWL - Individuals allDifferent : Χρησιμοποιόντας το allDifferent μπορούμε να δείξουμε ότι μια συλλογήαπό 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>