Semantic Technologies
    Übung, Wintersemester 2011/12
  26. Oktober 2011 - von XML zu RDF
Aufgabe 1
• Entwickeln Sie ein XML Schema zur
     Erfassung von Veranstaltungen an einer
     Universität.
    • Das Schema soll unter anderem Elemente für Veranstaltung,
        Lehrperson, und Raum enthalten.

    •   Definieren Sie dabei mindestens einen eigenen simpleType, der einen
        Basistyp einschränkt.

•   Schreiben Sie ein XML-Dokument, das diesem Schema entspricht und
    validieren Sie es.
Aufgabe 2

• Entwickeln Sie ein weiteres XML Schema
     zur Erfassung von persönlichen
     Stundenplänen.
    • Das Schema soll die Elemente aus dem aus Aufgabe 1 entstandenen
        Schema mit Hilfe von Namespaces wiederverwenden.

•   Schreiben Sie ein XML-Dokument, das diesem Schema entspricht und
    validieren Sie es.
Nachtrag
Referenzen XML
Möglichkeit 1:
              xsd:keyref
                           <order>
                               <number>123ABBCC123</number>
                               <items>
                                   <shirt number="557">
                                       <quantity>1</quantity>
                                       <color value="blue"/>
                                   </shirt>
                                   <shirt number="557">
                                       <quantity>1</quantity>


•   Referenzen innerhalb
                                       <color value="sage"/>
                                   </shirt>
                                   <hat number="563">
    eines XML-Dokuments                <quantity>1</quantity>
                                   </hat>
                               </items>
                               <products>
                                   <product>
                                       <number>557</number>
                                       <name>Short-Sleeved Linen Blouse</name>
                                       <price currency="USD">29.99</price>
                                   </product>
                                   <product>
                                       <number>563</number>
                                       <name>Ten-Gallon Hat</name>
                                       <price currency="USD">69.99</price>
                                   </product>
                               </products>
                           </order>
Möglichkeit 2:
                 XLink
•   Referenzen innerhalb eines XML-Dokuments und zu
    anderen XML-Dokumenten

         <order xmlns:xlink="http://www.w3.org/1999/xlink">
             <number>123ABBCC123</number>
             <items>
                 <shirt xlink:type="simple" xlink:href="#557">
                     <quantity>1</quantity>
                     <color value="blue"/>
                 </shirt>
                 <hat xlink:type="simple"
                      xlink:href="http://example.org/products/hats.xml#563">
                     <quantity>1</quantity>
                 </hat>
             </items>
             <products>
                 <product xml:id="557">
                     <name>Short-Sleeved Linen Blouse</name>
                     <price currency="USD">29.99</price>
                 </product>
             </products>
         </order>
Semantik
Ist XML eine semantische Technologie?
Semantik in XML
•   Bsp.: Manfred Thaller ist der Dozent von Softwaretechnologie I.

            <veranstaltung name="Softwaretechnologie I">
                <dozent>Manfred Thaller</dozent>
            </veranstaltung>




            <dozent name="Manfred Thaller">
                <veranstaltung>Softwaretechnologie I</veranstaltung>
            </dozent>




            <unterrichtsAngebot>
                <dozent>Manfred Thaller</dozent>
                <veranstaltung>Softwaretechnologie I</veranstaltung>
            </unterrichtsAngebot>
Semantik in XML


• Die Bedeutung der Relationen zwischen
  Elementen ist in XML nie explizit.
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“
Semantik in XML
• Die Bedeutung der Relationen zwischen
  Elementen ist in XML nie explizit.
• Die Bedeutung einzelner Elemente ist in
  XML nie explizit.


➡RDF to the rescue!
RDF
Ein Datenmodell für das Semantic Web
Verhältnis XML zu RDF
                                   •   XML = Markupsprache

     XML           RDF             •   XML Schema
                                       beschränkt die Struktur
                                       von XML


     XML          RDF              •   RDF = Datenmodell

    Schema       Schema            •   RDF Schema definiert
                                       das Vokabular von RDF


•   RDF/XML ist eine konkrete Syntax zum Austausch von RDF
RDF: Grundidee
• resources + properties = statements

• resources
 •   alles was mit einem URI referenziert werden kann

• properties
 •   Eigenschaften von Ressourcen
Exkurs: URIs
• Uniform Resource Identifier
 •   Ein globaler, eindeutiger Bezeichner für alles Mögliche

