2. 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.
3. @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/>.
# Klassen
lib:Document a rdfs:Class.
lib:Book a rdfs:Class;
! rdfs:subClassOf lib:Document. # Abgeleitet
ub:42
lib:Article a rdfs:Class; ! a lib:EArticle; # über domain von webVersion
! rdfs:subClassOf lib:Document. ! a lib:Article; # über subClassOf von EArticle
! ! a lib:EDocument; # über subClassOf von EArticle
lib:EDocument a rdfs:Class; ! a lib:Document; # über subClassOf von Article/Document
! rdfs:subClassOf lib:Document. ! a rdfs:Resource. # über domain von rdf:type
lib:EArticle a rdfs:Class; ub:23
! rdfs:subClassOf lib:Article, lib:EDocument. ! a lib:Book; # über domain von isbn
! ! a lib:Document; # über subClassOf von Book
lib:Author a rdfs:Class. ! a rdfs:Resource. # über domain von rdf:type
!
lib:author a rdfs:Property; <http://dbpedia.org/resource/Donald_Ervin_Knuth>
! rdfs:domain lib:Document; ! a lib:Author; # über range von author
! rdfs:range lib:Author. ! a rdfs:Resource. # über domain von rdf:type
lib:title a rdfs:Property; <http://www.w3.org/People/Berners-Lee/card#i>
! rdfs:domain lib:Document; ! a lib:Author; # über range von author
! rdfs:range xsd:string. ! a rdfs:Resource. # über domain von rdf:type
!
lib:isbn a rdfs:Property; lib:isbn
! rdfs:domain lib:Book; ! rdfs:domain lib:Document; # über domain von
! rdfs:range xsd:string. ! ! ! ! ! # isbn & subClassOf von Book
! ...
lib:webVersion a rdfs:Property;
! rdfs:domain lib:EArticle.
# Instanzen
ub: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>.
4. 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>.
5. Zusammenfassung
RDFS
• Klassenhierachien
• Eigenschaftshierarchien
• domain und range
➡Eingeschränkte Ausdruckskraft
7. OWL
Web Ontology Language
• Reichhaltige rdfs:Resource
Ontologiesprache
rdfs:Class rdf:Property
• erweitert RDF-
Schema owl:Class
owl:Object
Property
owl:Datatype
Property
8. OWL
Web Ontology Language
rdfs:Resource
rdfs:Class rdf:Property
owl:Object owl:Datatype
owl:Class Property
Property
9. OWL
Web Ontology Language
• Verschiedene Varianten mit
unterschiedlicher Ausdruckskraft:
• OWL Full
• OWL DL Subset
• OWL Lite
• Informell: RDFS-Plus (RDFS + ein bisschen OWL)
12. 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>
14. 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>
16. 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>
17. Transitivität
IF ?x ?P ?y
• Regel: AND ?y ?P ?z
AND ?P rdf:type owl:TransitiveProperty
THEN ?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 Tripel
sw:shmi.skywalker ex:vorfahreVon sw:luke.skywalker.
19. Äquivalenz
• Regeln:
IF ?A owl:equivalentClass ?B IF ?A owl:equivalentClass ?B
AND ?y rdf:type ?A AND ?y rdf:type ?B
THEN ?y rdf:type ?B. THEN ?y rdf:type ?A.
owl:equivalentClass rdf:type owl:SymmetricProperty.
@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 Tripel
course:7 a klips:Veranstaltung.
hki:unterrichtetVon rdfs:domain hki:Kurs.
20. Ä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>
21. Äquivalenz
• Regeln:
IF ?s ?P ?x IF ?x ?P ?o
AND ?x owl:sameAs ?y AND ?x owl:sameAs ?y
THEN ?s ?P ?y. THEN ?y ?P ?o.
owl:sameAs rdf:type owl:SymmetricProperty.
@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 Tripel
hc:5 klips:titel "Semantic Technologies";
! a klips:Uebung.
staff:cuy klips:haelt kv:2342.
22. 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>
23. Funktionale Eigenschaften
IF ?x ?P ?a
• Regel: AND ?x ?P ?p
AND ?P rdf:type owl:FunctionalProperty
THEN ?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 Tripel
sw:anakin.skywalker owl:sameAs sw:darth.vader.
24. 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>
25. Invers-funktionale
Eigenschaften
IF ?x ?P ?a
• Regel: AND ?y ?P ?a
AND ?P rdf:type owl:InverseFunctionalProperty
THEN ?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:sebastian.cuy@uni-koeln.de>.
person:523 foaf:mbox <mailto:sebastian.cuy@uni-koeln.de>.
foaf:mbox a owl:InverseFunctionalProperty.
# abgeleitete Tripel
person:523 owl:sameAs staff:cuy.
27. 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.
28. Aufgabe 2
• Erstellen Sie mit Hilfe der Klassen und
Properties aus RDFS+ ein Mapping der
Ontologie aus Aufgabe 1 auf FOAF.