Schlagwort-Archive: DBpedia

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.

Du bist nicht deine Website

Auf die Grundprinzipien von Linked Data bin ich bereits eingegangen. Auch einen kurzen Ausflug ins „Web of Data“ haben wir schon gewagt. Nun möchte ich die unterschiedlichen Arten von Ressourcen näher vorstellen. Das Datenweb ist mehr als ein Web aus Dokumenten. Wir können alle möglichen Dinge über URIs identifizieren und Daten über sie abrufbar machen.

Die W3C Technical Architecture Group unterscheidet zwischen Informations- und Nicht-Informationsressourcen. Im WWW ist diese Unterscheidung von untergeordneter Bedeutung, da es quasi nur Informationsressourcen gibt. Darunter fallen nämlich alle Arten von Dokumenten und das WWW ist nunmal ein Web aus Dokumenten. Im Datenweb kommen abstrakte und konkrete „Dinge“ hinzu, die ebenfalls über eine URI identifiziert werden wollen. Dabei handelt es sich dann um Nicht-Informationsressourcen. Denn die Ressourcen sind in diesem Fall keine Informationen, sondern z.B. Personen, Orte, Bücher, Produkte etc.

Die Unterscheidung zwischen Informations und Nicht-Informationsressourcen ist dabei weniger trivial, als auf den ersten Blick scheint. Ein oft gemachter Fehler ist es, die Beschreibung einer Ressource mit der Ressource selbst gleich zu setzen.

Wir wissen dass gemäß der Linked Data Grundprinzipien beim Abruf der ein Ding identizifierenden URI „nützliche Informationen“ bereitgestellt werden müssen. Dazu liefert z.B. ein Webserver ein RDF-Dokument aus. Ich möchte das kurz am Beispiel meiner eigenen FOAF-Datei demonstrieren. Ich (ja tatsächlich ich, nicht die Datei!) werde durch folgende URI im Datenweb identifiziert:

http://data.kontroversen.de/foaf.rdf#me

Beim Abruf mit einem Browser (Egal ob Web- oder Datenbrowser) wird folgende Datei ausgeliefert:

http://data.kontroversen.de/foaf.rdf