• Unterklassen: URL, URN
• Beispiele:
 •   http://de.wikipedia.org/wiki/Uniform_Resource_Identifier

 •   urn:isbn:4-7980-1224-6

 •   mailto:birgit.mustermann@example.org

 •   geo:48.33,14.122;u=22.5
RDF: Grundidee
•   Statement: „Der Wikipedia Artikel über Köln wurde
    zuletzt am 23.10.2011 bearbeitet.“
•   (http://de.wikipedia.org/wiki/Köln,lastModified,2011-10-23)
                  resource                 property    value




•   Statement: „Köln hat 1.007.119 Einwohner“
•   (urn:example:city:cologne,inhabitants,1007119)
               resource         property      value
Beziehungen zwischen Ressourcen



•   Statement: „Der Wikipedia Artikel über Köln beschreibt die
    Stadt Köln.“
•   (http://de.wikipedia.org/wiki/Köln,isAbout,urn:example:city:cologne)
              resource                 property           value

              Subjekt                   Verb              Objekt
Graphstruktur
•   (http://de.wikipedia.org/wiki/Köln,lastModified,2011-10-23)

•   (urn:example:city:cologne,inhabitants,1007119)

•   (http://de.wikipedia.org/wiki/Köln,isAbout,urn:example:city:cologne)




http://de.wikipedia.org/         isAbout
                                                     urn:example:city:cologne
        wiki/Köln
         lastModified




                                                              inhabitants
       2011-10-23                                            1007119
Problem
•   (http://de.wikipedia.org/wiki/Köln,lastModified,2011-10-23)

    oder

•   (http://de.wikipedia.org/wiki/Köln,lastMod,2011-10-23)

    oder

•   (http://de.wikipedia.org/wiki/Köln,letzteÄnderung,2011-10-23)




• Lösung: Auch Properties erhalten URIs
    •      Beispiel: (http://de.wikipedia.org/wiki/Köln,
                       http://purl.org/dc/elements/1.1/date,2011-10-23)
Klassen
•   Auch Klassen sind Ressourcen und besitzen URIs.

•   Die Zugehörigkeit einer Ressource zu einer Klasse wird
    mit der Property http://www.w3.org/1999/02/22-rdf-syntax-ns#type
    ausgedrückt.

•   Beispiele:
    •   (urn:example:city:cologne,
            http://www.w3.org/1999/02/22-rdf-syntax-ns#type,
            http://dbpedia.org/ontology/City)

    •   (http://hki.uni-koeln.de/st_2011/persons/sebastian.cuy,
            http://www.w3.org/1999/02/22-rdf-syntax-ns#type,
            http://xmlns.com/foaf/0.1/Person)
Namespaces
• Klassen und Properties unterhalb des
  gleichen URI bilden einen Namespace.

• Beispiel: Dublin Core
 •   http://purl.org/dc/elements/1.1/title

 •   http://purl.org/dc/elements/1.1/creator

 •   http://purl.org/dc/elements/1.1/date

 •   ...
Serialisierungen von
           RDF
• RDF/XML - .rdf

• Notation 3 (N3) - .n3
 • Turtle - .ttl          Subset
   • N-Triples - .nt
N-Triples
<urn:example:city:cologne> <http://www.w3.org/1999/02/22-rdf-syntax-
ns#type> <http://dbpedia.org/ontology/PopulatedPlace>.

<urn:example:city:cologne> <http://dbpedia.org/property/name> "Köln".

<urn:example:city:cologne><http://purl.org/dc/elements/1.1/
description> <http://de.wikipedia.org/wiki/Köln>.

<http://de.wikipedia.org/wiki/Köln> <http://purl.org/dc/elements/1.1/
date> "2011-10-23".

<http://de.wikipedia.org/wiki/Köln> <http://purl.org/dc/elements/1.1/
creator> "Max Mustermann".

<http://de.wikipedia.org/wiki/Köln> <http://purl.org/dc/elements/1.1/
title> "Köln".
FOAF
                     Friend of a Friend

•   Namespace: http://xmlns.com/foaf/0.1/

•   Klassen und Properties (FOAF Core):
    •   Agent            •   givenName

    •   Person           •   knows
                                                •   Organization

    •   name             •   based_near
                                                •   Group

    •   title            •   age
                                                •   member

    •   img              •   made (maker)
                                                •   Document

    •   depiction        •   primaryTopic
                                                •   Image
        (depicts)            (primaryTopicOf)

    •   familyName       •   Project
Aufgaben
Aufgabe 1
• Beschreiben Sie sich selbst und ihre
  Beziehungen untereinander mit den
  Begriffen aus FOAF in N-Triples.
  •   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
Aufgabe 2

• Verkürzen Sie die Darstellungsweise der
  Tripel indem Sie die Turtle-Syntax benutzen.
• Tips:
 •   Nutzen Sie „@prefix“

 •   Vermeiden Sie die Wiederholung von Subjekten durch
     die Verwendung von „;“.

Sitzung 3

  • 1.
    Semantic Technologies Übung, Wintersemester 2011/12 26. Oktober 2011 - von XML zu RDF
  • 2.
    Aufgabe 1 • EntwickelnSie ein XML Schema zur Erfassung von Veranstaltungen an einer Universität. • Das Schema soll unter anderem Elemente für Veranstaltung, Lehrperson, und Raum enthalten. • Definieren Sie dabei mindestens einen eigenen simpleType, der einen Basistyp einschränkt. • Schreiben Sie ein XML-Dokument, das diesem Schema entspricht und validieren Sie es.
  • 3.
    Aufgabe 2 • EntwickelnSie ein weiteres XML Schema zur Erfassung von persönlichen Stundenplänen. • Das Schema soll die Elemente aus dem aus Aufgabe 1 entstandenen Schema mit Hilfe von Namespaces wiederverwenden. • Schreiben Sie ein XML-Dokument, das diesem Schema entspricht und validieren Sie es.
  • 4.
  • 5.
    Möglichkeit 1: xsd:keyref <order> <number>123ABBCC123</number> <items> <shirt number="557"> <quantity>1</quantity> <color value="blue"/> </shirt> <shirt number="557"> <quantity>1</quantity> • Referenzen innerhalb <color value="sage"/> </shirt> <hat number="563"> eines XML-Dokuments <quantity>1</quantity> </hat> </items> <products> <product> <number>557</number> <name>Short-Sleeved Linen Blouse</name> <price currency="USD">29.99</price> </product> <product> <number>563</number> <name>Ten-Gallon Hat</name> <price currency="USD">69.99</price> </product> </products> </order>
  • 6.
    Möglichkeit 2: XLink • Referenzen innerhalb eines XML-Dokuments und zu anderen XML-Dokumenten <order xmlns:xlink="http://www.w3.org/1999/xlink"> <number>123ABBCC123</number> <items> <shirt xlink:type="simple" xlink:href="#557"> <quantity>1</quantity> <color value="blue"/> </shirt> <hat xlink:type="simple" xlink:href="http://example.org/products/hats.xml#563"> <quantity>1</quantity> </hat> </items> <products> <product xml:id="557"> <name>Short-Sleeved Linen Blouse</name> <price currency="USD">29.99</price> </product> </products> </order>
  • 7.
    Semantik Ist XML einesemantische Technologie?
  • 8.
    Semantik in XML • Bsp.: Manfred Thaller ist der Dozent von Softwaretechnologie I. <veranstaltung name="Softwaretechnologie I"> <dozent>Manfred Thaller</dozent> </veranstaltung> <dozent name="Manfred Thaller"> <veranstaltung>Softwaretechnologie I</veranstaltung> </dozent> <unterrichtsAngebot> <dozent>Manfred Thaller</dozent> <veranstaltung>Softwaretechnologie I</veranstaltung> </unterrichtsAngebot>
  • 9.
    Semantik in XML •Die Bedeutung der Relationen zwischen Elementen ist in XML nie explizit.
  • 10.
    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“
  • 11.
    Semantik in XML •Die Bedeutung der Relationen zwischen Elementen ist in XML nie explizit. • Die Bedeutung einzelner Elemente ist in XML nie explizit. ➡RDF to the rescue!
  • 12.
    RDF Ein Datenmodell fürdas Semantic Web
  • 13.
    Verhältnis XML zuRDF • XML = Markupsprache XML RDF • XML Schema beschränkt die Struktur von XML XML RDF • RDF = Datenmodell Schema Schema • RDF Schema definiert das Vokabular von RDF • RDF/XML ist eine konkrete Syntax zum Austausch von RDF
  • 14.
    RDF: Grundidee • resources+ properties = statements • resources • alles was mit einem URI referenziert werden kann • properties • Eigenschaften von Ressourcen
  • 15.
    Exkurs: URIs • UniformResource Identifier • Ein globaler, eindeutiger Bezeichner für alles Mögliche • Unterklassen: URL, URN • Beispiele: • http://de.wikipedia.org/wiki/Uniform_Resource_Identifier • urn:isbn:4-7980-1224-6 • mailto:birgit.mustermann@example.org • geo:48.33,14.122;u=22.5
  • 16.
    RDF: Grundidee • Statement: „Der Wikipedia Artikel über Köln wurde zuletzt am 23.10.2011 bearbeitet.“ • (http://de.wikipedia.org/wiki/Köln,lastModified,2011-10-23) resource property value • Statement: „Köln hat 1.007.119 Einwohner“ • (urn:example:city:cologne,inhabitants,1007119) resource property value
  • 17.
    Beziehungen zwischen Ressourcen • Statement: „Der Wikipedia Artikel über Köln beschreibt die Stadt Köln.“ • (http://de.wikipedia.org/wiki/Köln,isAbout,urn:example:city:cologne) resource property value Subjekt Verb Objekt
  • 18.
    Graphstruktur • (http://de.wikipedia.org/wiki/Köln,lastModified,2011-10-23) • (urn:example:city:cologne,inhabitants,1007119) • (http://de.wikipedia.org/wiki/Köln,isAbout,urn:example:city:cologne) http://de.wikipedia.org/ isAbout urn:example:city:cologne wiki/Köln lastModified inhabitants 2011-10-23 1007119
  • 19.
    Problem • (http://de.wikipedia.org/wiki/Köln,lastModified,2011-10-23) oder • (http://de.wikipedia.org/wiki/Köln,lastMod,2011-10-23) oder • (http://de.wikipedia.org/wiki/Köln,letzteÄnderung,2011-10-23) • Lösung: Auch Properties erhalten URIs • Beispiel: (http://de.wikipedia.org/wiki/Köln, http://purl.org/dc/elements/1.1/date,2011-10-23)
  • 20.
    Klassen • Auch Klassen sind Ressourcen und besitzen URIs. • Die Zugehörigkeit einer Ressource zu einer Klasse wird mit der Property http://www.w3.org/1999/02/22-rdf-syntax-ns#type ausgedrückt. • Beispiele: • (urn:example:city:cologne, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, http://dbpedia.org/ontology/City) • (http://hki.uni-koeln.de/st_2011/persons/sebastian.cuy, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, http://xmlns.com/foaf/0.1/Person)
  • 21.
    Namespaces • Klassen undProperties unterhalb des gleichen URI bilden einen Namespace. • Beispiel: Dublin Core • http://purl.org/dc/elements/1.1/title • http://purl.org/dc/elements/1.1/creator • http://purl.org/dc/elements/1.1/date • ...
  • 22.
    Serialisierungen von RDF • RDF/XML - .rdf • Notation 3 (N3) - .n3 • Turtle - .ttl Subset • N-Triples - .nt
  • 23.
    N-Triples <urn:example:city:cologne> <http://www.w3.org/1999/02/22-rdf-syntax- ns#type> <http://dbpedia.org/ontology/PopulatedPlace>. <urn:example:city:cologne><http://dbpedia.org/property/name> "Köln". <urn:example:city:cologne><http://purl.org/dc/elements/1.1/ description> <http://de.wikipedia.org/wiki/Köln>. <http://de.wikipedia.org/wiki/Köln> <http://purl.org/dc/elements/1.1/ date> "2011-10-23". <http://de.wikipedia.org/wiki/Köln> <http://purl.org/dc/elements/1.1/ creator> "Max Mustermann". <http://de.wikipedia.org/wiki/Köln> <http://purl.org/dc/elements/1.1/ title> "Köln".
  • 24.
    FOAF Friend of a Friend • Namespace: http://xmlns.com/foaf/0.1/ • Klassen und Properties (FOAF Core): • Agent • givenName • Person • knows • Organization • name • based_near • Group • title • age • member • img • made (maker) • Document • depiction • primaryTopic • Image (depicts) (primaryTopicOf) • familyName • Project
  • 25.
  • 26.
    Aufgabe 1 • BeschreibenSie sich selbst und ihre Beziehungen untereinander mit den Begriffen aus FOAF in N-Triples. • 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
  • 27.
    Aufgabe 2 • VerkürzenSie die Darstellungsweise der Tripel indem Sie die Turtle-Syntax benutzen. • Tips: • Nutzen Sie „@prefix“ • Vermeiden Sie die Wiederholung von Subjekten durch die Verwendung von „;“.