Sitzung 7

28
Semantic Technologies Übung, Wintersemester 2011/12 23. November 2011 - RDFS+ / OWL

Transcript of Sitzung 7

Page 1: Sitzung 7

Semantic TechnologiesÜbung, Wintersemester 2011/12

23. November 2011 - RDFS+ / OWL

Page 2: Sitzung 7

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.

Page 3: Sitzung 7

@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...

Page 4: Sitzung 7

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>.

Page 5: Sitzung 7

ZusammenfassungRDFS

• Klassenhierachien

• Eigenschaftshierarchien

• domain und range

➡Eingeschränkte Ausdruckskraft

Page 6: Sitzung 7

Introducing: OWL

Page 7: Sitzung 7

rdfs:Resource

rdfs:Class rdf:Property

owl:Classowl:ObjectProperty

owl:DatatypeProperty

OWLWeb Ontology Language

• Reichhaltige Ontologiesprache

• erweitert RDF-Schema

Page 8: Sitzung 7

OWLWeb Ontology Language

rdfs:Resource

rdfs:Class rdf:Property

owl:Classowl:ObjectProperty

owl:DatatypeProperty

Page 9: Sitzung 7

OWLWeb Ontology Language

• Verschiedene Varianten mit unterschiedlicher Ausdruckskraft:

• OWL Full

• OWL DL

• OWL Lite

Subset

• Informell: RDFS-Plus (RDFS + ein bisschen OWL)

Page 10: Sitzung 7

Namespace

http://www.w3.org/2002/07/owl#

Page 11: Sitzung 7

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>

Page 12: Sitzung 7

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>

Page 13: Sitzung 7

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.

Page 14: Sitzung 7

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>

Page 15: Sitzung 7

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.

Page 16: Sitzung 7

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>

Page 17: Sitzung 7

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.

Page 18: Sitzung 7

Ä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>

Page 19: Sitzung 7

Ä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.

Page 20: Sitzung 7

Ä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>

Page 21: Sitzung 7

Ä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.

Page 22: Sitzung 7

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>

Page 23: Sitzung 7

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.

Page 24: Sitzung 7

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>

Page 25: Sitzung 7

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.

Page 26: Sitzung 7

Aufgaben

Page 27: Sitzung 7

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.

Page 28: Sitzung 7

Aufgabe 2

• Erstellen Sie mit Hilfe der Klassen und Properties aus RDFS+ ein Mapping der Ontologie aus Aufgabe 1 auf FOAF.