sitzung 4
TRANSCRIPT
Semantic TechnologiesÜbung, Wintersemester 2011/122. November 2011 - mehr RDF
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
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>.
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/name> "Roman Quiring".
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/givenName> "Roman".
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/family_name> "Quiring".
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/nick> "Rome".
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/mbox> <mailto:[email protected]>.
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/homepage> <http://www.rome.de>.
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/workplaceHomepage> <http://www.open-lims.org>.
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/depiction> <http://www.rome.de/meinBild.jpg>.
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/interest> <http://www.youtube.com>.
<http://www.youtube.com>! <http://purl.org/dc/elements/1.1/title> "Youtube - Broadcast Yourself".
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/member> <http://hki.uni-koeln.de/st_2011/group/st_2011>
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/knows> <http://hki.uni-koeln.de/st_2011/person/benjamin.gelhaar>.
<http://hki.uni-koeln.de/st_2011/person/roman.quiring>! <http://xmlns.com/foaf/0.1/knows> <http://hki.uni-koeln.de/st_2011/person/carlos.lenz>.
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 „;“.
@prefix : <http://xmlns.com/foaf/0.1/> .
@prefix dc: <http://purl.org/dc/elements/1.1/>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix stp: <http://hki.uni-koeln.de/st_2011/person/>.
<http://hki.uni-koeln.de/st_2011/person/roman-quiring>
! a :Person;
! :name "Roman Quiring" ;
! :givenName "Roman" ;
! :family_name "Quiring" ;
! :nick "Rome" ;
! :mbox <mailto:[email protected]> ;
! :homepage <http://www.rome.de> ;
! :workplaceHomepage <http://www.open-lims.org> ;
! :depiction <http://www.rome.de/meinBild.jpg> ;
! :interest <http://www.youtube.com> ;
! :member <http://hki.uni-koeln.de/st_2011/group/st_2011> ;
! :knows stp:benjamin-gelhaar , stp:carlos-lenz .
<http://www.youtube.com>
! dc:title "Youtube - Broadcast Yourself".
RDFaus Datenbanksicht
ID Titel Dozent Raum Tag Uhrzeit
1 Softwaretechnologie für Fortgeschrittene Manfred Thaller 0.38 Donnerstag 10:00
2 Softwaretechnologie I Manfred Thaller 1.14 Dienstag 10:00
3 Basisinformations-technologie I Jan Gerrit Wieners Wird noch bekannt
gegeben Mittwoch 10:00
4 Semantic Technologies Sebastian Cuy 210 Mittwoch 12:00
5 Programmierpraktikum Daniel Marreiros de Oliveira 1.14 Montag 17:45
Beispiel
Möglichkeit 1Verteilung Zeile für Zeile
1 Softwaretechnologie für Fortgeschrittene
Manfred Thaller 0.38 Donnerstag 10:00
2 Softwaretechnologie I Manfred Thaller 1.14 Dienstag 10:00
3 Basisinformations-technologie I
Jan Gerrit Wieners
Wird noch bekannt gegeben Mittwoch 10:00
4 Semantic Technologies Sebastian Cuy 210 Mittwoch 12:00
5 Programmierpraktikum
Daniel Marreiros de Oliveira 1.14 Montag 17:45
➡Vorteil: Flexibilität ➡Problem: Schema
Möglichkeit 2Verteilung Spalte für Spalte
Titel
Software-technologie für Fortgeschrittene
Software-technologie I
Basis-informations-technologie I
Semantic Technologies
Programmier-praktikum
Dozent RaumManfred Thaller 0.38
Manfred Thaller 1.14
Jan Gerrit Wieners
Wird noch bekannt gegeben
Sebastian Cuy 210
Daniel de Oliveira 1.14
Tag Uhrzeit
Donnerstag 10:00
Dienstag 10:00
Mittwoch 10:00
Mittwoch 12:00
Montag 17:45
➡Vorteil: Flexibilität ➡Problem: Identität
Möglichkeit 3Verteilung Zelle für Zelle
Titel
Zeile 1
Softwaretechnologie für Fortgeschrittene
Dozent
Zeile 1 Manfred Thaller
Raum
Zeile 2 1.14
Titel
Zeile 4
Semantic Technologies
Uhrzeit
Zeile 5 17:45➡Vorteil: Volle Flexibilität
„AAA: Anyone is allowed to say Anything about Any topic.“
➡Probleme: Schema und Identität
LösungTripel & globale Referenzen
Titel
Zeile 4
Semantic Technologies
Subjekt Prädikat Objekt
Zeile 4 Titel Semantic Technologies
Zeile 4 http://hki.uni-koeln.de/courses/4
Titel http://purl.org/dc/elements/1.1/title
➡ RDF is born:<http://hki.uni-koeln.de/courses/4>! <http://purl.org/dc/elements/1.1/title> "Semantic Technologies" .
RDF
• Explizite Bedeutungdurchglobal definiertePrädikate und Klassen
• Verteilung durchglobale Identifier undTripelstruktur
Semantic
Web
RDF / XML
Ein Tripel
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dbpedia="http://dbpedia.org/property/"> <rdf:Description rdf:about="urn:example:city:cologne"> <dbpedia:name>Köln</dbpedia:name> </rdf:Description> </rdf:RDF>
<urn:example:city:cologne> <http://dbpedia.org/property/name> "Köln".
Noch ein Tripel
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/"> <rdf:Description rdf:about="urn:example:city:cologne"> <dc:description rdf:resource="http://de.wikipedia.org/wiki/Köln"/> </rdf:Description> </rdf:RDF>
<urn:example:city:cologne>! <http://purl.org/dc/elements/1.1/description>
! <http://de.wikipedia.org/wiki/Köln>.
Mehrere Tripel<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dbpedia="http://dbpedia.org/property/" xmlns:dc="http://purl.org/dc/elements/"> <rdf:Description rdf:about="urn:example:city:cologne"> <dbpedia:name>Köln</dbpedia:name> <dc:description rdf:resource="http://de.wikipedia.org/wiki/Köln"/> </rdf:Description> <rdf:Description rdf:about="http://de.wikipedia.org/wiki/Köln"> <dc:date>2011-10-23</dc:date> <dc:creator>Max Mustermann</dc:creator> <dc:title>Köln</dc:title> </rdf:Description> </rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dbpedia="http://dbpedia.org/property/" xmlns:dc="http://purl.org/dc/elements/"> <rdf:Description rdf:about="urn:example:city:cologne"> <dbpedia:name>Köln</dbpedia:name> <dc:description> <rdf:Description rdf:about="http://de.wikipedia.org/wiki/Köln"> <dc:date>2011-10-23</dc:date> <dc:creator>Max Mustermann</dc:creator> <dc:title>Köln</dc:title> </rdf:Description> </dc:description> </rdf:Description> </rdf:RDF>
Klassen
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dbpedia="http://dbpedia.org/property/" xmlns:dc="http://purl.org/dc/elements/"> <rdf:Description rdf:about="urn:example:city:cologne"> <rdf:type rdf:resource="http://dbpedia.org/ontology/PopulatedPlace"/> <dbpedia:name>Köln</dbpedia:name> <dc:description rdf:resource="http://de.wikipedia.org/wiki/Köln"/> </rdf:Description> </rdf:RDF>
Datentypen<urn:example:city:cologne>! <urn:example:inhabitants>! “1007119“^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://de.wikipedia.org/wiki/Köln>! <http://purl.org/dc/elements/1.1/date>! “2011-10-23“^^<http://www.w3.org/2001/XMLSchema#date> .
<rdf:Description rdf:about="urn:example:city:cologne"> <ex:inhabitants rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1007119</ex:inhabitants></rdf:Description>
<rdf:Description rdf:about="http://de.wikipedia.org/wiki/Köln"> <dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2011-10-23</dc:date></rdf:Description>
Shortcuts
• Kinderlose Property-Elemente dürfen durch XML-Attribute ersetzt werden.
• Description-Elemente mit Typ-Kind dürfen durch den Namen des Typs ersetzt werden.
<rdf:Description rdf:about="urn:example:city:cologne"> <rdf:type rdf:resource="http://dbpedia.org/ontology/PopulatedPlace"/> <dbpedia:name>Köln</dbpedia:name></rdf:Description>
<dbpedia:PopulatedPlace rdf:about="urn:example:city:cologne" dbpedia:name="Köln"/>
Shortcuts
• Namensräume in Attributen können durch Entity-Deklarationen verkürzt werden.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE rdf:RDF [ <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"> <!ENTITY wiki "http://de.wikipedia.org/wiki/">]><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/"> <rdf:Description rdf:about="&wiki;Köln"> <dc:date rdf:datatype="&xsd;date">2011-10-23</dc:date> </rdf:Description> </rdf:RDF>
Container-Elemente• rdf:Bag - ungeordnet
• rdf:Seq - geordnet
• rdf:Alt - alternativ
• Dopplungen erlaubt
• nicht abgeschlossen
<fs:folder rdf:about="ftp:///example.org/docs"> <fs:containsFiles> <rdf:Bag> <rdf:_1 rdf:resource="http://example.org/docs/index.php"/> <rdf:_2 rdf:resource="http://example.org/docs/robots.txt"/> </rdf:Bag> </fs:containsFiles></fs:folder>
<fs:folder rdf:about="ftp:///example.org/docs"> <fs:containsFiles> <rdf:Bag> <rdf:li rdf:resource="http://example.org/docs/index.php"/> <rdf:li rdf:resource="http://example.org/docs/robots.txt"/> </rdf:Bag> </fs:containsFiles></fs:folder>
oder
Collection-Elemente
• rdf:List
• abgeschlossen
<fs:folder rdf:about="ftp:///example.org/docs"> <fs:containsFiles> <rdf:List> <rdf:first> <rdf:Description rdf:resource="&docs;index.php"/> </rdf:first> <rdf:rest> <rdf:List> <rdf:first> <rdf:Description rdf:resource="&docs;robots.txt"/> </rdf:first> <rdf:rest> <rdf:Description rdf:resource="&rdf;nil"/> </rdf:rest> </rdf:List> </rdf:rest> </rdf:List> </fs:containsFiles></fs:folder>
<fs:folder rdf:about="ftp:///example.org/docs"> <fs:containsFiles rdf:parseType="Collection"> <rdf:Description rdf:about="&docs;index.php"/> <rdf:Description rdf:about="&docs;robots.txt"/> </fs:containsFiles></fs:folder>
oder
Aufgaben
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
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.
Tabelle 1Veranstaltungen
id titel tag uhrzeit dozent_id raum_id
1 Softwaretechnologie für Fortgeschrittene Donnerstag 10:00 1 1
2 Softwaretechnologie I Dienstag 10:00 1 2
3 Basisinformations-technologie I Mittwoch 10:00 2 NULL
4 Semantic Technologies Mittwoch 12:00 3 3
5 Programmierpraktikum Montag 17:45 4 2
Tabelle 2Dozenten
id vorname nachname titel eMail raum_id
1 Manfred Thaller Prof. Dr. [email protected] 4
2 Jan Gerrit Wieners M.A. [email protected] 5
3 Sebastian Cuy M.A. [email protected] 5
4 Daniel de Oliveira M.A. [email protected] 5
Tabelle 3Räume
id gebaeude raum
1 Philosophicum 0.38
2 RRZK-B 1.14
3 Küpperstift 210
4 Küpperstift Eingang Weyertal, II. Stock, rechts
5 Universitätsstraße 22 Dachgeschoss