Ein wichtiger Standard im semantischen Web und damit auch bei Linked Open Data ist XML.
XML
Auch wenn Tim Berners Lees “Design Issues” zu Linked Open Data, XML nicht explizit erwähnen, soll XML hier aufgrund seiner weiten Verbreitung kurz erwähnt werden. Zudem wird RDF, welches an späterer Stelle eingeführt wird, in der Praxis häufig kombiniert mit XML eingesetzt. So ist beispielsweise der Validator des World Wide Web Consortiums für RDF-Dokumente nur XML-Doukente mit eingebetteten RDF lesen, RDF in anderen Notationen kann nicht geparst werden (Stand: März 2011).
Eignung
XML steht für “Extensible Markup Language” was sich auf deutsch als “erweiterbare Auszeichnungssprache” lesen ließe. XML existiert seit 1998 als Empfehlung des World Wide Web Consortiums. Es handelt sich bei XML um eine Markup-Sprache, die ähnlich wie HTML funktioniert, sich jedoch generischer verhält, da es möglich ist eigene Tags zu verwenden und eine eigene logische Struktur für ein beliebiges Dokument anzulegen.
XML eignet sich dabei für verschiedenste Einsatzzwecke, so kann man mit XML Informationen zwischen verschiedenen Anwendungen austauschen (Stichwort: SOAP), da die Dateien plattform und implementierungsunabhängig sind. Zudem können mittels Vektorgrafiken beschreiben (SVG) oder mathematische und chemische Formeln dargstellt (MathML bzw. CML) werden. Die Einsatzzwecke von XML variieren also sehr stark da sich mittels XML Dokumente sehr individuelle Sachverhalte ausdrücken lassen.
Aufbau und Markup
XML-Dokumente besitzen sowohl eine logische als auch eine physische Struktur. Physisch sind XML Dokumente gespeicherte Einheiten (auch: Entities). Logisch hingegen besteht ein XML-Dokument hingegen aus Elementen und Attributen, sowie einem optionalen Prolog. XML strukturiert die einzelnen Informationen der Elemente mittels sogenannter “Tags”. Zur Bildung eines Tags wird einfach ein Begriff in eckige Klammern gesetzt, wobei die einzelnen Tags zudem baumartig verschachtelt werden dürfen. Jedes Tag kann zusätzlich optionale Attribute haben. Die Attribute werden dazu in die Klammern des jeweiligen Tags geschrieben und ihnen in Anfürhungsstrichen ein Wert bzw. eine Referenz zugewiesen. Es können vorgefertigte XML-Tags verwendet werden, XML gestattet es jedoch auch beliebige neue Tags zu definieren. Diese Tags müssen jedoch zuvor in einem speziellen Dokument definiert werden, dem sogenannten Document Type Definition (DTD).
XML Dokumente können durch eine optionale Deklaration über XML-Version und Charakter Encoding eingeläutet werden.
Im Körper eines XML-Dokuments steht zuerst das Wurzelelement. Innerhalb des Wurzelelements können sowohl leere als auch “nicht leere” Elemente vorkommen. “Nicht leere” Elemente beginnen mit einem Start-Tag und enden mit einem End-Tag.
DTDs
DTDs werden dazu verwendet Strukturen und Grammatiken von XML-Dokumenten darzustellen. Es ist in DTD nicht möglich, zwischen Texten und Zahlen zu unterscheiden. Ein weiterer Nachteil ist die Tatsache, dass die DTD in einer eigenen Sprache abgefasst werden muss. Außerdem kennt die DTD keine Namensräume. Falls eigene Tags definiert wurden, sollte eine Referenz zur entsprechenden DTD in dem XML-Dokument angegeben werden.
Beispiele
Das folgende Beispiel zeigt die Angestellten einer Firma und die Hierarchie dieser Mitarbeiter sowie das Geschlecht eines einzelnen Mitarbeiters. Als Wurzel-Element ist das Tag “Firmenangehoerige” anzusehen. Boss der Firma ist “Andrea”, wobei die Hierarchie weitere Bosse kennt. So ist beispielsweise Angela der Boss von Guido. Zu sehen ist dies an der Eigenschaft “MitarbeiterNR” und “NRvonBoss”, die jeweils als Attribute verwendet werden.
Andrea
w
Claudia
w
Angela
w
Guido
m
Hanna
w
Die dazugehörige DTD:
Die Einzelnen Elemente werden jeweils mit Hilfe von eckigen Klammern in denen das Schlüsselwort "Element" gefolgt von dem Namen des Elements steht, deklariert. Nach dem Namen des Elements folgen in runden Klammern welche Elemente innerhalb des jeweiligen Elements vorkommen dürfen. Elemente können innerhalb eines Elements in verschiedensten Anzahlen vorkommen. So darf im oben gezeigten Beispiel das Element "Boss" nur einmal innerhalb des Elements "Firmenangehoerige" vorkommen, kann jedoch auch leer sein. In dem Element Boss hingegen muss zumindest einmal das Element "Mitarbeiter" vorkommen. Das Element "Mitarbeiter" kann beliebig oft innerhalb von sich selbst vorkommen.
Das Beispiel ist an die Hierarchien innerhalb eines Unternehmens angelehnt, so ist davon auszugehen das es nur einen übergeordneten Boss (im Sinne eines Geschäftsführers) für das gesamte Unternehmen gibt. Ein Boss muss jedoch zumindest einen Mitarbeiter haben, da er sonst die Eigenschaft eines Boss nicht erfüllt etc.