sitzung 5

28
Semantic Technologies Übung, Wintersemester 2011/12 9. November 2011 - RDF Schema

Upload: scuy

Post on 05-Dec-2014

601 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Sitzung 5

Semantic TechnologiesÜbung, Wintersemester 2011/129. November 2011 - RDF Schema

Page 2: Sitzung 5

Aufgabe 1

• Beschreiben Sie sich selbst und ihre Beziehungen untereinander mit den Begriffen aus FOAF in RDF/XML.

• URIs:

• Personen: http://hki.uni-koeln.de/st_2011/person/max.musterman

• Dieser Kurs: http://hki.uni-koeln.de/st_2011/group/st_2011

• Ihre Gruppe: http://hki.uni-koeln.de/st_2011/group/gruppenname

• Benutzen Sie auch Begriffe aus FOAF Social Web

Page 3: Sitzung 5

Fallstricke

Page 4: Sitzung 5

FallstrickeURIs für Properties

• Die eigentliche Property und das Dokument, das die Property beschreibt sind zwei unterschiedliche Ressourcen.

• Slashes („/“) und Hashes („#“) machen einen Unterschied.

Page 5: Sitzung 5

FallstrickeURIs für Dinge

• können prinzipiell willkürlich definiert werden.

• aber: Am besten in einem Namensraum, den man kontrolliert.

•müssen eindeutig definiert sein.

• sind case-sensitive.

Page 6: Sitzung 5

FallstrickeLiterale vs. Ressourcen

• Auf Dinge, die potentiell auch woanders beschrieben werden verweist man als Ressourcen.

• Ausschließlich elementare Werte werden als Literale behandelt.

Page 7: Sitzung 5

Blank NodesKnoten ohne URI

• RDF-Knoten ohne rdf:about-Attribut.

• Alternative: rdf:nodeID = Lokale ID

•Nachteil:

• Knoten sind nicht global referenzierbar.

Page 8: Sitzung 5

Domain & Rangebei Properties

• Die Domain gibt die Klasse an, deren Eigenschaft die Property darstellt.

• Der Range gibt die Klasse an, deren Instanzen als Objekte der Property auftreten.

Page 9: Sitzung 5

Domain & Rangebei Properties

•Achtung bei:

• Bags und anderen Containern

• Literalen

Page 10: Sitzung 5

Aufgabe 2

• Gegeben sind die folgenden Datenbanktabellen. Erstellen Sie aus diesen Daten einen RDF-Graphen und serialisieren Sie diesen in RDF/XML.

• Die Identifier für Typen, Properties und Ressourcen dürfen Sie selbst vergeben.

• Verwenden Sie einen Container zur Abbildung einer der 1 zu n-Beziehungen.

Page 11: Sitzung 5

RDF Schema

Page 12: Sitzung 5

Semantik in XML

<dozent>Jan Wieners</dozent><professor>Manfred Thaller</professor><veranstaltung name="Programmierpraktikum C++"> <wirdGehaltenVon>Daniel de Oliveira</wirdGehaltenVon></veranstaltung>

• Aufgabe: Finde alle Dozenten - XPath: //dozent

• Antwort: „Jan Wieners“

Page 13: Sitzung 5

Semantik in RDF<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:uni="http://example.org/uni-vokabular#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <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"/> <uni:Uebung rdf:about="http://hki.uni-koeln.de/courses/42" dc:title="Programmierpraktikum C++"> <uni:wirdGehaltenVon rdf:resource="http://hki.uni-koeln.de/staff/oliveira"/> </uni:Uebung> </rdf:RDF>

• Aufgabe: Finde alle Dozenten

• Antwort: „Jan Wieners“

• (eigentlich: http://hki.uni-koeln.de/staff/wieners)

Page 14: Sitzung 5

Semantik in RDF

• Fehlende Information:

• Alle Professoren sind Dozenten.

• Übungen werden von Dozenten gehalten.

➡In comes RDF Schema!

Page 15: Sitzung 5

RDF Schema

• Ist ein spezielles RDF-Vokabular zur Spezifikation von Klassen und Properties und deren Verhältnissen.

• Eine primitive Ontologiesprache.

Page 16: Sitzung 5

Klassen• Spezieller Typ: rdfs:Class

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://example.org/uni-vokabular#Professor"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/> </rdf:Description> </rdf:RDF>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdfs:Class rdf:about="http://example.org/uni-vokabular#Professor"/></rdf:RDF>

<http://example.org/uni-vokabular#Professor>! <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>! <http://www.w3.org/2000/01/rdf-schema#Class>.

Page 17: Sitzung 5

Klassenhierarchien

Universitäts-angestellter

Verwaltungs-angestellter

nicht wissenschaftl.Angestellter

wissenschaftl.Angestellter

Professor Wiss.Mitarbeiter

Wiss.Hilfskraft

Page 18: Sitzung 5

KlassenhierarchienUniversitäts-angestellter

Verwaltungs-angestellter

nicht wissenschaftl.Angestellter

wissenschaftl.Angestellter

Professor Wiss.Mitarbeiter

Wiss.Hilfskraft

• Spezielle Property: rdfs:subClassOf

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

Page 19: Sitzung 5

Semantik in RDF<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:uni="http://example.org/uni-vokabular#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <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"/> <uni:Uebung rdf:about="http://hki.uni-koeln.de/courses/42" dc:title="Programmierpraktikum C++"> <uni:wirdGehaltenVon rdf:resource="http://hki.uni-koeln.de/staff/oliveira"/> </uni:Uebung>

<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> </rdf:RDF>

• Aufgabe: Finde alle Dozenten

• Antwort: „Jan Wieners“ & „Manfred Thaller“

Page 20: Sitzung 5

Properties• Spezieller Typ: rdf:Property

<rdf:Property rdf:about="http://example.org/uni-vokabular#teilnehmer"/>

• Spezielle Property: rdfs:subPropertyOf

<rdf:Property rdf:about="&uni;#wirdGehaltenVon"> <rdfs:subPropertyOf rdf:resource="&uni;#teilnehmer"/></rdf:Property>

Page 21: Sitzung 5

PropertiesDomain & Range

• spezielle Properties einer Property.

• rdfs:domain (=Domäne)

• „Jede Ressource, die diese Property besitzt ist vom Typ ...“

• rdfs:range (=Wertebereich)

• Jede Ressource, auf die diese Property verweist ist vom Typ ...“

<rdf:Property rdf:about="&uni;#wirdGehaltenVon"> <rdfs:domain rdf:resource="&uni;#Veranstaltung"/> <rdfs:range rdf:resource="&uni;#Dozent"/></rdf:Property>

Page 22: Sitzung 5

Semantik in RDF<?xml version="1.0" encoding="UTF-8"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:uni="http://example.org/uni-vokabular#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <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"/> <uni:Uebung rdf:about="http://hki.uni-koeln.de/courses/42" dc:title="Programmierpraktikum C++"> <uni:wirdGehaltenVon rdf:resource="http://hki.uni-koeln.de/staff/oliveira"/> </uni:Uebung>

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

<rdf:Property rdf:about="http://example.org/uni-vokabular#wirdGehaltenVon"> <rdfs:range rdf:resource="http://example.org/uni-vokabular#Dozent"/> </rdf:Property> </rdf:RDF>

• Aufgabe: Finde alle Dozenten

• Antwort: „Jan Wieners“, „Manfred Thaller“ & „Daniel de Oliveira“

Page 23: Sitzung 5

Dozent

Professor

Veranstaltung

teilnehmer

wirdGehaltenVon

Person

Proseminar

name

Literaldomain

range

domain range

domain range

subClassOf

subClassOfsubClassOf

subPropertyOf

Software-technologie I

Manfred Thaller

wirdGehaltenVon

type typeRDFS

RDF

Die Ebenen von RDF und RDFS

Klassen

Instanzen

Page 24: Sitzung 5

Aufgaben

Page 25: Sitzung 5

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.

Page 28: Sitzung 5

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.