Diese Datei ist ein RDF-Dokument, welches Informationen über mich (d.h. die Ressource http://data.kontroversen.de/foaf.rdf#me) enthält. Die Datei und ich sind jedoch zwei völlig unterschiedliche Dinge (Weshalb ich im übrigen auch eine andere URI als die Datei habe). Die Datei ist eine Informationressource identifiziert durch die URI http://data.kontroversen.de/foaf.rdf. Ich bin eine Nicht-Informationsressource identifziert durch http://data.kontroversen.de/foaf.rdf#me.

Einmal verstanden erscheint dies selbstverständlich, führt jedoch anfangs oft zu Verwirrungen und paradoxen RDF-Dokumenten. So hat zum Beispiel die New York Times (erfreulicherweise!) beachtliche Datenbestände als Linked Data verfügbar gemacht. Anfangs wurden dabei jedoch typische Fehler gemacht, die aus der Verwechslung von Informations- und Nicht-Informationsressourcen herrühren.

Die URI http://data.nytimes.com/N31738445835662083893 identifiziert den Schauspieler Paul Newman. Über diese Person finden sich in dem Datensatz leider kaum Informationen, nützlich ist hauptsächlich der Verweis auf die DBpedia. Das ist jedoch nicht wirklich schlimm. Problematisch war eine Zeit lang (mittlerweile wurde es zum Glück korrigiert) die Vermischung von Daten und Metadaten: Was zum Beispiel sagt das Prädikat „dc:creator“ in Bezug auf eine Person aus? Heitere Zeigenossen möchten dort vielleicht die Eltern der Person eintragen, oder Gott, wenn sie gläubig sind. Ganz sicher ist jedoch nicht „The New York Times Company“ der „Ersteller“ von Paul Newman.

Die New York Times hatte die Nicht-Informationsressource „Paul Newman“ mit der Informationsressource verwechselt die ihn beschreibt. Was sie eigentlich ausdrücken wollten ist, dass „The New York Times Company“ der Ersteller des RDF-Dokumentes ist. Das RDF-Dokument ist jedoch eine eigene Ressource und bekommt eine eigene URI.

Die New York Times wurde zwischenzeitlich auf den Fehler hingewiesen und hat ihn korrigiert. Die Informationsressource wird nun über http://data.nytimes.com/N31738445835662083893.rdf identifiziert und „dc:creator“ bezieht sich auf diese Ressource und nicht mehr auf Paul Newman selbst.

Ich hoffe ich konnte die Unterscheidung zwischen Informations- und Nicht-Informationsressource einigermaßen verständlich darlegen. Mir hat dabei der Merkspruch „You are not your Website“ sehr geholfen. Denn im „Web of Data“ gibt es nicht nur deine Website, sondern auch dich selbst. Und das sind natürlich zwei völlig unterschiedliche Dinge.

Data-Browsing – Ein kurzer Ausflug ins Web of Data

Wie versprochen, werden wir das Thema Linked Data nun etwas praktischer angehen. Wenn man mal selbst durch das Datenweb gesurft ist, versteht man viel eher worum es eigentlich geht. Wir brauchen:

  1. Einen Datenbrowser
  2. Einen Einstiegspunkt
  3. Neugier

Es gibt gibt schon einige Datenbrowser, allerdings scheinen die mehr Proof-of-Concept zu sein, als nutzbare Tools. Ich persönlich komme aktuell immer noch am besten mit Tabulator zurecht, obwohl der nicht sonderlich intuitiv zu bedienen ist. Das schöne an Tabulator ist aber, dass es dafür ein Firefox-Addon gibt, das schnell installiert ist. Außerdem lädt Tabulator automatisch „sameAs-Links“ nach, d.h. Daten die unter einer anderen URI verfügbar sind, aber das gleiche Objekt beschreiben werden gleich mitgeladen. Ich werde unsere kleine Erkundungstour durch das Datenweb anhand von Tabulator beschreiben. Wer erstmal nichts installieren mag, kann aber auch einen der Online-Browser verwenden, z.B. den OpenLink Data Explorer, Disco oder Marbles.

Teilweise geht es sogar ganz ohne Datenbrowser, nämlich dann wenn die Datenquellen ihre Daten auch gleich in einer HTML-Variante bereitstellen. Das ist zum Beispiel bei dbpedia.org der Fall. DBpedia ist das Abbild der Wikipedia im Web of Data. Das Projekt liest systematisch Daten aus der Wikipedia aus und veröffentlicht sie als RDF. Unter der URI http://dbpedia.org/resource/Karlsruhe finden sich zum Beispiel Daten zur Stadt Karlsruhe. Ruft man diese URI mit einem normalen Web-Browser ab, werden die Daten als HTML-Dokument angezeigt. Das passiert sogar, wenn man die Tabulator-Erweiterung installiert hat, weil Firefox immer noch primär ein HTML-Browser ist. Wie man das ändern kann erkläre ich in einem späteren Artikel (Tipp für Neugierige: Spielt mal mit Modify Headers am Accept-Header herum). Für den Moment reicht es, explizit die URI http://dbpedia.org/data/Karlsruhe abzurufen, um an die Rohdaten zu kommen [1]. Wir erfahren so tolle Sachen wie die Einwohnerzahl, die Telefonvorwahl und das Bundesland.

Mit Linked Data hat das alles aber noch recht wenig zu tun. Aufgrund der Informationsfülle wird zwar sehr gerne in die DBpedia hinein verlinkt, aber nur sehr wenige Links führen wieder hinaus. Wir suchen uns deshalb einen anderen Startpunkt, am besten von jemandem der sich auskennt: Tim Berners-Lee. Ja, klickt ruhig auf den Link, er führt direkt zu Daten über die Person Tim Berners-Lee, mitsamt einer ganzen Menge Links zu weiterführenden Daten, irgendwo in den Weiten des Webs. Wir erfahren zum Beispiel, dass er der Organisation „World Wide Web Consortium“ angehört und wenn ihr auf den kleinen grauen Pfeil daneben klickt, klappen zusätzliche Infos zu dieser Organisation aus. Wir erfahren auch, dass Berners-Lee der Autor von „Weaving the Web“ ist. Wenn man Shift gedrückt hält, wenn man auf den Pfeil klickt, werden die Daten zu diesem Buch im kompletten Browser-Tab geladen, statt nur ausgeklappt.

Leider stoßen wir dann schon recht schnell an die Grenzen des Datenwebs. Zum Beispiel wird der Verlag des Buches (Harper Paperbacks) zwar genannt, aber nicht verlinkt. Wir können also keine weiteren Daten zum Verlag abrufen. Es liegt an uns allen, diese Grenzen zu sprengen, so wie wir schon das WWW groß gemacht haben und täglich vergrößern. Aber schaut euch einfach mal ein bisschen um, es gibt schon einiges zu entdecken. Unter http://data.kontroversen.de/foaf.rdf#me habe ich auch ein paar Daten über mich online gestellt und mit meinem Identi.ca- sowie Twitter-Account verknüpft. (Ja, dem Thema Datenschutz und informationelle Selbstbestimmung in Bezug zu Linked Data werde ich auch noch einen Beitrag widmen)

So, ich denke das genügt erstmal als kleines, anschauliches Praxisbeispiel bzw. als Startpunkt für eigene Experimente. Bei Fragen und Problemen meldet euch einfach in den Kommentaren.

[1] Genau genommen ist das nicht ganz richtig, denn http://dbpedia.org/data/Karlsruhe verweist auf ein RDF-Dokument mit Daten über die Stadt Karlsruhe, während http://dbpedia.org/resource/Karlsruhe die Stadt selbst identifiziert. Dieser kleine aber feine Unterschied äußert sich auch in der Art wie Tabulator die Daten darstellt.