Oskar Welzl: Weblog zur Homepage

FOAF, SIOC: URI Squatting in RDF

Eigentlich hätte das ja, zur Feier von RDFa, ein Artikel nach dem Muster von „RDFa à la twoday“ werden sollen. Der kommt vielleicht auch noch. Die pure Verzweiflung über den den Umgang mit URIs muß ich mir aber vorher noch von der Seele schreiben.

URIs können (grob vereinfacht) alles bezeichnen: Information über die Preise einer Frühstückspension (wie z.B. http://members.aon.at/neumair/zimmer_de.htm) oder mich als Person (ich habe die URI http://www.welzl.info/id/oskar.welzl). Alles kann (und soll) eine URI haben. Das ist die Grundlage des Semantic Web, damit wird die Möglichkeit geschaffen, über alles und jedes Aussagen zu treffen und diese Aussagen miteinander zu verknüpfen. Nur eines darf nicht passieren: daß für zwei verschiedene Dinge die gleiche URI verwendet wird. Das ist logisch: Wenn wir für Spinat und Schokokuchen das gleiche Wort hätten, wüßte der Kellner nicht, was er bringen soll.

In populären RDF-Vokabularen wie FOAF und SIOC kommen aber Bezeichnungen vor, die dazu verführen, URIs doppelt zu vergeben. In der Praxis passiert auch genau das. Die wichtigsten Vertreter dieser Gattung sind sioc:Forum, foaf:weblog und sioc:Site.

Warum verführen diese Bezeichnungen zur doppelten Vergabe von URIs? Der Klassiker ist sioc:Forum, das URIs als Diskussionsbereich auszeichnet, in dem Einträge gemacht werden. Mein Weblog hier ist ein sioc:Forum. Das Userforum auf internettablettalk.com ist ein sioc:Forum. Was passiert also naheliegenderweise in der Praxis? Eine RDF-Aussage „http://oskar.twoday.net/ ist vom Typ sioc:Forum“ wird angereichert mit Informationen wie „http://oskar.twoday.net/ hat 1455 Postings“ und „Der User Zorra hat einen Artikel auf http://oskar.twoday.net/ geschrieben“. Das sind Aussagen, die bezüglich meines Weblogs korrekt sind.

Dummerweise gibt es aber neben meinem Weblog auch noch etwas anderes, das bezeichnet und beschrieben werden will: die Seite, die der twoday-Webserver beim Aufruf von http://oskar.twoday.net/ zurückliefert. Die Übersichts- oder Einstiegsseite also. Auch sie ist, ebenso wie das Weblog als ganzes, eine information resource. Auch über diese Übersichtsseite möchte ich Aussagen treffen können: daß derzeit 16 Artikel auf ihr zu sehen sind zum Beispiel („http://oskar.twoday.net/ hat 16 Postings“) oder daß sie valides XHTML ist („http://oskar.twoday.net/ ist XHTML 1.0“).

Die Aussagen über mein Weblog als Gesamtheit und über die Übersichts-/Einstiegsseite widersprechen einander bzw. sind für die jeweils andere Ressource nicht wahr: Der User Zora hat zwar einen Eintrag auf meinem Weblog verfaßt, der Eintrag erscheint aber nicht auf der Einstiegsseite. Und auch wenn mein Weblog tatsächlich 1455 Postings hat, für die Einstiegsseite ist diese Aussage falsch, genauso wie die Annahme, das Blog sei in seiner Gesamtheit sei valides XHTML. Das Weblog und die Einstiegsseite sind also zwei unterschiedliche Dinge, die unterschiedliche URIs benötigen. Weil die einzelne Übersichtsseite noch eher das ist, was der Webserver beim Aufruf der URI zurück liefert, hätte ich grundsätzlich vorgeschlagen, für die andere Ressource (also das Weblog, das Forum, …) eine neue URI zu erfinden. Das geht: Im Semantic Web ist das Erfinden neuer URIs für irgendwelche Dinge tägliche Praxis.

Tatsächlich aber werden „da draußen in der Wildnis“ die jeweiligen URIs der Einstiegsseiten von Blogs/Foren/… als Bezeichner für das gesamte Blog/Forum/… verwendet. Das ist zunächst nicht falsch - nur extrem unpraktisch, weil es die Verwendung der gleichen URI für die dazugehörige Einstiegsseite verhindert oder aber zu widersprüchlichen und falschen Aussagen führt.

In meinen ersten Experimenten mit SIOC wollte ich alles richtig (und damit anders als alle anderen) machen: Ich habe für mein Blog die URI http://www.welzl.info/rdf/twoday#oskar.twoday.net erfunden, an dieser Adresse ein paar Daten zum Blog und den Link auf http://oskar.twoday.net/ hinterlegt. Bis heute bin ich der Ansicht, daß das ein korrekter Ansatz war. Je länger ich mich dann aber nicht nur mit dem Erstellen, sondern auch mit dem Verarbeiten und der für Menschen lesbaren Darstellung von RDF-Informationen beschäftigt habe, desto klarer ist mir geworden, daß dieser Ansatz nur beschränkt praxistauglich ist. Das Semantic Web muß die Antwort auf die Frage geben können, welche Informationen zum Weblog mit der Adresse http://oskar.twoday.net/ zur Verfügung stehen. Kein Mensch wird je nach dem von mir erfundenen http://www.welzl.info/rdf/twoday#oskar.twoday.net suchen. Außerdem gehen die meisten Tools zur Darstellung von RDF davon aus, daß man auf Links mit der Eigenschaft foaf:weblog oder sioc:Forum einfach klicken kann, um zum jeweilig Blog oder Forum zu kommen. Diese Annahme ist zwar nicht durch die Spezifikationen gedeckt, aber sie ist verständlich.

Dazu kommt ein anderer Aspekt: Die Trennung in eine URI für „das Blog von Oskar Welzl“ und eine zweite URI für „die Einstiegsseite des Blogs von Oskar Welzl“ würde sich als „best practice guideline“ nie durchsetzen lassen. Es ist einfach zu kompliziert. Gerade die populären FOAF- und SIOC-Vokabulare werden von vielen RDF-Einsteigern genutzt (dazu zähle ich mich selbst), die eine solche Trennung nur durchführen, wenn sie verbindlich im Vokabular verankert statt nur empfohlen ist.

Seit gestern heißt mein Blog im semantischen Web nun wieder http://oskar.twoday.net/ - ich habe zum ersten Mal seit Jahren das Pragmatische über das Richtige gestellt. Seither habe ich Depressionen und Bauchweh. Es stimmt einfach nicht. Es ist nicht richtig. Wie käme man aus dem Dilemma raus?

Am einfachsten und saubersten wäre eine klare Neudefinition in den betroffenen Vokabularen. Im Fall von foaf:weblog könnte das ganz einfach die Änderung der Beschreibung sein: Derzeit ist es definiert als a weblog of some thing (whether person, group, company etc.). Dies könnte geändert werden auf „The entry point of (or place to bookmark for) a weblog of …“. FOAF kennt ein ähnliches Konzept bereits für foaf:accountServiceHomepage: Dort wird in der Definition ausdrücklich auf die homepage of the service Bezug genommen. Bei SIOC ist die Sache etwas komplexer, da sich das gesamte Vokabular mit Konzepten wie „… ist Teil von …“ auf das sioc:Forum (und nicht auf seine Einstiegsseite) bezieht. Hier wird nichts anderes übrig bleiben als das Konzept der Website (als Sammlung von einzelnen Seiten) deutlicher von dem der dazugehörigen Einstiegsseite zu trennen.

Überhaupt würde ich mir ein knappes Vokabular zur Beschreibung einer Website wünschen: Ganz unabhängig von Foren und Blogs beziehen sich RDF-Statements immer wieder auch auf ganze Websites. Es wäre praktisch, wenn man die in solchen Fällen gleich bleibenden Grundstrukturen (Website hat Hauptseite, Seite X gehört zur Website Y, …) sauber in RDF darstellen könnte. (Ein solches Vokabular ließe sich außerhalb von SIOC und FOAF entwickeln und dann von beiden Projekten nutzen.) Derzeit werden durch die Verwendung der URI der Einstiegsseite als Bezeichner für die gesamte Site Aussagen über genau diese Einstiegsseite unmöglich gemacht - URI-Squatting eben.

 
erikhuemer meinte am :
Aha!!! (???) 
schlosser meinte am :
Uuuuaaahhhhh. *Gähn*
Zeit für ein Nickerchen. 
gagalop meinte am :
jaja,
daß hab ich mir natürlich auch schon gedacht aber haben wir da chancen den BZW zu überbrücken, bzw. funkt uns da nicht die DDSG-schaltung rein?

Fragen über Fragen.... :=) 
Deep_Blue meinte am :
Zustimmung
Ich kann dir nur voll inhaltlich zustimmen, möchte aber folgendes ergänzen:

