Schlagwort-Archive: Linked Data

Linked Data: Mehr als nur RDF

Das Beispiel offenerhaushalt.de zeigt, dass zur Partizipation am Web of Data mehr gehört, als die Veröffentlichung von RDF/XML-Daten. Es lohnt sich dennoch, den Schritt zu „Linked Data“ zu gehen.

Die Veröffentlichung von Daten im RDF-Format gehört zu den Linked Data Grundprinzipien, die Tim Berners-Lee aufgestellt hat. Daher freue ich mich, dass immer mehr Open-Data-Projekte neben JSON und XML, auch Daten in einer RDF-Syntax veröffentlichen.

Das allein reicht aber leider nicht aus, um von Linked Data sprechen zu können, wie ich am Beispiel der RDF/XML-Daten von offenerhaushalt.de zeigen möchte.

Rufen wir uns zunächst die Grundprinzipien noch einmal ins Gedächtnis:

  1. Use URIs as names for things
  2. Use HTTP URIs so that people can look up those names
  3. When someone looks up a URI, provide useful information, using the standards (RDF, SPARQL)
  4. Include links to other URIs. so that they can discover more things

Ich werde diese Prinzipien nun nacheinander mit den RDF-Daten des Haushaltspostens „Bundesministerium für Bildung und Forschung“ von offenerhaushalt.de abgleichen, welche sich im Dokument http://bund.offenerhaushalt.de/30.rdf befinden.

[important]Disclaimer: Auch wenn ich in Sachen Linked Data in diesem Artikel einiges an offenerhaushalt.de zu kritisieren habe, möchte ich dies nicht als generelle Kritik am Projekt verstehen. Im Gegenteil: Ich halte das Projekt für ein Vorzeigebeispiel der Open-Data-Bewegung und spreche allen Beteiligten großen Dank und Respekt aus! Meine Kritik ist im Vergleich zu dem, was bereits geleistet wurde, eine Kleinigkeit. Ich möchte sie eher als Anregung verstanden wissen. Auch bin ich gerne bereit zu helfen, wenn Interesse besteht, die offenen Haushaltsdaten ins Web of Data zu hieven.[/important]

Use URIs as names for things

Wesensmerkmal des Web of Data ist, dass dort nicht nur reine Dokumente („Informationsressourcen„), sondern auch Daten über reale und abstrakte „Dinge“ aufzufinden sind. Diese Dinge benötigen einen global eindeutigen Namen. Genau diese Anforderung erfüllen URIs.

Bei der Namensgebung ist zu beachten, dass das „Ding“ welches beschrieben wird und die Dokumente welche es beschreiben unterschiedlich sind und deshalb auch über unterschiedliche URIs identifiziert werden müssen. Getreu dem Merksatz: „Du bist nicht deine Website„!

Das Datendokument http://bund.offenerhaushalt.de/30.rdf beschreibt ein Subjekt namens http://bund.offenerhaushalt.de/30. Unklar bleibt dabei, um was für eine Art von „Ding“ es sich dabei handelt. Ein rdf:type ist nicht hinterlegt.

Nun liegt die Vermutung nahe, dass bei offenerhaushalt.de Haushaltsposten beschrieben werden. Ruft man jedoch die URI http://bund.offenerhaushalt.de/30 im Browser oder mit Hilfe eines Tools wie curl ab, so wird ein HTML-Dokument zurückgeliefert:

user@pc:~$ curl -I http://bund.offenerhaushalt.de/30
HTTP/1.1 200 OK
Date: Wed, 02 May 2012 18:38:32 GMT
Server: Apache/2.2.14 (Ubuntu)
Pragma: no-cache
Cache-Control: no-cache
Content-Length: 73434
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8

Auch wenn man den Accept-Header explizit auf application/rdf+xml oder text/turtle setzt, wird ausschließlich text/html zurück geliefert.

Bei http://bund.offenerhaushalt.de/30 handelt es sich also schlichtweg um ein herkömmliches HTML-Dokument und nicht um einen Haushaltsposten.

