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

id          titel                 tag        uhrzeit      art         dozent_id

       Projektplanung für
1    Softwareprojekte: KLIPS    Donnerstag     16:00   Hauptseminar       1
               2.0



2    Softwaretechnologie I      Dienstag       10:00   Proseminar         1



       Basisinformations-
3                               Mittwoch       10:00   Proseminar         2
         technologie I



4    Semantic Technologies      Mittwoch       12:00      Übung           3




5     Programmierpraktikum       Montag        17:45      Übung           4
Tabelle 2
                   Dozenten

id   vorname        nachname      titel          eMail


                                              manfred.thaller
1     Manfred        Thaller      Prof. Dr.
                                               @uni-koeln.de




                                                jan.wieners
2    Jan Gerrit      Wieners        M.A.
                                               @uni-koeln.de




                                               sebastian.cuy
3    Sebastian         Cuy          M.A.
                                               @uni-koeln.de




                                              d.de-oliveira
4     Daniel        de Oliveira     M.A.
                                              @uni-koeln.de
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ür
       rdfs: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 Tripel
 staff:thaller rdf:type uni:Dozent;




• IF ?A rdfs:subClassOf ?B.
   AND ?x rdf:type ?A.
   THEN ?x rdf:type ?B.
Inferenzmuster für
                  rdfs: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 Tripel
 staff:oliveira rdf:type uni:Dozent;




• IF ?P rdfs:range ?R.
   AND ?x ?P ?y.
   THEN ?y rdf:type ?R.
Inferenzmuster für
                rdfs: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 Tripel
 course: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 Tripel
 staff: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
                  •   Ein XML Schema
                      beschränkt die Struktur
                      von XML-Dateien.
 XML      RDF
                  •   Ein RDF Schema
                      definiert die Bedeutung
                      des in RDF verwendeten
                      Vokabulars über
 XML      RDF         Schlüsse, die gezogen
Schema   Schema       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/>.

# Klassen
lib: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.

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

Sitzung 6

  • 1.
    Semantic Technologies Übung, Wintersemester 2011/12 16. November 2011 - RDF Schema und Inferenz
  • 2.
    Aufgabe 1 • Gegebensind 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.
  • 3.
    Tabelle 1 Veranstaltungen id titel tag uhrzeit art dozent_id Projektplanung für 1 Softwareprojekte: KLIPS Donnerstag 16:00 Hauptseminar 1 2.0 2 Softwaretechnologie I Dienstag 10:00 Proseminar 1 Basisinformations- 3 Mittwoch 10:00 Proseminar 2 technologie I 4 Semantic Technologies Mittwoch 12:00 Übung 3 5 Programmierpraktikum Montag 17:45 Übung 4
  • 4.
    Tabelle 2 Dozenten id vorname nachname titel eMail manfred.thaller 1 Manfred Thaller Prof. Dr. @uni-koeln.de jan.wieners 2 Jan Gerrit Wieners M.A. @uni-koeln.de sebastian.cuy 3 Sebastian Cuy M.A. @uni-koeln.de d.de-oliveira 4 Daniel de Oliveira M.A. @uni-koeln.de
  • 5.
    Aufgabe 2 • ErstellenSie 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.
  • 6.
  • 7.
    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.
  • 8.
    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.
  • 9.
    Inferenz mit Hilfevon RDF Schema
  • 10.
    Rückblick • RDF Schemalegt 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.
  • 11.
    Beispiel <uni:Dozent rdf:about="http://hki.uni-koeln.de/staff/wieners" foaf:name="JanWieners"/> <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))
  • 12.
    Inferenz • Inferenzmaschinen könnenmit Hilfe von Regeln neue Aussagen aus einer bestehenden Wissenbasis ableiten. • Im Kontext des Semantic Web: • Aus vorhandenen Tripeln können neue Tripel abgeleitet werden.
  • 13.
    Inferenzmuster für rdfs: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 Tripel staff:thaller rdf:type uni:Dozent; • IF ?A rdfs:subClassOf ?B. AND ?x rdf:type ?A. THEN ?x rdf:type ?B.
  • 14.
    Inferenzmuster für rdfs: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 Tripel staff:oliveira rdf:type uni:Dozent; • IF ?P rdfs:range ?R. AND ?x ?P ?y. THEN ?y rdf:type ?R.
  • 15.
    Inferenzmuster für rdfs: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 Tripel course:42 rdf:type uni:Veranstaltung; • IF ?P rdfs:domain ?D. AND ?x ?P ?y. THEN ?x rdf:type ?D.
  • 16.
    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 Tripel staff: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.
  • 17.
    XML Schema vs. RDF Schema • Ein XML Schema beschränkt die Struktur von XML-Dateien. XML RDF • Ein RDF Schema definiert die Bedeutung des in RDF verwendeten Vokabulars über XML RDF Schlüsse, die gezogen Schema Schema werden können, wenn dieses Vokabular verwendet wird.
  • 18.
  • 19.
    Aufgabe 1 • Gegebenseien die folgenden RDF-Daten. • Notieren sie alle Tripel, die daraus durch Anwendung der zu RDF Schema gehörenden Regeln abgeleitet werden können.
  • 20.
    @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. 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. # 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>.
  • 21.
    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>.