Schlagwort-Archive: Linked Data

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.

Das Web als Social Network

Linked Data eignet sich hervorragend um Soziale Netzwerke im Web abzubilden, die genauso dezentral funktionieren wir das altbekannte WWW. Wie ich bereits erklärt habe, gibt es im „Web of Data“ nicht nur Dokumente, sondern alle möglichen „Dinge“ können durch URIs identifiziert werden. Zu diesen „Dingen“ gehören auch Personen und ihre Beziehungen.

Zunächst müssen wir uns dazu noch einmal ins Gedächtnis rufen, dass Personen und die Dokumente, die sie beschreiben, zwei völlig unterschiedliche Dinge sind: You are not your Website!

Folgende URI identifiziert mich als Person: http://data.kontroversen.de/foaf.rdf#me

Man beachte das #me am Ende! Diese URI ist eine andere URI als http://data.kontroversen.de/foaf.rdf (ohne #me). Beide URIs führen im Web-Browser zwar zum gleichen RDF-Dokument, nur die letztere jedoch identifizert das RDF-Dokument, während http://data.kontroversen.de/foaf.rdf#me die Person „Angelo Veltens“ identifiziert.

Das abgerufene Dokument enthält RDF-Daten über die Resource http://data.kontroversen.de/foaf.rdf#me (mich), unter anderem meinen Namen und ein Verweis auf ein Bild von mir. Die Datei ist damit so etwas ähnliches wie ein Social-Network-Profil und legt damit den Grundstein für ein dezentrales soziales Netzwerk mit Hilfe von Linked Data.

Aber wie zur Hölle kann ich jetzt Freundschaften schließen, Status-Updates senden, Bilder sharen, Sachen liken, kommentieren, anstupsen, retweeten?! Eins nach dem anderen.

Beziehungen zwischen Personen sind sehr leicht über RDF-Tripel zum Ausdruck zu bringen. Die FOAF-Ontologie bietet zum Beispiel das Prädikat foaf:knows um zu sagen „A kennt B“. (Da FOAF sich prima für Social Networks eignet, ist auch häufig vom „FOAF-Profil“ die Rede, auch wenn natürlich weitere Ontologien im Profil verwendet werden können) Ein Beispiel aus meinem Profil:

<http://data.kontroversen.de/foaf.rdf#me>
  <foaf:knows>
    <http://fcns.eu/people/andrei/card#me>

Hinter http://fcns.eu/people/andrei/card#me verbirgt sich Andrei Sambra, was ein einfacher Abruf der URI verrät. Dank Content-Negotiation liefert ein normaler Webbrowser bei seiner URI sogar eine menschenlesbare HTML-Datei aus. Das habe ich für mein Profil leider noch nicht eingerichtet, kommt aber noch!

Jetzt mag das alles für Laien noch etwas kompliziert erscheinen, aber genausowenig wie man heute nicht mehr manuell an HTML-Dateien herumeditieren muss um ein Blog zu betreiben, wird man schon bald kein RDF mehr verstehen müssen um sein eigenes Profil im Social Web zu hosten. Es wird Anbieter geben, bei denen man mit wenigen Klicks ein Profil anlegen kann und wer mag installiert sich eine kleine Software auf seinem eigenen Webspace / Server um sein Profil zu hosten. Der Knackpunkt ist: Egal wo auch immer euer Profil liegt und wo die eurer Freunde liegen: Ihr könnt euch miteinander vernetzen. Ihr könnt euch nennen wie ihr möchtet. Ihr allein könnt bestimmen wem ihr welche Daten preisgebt. Ihr seid nicht von der Willkür einzelner Anbieter wie Google und Facebook abhängig. Das Web wird zum Social Network. Das gesamte Web mit all seinen Inhalten und Möglichkeiten!

Damit sind wir beim nächsten Punkt: Alles im Web lässt sich über Linked Data verknüpfen. Fotos, Videos, Blogartikel… Alles was im Web ist, hat auch eine URI und ich kann damit Aussagen treffen wie z.B.

<http://data.kontroversen.de/foaf.rdf#me>
  <ex:likes>
    <http://datenwissen.de/2011/09/das-web-als-social-network/>