Interessant sind unter diesem Aspekt Aussagen wie zum Beispiel folgende¹:

<http://bund.offenerhaushalt.de/30> openhaushalt:is_department "true".

Das HTML-Dokument ist also eine Abteilung, soso 🙂

Wobei wir streng genommen gar nicht wissen können, was openhaushalt:is_department überhaupt bedeutet. Das Prädikat ist nämlich nicht auflösbar, womit wir beim nächsten Punkt angelangt sind:

Use HTTP URIs so that people can look up those names

Die URI des Prädikats erhält man, indem man das Namespace-Prefix durch die Namespace-URI ersetzt. Für openhaushalt:is_department ergibt sich somit http://offenerhaushalt.de/schema/0.3/is_department. Bei Abruf dieser URI erhält man leider nichts weiter als den HTTP-Fehlercode 404: Not Found. Zwar wurden HTTP-URIs verwendet, diese sind aber nicht abrufbar.

Provide useful information

Bei den abrufbaren URIs scheitert es an „nützlichen Informationen“. Wie schon im ersten Abschnitt bemerkt, liefert http://bund.offenerhaushalt.de/30 lediglich ein HTML-Dokument zurück, wohingegen die RDF-Daten eher auf ein abstraktes „Ding“, wie einen Haushaltsposten oder eine Abteilung, hindeuten.

Dieses „Ding“ müsste zunächst einmal einen eigenen Namen bekommen, z.B. http://bund.offenerhaushalt.de/30#item

Beim Abruf mittels Browser würde durch den Wegfall des Fragment-Identifiers weiterhin das HTML-Dokument http://bund.offenerhaushalt.de/30 ausgeliefert werden, wodurch die „nützlichen Informationen“ zumindest für den menschlichen Klienten weiterhin gewährleistet wären.

Fordert ein Client mittels HTTP-Accept-Header jedoch ausdrücklich RDF, dann muss dieses ebenfalls über die URI http://bund.offenerhaushalt.de/30#item respektive http://bund.offenerhaushalt.de/30 verfügbar sein, da der Client entscheidet, welches Datenformat für ihn nützlich ist. Derzeit wird aber immer HTML ausgeliefert.

Nützlich sind die Daten aber auch deshalb nicht, weil die URIs der Prädikate nicht abrufbar sind. Die verwendete Ontologie ist somit ohne API-Dokumentation nicht zu verstehen. Es bleibt unklar, was Prädikate wie openhaushalt:is_department tatsächlich bedeuten. Die RDF-Daten sind damit kein Zugewinn im Vergleich zu z.B. JSON. Die Semantik fehlt in beiden Varianten.

Include links to other URIs

Die Verlinkung beschränkt sich auf andere URIs innerhalb des Projekts offenerhaushalt.de. Eine Verlinkung ins offene Web of Data findet derzeit nicht statt. Problematisch ist auch hier wieder, dass die URIs lediglich HTML-Dokumente identifizieren und somit auch kein „internes Web of Data“ entsteht. Was bleibt sind RDF/XML-Dokumente mit Links zu HTML-Seiten.

Na und?

Nun stellt sich dem ein oder anderen sicher die Frage, wozu man diese manchmal recht akademisch anmutenden Ansätze überhaupt verfolgen sollte? Die offenen Haushaltsdaten, die derzeit vom Projekt angeboten werden, sind zweifelsohne bereits in der vorliegenden Form sehr wertvoll. Die vorliegenden RDF/XML-Daten bieten aber nach meiner Auffassung keinen Mehrwert gegenüber dem JSON-Format. Im Gegenteil: Sie sind für einen Programmierer eher noch schwerer zu verarbeiten.

