Your SlideShare is downloading. ×
0
Semantic Web Technologien Lehrveranstaltung Semantic Web Technologien WS 2009/10  HTWG Konstanz
Sprachen des Semantic Web RDF Resource Description Framework
Sprachen des Semantic Web - RDF <ul><li>XML verwendet Baumstrukturen zur Darstellung von Informationen
Hervorragend geeignet zur Organisation hierarchischer Daten (Wie beispielsweise in Dokumenten)
Baumstrukturen können gezielt durchsucht und verarbeitet werden </li></ul>
Sprachen des Semantic Web - RDF <ul><li>Die Baumstruktur von XML hat aber auch Nachteile </li><ul><li>Modellierung von Sac...
Beispiel: </li><ul><li>Das Auto-Modell “Golf” wird von Volkswagen hergestellt: <stelltHer>   <Hersteller>Volkswagen</Herst...
Sprachen des Semantic Web - RDF <ul><li>Daraus resultieren diverse Probleme: </li><ul><li>Die Beschreibung der Daten ist n...
Probleme beim Zusammenführen von Daten aus mehreren Quellen (Datenintegration)
Die Informationen im WWW sind dezentral organisiert und folgen nicht unbedingt einer hierarchischen Struktur </li></ul><li...
Sprachen des Semantic Web - RDF <ul><li>Das Semantic Web verwendet Graphen an Stelle von Bäumen als Datenmodell </li><ul><...
Sowohl Knoten als auch Kanten haben eindeutige Bezeichner </li></ul><li>Beispiel:
Dieses Datenmodell wird als RDF (Resource Description Framework) bezeichnet </li></ul>http://example.org/wirdHergestelltVo...
Sprachen des Semantic Web - RDF <ul><li>RDF </li><ul><li>Offizieller Standard des W3C Alle wichtigen Dokumente dazu unter:...
Zunächst 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 später mehr) </li></ul></ul>
Sprachen des Semantic Web - RDF <ul><li>Bestandteile von RDF </li><ul><li>Ressourcen / Resources </li><ul><li>Etwas, das b...
Erlauben Aussagen über Dinge, die wir nicht genau identifizieren können oder wollen
Müssen bei der Verarbeitung besonders behandelt werden </li></ul></ul></ul>
Sprachen des Semantic Web - RDF <ul><li>Literale </li><ul><li>Repräsentation von Datenwerten
Darstellung von Zeichenketten
Können einen Datentyp besitzen (siehe XSD)
Wenn kein Datentyp angegeben wird, behandelt man Literale meist als Zeichenketten (ist aber nicht genauer definiert) </li>...
Sprachen des Semantic Web - RDF <ul><li>Probleme: </li><ul><li>Darstellung als Grafik nur sinnvoll, solange der Graph rech...
Wie speichert man einen Graphen? </li></ul><li>Lösung </li><ul><li>Zerlegung des Graphen in kleine Bestandteile
Überführung der Bestandteile in Zeichenketten
Nacheinander abspeichern </li></ul></ul>
Sprachen des Semantic Web - RDF <ul><li>Wie unterteilt man Graphen? </li><ul><li>Grundsätzlich mehrere Ansätze möglich
Im Falle des Semantic Web wird ein Graph in Aussagen unterteilt </li></ul><li>-> Bestandteile von RDF Graphen sind Aussage...
Sprachen des Semantic Web - RDF <ul><li>RDF-Triple
Ähnlich wie in der Linguistik
Erlaubte Belegung: </li><ul><li>Subjekt: URI oder leerer Knoten
Prädikat:  URI
Objekt: URI, leerer Knoten oder Literal </li></ul><li>Durch eindeutige Bezeichnung von Knoten und Kanten kann ursprünglich...
Sprachen des Semantic Web - RDF <ul><li>Beispiel: </li></ul>http://example.org/wirdHergestelltVon http://example.org/hatFi...
Sprachen des Semantic Web - RDF <ul><li>Serialisierung von Triplen </li><ul><li>RDF beschränkt sich nicht auf ein einzelne...
N3 / N-Triples / Turtle </li><ul><li>Simple Auflistung von Triplen </li></ul><li>RDF/XML </li><ul><li>Serialisierung der T...
TriG
RDF/JSON
RDF/YAML  ;-)
... </li></ul></ul></ul>
Sprachen des Semantic Web - RDF <ul><li>N3 / N-Triples / Turtle </li><ul><li>Darstellung von RDF-Graphen als Ansammlung vo...
N3 (Notation 3) </li><ul><li>1998 von Tim Berners-Lee vorgeschlagen
Beinhaltet auch komplexe Ausdrücke wie Pfade und Regeln </li></ul><li>N-Triples </li><ul><li>2004 als offizielle Recommend...
Teilmenge von N3 mit weniger Komplexität </li></ul><li>Turtle </li><ul><li>N-Triples hatte zu wenig Funktionalität
-> Turtle erweitert N-Triples </li><ul><li>z.B. Um eine Kurzschreibweise </li></ul></ul><li>N-Triples und Turtle sind im W...
Sie beschränken sich allerdings auf zulässige RDF-Graphen </li></ul></ul>
Upcoming SlideShare
Loading in...5
×