um kenntlich zu machen, dass ich diesen Blogartikel „mag“. Ich kann Bilder hochladen wo immer ich möchte und sie mit meinem Profil verknüpfen. Ich kann Sie auf meinen eigenen Server laden. Oder bei Flickr. Das Social Web ist vollkommen dezentral. Nicht nur sind die einzelnen Profile auf viele verschiedenen Server verteilt, auch die Daten meines Profils kann ich beliebig im Web verteilen. Ein paar Bilder auf Flickr, ein paar in meinem Blog, Status-Updates bei Anbieter A, Social Bookmarks bei Anbieter B. Und das alles mit nur einem einzigen Profil, dass sich unter meiner Kontrolle befindet.

Um dies technisch zu ermöglichen muss ich mich in irgendeiner Form auf anderen Servern, bzw. bei den unterschiedlichen Anbietern mit meinem Profil „einloggen“ können. Erfreulicherweise arbeitet das W3C gerade an WebID, einem Protokoll, welches bereits heute mit allen Browsern funktioniert, da es auf SSL-Zertifikaten basiert, welche schon seit Jahrzehnten unterstützt werden. Mit WebID ist ein Login per Mausklick, ohne Username und Passwort, möglich. Ich werde das aber in einem späteren Artikel erklären, für heute soll es erst einmal reichen.

Ich hoffe es ist ungefähr klar geworden, wie ein dezentrales Social Web mit Hilfe von Linked Data möglich wird. Ansonsten zögert nicht Rückfragen zu stellen! Wer gleich ausprobieren möchte, was heute bereits möglich ist, der kann sich bei http://foaf.me/ oder http://webid.fcns.eu/ ein FOAF-Profil anlegen und sich mit mir verlinken. Egal wo ihr eurer Profil eingerichtet habt, könnt ihr dann hier etwas an die Wall posten.

Aktuelle Projekte

Dieses Blog kam ja leider noch nicht so richtig in die Gänge, aber das soll sich nun ändern. Durch Landtagswahlkampf und Umzug hatte ich mich einige Monate auch fast nicht mit Linked Data und Co. befasst. Das hat sich in letzter Zeit wieder geändert und soll sich auch in diesem Blog wiederspiegeln.

Mein Hauptaugenmerk liegt derzeit auf dezentralen sozialen Netzwerken mit semantischen Technologien. Was es damit auf sich hat, werde ich demnächst mal näher erläutern. Wer es eilig hat liest sich diesen Artikel durch und googelt ein bisschen nach FOAF+SSL und WebID. Beim nächsten Braunschweiger Webmontag wird es bei Interesse auch eine kleine Präsentation dazu von mir geben.

Seit Tabulator nicht mehr in aktuellen Firefox-Versionen läuft, mangelt es mir an zufriedenstellenden RDF-Browsern, weshalb ich begonnen habe einen eigenen zu entwickeln. Falls jemand einen Tipp für einen guten Browser hat, würde ich mir die Arbeit aber gerne sparen.

Da ich mittlerweile die Sprache Groovy für mich entdeckt habe und diese die Entwicklung von Domain Specific Languages sehr einfach macht, entwickle ich derzeit eine solche DSL für die Generierung von RDF-Daten. Das ist schon ziemlich weit fortgeschritten und wird demnächst von mir veröffentlicht.

Soweit erstmal zum Stand der Dinge.

Linked Data Thesaurus

Linked Data Thesaurus ist ein kleines Projekt von mir, das die Daten von openthesaurus.de als Linked Data verfügbar macht. OpenThesaurus ist ein freies deutsches Synonymwörterbuch, welches seine Daten auch über eine offene API zur Verfügung stellt. Allerdings liefert diese API lediglich unverlinkte XML-Dokumente aus. Der Linked Data Thesaurus ergänzt den Dienst, indem die Daten zusätzlich in Form von RDF bereitgestellt werden. Ein Begriff bekommt beim Linked Data Thesaurus eine URI der folgenden Form:

http://thesaurus.datenwissen.de/Begriff#term

Synonyme zum Begriff „Daten“ sind somit unter folgender URI abrufbar:

http://thesaurus.datenwissen.de/Daten#term