In Form von Linked Data können die Daten aber ein Potential entfalten, das deutlich über den Status quo hinaus geht. Eindeutige URIs für Haushaltsposten (nicht die HTML-Seiten!) könnten z.B. auch von anderen Projekten genutzt werden um strukturierte Aussagen über diese Haushaltsposten zu treffen. Denkbar wären zum Beispiel Tools zum Bürgerhaushalt, welche ihre Nutzer die Budgets für die einzelnen Haushaltsposten neu verteilen lassen. Dadurch dass alle über die gleichen (durch URIs global benannten!) Haushaltsposten „sprechen“, ist es dabei völlig egal, auf welchem Server mit welchem Tool solch ein Bürgerhaushalt erstellt wurde. Man kann sich das ähnlich vorstellen wie heute Verlinkungen und Pingbacks in der Blogosphäre, nur dass eben nicht über Dokumente/Blogeinträge „gesprochen“ wird, sondern über Daten und Dinge, wie z.B. Haushaltsposten.

Die Verwendung von einheitlichen Ontologien macht diesen Austausch ebenfalls leichter. Zudem wird eine „API“-Dokumentation letztlich überflüssig, wenn die Prädikate der Ontologien im Web abrufbar sind uns sich auf diese Weise selbst erklären.

Fazit

Das Projekt offenerhaushalt.de stellt RDF/XML-Daten bereit, ist damit aber noch kein Teil des Web of Data. Die folgenden Kritikpunkte zeigten sich bei einem Abgleich mit den Linked Data Prinzipien von Tim Berners-Lee:

  1. URIs identifizieren lediglich Dokumente, aber keine „Dinge“ wie Haushaltsposten.
  2. Die „Ontologie“ besteht nur aus toten Links und ist damit genauso ausdruckslos wie JSON.
  3. Es findet keine Content-Negotiation statt, die Wünsche des Clients werden ignoriert.
  4. Aufgrund von 1. kann es auch keine Links auf „Dinge“ geben. Es entsteht somit kein Web of Data.
  5. Es gibt keine Verlinkungen ins Web of Data.

Werden diese Aspekte angepasst und die Linked Data Prinzipien beachtet, können die Daten von offenerhaushalt.de Teil des Web of Data werden und dadurch ihr volles Potential entfalten.


¹ Zur besseren Lesbarkeit verwende ich hier die TURTLE-Notation, obwohl die Daten im Original als RDF/XML vorliegen. Semantisch macht dies keinen Unterschied. 

Linked Data & Semantic Web auf der SIGINT 2012

Mein Vortrag „Linked Open Data“ wurde für die Konferenz SIGINT des Chaos Computer Clubs angenommen. Mit besonderem Fokus auf die Chancen für die Open Data Bewegung werde ich dort die Grundlagen von Linked Data erläutern.

Aus der Vortragsbeschreibung:

Open Data ist auf dem Vormarsch. Doch es reicht nicht CSV-Daten in ein Zip-Archiv zu packen und zum Download anzubieten. Wenn wir die Stärken von frei verfügbaren Behördendaten voll ausschöpfen wollen, dann müssen wir ein „Web of Data“ schaffen, in dem Rohdaten miteinander verlinkt sind, so wie im WWW HTML-Seiten miteinander verlinkt sind. Der Vortrag stellt das Konzept „Linked Data“ vor, erklärt, wie wir zum „Web of Data“ beitragen können und erläutert das gesellschaftliche Potential von Linked Open Data.

Ebenfalls angekündigt ist der Vortrag „The Semantic Web – Raising of the Dead?“ von Carina Haupt:

A lot of people say that the semantic web is dead, but why is then google announcing that they plan to make the biggest change in their web search ever by introducing it. So, what is the semantic web actually? Which technologies are behind it? Why was it called dead? And why is it coming back?

Das komplette Programm der SIGINT 2012 findet ihr hier.

Die SIGINT ist eine Konferenz zu den Diskursen im digitalen Zeitalter und findet vom 18. bis 20. Mai 2012 im KOMED in Köln statt. Nähere Infos unter http://sigint.ccc.de

 

Schnellstart für Entscheidungsträger

Mit „Linked Open Data: The Essentials – A Quick Start Guide for Decision Makers“ ist kürzlich ein Buch erscheinen, dass Entscheidungsträgern in Unternehmen (und womöglich auch in der Politik?) das Thema Linked Open Data und seine Vorzüge näher bringen will.