3 - Sprachen Des Semantic Web - RDF

2,203

Published on

Vorlesung Semantic Web Technologien, HTWG Konstanz WS 2009/2010.

Veranstaltung #3

Mit dem Resource Description Framework (RDF) steigen wir nun richtig in die Sprachen des Semantic Web ein.
Es wird der Graph als Datenmodell des RDF und dessen Zerlegung in Triple aus Subjekt, Prädikat und Objekt behandelt.
Mit RDF/XML, Turtle und RDFa werden die wichtigsten Serialisierungsformate für RDF-Graphen besprochen. Anschließend beschäftigen wir uns mit den Details von RDF wie der Behandlung von Literalen (inkl. Datatypes und Sprachangaben), Blind Nodes, Listen und Collections.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,203
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "3 - Sprachen Des Semantic Web - RDF"

  1. 1. Semantic Web Technologien Lehrveranstaltung Semantic Web Technologien WS 2009/10 HTWG Konstanz
  2. 2. Sprachen des Semantic Web RDF Resource Description Framework
  3. 3. Sprachen des Semantic Web - RDF <ul><li>XML verwendet Baumstrukturen zur Darstellung von Informationen
  4. 4. Hervorragend geeignet zur Organisation hierarchischer Daten (Wie beispielsweise in Dokumenten)
  5. 5. Baumstrukturen können gezielt durchsucht und verarbeitet werden </li></ul>
  6. 6. Sprachen des Semantic Web - RDF <ul><li>Die Baumstruktur von XML hat aber auch Nachteile </li><ul><li>Modellierung von Sachverhalten oft unklar / uneinheitlich
  7. 7. Beispiel: </li><ul><li>Das Auto-Modell “Golf” wird von Volkswagen hergestellt: <stelltHer> <Hersteller>Volkswagen</Hersteller> <Modell>Golf</Modell> </stelltHer> <Hersteller name=”Volkswagen”> <stelltHer Modell=”Golf /> </Hersteller> <Modell> <Name>Golf</Name> <Hersteller>Volkswagen</Hersteller> </Modell> </li></ul></ul></ul>
  8. 8. Sprachen des Semantic Web - RDF <ul><li>Daraus resultieren diverse Probleme: </li><ul><li>Die Beschreibung der Daten ist nicht intuitiv
  9. 9. Probleme beim Zusammenführen von Daten aus mehreren Quellen (Datenintegration)
  10. 10. Die Informationen im WWW sind dezentral organisiert und folgen nicht unbedingt einer hierarchischen Struktur </li></ul><li>=> Baumstruktur ist für das Semantic Web als Datenmodell nicht geeignet </li></ul>
  11. 11. Sprachen des Semantic Web - RDF <ul><li>Das Semantic Web verwendet Graphen an Stelle von Bäumen als Datenmodell </li><ul><li>Menge von Knoten, verbunden durch gerichtete Kanten/Pfeile
  12. 12. Sowohl Knoten als auch Kanten haben eindeutige Bezeichner </li></ul><li>Beispiel:
  13. 13. Dieses Datenmodell wird als RDF (Resource Description Framework) bezeichnet </li></ul>http://example.org/wirdHergestelltVon http://vw.de/Modelle#Golf http://autohersteller.de/Volkswagen
  14. 14. Sprachen des Semantic Web - RDF <ul><li>RDF </li><ul><li>Offizieller Standard des W3C Alle wichtigen Dokumente dazu unter: http://www.w3.org/RDF/
  15. 15. Zunächst nur zur Beschreibung von Metadaten über Webseiten gedacht
  16. 16. Codierung von strukturierten Informationen
  17. 17. Universell, maschinenlesbar, zum Austausch geeignet
  18. 18. Kann in diverse Formate “serialisiert” werden (zum Beispiel, aber nicht nur, XML – Dazu später mehr) </li></ul></ul>
  19. 19. Sprachen des Semantic Web - RDF <ul><li>Bestandteile von RDF </li><ul><li>Ressourcen / Resources </li><ul><li>Etwas, das beschrieben werden soll -> Die Knoten </li></ul><li>Literale / Literals </li><ul><li>Datenwerte ohne separate Existenz </li></ul><li>Eigenschaften / Properties </li><ul><li>Die Beziehungen zwischen Ressourcen und anderen Ressourcen oder Literalen -> gerichtete Kanten </li></ul><li>URIs (Uniform Resource Identifiers) </li><ul><li>Eindeutige Identifizierung von Ressourcen und Properties </li></ul><li>Leere Knoten / Blank Nodes </li><ul><li>Ressourcen, denen (u.U. noch) keine URI zugewiesen ist
  20. 20. Erlauben Aussagen über Dinge, die wir nicht genau identifizieren können oder wollen
  21. 21. Müssen bei der Verarbeitung besonders behandelt werden </li></ul></ul></ul>
  22. 22. Sprachen des Semantic Web - RDF <ul><li>Literale </li><ul><li>Repräsentation von Datenwerten
  23. 23. Darstellung von Zeichenketten
  24. 24. Können einen Datentyp besitzen (siehe XSD)
  25. 25. Wenn kein Datentyp angegeben wird, behandelt man Literale meist als Zeichenketten (ist aber nicht genauer definiert) </li></ul><li>Es können keine Aussagen über Literale getroffen werden! </li></ul>http://example.org/wirdHergestelltVon http://example.org/hatFirmensitzIn http://example.org/wirdProduziertSeit http://example.org/anzahlModellGenerationen http://vw.de/Modelle#Golf http://autohersteller.de/Volkswagen “ Wolfsburg” 1974 6
  26. 26. Sprachen des Semantic Web - RDF <ul><li>Probleme: </li><ul><li>Darstellung als Grafik nur sinnvoll, solange der Graph recht klein ist </li><ul><li>Praktisch bestehen Datensätze aber aus Tausenden oder Millionen von Kanten und Knoten </li></ul><li>Zur Verarbeitung in Maschinen denkbar ungeeignet
  27. 27. Wie speichert man einen Graphen? </li></ul><li>Lösung </li><ul><li>Zerlegung des Graphen in kleine Bestandteile
  28. 28. Überführung der Bestandteile in Zeichenketten
  29. 29. Nacheinander abspeichern </li></ul></ul>
  30. 30. Sprachen des Semantic Web - RDF <ul><li>Wie unterteilt man Graphen? </li><ul><li>Grundsätzlich mehrere Ansätze möglich
  31. 31. Im Falle des Semantic Web wird ein Graph in Aussagen unterteilt </li></ul><li>-> Bestandteile von RDF Graphen sind Aussagen/Statements in Form von Triplen </li></ul>
  32. 32. Sprachen des Semantic Web - RDF <ul><li>RDF-Triple
  33. 33. Ähnlich wie in der Linguistik
  34. 34. Erlaubte Belegung: </li><ul><li>Subjekt: URI oder leerer Knoten
  35. 35. Prädikat: URI
  36. 36. Objekt: URI, leerer Knoten oder Literal </li></ul><li>Durch eindeutige Bezeichnung von Knoten und Kanten kann ursprünglicher Graph wieder aus Liste von Triplen rekonstruiert werden </li></ul>http://example.org/wirdHergestelltVon Prädikat Objekt Subjekt http://vw.de/Modelle#Golf http://autohersteller.de/Volkswagen
  37. 37. Sprachen des Semantic Web - RDF <ul><li>Beispiel: </li></ul>http://example.org/wirdHergestelltVon http://example.org/hatFirmensitzIn http://example.org/wirdProduziertSeit http://example.org/anzahlModellGenerationen http://vw.de/Modelle#Golf http://autohersteller.de/Volkswagen “ Wolfsburg” 1974 6 http://autohersteller.de/Volkswagen http://vw.de/Modelle#Golf http://vw.de/Modelle#Golf
  38. 38. Sprachen des Semantic Web - RDF <ul><li>Serialisierung von Triplen </li><ul><li>RDF beschränkt sich nicht auf ein einzelnes Format zur Serialisierung
  39. 39. N3 / N-Triples / Turtle </li><ul><li>Simple Auflistung von Triplen </li></ul><li>RDF/XML </li><ul><li>Serialisierung der Triple nach XML </li></ul><li>RDFa (RDF in attributes) </li><ul><li>Einbettung von Triplen in (X)HTML </li></ul><li>Und viele andere: </li><ul><li>TriX
  40. 40. TriG
  41. 41. RDF/JSON
  42. 42. RDF/YAML ;-)
  43. 43. ... </li></ul></ul></ul>
  44. 44. Sprachen des Semantic Web - RDF <ul><li>N3 / N-Triples / Turtle </li><ul><li>Darstellung von RDF-Graphen als Ansammlung von Triplen
  45. 45. N3 (Notation 3) </li><ul><li>1998 von Tim Berners-Lee vorgeschlagen
  46. 46. Beinhaltet auch komplexe Ausdrücke wie Pfade und Regeln </li></ul><li>N-Triples </li><ul><li>2004 als offizielle Recommendation des W3C verabschiedet
  47. 47. Teilmenge von N3 mit weniger Komplexität </li></ul><li>Turtle </li><ul><li>N-Triples hatte zu wenig Funktionalität
  48. 48. -> Turtle erweitert N-Triples </li><ul><li>z.B. Um eine Kurzschreibweise </li></ul></ul><li>N-Triples und Turtle sind im Wesentlichen Teile von N3
  49. 49. Sie beschränken sich allerdings auf zulässige RDF-Graphen </li></ul></ul>
  50. 50. Sprachen des Semantic Web - RDF <ul><li>Turtle-Syntax: </li><ul><li>Triple werden nacheinander niedergeschrieben
  51. 51. URIs werden in spitze Klammern eingefasst
  52. 52. Literale werden in Anführungszeichen gestellt
  53. 53. Jede Aussage endet mit einem Punkt </li></ul><li>Beispiel: < http://vw.de/Modelle#Golf > < http://example.org/wirdHergestelltVon > < http://autohersteller.de/Volkswagen > . < http://vw.de/Modelle#Golf > <http://example.org/anzahlModellGenerationen> “6” . < http://vw.de/Modelle#Golf > <http://example.org/wirdProduziertSeit> “1974” . < http://autohersteller.de/Volkswagen > < http://example.org/hatFirmensitzIn > “Wolfsburg” . </li></ul>
  54. 54. Sprachen des Semantic Web - RDF <ul><li>Abkürzung von URIs durch Namespaces </li><ul><li>Zur Vermeidung von Verwechslungen dürfen abgekürzte URIs nicht mehr in spitzen Klammern notiert werden
  55. 55. Es empfiehlt sich, verständliche Abkürzungen zu wählen
  56. 56. Ein Bezeichner “Präfix:Name” wird auch Qname genannt </li></ul><li>Beispiel: @prefix ex: <http://example.org/>. @prefix vwmodell: <http://vw.de/Modelle#> . @prefix hersteller: <http://autohersteller.de/> . vwmodell:Golf ex:wirdHergestelltVon hersteller:Volkswagen . vwmodell:Golf ex:anzahlModellGenerationen “6” . vwmodell:Golf ex:wirdProduziertSeit “1974” . hersteller:Volkswagen ex:hatFirmensitzIn “Wolfsburg” . </li></ul>
  57. 57. Sprachen des Semantic Web - RDF <ul><li>Zusammenfassung von Triplen </li><ul><li>Triple mit dem selben Subjekt können zusammengefasst werden </li><ul><li>Subjekt muss dann nur einmal notiert werden
  58. 58. Aussagen werden durch Semikolon getrennt </li></ul><li>Gibt es zu einem Subjekt und einem Prädikat mehrere Objekte, können diese durch Kommata getrennt notiert werden </li></ul><li>Beispiel: @prefix ex: <http://example.org/>. @prefix vwmodell: <http://vw.de/Modelle#> . @prefix hersteller: <http://autohersteller.de/> . vwmodell:Golf ex:wirdHergestelltVon hersteller:Volkswagen ; ex:anzahlModellGenerationen “6” ; ex:wirdProduziertSeit “1974” . hersteller:Volkswagen ex:hatFirmensitzIn “Wolfsburg” ; ex:hatProduktionsstandort “Wolfsburg”, ”Dresden”, “Bratislava”, “Pamplona” . </li></ul>
  59. 59. Sprachen des Semantic Web - RDF <ul><li>RDF/XML </li><ul><li>Turtle ist für Menschen und Maschinen leicht lesbar
  60. 60. RDF wird trotzdem am häufigsten nach XML serialisiert
  61. 61. Warum? </li><ul><li>Fehlende Programmbibliotheken für Turtle
  62. 62. Jede Programmiersprache unterstützt XML
  63. 63. Oft auch: XML ist man bereits gewohnt! </li></ul><li>Gibt es keine Probleme mit den unterschiedlichen Datenmodellen (XML-Bäume vs. RDF-Graphen)? </li><ul><li>NEIN: XML gibt lediglich syntaktische Struktur des Dokuments vor
  64. 64. ABER: XML ist hierarchisch aufgebaut
  65. 65. -> Kodierung von RDF-Triplen muss ebenfalls hierarchisch erfolgen </li></ul></ul></ul>
  66. 66. Sprachen des Semantic Web - RDF <ul><li>RDF/XML Syntax: </li><ul><li>Wurzelelement aller RDF/XML Dokument ist rdf:RDF ( rdf = “http://www.w3.org/1999/02/22-rdf-syntax-ns#” )
  67. 67. Ressourcen werden durch Elemente mit dem XML-Name rdf:Description beschrieben </li><ul><li>Attribut “about” gibt die URI an
  68. 68. Mit Attribut “ID” kann einer Ressource innerhalb eines Dokuments eine feste ID zugewiesen werden, die von anderen Triplen referenziert werden kann.
  69. 69. Eine ID darf nur einmal innerhalb eines Dokuments vorkommen
  70. 70. Der Wert von “ID” entspricht dem Fragment-Teil einer URI
  71. 71. “about” und “ID” dürfen nicht gleichzeitig bei einem Description-Element vorkommen
  72. 72. Empfehlung: Auf ID weitestgehend verzichten (Außer bei der Erstellung von Vokabularen) </li></ul></ul></ul>
  73. 73. Sprachen des Semantic Web - RDF <ul><li>RDF/XML Beispiel: <?xml version=”1.0” encoding=”utf-8”?> <rdf:RDF xmlns:rdf=” http://www.w3.org/1999/02/22-rdf-syntax-ns #” xmlns:ex=” http://example.org/ ” xmlns:vwmodell=” http://vw.de/Modelle #” xmlns:hersteller=” http://autohersteller.de/ ” > <rdf:Description rdf:about=” http://vw.de/Modelle#Golf ”> <ex:wirdHergestelltVon> <rdf:Description rdf:about=” http://autohersteller.de/Volkswagen ” /> </ex:wirdHergestelltVon> </rdf:Description> <rdf:Description rdf:about=” http://vw.de/Modelle#Golf ”> <ex:anzahlModellGenerationen>6</ex:anzahlModellGeneration> </rdf:Description> <rdf:Description rdf:about=” http://vw.de/Modelle#Golf ”> <ex:wirdProduziertSeit>1974</ex:wirdProduziertSeit> </rdf:Description> <rdf:Description rdf:about=”http://autohersteller.de/Volkswagen”> <ex:hatFirmensitzIn>Wolfsburg</ex:hatFirmensitzIn> </rdf:Description> </rdf:RDF> </li></ul>
  74. 74. Sprachen des Semantic Web - RDF <ul><li>RDF/XML Beispiel - Zusammenfassung: <?xml version=”1.0” encoding=”utf-8”?> <rdf:RDF xmlns:rdf=” http://www.w3.org/1999/02/22-rdf-syntax-ns #” xmlns:ex=” http://example.org/ ” xmlns:vwmodell=” http://vw.de/Modelle #” xmlns:hersteller=” http://autohersteller.de/ ” > <rdf:Description rdf:about=” http://vw.de/Modelle#Golf ”> <ex:wirdHergestelltVon> <rdf:Description rdf:about=” http://autohersteller.de/Volkswagen ” > <ex:hatFirmensitzIn>Wolfsburg</ex:hatFirmensitzIn> </rdf:Description> </ex:wirdHergestelltVon> <ex:anzahlModellGenerationen>6</ex:anzahlModellGeneration> <ex:wirdProduziertSeit>1974</ex:wirdProduziertSeit> </rdf:Description> </rdf:RDF> </li></ul>
  75. 75. Sprachen des Semantic Web - RDF <ul><li>RDF/XML Beispiel – Weitere Verkürzungen </li><ul><li>Literale können als Attribute dargestellt werden
  76. 76. rdf:resource zur Referenzierung von Ressourcen <?xml version=”1.0” encoding=”utf-8”?> <rdf:RDF xmlns:rdf=” http://www.w3.org/1999/02/22-rdf-syntax-ns #” xmlns:ex=” http://example.org/ ” xmlns:vwmodell=” http://vw.de/Modelle #” xmlns:hersteller=” http://autohersteller.de/ ” > <rdf:Description rdf:about=” http://vw.de/Modelle#Golf ” ex:anzahlModellGenerationen=”6” ex:wirdProduziertSeit=”1974” > <ex:wirdHergestelltVon rdf:resource=”http://www.autohersteller.de/Volkswagen” /> </rdf:Description> <rdf:Description rdf:about=”http://www.autohersteller.de/Volkswagen” ex:hatFirmensitzIn=”Wolfsburg” /> </rdf:RDF> </li></ul></ul>
  77. 77. Sprachen des Semantic Web - RDF <ul><li>ENTITYs zur Abkürzung von URIs </li><ul><li>Durch Definition von ENTITYs (siehe XML-Vorlesung) können lange Textstrings abgekürzt werden
  78. 78. Dies können wir in Attributwerten verwenden <?xml version=”1.0” encoding=”utf-8”?> <!DOCTYPE rdf:RDF [ <!ENTITY rdf &quot; http://www.w3.org/1999/02/22-rdf-syntax-ns #&quot;> <!ENTITY vwmodell “http://vw.de/Modelle#”> <!ENTITY hersteller “http://autohersteller.de/”> ]> <rdf:RDF xmlns:rdf=” http://www.w3.org/1999/02/22-rdf-syntax-ns #” xmlns:ex=” http://example.org/ ” xmlns:vwmodell=” http://vw.de/Modelle #” xmlns:hersteller=” http://autohersteller.de/ ” > <rdf:Description rdf:about=”&vwmodell;Golf”> <ex:wirdHergestelltVon> <rdf:Description rdf:about=”&hersteller;Volkswagen” > <ex:hatFirmensitzIn>Wolfsburg</ex:hatFirmensitzIn> </rdf:Description> </ex:wirdHergestelltVon> </rdf:Description> </rdf:RDF> </li></ul></ul>
  79. 79. Sprachen des Semantic Web - RDF <ul><li>Darstellung von RDF in XML ist sehr vielfältig </li><ul><li>RDF/XML Beispiele beschreiben sicher nicht den gleichen XML-Baum
  80. 80. Aber den gleichen RDF-Graphen!!! </li></ul><li>W3C-Validator für RDF-XML: </li><ul><li>http://www.w3.org/RDF/Validator
  81. 81. Kontrolliert RDF/XML Dokumente auf Gültigkeit
  82. 82. Gibt in XML-Dokument enthaltene Triple aus
  83. 83. Kann eine grafische Darstellung des Graphs erstellen: </li></ul></ul>
  84. 84. Sprachen des Semantic Web - RDF <ul><li>Probleme mit RDF/XML </li><ul><li>URIs enthalten mindestens einen Doppelpunkt (Nach dem Schema) </li><ul><li>Unzulässig in XML-Namen
  85. 85. -> Namensräume sind elementarer Bestandteil der Codierung </li></ul><li>Namensräume können nur für Element- und Attributnamen verwendet werden – nicht in Attributwerten </li><ul><li>Selbe URI muss an verschiedenen Stellen des XML-Dokuments unterschiedlich notiert werden </li></ul><li>Diverse weitere Probleme </li><ul><li>Direkt nach ':' (z.B. Bei Element-Namen) darf in XML kein '-' auftauchen </li><ul><li>Obwohl in URIs ohne weiteres erlaubt -> Definition von Hilfsnamensräumen </li></ul><li>Unzulässige Sonderzeichen in URIs werden häufig mit % kodiert </li><ul><li>%20 steht für Leerzeichen usw.
  86. 86. In Attributwerten unproblematisch – In Element-Namen ist % verboten </li></ul></ul></ul><li>Die meisten Probleme werden von RDF-Bibliotheken abgefangen </li></ul>
  87. 87. Sprachen des Semantic Web - RDF <ul><li>XHTML+RDFa Beispiel <html xmlns=” http://www.w3.org/1999/xhtml ” xmlns:rdf=” http://www.w3.org/1999/02/22-rdf-syntax-ns #” xmlns:ex=” http://example.org/ ” xmlns:vwmodell=” http://vw.de/Modelle #” xmlns:hersteller=” http://autohersteller.de/ ” > <head> <title>XHTML+RDFa Beispiel</title> </head> <body> <div about=” http://vw.de/Modelle#Golf ” > <h2 property=”ex:ModellName” >Golf</h2> <label>Aktuelle Modellgeneration:</label> <span property=”ex:anzahlModellGenerationen” >6</span> <label>Prokuktionsbeginn:</label> <span property=”ex:wirdProduziertSeit” >1974</span> <label>Hersteller:</label> <div rel=”ex:wirdHergestelltVon” resource=” http://autohersteller.de/Volkswagen ” > <h3 property=” ex:herstellerName” >Volkswagen</h3> <label>Firmensitz:</label> <span property=”ex:hatFirmensitzIn” >Wolfsburg</span> </div> </div> </body> </html> </li></ul>
  88. 88. Sprachen des Semantic Web - RDF <ul><li>TriX Beispiel: <?xml-stylesheet type=”text/xml” href=” http://www.w3.org/2004/03/trix/all.xsl ” ?> <TriX xmlns=”http://www.w3.org/2004/03/trix/trix-1/” xmlns:ex=” http://example.org/ ” xmlns:vwmodell=” http://vw.de/Modelle #” xmlns:hersteller=” http://autohersteller.de/ ” > <graph> <uri> http://example.org/graph1 </uri> <triple> <qname>vwmodell:Golf</qname> <qname>ex:wirdHergestelltVon</qname> <qname>hersteller:Volkswagen</qname> </triple> <triple> <qname>vwmodell:Golf</qname> <qname>ex:anzahlModellGenerationen</qname> <integer>6</integer> </triple> <triple> <qname>vwmodell:Golf</qname> <qname>ex:wirdProduziertSeit</qname> <integer>1974</integer> </triple> <triple> <qname>hersteller:Volkswagen</qname> <qname>ex:hatFirmensitzIn</qname> <plainLiteral>Wolfsburg</plainLiteral> </triple> </graph> </TriX> </li></ul>
  89. 89. Sprachen des Semantic Web - RDF <ul><li>Datentypen für Literale </li><ul><li>Definieren, wie Literale interpretiert werden sollen
  90. 90. Beispiel: xsd:decimal
  91. 91. Bei xsd:decimal gilt “3.14” = “+03.14”
  92. 92. Bei xsd:String gilt das nicht! </li></ul></ul>“ 3.14” “ 3.14000” “ +03.14” “ -2.5 “ 100.00” 3,14 -2,5 100 Lexikalischer Bereich Wertebereich
  93. 93. Sprachen des Semantic Web - RDF <ul><li>Datentypen in RDF </li><ul><li>Bisher haben wir “ungetypte” Literale verwendet </li><ul><li>-> Verwendung wie Zeichenketten </li></ul><li>Typisierung erlaubt semantischen Umgang mit Werten
  94. 94. Datentypen werden identifiziert durch URIs
  95. 95. Datentypen sind frei wählbar
  96. 96. Datentypen können selbst bestimmt werden
  97. 97. Meistens verwendet man die xsd-Datentypen </li></ul><li>Schreibweise von typisierten Attributwerten: </li><ul><li>“Datenwert”^^Datentyp-URI </li></ul></ul>
  98. 98. Sprachen des Semantic Web - RDF <ul><li>Datentypen-Beispiel:
  99. 99. Turtle: @prefix xsd: < http://www.w3.org/2001/XMLSchema #> . < http://example.org/persons#12343 > < http://example.org/Geburtstag > “1981-06-21”^^xsd:date .
  100. 100. XML <rdf:Description rdf:about=” http://example.org/persons#12343 > <ex:Geburtstag rdf:datatype=” http://www.w3.org/2001/XMLSchema#date ”> 1981-06-21 </ex:Geburtstag> </rdf:Description> </li></ul>http://example.org/Geburtstag http://example.org/persons#12343 “ 1981-06-21”^^http://www.w3.org/2001/XMLSchema#date
  101. 101. Sprachen des Semantic Web - RDF <ul><li>rdf:XMLLiteral wird von RDF vordefiniert </li><ul><li>Bezeichnet (balancierte) XML-Fragmente
  102. 102. Hat spezielle Syntax in RDF/XML: <rdf:Description rdf:about=”&vwmodell;Golf”> <ex:Herstellername rdf:parseType=”Literal”> <b>VW</b> - Volkswagen </ex:Herstellername> </rdf:Description> </li></ul></ul>
  103. 103. Sprachen des Semantic Web - RDF <ul><li>Sprachangaben bei Datentypen </li><ul><li>Können nur bei ungetypten Literalen verwendet werden
  104. 104. -> Entweder Datentyp oder Sprachangabe
  105. 105. Beispiel: <rdf:Description rdf:about=”&vwmodell;Golf”> <ex:ModellName xml:lang=”de”>Golf</ex:ModellName> <ex:ModellName xml:lang=”en”>Rabbit</ex:ModellName> </rdf:Description> </li></ul></ul>
  106. 106. Sprachen des Semantic Web - RDF <ul><li>Mehrwertige Beziehungen </li><ul><li>Kochen mit RDF: “Für die Zubereitung von Chutney benötigt man 450g grüne Mango, einen Teelöffel Cayennepfeffer, ...”
  107. 107. Erster Modellierungsversuch:
  108. 108. @prefix ex: < http://example.org > . ex:Chutney ex:hatZutat “450g grüne Mango”, “1TL Cayennepfeffer” .
  109. 109. Nicht zufriedenstellend, da Zutaten und Menge in einer Zeichenkette vermischt sind </li><ul><li>-> Suche nach Rezepten mit grüner Mango nicht möglich </li></ul></ul></ul>
  110. 110. Sprachen des Semantic Web - RDF <ul><li>Mehrwertige Beziehungen </li><ul><li>Kochen mit RDF: “Für die Zubereitung von Chutney benötigt man 450g grüne Mango, einen Teelöffel Cayennepfeffer, ...”
  111. 111. Zweiter Modellierungsversuch:
  112. 112. @prefix ex: < http://example.org > . ex:Chutney ex:hatZutat ex:grueneMango; ex:Menge “450g” ; ex:hatZutat ex:Cayennepfeffer; ex:Menge “1TL” .
  113. 113. Noch schlimmer, da keine Zuordnung mehr zwischen Menge und konkreter Zutat mehr möglich ist </li></ul></ul>
  114. 114. Sprachen des Semantic Web - RDF <ul><li>Problem: </li><ul><li>Es handelt sich um eine echte dreiwertige (auch: ternäre) Beziehung:
  115. 115. Direkte Darstellung innerhalb von RDF nicht möglich
  116. 116. Lösung: Einführung von Hilfsknoten </li></ul></ul>Gericht Zutat Menge Chutney Grüne Mango 450g Chutney Cayennepfeffer 1TL
  117. 117. Sprachen des Semantic Web - RDF <ul><li>Darstellung als Graph:
  118. 118. Turtle Syntax (verwendet rdf:value): @prefix ex: < http://example.org > . @prefix rdf: < http://www.w3.org/1999/02/22-rdf-syntax-ns #> . ex:Chutney ex:hatZutat ex:ChutneyZutat1 . ex:ChutneyZutat1 rdf:value ex:grueneMango ; ex:Menge “450g” . </li></ul>http://example.org/hatZutat http://example.org/Menge http://example.org/Zutat http://example.org/Chutney http://example.org/ChutneyZutat1 450g http://example.org/grueneMango
  119. 119. Sprachen des Semantic Web - RDF <ul><li>Leere Knoten (Blank Nodes, Bnodes) </li><ul><li>Verwendung für Ressourcen, die eigentlich keine eigene Identifizierung benötigen
  120. 120. Häufig verwendet bei Hilfsknoten
  121. 121. Siehe letztes Beispiel: </li></ul></ul>http://example.org/hatZutat http://example.org/Menge http://example.org/Zutat http://example.org/Chutney 450g http://example.org/grueneMango
  122. 122. Sprachen des Semantic Web - RDF <ul><li>Leere Knoten </li><ul><li>RDF/XML-Syntax <rdf:Description rdf:about=”&ex;Chutney”> <ex:hatZutat rdf:nodeID=”id1” /> </rdf:Description> <rdf:Description rdf:nodeID=”id1”> <ex:Zutat rdf:resource=”&ex;grueneMango” /> <ex:Menge>450g</ex:Menge> </rdf:Description>
  123. 123. Verkürzt <rdf:Description rdf:about=”&ex;Chutney”> <ex:hatZutat rdf:nodeID=”id1” > <ex:Zutat rdf:resource=”&ex;grueneMango” /> <ex:Menge>450g</ex:Menge> </ex:hatZutat> </rdf:Description> </li></ul></ul>
  124. 124. Sprachen des Semantic Web - RDF <ul><li>Leere Knoten </li><ul><li>Turtle-Syntax @prefix ex: < http://example.org > . ex:Chutney ex:hatZutat _:id1 . _:id1 ex:Zutat ex:grueneMango ; ex:Menge “450g”.
  125. 125. Verkürzt @prefix ex: < http://example.org > . ex:Chutney ex:hatZutat [ ex:Zutat ex:grueneMango ; ex:Menge “450g” ]. </li></ul></ul>
  126. 126. Sprachen des Semantic Web - RDF <ul><li>Listen in RDF </li><ul><li>Datenstrukturen zur Aufzählung von Ressourcen mit relevanter Reihenfolge (z.B. Autoren eines Buches)
  127. 127. Unterscheidung zwischen </li><ul><li>Offene Listen (Container) Können jederzeit erweitert werden
  128. 128. Geschlossene Listen (Collections) Neue Einträge können nicht hinzugefügt werden </li></ul><li>Besitzen keine zusätzliche Ausdrucksstärke, da auch mit bereits behandelten Mitteln modellierbar </li></ul></ul>
  129. 129. Sprachen des Semantic Web - RDF <ul><li>Graph
  130. 130. In RDF/XML (verkürzt) <rdf:Description rdf:about=”&ex;SemanticWeb”> <ex:Autoren> <rdf:Seq> <rdf:li rdf:resource=”&ex;Hitzler” /> <rdf:li rdf:resource=”&ex;Krötzsch” /> <rdf:li rdf:resource=”&ex;Rudolph” /> <rdf:li rdf:resource=”&ex;Sure” /> </rdf:Seq> </ex:Autoren> </rdf:Description> </li></ul>ex:Autoren rdf:type rdf:_1 rdf:_2 rdf:_3 rdf:_4 ex:Rudolph rdf:Seq ex:Hitzler ex:Krötzsch ex:SemanticWeb ex:Sure
  131. 131. Sprachen des Semantic Web - RDF <ul><ul><li>Der Listentyp wird dem Listenknoten mit dem Prädikat rdf:type zugewiesen
  132. 132. Folgende Typen sind im RDF definiert: </li><ul><li>rdf:Seq georndete Liste (Sequenz)
  133. 133. rdf:Bag ungeordnete Menge, reihenfolge nicht von Belang
  134. 134. rdf:Alt Menge alternativer Möglichkeiten aus denen immer nur eine Relevanz besitzt </li></ul></ul></ul>
  135. 135. Sprachen des Semantic Web - RDF <ul><li>Collections
  136. 136. Zerlegung der Liste in Kopfelemente und Restliste
  137. 137. Wenn Restliste = rdf:nil, ist das Ende erreicht </li></ul>ex:Autoren rdf:first rdf:rest rdf:rest rdf:rest rdf:rest rdf:first rdf:first rdf:first ex:Rudolph rdf:nil ex:Hitzler ex:Krötzsch ex:SemanticWeb ex:Sure
  138. 138. Sprachen des Semantic Web - RDF <ul><li>Collections </li><ul><li>RDF/XML-Syntax <rdf:Description rdf:about=”&ex;SemanticWeb”> <ex:Autoren rdf:parseType=”Collection” > <rdf:Description rdf:about=”&ex;Hitzler”> <rdf:Description rdf:about=”&ex;Krötzsch”> <rdf:Description rdf:about=”&ex;Rudolph”> <rdf:Description rdf:about=”&ex;Sure”> </ex:Autoren> </rdf:Description>
  139. 139. Turtle @prefix ex: < http://example.org > . ex:SemanticWeb ex:Autoren ( ex:Hitzler ex:Krötzsch ex:Rudolph ex:Sure ) . </li></ul></ul>
  140. 140. Sprachen des Semantic Web - RDF <ul><li>Verbreitung von RDF </li><ul><li>Große Anzahl an Tools und Bibliotheken für RDF </li><ul><li>Die meisten davon frei (Open Source) verfügbar </li></ul><li>Es existieren diverse Systeme zum effizienten Umgang mit riesigen RDF-codierten-Datenmengen </li><ul><li>Sogenannte Triple-Stores </li></ul><li>Auch kommerzielle Anbieter wie Oracle implementieren zunehmend RDF-Unterstützung
  141. 141. Diverse Datenformate basieren auf RDF: </li><ul><li>RSS 1.0
  142. 142. XMP (Adobe)
  143. 143. SVG </li></ul></ul></ul>
  144. 144. Sprachen des Semantic Web - RDF <ul><li>Bewertung </li><ul><li>Etablierter und gut unterstützter Standard zur Speicherung und zum Austausch von Daten
  145. 145. Weitgehend syntaxunabhängige Darstellung durch abstraktes, graphenbasiertes Datenmodell
  146. 146. Gut geeignet zur Vereinigung von Daten aus verschiedenen Quellen </li></ul><li>Kritik </li><ul><li>Reines RDF codiert eigentlich nur Informationen über Individuen / Ressourcen
  147. 147. Es besteht praktisch keine Möglichkeit zur Codierung von Schemawissen -> Siehe RDF Schema </li></ul></ul>
  148. 148. Sprachen des Semantic Web - RDF Noch Fragen ?
  149. 149. Sprachen des Semantic Web - XML <ul><li>Literatur: </li><ul><li>Buch “Semantic Web Grundlagen”, Springer Verlag 2008 Pascal Hitzler, Markus Krötzsch, Sebastian Rudolph, York Sure ISBN: 978-3-540-33993-9
  150. 150. RDF Webseite http://www.w3.org/RDF/
  151. 151. Resource Description Framework Primer F. Manola, E. Miller W3C Recommendation, 10 th February 2004 http://www.w3.org/TR/rdf-primer
  152. 152. RDF Planet – Blogs zum Thema RDF / Semantic Web http://www.planetrdf.com/ </li></ul></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×