Es handelt sich dabei um eine Nicht-Informationsressource. Der Fragmentbezeichner #term wird wie üblich beim Abruf per Browser abgetrennt und die Informationsressource http://thesaurus.datenwissen.de/Daten wird vom Server zurückgeliefert. Abhängig vom HTTP-Accept-Header liefert Linked Data Thesaurus entweder ein RDF/XML- (application/rdf+xml) oder Turtle-Dokument (text/turtle) aus. Im Firefox kann der Accept Header mit dem Plugin Modify Headers geändert werden. Andernfalls werden die originalen XML-Daten der OpenThesaurus-API zurückgeliefert! Im Folgenden erkläre ich den Aufbau der Daten anhand des Turtle-Formats und dem Begriff „Daten“. Der Begriff selbst ist vom Typ Label aus der SKOS-XL Ontologie. Das eigentliche Textliteral wird inklusive Sprachangabe über das Attribut skosxl:literalForm angefügt:

<Daten#term>
  a <http://www.w3.org/2008/05/skos-xl#Label>;
  <http://www.w3.org/2008/05/skos-xl#literalForm> "Daten"@de.

OpenThesaurus gruppiert Synonyme in sogenannten SynSets. Dabei handelt es sich um Gruppen von Begriffen mit der gleichen Bedeutung. Ein Begriff mit mehreren Bedeutungen kommt somit in unterschiedlichen SynSets vor, mit jeweils unterschiedlichen Synonymen die den jeweiligen Bedeutungen entsprechen. Zum Beispiel ist das Wort Schild zum einen in einem SynSet mit „Schutzwaffe“ und in einem anderen mit „Zeichen“.

Ein SynSet wird durch den Linked Data Thesaurus als skos:Concept abgebildet. Der abgefragte Begriff wird über das Attribut skosxl:prefLabel angefügt und alle Synonyme über skosxl:altLabel. Hier eines der SynSets in denen der Begriff „Daten“ vorkommt:

<#synset1>
  a <http://www.w3.org/2004/02/skos/core#Concept>;
  <http://www.w3.org/2008/05/skos-xl#altLabel>
    <Informationen#term>,
    <Angaben#term>,
    <Aussagen#term>,
    <Datensammlung#term>,
    <Unterlagen#term>;
  <http://www.w3.org/2008/05/skos-xl#prefLabel>
    <Daten#term>.

Ich freue mich über Feedback zum Linked Data Thesaurus und über die Art und Weise wie die Daten strukturiert sind. Es ist sicherlich noch nicht der Weisheit letzter Schluss, aber ein Anfang. Der OpenThesaurus stellt noch ein paar mehr Daten bereit, die ich gerne noch einbinden möchte und auch eine Verlinkung mit Lexvo.org habe ich bereits im Hinterkopf.

Wer mitarbeiten möchte kann sich gerne an mich wenden, oder einfach den Quellcode von GitHub beziehen und loslegen.

Neues Blog über Linked Data und verwandte Themen

Ab sofort blogge ich unter datenwissen.de über Linked Data und verwandte Themen. Ich habe mich dazu entschlossen, diesen Themenkomplex aus meinem ersten Blog auszugliedern, da ich mich dort hauptsächlich mit politischen Themen befasse. Eher technisch angehauchte Artikel gehen dort leicht unter und wurden zum Teil als störend empfunden.

Die Grenze lässt sich allerdings nicht so leicht ziehen, wie dies auf den ersten Blick scheint. Linked Data, das Semantische Web und natürlich das Thema Open Data haben eine beachtenswerte politische Dimension. Deshalb wird es sicher auch zu Überschneidungen und einigen Referenzen zwischen den Blogs kommen.

Mit dem Blog verfolge ich das Ziel, das Thema Linked Data in der deutschen Blogosphäre bekannter zu machen. Es gibt leider noch sehr wenige deutsche Infos zu dem Thema. Neben eher theoretischen Artikeln werde ich hier auch Projekte beschreiben, an denen ich arbeite.

Ich bin gespannt wie sich dieses Blog entwickelt und freue mich über Rückmeldungen. Alle alten Artikel zum Thema Linked Data habe ich bereits von kontroversen.de hierher kopiert. Als Einstieg in die sehr interessante Thematik empfehle ich neben diesen vor allem meinen Beitrag „Warum wir Daten verlinken müssen“.