Download - 3 - Sprachen Des Semantic Web - RDF
Semantic Web Technologien - Sprachen des Semantic Web - RDF
Semantic Web Technologien
LehrveranstaltungSemantic Web TechnologienWS 2009/10 HTWG Konstanz
Sprachen des Semantic Web
RDFResource Description Framework
Sprachen des Semantic Web - RDF
XML verwendet Baumstrukturen zur Darstellung von
Informationen
Hervorragend geeignet zur Organisation hierarchischer Daten (Wie
beispielsweise in Dokumenten)
Baumstrukturen knnen gezielt durchsucht und verarbeitet werden
Sprachen des Semantic Web - RDF
Die Baumstruktur von XML hat aber auch NachteileModellierung von Sachverhalten oft unklar / uneinheitlich
Beispiel:Das Auto-Modell Golf wird von Volkswagen
hergestellt:
Volkswagen
Golf
Golf
Volkswagen
Sprachen des Semantic Web - RDF
Daraus resultieren diverse Probleme:
Die Beschreibung der Daten ist nicht intuitiv
Probleme beim Zusammenfhren von Daten aus mehreren Quellen
(Datenintegration)
Die Informationen im WWW sind dezentral organisiert und folgen
nicht unbedingt einer hierarchischen Struktur
=> Baumstruktur ist fr das Semantic Web als Datenmodell nicht geeignet
Sprachen des Semantic Web - RDF
Das Semantic Web verwendet Graphen an Stelle von Bumen als DatenmodellMenge von Knoten, verbunden durch gerichtete Kanten/Pfeile
Sowohl Knoten als auch Kanten haben eindeutige
Bezeichner
Beispiel:
Dieses Datenmodell wird als RDF (Resource Description Framework) bezeichnet
http://vw.de/Modelle#Golfhttp://autohersteller.de/Volkswagen
http://example.org/wirdHergestelltVon
Sprachen des Semantic Web - RDF
RDFOffizieller Standard des W3C
Alle wichtigen Dokumente dazu
unter:http://www.w3.org/RDF/
Zunchst nur zur Beschreibung von Metadaten ber Webseiten gedacht
Codierung von strukturierten Informationen
Universell, maschinenlesbar, zum Austausch geeignet
Kann in diverse Formate serialisiert werden
(zum Beispiel, aber nicht nur, XML Dazu spter mehr)
Sprachen des Semantic Web - RDF
Bestandteile von RDFRessourcen / ResourcesEtwas, das beschrieben werden soll Die Knoten
Literale / LiteralsDatenwerte ohne separate Existenz
Eigenschaften / PropertiesDie Beziehungen zwischen Ressourcen und anderen Ressourcen oder Literalen gerichtete Kanten
URIs (Uniform Resource Identifiers)Eindeutige Identifizierung von Ressourcen und Properties
Leere Knoten / Blank NodesRessourcen, denen (u.U. noch) keine URI zugewiesen ist
Erlauben Aussagen ber Dinge, die wir nicht genau identifizieren knnen oder wollen
Mssen bei der Verarbeitung besonders behandelt werden
Sprachen des Semantic Web - RDF
LiteraleReprsentation von Datenwerten
Darstellung von Zeichenketten
Knnen einen Datentyp besitzen (siehe XSD)
Wenn kein Datentyp angegeben wird, behandelt man Literale meist
als Zeichenketten (ist aber nicht genauer definiert)
Es knnen keine Aussagen ber Literale getroffen werden!
http://vw.de/Modelle#Golfhttp://autohersteller.de/Volkswagen
http://example.org/wirdHergestelltVon
Wolfsburg
http://example.org/hatFirmensitzIn
1974
http://example.org/wirdProduziertSeit
6
http://example.org/anzahlModellGenerationen
Sprachen des Semantic Web - RDF
Probleme:Darstellung als Grafik nur sinnvoll, solange der Graph recht klein istPraktisch bestehen Datenstze aber aus Tausenden oder Millionen von Kanten und Knoten
Zur Verarbeitung in Maschinen denkbar ungeeignet
Wie speichert man einen Graphen?
LsungZerlegung des Graphen in kleine Bestandteile
berfhrung der Bestandteile in Zeichenketten
Nacheinander abspeichern
Sprachen des Semantic Web - RDF
Wie unterteilt man Graphen?Grundstzlich mehrere Anstze mglich
Im Falle des Semantic Web wird ein Graph in Aussagen unterteilt
Bestandteile von RDF Graphen sind Aussagen/Statements in Form von Triplen
Sprachen des Semantic Web - RDF
RDF-Triple
hnlich wie in der Linguistik
Erlaubte Belegung:Subjekt:URI oder leerer Knoten
Prdikat: URI
Objekt:URI, leerer Knoten oder Literal
Durch eindeutige Bezeichnung von Knoten und Kanten kann ursprnglicher Graph wieder aus Liste von Triplen rekonstruiert werden
http://vw.de/Modelle#Golfhttp://autohersteller.de/Volkswagen
http://example.org/wirdHergestelltVon
Prdikat
Objekt
Subjekt
Sprachen des Semantic Web - RDF
Beispiel:
http://vw.de/Modelle#Golfhttp://autohersteller.de/Volkswagen
http://example.org/wirdHergestelltVon
Wolfsburg
http://example.org/hatFirmensitzIn
1974http://example.org/wirdProduziertSeit
6http://example.org/anzahlModellGenerationen
http://autohersteller.de/Volkswagen
http://vw.de/Modelle#Golfhttp://vw.de/Modelle#Golf
Sprachen des Semantic Web - RDF
Serialisierung von TriplenRDF beschrnkt sich nicht auf ein
einzelnes Format zur Serialisierung
N3 / N-Triples / TurtleSimple Auflistung von Triplen
RDF/XMLSerialisierung der Triple nach XML
RDFa (RDF in attributes)Einbettung von Triplen in (X)HTML
Und viele andere:TriX
TriG
RDF/JSON
RDF/YAML ;-)
...
Sprachen des Semantic Web - RDF
N3 / N-Triples / TurtleDarstellung von RDF-Graphen als Ansammlung von Triplen
N3 (Notation 3)1998 von Tim Berners-Lee vorgeschlagen
Beinhaltet auch komplexe Ausdrcke wie Pfade und Regeln
N-Triples2004 als offizielle Recommendation des W3C verabschiedet
Teilmenge von N3 mit weniger Komplexitt
TurtleN-Triples hatte zu wenig Funktionalitt Turtle erweitert N-Triplesz.B. Um eine Kurzschreibweise
N-Triples und Turtle sind im Wesentlichen Teile von N3
Sie beschrnken sich allerdings auf zulssige RDF-Graphen
Sprachen des Semantic Web - RDF
Turtle-Syntax:Triple werden nacheinander niedergeschrieben
URIs werden in spitze Klammern eingefasst
Literale werden in Anfhrungszeichen gestellt
Jede Aussage endet mit einem Punkt
Beispiel:
.
6 .
1974 .
Wolfsburg .
Sprachen des Semantic Web - RDF
Abkrzung von URIs durch NamespacesZur Vermeidung von Verwechslungen drfen abgekrzte URIs nicht mehr in spitzen Klammern notiert werden
Es empfiehlt sich, verstndliche Abkrzungen zu whlen
Ein Bezeichner Prfix:Name wird auch Qname genannt
Beispiel:
@prefix ex: .
@prefix vwmodell: .
@prefix hersteller: .
vwmodell:Golfex:wirdHergestelltVon hersteller:Volkswagen .
vwmodell:Golfex:anzahlModellGenerationen6 .
vwmodell:Golfex:wirdProduziertSeit1974 .
hersteller:Volkswagenex:hatFirmensitzInWolfsburg .
Sprachen des Semantic Web - RDF
Zusammenfassung von TriplenTriple mit dem selben Subjekt knnen zusammengefasst werdenSubjekt muss dann nur einmal notiert werden
Aussagen werden durch Semikolon getrennt
Gibt es zu einem Subjekt und einem Prdikat mehrere Objekte, knnen diese durch Kommata getrennt notiert werden
Beispiel:
@prefix ex: .
@prefix vwmodell: .
@prefix hersteller: .
vwmodell:Golfex:wirdHergestelltVon hersteller:Volkswagen ;
ex:anzahlModellGenerationen6 ;
ex:wirdProduziertSeit1974 .
hersteller:Volkswagenex:hatFirmensitzInWolfsburg ;
ex:hatProduktionsstandortWolfsburg,
Dresden,
Bratislava,
Pamplona .
Sprachen des Semantic Web - RDF
RDF/XMLTurtle ist fr Menschen und Maschinen leicht lesbar
RDF wird trotzdem am hufigsten nach XML serialisiert
Warum? Fehlende Programmbibliotheken fr Turtle
Jede Programmiersprache untersttzt XML
Oft auch: XML ist man bereits gewohnt!
Gibt es keine Probleme mit den unterschiedlichen Datenmodellen (XML-Bume vs. RDF-Graphen)?NEIN: XML gibt lediglich syntaktische Struktur des Dokuments vor
ABER: XML ist hierarchisch aufgebaut Kodierung von RDF-Triplen
muss ebenfalls hierarchisch erfolgen
Sprachen des Semantic Web - RDF
RDF/XML Syntax:Wurzelelement aller RDF/XML Dokument ist
rdf:RDF
( rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns# )
Ressourcen werden durch Elemente mit dem XML-Name rdf:Description beschriebenAttribut about gibt die URI an
Mit Attribut ID kann einer Ressource innerhalb eines Dokuments eine feste ID zugewiesen werden, die von anderen Triplen referenziert werden kann.
Eine ID darf nur einmal innerhalb eines Dokuments vorkommen
Der Wert von ID entspricht dem Fragment-Teil einer URI
about und ID drfen nicht gleichzeitig bei einem Description-Element vorkommen
Empfehlung: Auf ID weitestgehend verzichten (Auer bei der Erstellung von Vokabularen)
Sprachen des Semantic Web - RDF
RDF/XML Beispiel:
6
1974
Wolfsburg
Sprachen des Semantic Web - RDF
RDF/XML Beispiel - Zusammenfassung:
Wolfsburg
6
1974
Sprachen des Semantic Web - RDF
RDF/XML Beispiel Weitere VerkrzungenLiterale knnen als Attribute dargestellt werden
rdf:resource zur Referenzierung von Ressourcen
Sprachen des Semantic Web - RDF
ENTITYs zur Abkrzung von URIsDurch Definition von ENTITYs (siehe XML-Vorlesung) knnen lange Textstrings abgekrzt werden
Dies knnen wir in Attributwerten verwenden
]>
Wolfsburg
Sprachen des Semantic Web - RDF
Darstellung von RDF in XML ist sehr vielfltigRDF/XML Beispiele beschreiben sicher nicht den gleichen XML-Baum
Aber den gleichen RDF-Graphen!!!
W3C-Validator fr RDF-XML:http://www.w3.org/RDF/Validator
Kontrolliert RDF/XML Dokumente auf Gltigkeit
Gibt in XML-Dokument enthaltene Triple aus
Kann eine grafische Darstellung des Graphs erstellen:
Sprachen des Semantic Web - RDF
Probleme mit RDF/XMLURIs enthalten mindestens einen Doppelpunkt (Nach dem Schema) Unzulssig in XML-Namen Namensrume sind elementarer Bestandteil der Codierung
Namensrume knnen nur fr Element- und Attributnamen verwendet werden nicht in AttributwertenSelbe URI muss an verschiedenen Stellen des XML-Dokuments unterschiedlich notiert werden
Diverse weitere ProblemeDirekt nach ':' (z.B. Bei Element-Namen) darf in XML kein '-' auftauchenObwohl in URIs ohne weiteres erlaubt Definition von Hilfsnamensrumen
Unzulssige Sonderzeichen in URIs werden hufig mit % kodiert%20 steht fr Leerzeichen usw.
In Attributwerten unproblematisch In Element-Namen ist % verboten
Die meisten Probleme werden von RDF-Bibliotheken abgefangen
Sprachen des Semantic Web - RDF
XHTML+RDFa Beispiel
XHTML+RDFa Beispiel
Golf
Aktuelle Modellgeneration:
6
Prokuktionsbeginn:
1974
Hersteller:
Volkswagen
Firmensitz:
Wolfsburg
Sprachen des Semantic Web - RDF
TriX Beispiel:
http://example.org/graph1
vwmodell:Golf
ex:wirdHergestelltVon
hersteller:Volkswagen
vwmodell:Golf
ex:anzahlModellGenerationen
6
vwmodell:Golf
ex:wirdProduziertSeit
1974
hersteller:Volkswagen
ex:hatFirmensitzIn
Wolfsburg
Sprachen des Semantic Web - RDF
Datentypen fr LiteraleDefinieren, wie Literale interpretiert werden sollen
Beispiel: xsd:decimal
Bei xsd:decimal gilt 3.14 = +03.14Bei xsd:String gilt das nicht!
3.14
3.14000
+03.14
-2.5
100.00
3,14
-2,5
100
Lexikalischer Bereich
Wertebereich
Sprachen des Semantic Web - RDF
Datentypen in RDFBisher haben wir ungetypte Literale verwendet Verwendung wie Zeichenketten
Typisierung erlaubt semantischen Umgang mit Werten
Datentypen werden identifiziert durch URIs
Datentypen sind frei whlbar
Datentypen knnen selbst bestimmt werden
Meistens verwendet man die xsd-Datentypen
Schreibweise von typisierten Attributwerten:Datenwert^^Datentyp-URI
Sprachen des Semantic Web - RDF
Datentypen-Beispiel:
Turtle:
@prefix xsd: .
1981-06-21^^xsd:date .
XML
1981-06-21
http://example.org/persons#123431981-06-21^^http://www.w3.org/2001/XMLSchema#date
http://example.org/Geburtstag
Sprachen des Semantic Web - RDF
rdf:XMLLiteral wird von RDF vordefiniert
Bezeichnet (balancierte) XML-Fragmente
Hat spezielle Syntax in RDF/XML:
VW - Volkswagen
Sprachen des Semantic Web - RDF
Sprachangaben bei Datentypen
Knnen nur bei ungetypten Literalen verwendet werden Entweder
Datentyp oder Sprachangabe
Beispiel:
Golf
Rabbit
Sprachen des Semantic Web - RDF
Mehrwertige BeziehungenKochen mit RDF:
Fr die Zubereitung von Chutney bentigt man 450g grne Mango, einen
Teelffel Cayennepfeffer, ...
Erster Modellierungsversuch:
@prefix ex: .
ex:Chutneyex:hatZutat450g grne Mango,
1TL Cayennepfeffer .
Nicht zufriedenstellend, da Zutaten und Menge in einer Zeichenkette vermischt sind Suche nach Rezepten mit grner Mango nicht mglich
Sprachen des Semantic Web - RDF
Mehrwertige BeziehungenKochen mit RDF:
Fr die Zubereitung von Chutney bentigt man 450g grne Mango, einen
Teelffel Cayennepfeffer, ...
Zweiter Modellierungsversuch:
@prefix ex: .
ex:Chutneyex:hatZutatex:grueneMango;
ex:Menge450g ;
ex:hatZutatex:Cayennepfeffer;
ex:Menge1TL .
Noch schlimmer, da keine Zuordnung mehr zwischen Menge und konkreter Zutat mehr mglich ist
Sprachen des Semantic Web - RDF
Problem:Es handelt sich um eine echte dreiwertige (auch: ternre)
Beziehung:
Direkte Darstellung innerhalb von RDF nicht mglich
Lsung: Einfhrung von Hilfsknoten
GerichtZutatMenge
ChutneyGrne Mango450g
ChutneyCayennepfeffer1TL
Sprachen des Semantic Web - RDF
Darstellung als Graph:
Turtle Syntax (verwendet rdf:value):
@prefix ex: .
@prefix rdf: .
ex:Chutneyex:hatZutatex:ChutneyZutat1 .
ex:ChutneyZutat1rdf:valueex:grueneMango ;
ex:Menge450g .
http://example.org/Chutneyhttp://example.org/ChutneyZutat1
http://example.org/hatZutat
450ghttp://example.org/Menge
http://example.org/Zutat
http://example.org/grueneMango
Sprachen des Semantic Web - RDF
Leere Knoten (Blank Nodes, Bnodes)Verwendung fr Ressourcen, die eigentlich keine eigene Identifizierung bentigen
Hufig verwendet bei Hilfsknoten
Siehe letztes Beispiel:
http://example.org/Chutney
http://example.org/hatZutat
450ghttp://example.org/Menge
http://example.org/Zutat
http://example.org/grueneMango
Sprachen des Semantic Web - RDF
Leere KnotenRDF/XML-Syntax
450g
Verkrzt
450g
Sprachen des Semantic Web - RDF
Leere KnotenTurtle-Syntax
@prefix ex: .
ex:Chutney ex:hatZutat _:id1 .
_:id1 ex:Zutat ex:grueneMango ;
ex:Menge 450g.
Verkrzt
@prefix ex: .
ex:Chutney ex:hatZutat [ex:Zutat ex:grueneMango ;
ex:Menge 450g ].
Sprachen des Semantic Web - RDF
Listen in RDFDatenstrukturen zur Aufzhlung von Ressourcen mit
relevanter Reihenfolge (z.B. Autoren eines Buches)
Unterscheidung zwischenOffene Listen (Container)
Knnen jederzeit erweitert werden
Geschlossene Listen (Collections)
Neue Eintrge knnen nicht hinzugefgt werden
Besitzen keine zustzliche Ausdrucksstrke, da auch mit bereits behandelten Mitteln modellierbar
Sprachen des Semantic Web - RDF
Graph
In RDF/XML (verkrzt)
ex:Rudolph
ex:Autoren
rdf:Seq
rdf:type
rdf:_1
ex:Hitzlerex:Krtzschex:SemanticWebex:Sure
rdf:_2
rdf:_3
rdf:_4
Sprachen des Semantic Web - RDF
Der Listentyp wird dem Listenknoten mit dem Prdikat rdf:type zugewiesen
Folgende Typen sind im RDF definiert:
rdf:Seq
georndete Liste (Sequenz)
rdf:Bag
ungeordnete Menge, reihenfolge nicht von Belang
rdf:Alt
Menge alternativer Mglichkeiten aus denen immer nur eine Relevanz
besitzt
Sprachen des Semantic Web - RDF
Collections
Zerlegung der Liste in Kopfelemente und Restliste
Wenn Restliste = rdf:nil, ist das Ende erreicht
ex:Rudolph
ex:Autoren
rdf:nilrdf:first
ex:Hitzlerex:Krtzschex:SemanticWebex:Sure
rdf:rest
rdf:rest
rdf:rest
rdf:rest
rdf:first
rdf:first
rdf:first
Sprachen des Semantic Web - RDF
CollectionsRDF/XML-Syntax
Turtle
@prefix ex: .
ex:SemanticWebex:Autoren( ex:Hitzler ex:Krtzsch
ex:Rudolph ex:Sure ) .
Sprachen des Semantic Web - RDF
Verbreitung von RDF
Groe Anzahl an Tools und Bibliotheken fr RDFDie meisten davon frei (Open Source) verfgbar
Es existieren diverse Systeme zum effizienten Umgang mit riesigen RDF-codierten-DatenmengenSogenannte Triple-Stores
Auch kommerzielle Anbieter wie Oracle implementieren zunehmend RDF-Untersttzung
Diverse Datenformate basieren auf RDF:RSS 1.0
XMP (Adobe)
SVG
Sprachen des Semantic Web - RDF
BewertungEtablierter und gut untersttzter Standard zur Speicherung und zum Austausch von Daten
Weitgehend syntaxunabhngige Darstellung durch abstraktes, graphenbasiertes Datenmodell
Gut geeignet zur Vereinigung von Daten aus verschiedenen Quellen
KritikReines RDF codiert eigentlich nur Informationen ber Individuen / Ressourcen
Es besteht praktisch keine Mglichkeit zur Codierung von Schemawissen Siehe RDF Schema
Sprachen des Semantic Web - RDF
Noch Fragen ?
Sprachen des Semantic Web - XML
Literatur:Buch Semantic Web Grundlagen, Springer Verlag
2008
Pascal Hitzler, Markus Krtzsch, Sebastian Rudolph, York Sure
ISBN: 978-3-540-33993-9
RDF Webseite
http://www.w3.org/RDF/
Resource Description Framework Primer
F. Manola, E. Miller
W3C Recommendation, 10th February 2004
http://www.w3.org/TR/rdf-primer
RDF Planet Blogs zum Thema RDF / Semantic Web
http://www.planetrdf.com/
Titel
23456789
Semantic Web Technologien
RDF
Steffen Schlnvoigt, HTWG Konstanz, Wintersemester 2009/10