Upload
scuy
View
284
Download
1
Embed Size (px)
Citation preview
Semantic TechnologiesÜbung, Wintersemester 2011/12
16. November 2011 - RDF Schema und Inferenz
Aufgabe 1
• Gegeben sind die folgenden Datenbanktabellen. Erstellen Sie für diese Daten ein RDF-Schema in RDF/XML.
• Das Schema soll mindestens unterscheiden zwischen „einfachen Dozenten“ und Professoren und zwischen Proseminaren, Übungen und Hauptseminaren.
• Bilden Sie den Sachverhalt ab, dass Hauptseminare nur von Professoren gehalten werden können.
Tabelle 1Veranstaltungen
id titel tag uhrzeit art dozent_id
1Projektplanung für
Softwareprojekte: KLIPS 2.0
Donnerstag 16:00 Hauptseminar 1
2 Softwaretechnologie I Dienstag 10:00 Proseminar 1
3 Basisinformations-technologie I Mittwoch 10:00 Proseminar 2
4 Semantic Technologies Mittwoch 12:00 Übung 3
5 Programmierpraktikum Montag 17:45 Übung 4
Tabelle 2Dozenten
id vorname nachname titel eMail
1 Manfred Thaller Prof. Dr. [email protected]
2 Jan Gerrit Wieners M.A. [email protected]
3 Sebastian Cuy M.A. [email protected]
4 Daniel de Oliveira M.A. [email protected]
Aufgabe 2
• Erstellen Sie aus den Daten in den Tabellen einen RDF-Graphen, der sich auf die Typen und Eigenschaften des Schemas aus Aufgabe 1 bezieht und serialisieren Sie diesen in RDF/XML.
Nachtrag RDF Schema
Nichtontologische Eigenschaften
• rdfs:label
• Zeichenkette, die Ressourcen in Darstellungen repräsentiert.
• rdfs:seeAlso
• Gibt eine Ressource an, die weitere Informationen über das Subjekt enthält.
• rdfs:isDefinedBy
• Gibt eine Ressource an, unter der das Subjekt definiert wird.
• rdfs:comment
• Erlaubt ergänzende Kommentare zu Ressourcen in natürlicher Sprache.
Best practices
• Bestehende Ontologien erweitern
• mit subClassOf und subPropertyOf
• Äquivalente Klassen können mit gegenseitigem subClassOf bzw. subPropertyOf gekennzeichnet werden.
• Auch sinnvoll bei Datenintegration!
• Eigenschaften, die zur Anzeige bestimmt sind sollten als Sub-Properties von rdf:label definiert werden.
Inferenz mit Hilfe von RDF Schema
Rückblick
• RDF Schema legt bestimmte Ressourcen fest, die eine spezielle Bedeutung besitzen.
• Wie können wir diese Bedeutung definieren?
• Dadurch, dass wir Regeln für logische Schlussfolgerungen festlegen, die gezogen werden können, wenn diese Ressourcen verwendet werden.
Beispiel<uni:Dozent rdf:about="http://hki.uni-koeln.de/staff/wieners" foaf:name="Jan Wieners"/> <uni:Professor rdf:about="http://hki.uni-koeln.de/staff/thaller" foaf:name="Manfred Thaller"/>
<rdfs:Class rdf:about="http://example.org/uni-vokabular#Dozent"/>
<rdfs:Class rdf:about="http://example.org/uni-vokabular#Professor"> <rdfs:subClassOf rdf:resource="http://example.org/uni-vokabular#Dozent"/></rdfs:Class>
• Aufgabe: Finde alle Dozenten
• Antwort: „Jan Wieners“ & „Manfred Thaller“
• Implizite Regel:
• „Wenn eine Klasse A eine Unterklasse der Klasse B ist, sind alle Instanzen von A gleichzeitig auch Instanzen von B.“
• IF ?A rdfs:subClassOf ?B. AND ?x rdf:type ?A.! THEN ?x rdf:type ?B.
• ∀x(A(x) ⋀ subClass(A,B) ⇒ B(x))
Inferenz
• Inferenzmaschinen können mit Hilfe von Regeln neue Aussagen aus einer bestehenden Wissenbasis ableiten.
• Im Kontext des Semantic Web:
• Aus vorhandenen Tripeln können neue Tripel abgeleitet werden.
Inferenzmuster fürrdfs:subClassOf
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix uni: <http://example.org/uni-vokabular#>.@prefix staff: <http://hki.uni-koeln.de/staff/>.
staff:thaller rdf:type uni:Professor.
uni:Professor rdfs:subClassOf uni:Dozent.
# abgeleitete Tripelstaff:thaller rdf:type uni:Dozent;
• IF ?A rdfs:subClassOf ?B.AND ?x rdf:type ?A.THEN ?x rdf:type ?B.
Inferenzmuster fürrdfs:range
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix uni: <http://example.org/uni-vokabular#>.@prefix staff: <http://hki.uni-koeln.de/staff/>.
course:42 uni:wirdGehaltenVon staff:oliveira.
uni:wirdGehaltenVon rdfs:range uni:Dozent.
# abgeleitete Tripelstaff:oliveira rdf:type uni:Dozent;
• IF ?P rdfs:range ?R.AND ?x ?P ?y.THEN ?y rdf:type ?R.
Inferenzmuster fürrdfs:domain
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix uni: <http://example.org/uni-vokabular#>.@prefix staff: <http://hki.uni-koeln.de/staff/>.
course:42 uni:wirdGehaltenVon staff:oliveira.
uni:wirdGehaltenVon rdfs:domain uni:Veranstaltung.
# abgeleitete Tripelcourse:42 rdf:type uni:Veranstaltung;
• IF ?P rdfs:domain ?D.AND ?x ?P ?y.THEN ?x rdf:type ?D.
Kombinierte Inferenzmuster
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix uni: <http://example.org/uni-vokabular#>.@prefix staff: <http://hki.uni-koeln.de/staff/>.
course:42 uni:wirdGehaltenVon staff:oliveira.
uni:wirdGehaltenVon rdfs:range uni:Dozent.uni:Dozent rdfs:subClassOf uni:Mitarbeiter.
# abgeleitete Tripelstaff:oliveira rdf:type uni:Dozent;staff:oliveira rdf:type uni:Mitarbeiter;uni:wirdGehaltenVon rdfs:range uni:Mitarbeiter;
• IF ?P rdfs:range ?D.AND ?D rdfs:subClass ?C.THEN ?P rdfs:range ?C.
XML Schema vs. RDF Schema
XML RDF
XMLSchema
RDFSchema
• Ein XML Schema beschränkt die Struktur von XML-Dateien.
• Ein RDF Schema definiert die Bedeutung des in RDF verwendeten Vokabulars über Schlüsse, die gezogen werden können, wenn dieses Vokabular verwendet wird.
Aufgaben
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>.
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>.