sitzung 7
TRANSCRIPT
Semantic TechnologiesÜbung, Wintersemester 2011/12
23. November 2011 - RDFS+ / OWL
Aufgabe 1
• Gegeben seien die folgenden RDF-Daten.
• Notieren sie alle Tripel, die daraus durch Anwendung der zu RDF Schema gehörenden Regeln abgeleitet werden können.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.@prefix lib: <http://example.org/library#>.@prefix ub: <http://ub.uni-koeln.de/inventar/>.
# Klassenlib:Document a rdfs:Class.
lib:Book a rdfs:Class;! rdfs:subClassOf lib:Document.
lib:Article a rdfs:Class;! rdfs:subClassOf lib:Document.!lib:EDocument a rdfs:Class;! rdfs:subClassOf lib:Document.
lib:EArticle a rdfs:Class;! rdfs:subClassOf lib:Article, lib:EDocument.!lib:Author a rdfs:Class.
lib:author a rdfs:Property;! rdfs:domain lib:Document;! rdfs:range lib:Author.
lib:title a rdfs:Property;! rdfs:domain lib:Document;! rdfs:range xsd:string.!lib:isbn a rdfs:Property;! rdfs:domain lib:Book;! rdfs:range xsd:string.!lib:webVersion a rdfs:Property;! rdfs:domain lib:EArticle.
# Instanzenub:42 lib:title "The Semantic Web";! lib:author <http://www.w3.org/People/Berners-Lee/card#i>;! lib:webVersion <http://www.scientificamerican.com/article.cfm?id=the-semantic-web>.
ub:23 lib:title "The Art of Computer Programming";! lib:isbn "978-0321751041";! lib:author <http://dbpedia.org/resource/Donald_Ervin_Knuth>.
# Abgeleitetub:42! a lib:EArticle; # über domain von webVersion! a lib:Article; # über subClassOf von EArticle! a lib:EDocument; # über subClassOf von EArticle! a lib:Document; # über subClassOf von Article/Document! a rdfs:Resource. # über domain von rdf:type
ub:23! a lib:Book; # über domain von isbn! a lib:Document; # über subClassOf von Book! a rdfs:Resource. # über domain von rdf:type!<http://dbpedia.org/resource/Donald_Ervin_Knuth>! a lib:Author; # über range von author! a rdfs:Resource. # über domain von rdf:type
<http://www.w3.org/People/Berners-Lee/card#i>! a lib:Author; # über range von author! a rdfs:Resource. # über domain von rdf:type
lib:isbn! rdfs:domain lib:Document; # über domain von ! ! ! ! ! # isbn & subClassOf von Book...
Aufgabe 2
• Welche Tripel können zusätzlich abgeleitet werden, wenn folgende Aussagen hinzugefügt werden?
lib:Document rdfs:subClassOf <http://xmlns.com/foaf/0.1/Document>.<http://xmlns.com/foaf/0.1/Document> rdfs:subClassOf lib:Document.lib:title rdfs:subPropertyOf <http://purl.org/dc/elements/1.1/title>.lib:author rdfs:subPropertyOf <http://xmlns.com/foaf/0.1/maker>.
ZusammenfassungRDFS
• Klassenhierachien
• Eigenschaftshierarchien
• domain und range
➡Eingeschränkte Ausdruckskraft
Introducing: OWL
rdfs:Resource
rdfs:Class rdf:Property
owl:Classowl:ObjectProperty
owl:DatatypeProperty
OWLWeb Ontology Language
• Reichhaltige Ontologiesprache
• erweitert RDF-Schema
OWLWeb Ontology Language
rdfs:Resource
rdfs:Class rdf:Property
owl:Classowl:ObjectProperty
owl:DatatypeProperty
OWLWeb Ontology Language
• Verschiedene Varianten mit unterschiedlicher Ausdruckskraft:
• OWL Full
• OWL DL
• OWL Lite
Subset
• Informell: RDFS-Plus (RDFS + ein bisschen OWL)
Namespace
http://www.w3.org/2002/07/owl#
Klassen und Properties
• owl:Class <owl:Class rdf:about="http://example.org/uni-vokabular#Dozent"/>
• owl:DatatypeProperty<owl:DatatypeProperty rdf:about="&uni;name"> <rdfs:domain rdf:resource="&uni;Dozent"/> <rdfs:range rdf:resource="&xsd;string"/></owl:DatatypeProperty>
• owl:ObjectProperty<owl:ObjectProperty rdf:about="&uni;wirdGehaltenVon"> <rdfs:domain rdf:resource="&uni;Veranstaltung"/> <rdfs:range rdf:resource="&uni;Dozent"/></owl:ObjectProperty>
Umkehrung
•owl:inverseOf
• Eigenschaft einer Property
• Gibt eine andere Property an, die die gleiche Bedeutung hat, bei der aber Subjekt und Objekt vertauscht sind.
<owl:ObjectProperty rdf:about="&uni;wirdGehaltenVon"/>
<owl:ObjectProperty rdf:about="&uni;haelt"> <owl:inverseOf rdf:resource="&uni;wirdGehaltenVon"/></owl:ObjectProperty>
Umkehrung
• Regel:IF ?x ?P ?yAND ?Q owl:inverseOf ?PTHEN ?y ?Q ?x.
@prefix owl: <http://www.w3.org/2002/07/owl#>.@prefix uni: <http://example.org/uni-vokabular#>.@prefix hki: <http://hki.uni-koeln.de/stundenplan/>.
hki:5 uni:wirdGehaltenVon staff:thaller.
uni:haelt owl:inverseOf uni:wirdGehaltenVon.
# abgeleitete Tripelhki:thaller uni:haelt hki:5.
Symmetrische Eigenschaften
•owl:SymmetricProperty
• Klasse von Properties
• Gibt an, dass bei der gleichen Eigenschaft Subjekt und Objekt vertauscht werden können.
<owl:ObjectProperty rdf:about="&ex;worksWith"> <rdf:type rdf:resource="&owl;SymmetricProperty"/></owl:ObjectProperty>
Symmetrische Eigenschaften
• Regel: IF ?P rdf:type owl:SymmetricPropertyTHEN ?P owl:inverseOf ?P.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix owl: <http://www.w3.org/2002/07/owl#>.@prefix ex: <http://example.org/work-relations#>.@prefix staff: <http://hki.uni-koeln.de/staff/>.
staff:cuy ex:worksWith staff:de-oliveira.
ex:worksWith a owl:SymmetricProperty.
# abgeleitete Tripelex:worksWith owl:inverseOf ex:worksWith.staff:de-oliveira ex:worksWith staff:cuy.
Transitivität
•owl:TransitiveProperty
• Klasse von Properties
• Mathematisches Konzept der Transitivität:
• wenn R(a,b) und R(b,c), dann R(a,c)
<owl:ObjectProperty rdf:about="&uni;vorfahreVon"> <rdf:type rdf:resource="&owl;TransitiveProperty"/></owl:ObjectProperty>
Transitivität
• Regel:IF ?x ?P ?yAND ?y ?P ?zAND ?P rdf:type owl:TransitivePropertyTHEN ?x ?P ?z.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix owl: <http://www.w3.org/2002/07/owl#>.@prefix ex: <http://example.org/family-relations#>.@prefix sw: <http://example.org/star-wars/>.
sw:shmi.skywalker ex:vorfahreVon sw:anakin.skywalker.sw:anakin.skywalker ex:vorfahreVon sw:luke.skywalker.
ex:vorfahreVon a owl:TransitiveProperty.
# abgeleitete Tripelsw:shmi.skywalker ex:vorfahreVon sw:luke.skywalker.
Äquivalenz•owl:equivalentClass
• owl:equivalentProperty
• Besonders nützlich beim Zusammenführen unterschiedlicher Vokabulare (Mapping).
<owl:Class rdf:about="&klips;Veranstaltung"> <owl:equivalentClass rdf:resource="&hki;Kurs"/></owl:Class>
<owl:ObjectProperty rdf:about="&klips;wirdGehaltenVon"> <owl:equivalentProperty rdf:resource="&hki;unterrichtetVon"/></owl:ObjectProperty>
Äquivalenz
• Regeln:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix owl: <http://www.w3.org/2002/07/owl#>.@prefix klips: <http://klips.uni-koeln.de/vokabular#>.@prefix hki: <http://hki.uni-koeln.de/kursverwaltung#>.@prefix course: <http://hki.uni-koeln.de/courses/>.
course:7 a hki:Kurs.hki:unterrichtetVon rdfs:domain hki:Kurs.
klips:Veranstaltung owl:equivalentClass hki:Kurs.
# abgeleitete Tripelcourse:7 a klips:Veranstaltung.hki:unterrichtetVon rdfs:domain hki:Kurs.
IF ?A owl:equivalentClass ?BAND ?y rdf:type ?ATHEN ?y rdf:type ?B.
IF ?A owl:equivalentClass ?BAND ?y rdf:type ?BTHEN ?y rdf:type ?A.
owl:equivalentClass rdf:type owl:SymmetricProperty.
Äquivalenz
•owl:sameAs
• Gibt an, dass zwei Individuen identisch sind.
<movie:Character rdf:about="&sw;anakin.skywalker"/>
<movie:Character rdf:about="&sw;darth.vader"> <owl:sameAs rdf:resource="&sw;anakin.skywalker"/></movie:Character>
Äquivalenz• Regeln:
@prefix owl: <http://www.w3.org/2002/07/owl#>.@prefix klips: <http://klips.uni-koeln.de/vokabular#>.@prefix kv: <http://klips.uni-koeln.de/veranstaltungen/>.@prefix hc: <http://hki.uni-koeln.de/courses/>.@prefix staff: <http://hki.uni-koeln.de/staff/>.
kv:2342 klips:titel "Semantic Technologies";! a klips:Uebung.staff:cuy klips:haelt hc:5.
hc:5 owl:sameAs kv:2342.
# abgeleitete Tripelhc:5 klips:titel "Semantic Technologies";! a klips:Uebung.staff:cuy klips:haelt kv:2342.
IF ?s ?P ?xAND ?x owl:sameAs ?yTHEN ?s ?P ?y.
IF ?x ?P ?oAND ?x owl:sameAs ?yTHEN ?y ?P ?o.
owl:sameAs rdf:type owl:SymmetricProperty.
Funktionale Eigenschaften
•owl:FunctionalProperty
• Klasse von Properties
• Gibt an, dass eine Property für eine Instanz nur einen einzigen Wert annehmen kann.
<owl:ObjectProperty rdf:about="&uni;wirdGehaltenVon"> <rdf:type rdf:resource="&owl;FunctionalProperty"/></owl:ObjectProperty>
Funktionale Eigenschaften
• Regel:IF ?x ?P ?aAND ?x ?P ?pAND ?P rdf:type owl:FunctionalPropertyTHEN ?a owl:sameAs ?b.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix owl: <http://www.w3.org/2002/07/owl#>.@prefix ex: <http://example.org/family-relations#>.@prefix sw: <http://example.org/star-wars/>.
sw:luke.skywalker ex:hatVater sw:anakin.skywalker.sw:luke.skywalker ex:hatVater sw:darth.vader.
ex:hatVater a owl:FunctionalProperty.
# abgeleitete Tripelsw:anakin.skywalker owl:sameAs sw:darth.vader.
Invers-funktionale Eigenschaften
•owl:InverseFunctionalProperty
• Klasse von Properties
• Gibt an, dass eine Property für jede Instanz einen anderen Wert annimmt.
<owl:ObjectProperty rdf:about="&uni;matrikelNr"> <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/></owl:ObjectProperty>
Invers-funktionale Eigenschaften
• Regel:IF ?x ?P ?aAND ?y ?P ?aAND ?P rdf:type owl:InverseFunctionalPropertyTHEN ?x owl:sameAs ?y.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix owl: <http://www.w3.org/2002/07/owl#>.@prefix ex: <http://example.org/family-relations#>.@prefix sw: <http://example.org/star-wars/>.
staff:cuy foaf:mbox <mailto:[email protected]>.person:523 foaf:mbox <mailto:[email protected]>.
foaf:mbox a owl:InverseFunctionalProperty.
# abgeleitete Tripelperson:523 owl:sameAs staff:cuy.
Aufgaben
Aufgabe 1
• Gegeben ist folgende Ontologie für die Verwaltung von Musik:
‣ http://www.hki.uni-koeln.de/sites/all/files/courses/5899/11-11-23_music-ontology_simple.owl
• Erweitern Sie diese Ontologie mit den Konstrukten aus RDFS+ so, dass dadurch möglichst viele Schlüsse automatisch gezogen werden können.
Aufgabe 2
• Erstellen Sie mit Hilfe der Klassen und Properties aus RDFS+ ein Mapping der Ontologie aus Aufgabe 1 auf FOAF.