Das Buch gibt es nicht nur im Handel, sondern ist auch als PDF herunterladbar. Einer der Autoren beschreibt das Buch wie folgt:

Linked Open Data: The Essentials provides answers to the following key questions:

  • What do the terms Open Data, Open Government Data and Linked Open Data actually mean, and what are the differences between them?
  • What do I need to take into account in developing a LOD strategy?
  • What does my organisation need to do technically in order to open up and publish its datasets?
  • How can I make sure the data is accessible and digestible for others?
  • How can I add value to my own data sets by consuming LOD from others?
  • What can be learned existing best practices?
  • What are the key potentials of sharing and consuming open datasets?

Obwohl das Buch mit unter 70 Seiten nicht sehr lang ist und beim Überfliegen auch sehr übersichtlich aussieht, bin ich leider noch nicht dazu gekommen es zu lesen. Ich möchte es euch trotzdem nicht vorenthalten und werde ein Review nachliefern 🙂 (Wer es schon gelesen hat, darf übrigens auch gerne einen Gastartikel schreiben)

Linked Open Data: Erklärungsvideo

Dir ist noch nicht ganz klar, was Linked (Open) Data eigentlich ist oder warum und wofür es nützlich sein kann? Das folgende knapp vierminütige Erklärungsvideo bringt das Wesentliche knapp und verständlich auf den Punkt:

[important]Hat jemand Lust, das Video auf Deutsch (oder auch andere Sprachen) zu übersetzen oder in irgendeiner Form daran mitzuwirken?[/important]

Folien zum Lightning Talk

Ich habe die Folien vom Linked Data Lightning Talk im Braunschweiger Hackerspace Stratum 0 bei github hochgeladen. Alle Quelldateien habe ich mitgeliefert. Steht alles unter freien Lizenzen und darf gerne weiterverwendet werden.

Das mit den Aufzeichnungen hat leider nicht so hingehauen. Im Stratum-0-Wiki gibt es Links zu Torrent-Dateien, die laut Aussage auf der Mailingliste jedoch nur ungefähr die ersten 3 Talks enthalten, da anschließend der Speicher der SD-Karte ausging… Ja, das mit dem „Lightning“ müssen wir noch üben. Einige Vorträge haben mehr als 20 Minuten gedauert. War aber nichtsdestotrotz ein spannender und lehrreicher Abend.

Die nächsten Talks sind übrigens am Mittwoch, 08.02.2012 (Die Talks werden verschoben, auf wann steht noch nicht fest). Allerdings ohne mich, da ich an diesem Abend einen Vortrag zu Open Data in Wolfenbüttel halte.

Bibliotheksverbund Bayern und KOBV bereichern das Web of Data

Ich bin begeistert! Der Bibliotheksverbund Bayern hat gemeinsam mit dem KOBV (Kooperativer Bibliotheksverbund Berlin-Brandenburg) deren riesige Bestandskataloge als Linked Open Data verfügbar gemacht. Sie bereichern das Web of Data damit um

[…] Beschreibungen zu über 23 Millionen Medien aus 180 wissenschaftlichen Bibliotheken in Bayern, Berlin und Brandenburg. Die Datenbasis umfasst etwa 600 Millionen RDF-Tripel oder 5,5GB als Download

Zunächst dachte ich noch: Schön, aber bestimmt wieder nur ein paar ZIP-Archive zum herunterladen. Es handelt sich jedoch tatsächlich um vollwertige 5-Sterne-Daten! Die Verantwortlichen haben verstanden worum es geht und alles richtig gemacht:

Möglichst viele Links zu anderen Datenbeständen sollen sicherstellen, dass sich die Daten gut in die bestehende LinkedOpenData-Cloud integrieren und keine doppelte Datenpflege stattfindet.

Ein Buch kann sehr eingängig über eine Basis-URI gefolgt von der ISBN-Nummer identifiziert werden:

http://lod.b3kat.de/isbn/<ISBN>

Zum Beispiel identifiziert folgende URI das sehr empfehlenswerte Buch „Clean Code“ von Robert C. Martin:

http://lod.b3kat.de/isbn/0132350882

Da es, wie auch bei diesem Buch, mehrere Ausgaben unter der gleichen ISBN geben kann, werden die unterschiedlichen Ausgaben in folgender Form über einen Katalogschlüssel, die sogenannte BV-Nummer, identifiziert:

http://lod.b3kat.de/title/<BV-Nummer>

Da alle Ausgaben über owl:sameAs von der per ISDN identifizierten Ressource verlinkt sind, ist es jedoch ein leichtes die Ausgaben auch ohne Kenntnis der BV-Nummer aufzuspüren. (Denn was ist einfacher als einem Link zu folgen? 😉 )

Alle Infos zur richtigen Adressierung der Daten sind hier aufgeführt.

[important]Was kann ich nun mit den Daten machen? Verlinken! Wir haben nun für eine gigantische Menge an Büchern und Medien eine URI um sie zu identifizieren. Ich spreche nicht von Links auf eine Amazon-Webseite, es handelt sich um Links auf Bücher! Remember: You are not your Website! Wir können – irgendwo im Web – Rezensionen zu diesen Büchern schreiben und mittels der URIs sagen worauf wir uns beziehen. Wir können in unseren FOAF-Profilen hinterlegen, dass wir diese Bücher mögen, gelesen haben oder besitzen ohne dass wir dazu eine Plattform wie Facebook brauchen. Kurzum: Wir haben die Möglichkeit uns im World Wide Web über diese Bücher auszutauschen und etwas über Sie auszudrücken, ohne dass wir dazu an bestimmte, proprietäre Plattformen und Dienste gebunden sind.[/important]

Darüber hinaus gibt es auch einen SPARQL-Endpoint über den sich die Datenmassen systematisch erschließen lassen. Wer zum Beispiel alle Bücher von  Robert C. Martin ermitteln möchte, kann dies mit folgender Abfrage tun:

PREFIX dc:<http://purl.org/dc/elements/1.1/>
PREFIX dcterms:<http://purl.org/dc/terms/>

SELECT ?uri ?title ?extent WHERE {
  ?uri dc:title ?title;
       dc:creator <http://d-nb.info/gnd/114440964>;
       dcterms:extent ?extent.
}

An diesem Beispiel sieht man auch sehr schön, dass sinnvoll auf andere Datenbestände verlinkt wurde: Die URI http://d-nb.info/gnd/114440964 identifiziert nämlich den Autor Robert C. Martin in den Datenbeständen der Deutschen Nationalbibliothek (Ja, auch die machen erfreulicherweise Linked Data verfügbar!)

Die Bibliotheksverbunde haben hier großartige Arbeit geleistet und bereichern das Web of Data damit sehr!

Picserv: Bilderdienst für das Social Web of Data

Als Teil meines Engagements rund um dezentrale soziale Netzwerke habe ich ein weiteres Projekt gestartet: Einen Bilderdienst à la Twitpic, Arbeitstitel „picserv“.

Zum einen will ich schon lange weg von Twitpic und Co. Solche Dienste sind zwar kostenlos und praktisch, im Kleingedruckten oftmals jedoch nutzerfeindlich. Hinzu kommen die gernerellen Probleme von zentralisierten Diensten, die ich hier beschrieben habe.

Vor einigen Tagen habe ich eine erste Version online genommen, erreichbar unter http://picserv.desone.org. Da meine Serverressourcen begrenzt sind, kann nur ich dort Bilder hochladen. Ihr könnt euch jedoch über Twitter einloggen und Kommentare hinterlassen. Und schließlich ist es ja auch im Sinne der Dezentralisierung, dass sich möglichst viele Menschen eine eigene Instanz von „picserv“ oder ähnlichen Diensten installieren. (Bei Interesse, sagt mir Bescheid)