1) Über den Tellerrand hinausblickend positionieren wir uns damit, die Organisation des Projektablaufs temporär zu stabilisieren.

2) In Übereinstimmung mit den Gegebenheiten fordern wir ein, diesen sprachlichen Bombast grenzenlos darzustellen.

3) Unabhängig von der Entwicklung der Konkurrenzsituation ziehen wir die logische Schlussfolgerung, alle Eventualitäten sichtbar zu konvergieren.


Endlich einmal ein sachlicher Artikel, wo es nicht um Essen oder schöne Haare geht, weiter so Ossi :-) 
gagalop antwortete am :
endlich synergien zwischen den reichshälften!
aber:

1.) müssen wir evaluieren ob der FCKW-Kontroller diesem permanenten overmapping eine adäquate Sampling-Quantität entgegenstellen kann.
(dies könnte man im sinne eines durch ein steering genehmigten rollout testen)
2.)muß sichergestellt werden, daß AM ENDE DES TAGES der SPOC bei uns ist und die designsprache den gegebenen marktkriterien entspricht!

Hugh! 
ossi1967 meinte am :
Ich hasse Euch alle!

Gräßliches Pack! Seit über einem Jahr beschäftigt mich dieses Thema und läßt mich nicht schlafen. Endlose Diskussionen auf den einschlägigen Mailing-Lists haben auch nichts gebracht. Ich bin fix und fertig!

Und was krieg ich von Euch? Unterstützung in dieser schweren Stunde? Hinweise auf Lösungsansätze im Web? Nein, nur Hott und Spohn! Ihr seid böse Polinnen! ;)

 
schlosser antwortete am :
"böthe" und nicht "böse" Polinnen.
Das "th" bitte englisch aussprechen.
mit eingeklemmter Zungenspitze zwischen Ober- und Untergebiß. 
gagalop antwortete am :
weils halt so lustig ist mein schatz!
das bisschen computern ist doch nicht so schwer (meint mein schatz),
lalalalaa 
Weitere Links zu …
URI crisis: