Upload
scuy
View
501
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
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
• Referenzen innerhalb eines XML-Dokuments
<order> <number>123ABBCC123</number> <items> <shirt number="557"> <quantity>1</quantity> <color value="blue"/> </shirt> <shirt number="557"> <quantity>1</quantity> <color value="sage"/> </shirt> <hat number="563"> <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>
SemantikIst 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!
RDFEin Datenmodell für das Semantic Web
Verhältnis XML zu RDF
XML RDF
XMLSchema
RDFSchema
• XML = Markupsprache
• XML Schema beschränkt die Struktur von XML
• RDF = Datenmodell
• 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:[email protected]
• 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/wiki/Köln urn:example:city:cologne
isAbout
2011-10-23 1007119
last
Modi
fied
inha
bita
nts
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
• N-Triples - .nt
Subset
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".
FOAFFriend of a Friend
• Agent
• Person
• name
• title
• img
• depiction (depicts)
• familyName
• givenName
• knows
• based_near
• age
• made (maker)
• primaryTopic (primaryTopicOf)
• Project
• Organization
• Group
• member
• Document
• Image
• Namespace: http://xmlns.com/foaf/0.1/
• Klassen und Properties (FOAF Core):
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 „;“.