Als nächstes möchte ich über den Dienst auch Linked Data zur Verfügung stellen, damit die Bilder und Kommentare Teil des Web of Data werden. Auch ein Login über WebID soll möglich werden. Dadurch kann man sein Profil und seine Bilder bei zwei völlig unterschiedlichen Diensten / Servern hosten und trotzdem ist beides im Sinne des „Social Webs“ miteinander verknüpft.

[important]Habt ihr ebenfalls ein interessantes Social-Web-Projekt und möchtet es Teil des Web of Data werden lassen? Ich helfe gerne weiter, wenn ihr noch nicht so richtig wisst wie![/important]

Linked Data Patterns

Wie wähle ich meine URIs richtig? Wie strukturiere ich meine RDF-Daten? Und wie verarbeite ich im Web verfügbare Daten am besten?

Auch im Themenkomplex Linked Data gibt es immer wiederkehrende Problemstellungen, die von anderen längst gelöst wurden. Zum Glück stehen uns auch hier eine Reihe von Patterns und Best Practices zur Verfügung. Leigh Dodds und Ian Davis haben diese in „Linked Data Patterns“ gesammelt und beschrieben. Sicher nichts was man an einem Stück durchliest, aber ein gutes Nachschlagewerk.

Das Buch ist online verfügbar und steht unter einer Creative Commons Lizenz. Es lässt sich als PDF und im EPUB-Format herunterladen.

Linked Data Präsentationsfolien

Letzten Freitag habe ich auf dem Lineas „Skill.Day“ einen Vortrag zum Thema Linked Data gehalten. Leider war das nur eine firmeninterne Veranstaltung und die Folien sind ohne zugehörigen Vortrag eher schwer zu verstehen. Dennoch möchte ich sie nicht vorenthalten. Ihr findet sie auf GitHub. Da die Präsentation unter CC-Lizenz steht und alle Quelldateien beigelegt sind, dürft ihr sie auch gerne für eigene Vorträge zum Thema nutzen und ggf. anpassen. Über einen kurzen Hinweis würde ich mich dann freuen.

Linked Data Social Network

Ich beschäftige mich nicht nur theoretisch mit den Themen Linked Data und dezentralen sozialen Netzwerken, sondern arbeite derzeit auch ganz konkret an einer Social Network Plattform auf Basis von Linked Data. Dass was ich seit gestern online habe, würde ich aber nicht mal als Pre-Alpha bezeichnen, also erwartet nicht zu viel, falls ihr auf den gleich folgenden Link klickt.

Mein Projekt „Desone“ (Decentralized Social Network) hat derzeit auch noch wenig mit „Networking“ zu tun. Es ist eher ein Profil-Hoster und derzeit auch nur für mein eigenes Profil (Anmeldung ist noch nicht möglich, klickt so oft auf Login wie ihr wollt). Editierfunktionen bietet es auch noch nicht (nichtmal für mich selbst). Kommt aber alles noch!

Zum „Network“ wird das ganze aber dann doch wieder, weil Desone natürlich Linked Data bereitstellt. In meiner Bekanntenliste verlinke ich auf meine Kontakte bei identi.ca (StatusNet stellt praktischerweise FOAF bereit) und Twitter (semantictweet.com machts möglich) sowie auf einige wenige Personen die selbst ein FOAF-Profil hosten.

Meine Interessen verlinken zudem auf die DBpedia und mein Wohnort auf geonames.org. Wie ihr seht, sind dank Linked Data also schon sehr viele Angaben möglich, ohne das Desone selbst diese Informationen (z.B. Orte, Interessen) hosten muss. Desone hostet nur das Profil, den Rest stellt praktischerweise das Web of Data bereit.

Genug der langen Rede, schauts euch an, wenn ihr mögt: http://me.desone.org/person/aveltens#me

An die RDF-Daten kommt ihr dank Grails Content-Negotiation auf folgenden Wegen:

Ich werde euch natürlich über das Projekt auf dem Laufenden halten.