8. Oktober 2008 FOAF-centric user accounts Teil 2

in Kategorie Semantic Web

Tags: , , ,


Im letzen Teil habe ich das Konzept zu den FOAF-centric user accounts bereits erläutert. Nun soll es darum gehen, wie sich ein solches System in der Praxis umsetzen lässt.

Der persönliche URI

Der URI unserer Musterperson Peter Maier muss dereferenzierbar sein, damit die FOAF-Daten zu ihm überhaupt erst gefunden werden können. Das W3C schlägt hierzu im Artikel »Cool URIs for the Semantic Web« zwei mögliche Lösungswege vor:

  • Hash URIs
    Auf das Beispiel zu Peter Maier übertragen könnte ein Hash URI beispielsweise so aussehen: »http://www.maiers-website.de/person#PM«. Das Raute-Symbol wird beim laden des URIs, wie bei HTTP üblich, weggelassen. Es wird automatisch das Dokument »http://www.maiers-website.de/person« geladen. Dort stehen dann die FOAF-Daten zu Peter Maier. Weil Hash URIs quasi schon immer vorhanden waren, sind sie ganz einfach und ohne größeren Implementierungsaufwand nutzbar.
  • 303 URIs
    Ein 303 URI zu Peter Maier könnte folgender Gestalt sein: »http://www.maiers-website.de/person/PM«. Hier wird nun beim Aufruf über den HTTP Status Code »303 See Other« auf das entsprechende Dokument mit den FOAF-Daten weitergeleitet. Diese HTTP-Weiterleitung ist zum Beispiel auf einem Apache-Server relativ einfach mit mod_rewrite oder mod_redirect umzusetzen. Bei vielen zu verwaltenden URIs wird der Verwaltungsaufwand hier aber ungleich größer.

Bei beiden Verfahren lässt sich zusätzlich Content Negotiation anwenden, um anhand des HTTP-Anfrage-Headers auf das gewünschte Dokumentenformat weiterzuleiten. Mehr dazu findet sich im bereits erwähnt Artikel des W3C.

Der persönliche URI für einen FOAF-centric user account muss also eine solche Gestalt haben. Dann erhält der Dienst, welcher diese Accounts anbietet, mehr oder weniger automatisch die benötigten FOAF-Daten.

OpenID

Wie bereits im ersten Teil erwähnt wird OpenID benötigt, um den User zu authentifizieren. Um den passenden OpenID-URL zu Peter Maier zu finden gibt es auch wieder mehrere Möglichkeiten, wobei ich aber unbedingt die Nutzung von »foaf:openid« empfehlen würde. Sprich in den geladenen FOAF-Daten zu Peter Maier findet sich folgender Eintrag:

<foaf:openid rdf:resource="http://petermaier.myopenid.com"/>

Momentan ist es noch üblich den URL seiner Homepage als OpenID zu verwenden. Hierzu gibt es bereits eine weit verbreitete Möglichkeit auf den entsprechenden OpenID-Provider weiterzuleiten. Deshalb kann der Dienst, wenn »foaf:openid« nicht vorhanden sein sollte, überprüfen, ob »foaf:homepage« ein OpenID-URL ist.

Damit kann nun sofort nach der Eingabe des persönlichen URI eine Authentifizierung erfolgen und der Dienst könnte bereits ohne weitere Angaben nutzbar sein.

Registrierung, ja oder nein?

Könnte? Ja, könnte. Ein Dienst, der nicht viele Angaben zangsläufig benötigt, beispielsweise die Kommentarfunktion in einem Blog, nimmt sich Daten wie den Nickname oder die Email-Adresse. Falls diese Daten im FOAF-Profil nicht vorhanden sein sollten, ist dies nicht weiter schlimm, denn eine Kommentarfunktion ist nicht darauf angewiesen. Hier geht es hauptsächlich um die Authentifizierung zur Spamvermeidung. Ganz im Gegensatz zu komplexeren Diensten, die eben doch zwangsläufig gewisse Daten benötigen. Ein Online-Shop kann seine Packete nur versenden, wenn er auch die Adresse des Kunden kennt. In diesem Fall kann der Dienst die Daten versuchen aus dem FOAF-Profil zu laden und wenn er sie dort nicht vorfindet explizit danach beim erstmaligen Login fragen.

Die Daten im FOAF-Profil des Users werden dann im Normalfall in einer Datenbank auf dem Server des Dienstes gespeichert. Beim Login des Users sollten die Daten aber stehts neu geladen werden, um evtl. Änderungen im FOAF-Profil zu übernehmen. Dadurch kann der Nutzer in allen Accounts gleichzeitig zum Beispiel seine Email-Adresse ändern, was ein weiterer großer Vorteil der FOAF-centric user accounts ist.

Fazit

FOAF-centric user accounts können die Nutzung vieler verschiedener Dienste im Web wesentlich beschleunigen und vereinfachen. Alle Technologien sind dazu vorhanden und auch bereits im Einsatz.
Für weitere Fragen und Diskussionen stehe ich gerne zur Verfügung.

Auf eine Sache in Verbindung mit OpenID möchte ich noch hinweisen: OpenID spezifiziert bereits eine Erweiterung namens »Simple Registration«, damit lassen sich direkt vom OpenID-Provider persönliche Daten abfragen. Allerdings ist diese Lösung im semantischen Web nicht optimal. Ein FOAF-Profil in Verbindung mit weiteren Ontologien bietet ganz andere und viel weitergehende Möglichkeiten, als die hier beschriebenen. OpenID sollte sich meiner Meinung nach deshalb in Zukunft allein auf die Authentifizierung fokussieren.

Ähnliche Artikel


Der Beitrag wurde am Mittwoch, den 8. Oktober 2008 um 13:46 Uhr veröffentlicht und wurde unter Semantic Web abgelegt. du kannst die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.

Kommentare

  1. Am 12. Oktober 2008 um 13:14 Uhr
    Jens gravatar

    Das vorgestellte Konzept finde ich nicht schlecht, allerdings zögere ich zur Zeit noch mich mit der tatsächlichen Realisierung in Projekten auseinanderzusetzen, da einfach noch keine wirklichen, allgemein akzeptierten Standards existieren (bzw. viele unterschiedliche Standards nebeneinander existieren, siehe die im Artikel beschriebene FOAF-Seite und die OpenID Simple Registration).

    Zwar scheint sich OpenID zur Authentifizierung langsam aber sicher als Standard durchzusetzen, wird jedoch von den meisten großen Diensten nicht oder nur halbherzig implementiert (Microsoft kocht mit der Windows LiveID wieder sein eigenes Süppchen, während man seinen Google oder Yahoo-Account zwar dank OpenID auch andernorts benutzen kann, sich bei den Diensten selbst aber nicht mit einer anderen OpenID einloggen kann).

    Ich bin aber durchaus gespannt, was die nähere Zukunft in diesem Bereich noch bringen wird.

  2. Am 12. Oktober 2008 um 19:34 Uhr
    Mario Volke gravatar

    Du hast schon recht, es ist im moment nicht klar wohin der Weg geht. Aber gerade weil sich noch keine Technologie total durchgesetzt hat, sollte man die Chance nutzen und über verschiedenste Konzepte nachdenken. Das Thema wird auf jedenfall noch eine ganze Weile interessant bleiben.

Einen Kommentar schreiben