Tim Tepaße: Generelle Metadaten über Poster

Beitrag lesen

Hallo Sven,

In diesem Zusammenhang erinnere ich ein Projekt, in dem Bekanntschafts- und Verwandtschaftsgrade durch eine XML-Verlinkungsaktion verdeutlicht wurden.

Du meinst FOAF (Spezifikation)?

Damit man das Rad nun nicht neu erfindet, wäre eine diesbezügliche Recherche sicherlich nicht verkehrt, um herauszufinden, ob das dort definierte Format die Avatar-Aufgabe grundsätzlich auch lösen könnte.

Im Prinzip ja. FOAF mit RDF wird ja inzwischen weniger für die Dokumentation von Beziehungen als für Metadaten über einen selbst genutzt. Im Prinzip könnte man durchaus eines der Elemente foaf:img (in klein foaf:thumbnail) oder eventuell foaf:logo verwenden. Oder wenn das nicht ausreicht, definiert man sich sein eigenen Elemente:

<?xml version="1.0"?>  
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"  
         xmlns:foaf="http://xmlns.com/foaf/0.1/"  
         xmlns:avatar="http://example.org/avatar"  
         xmlns:dc="http://purl.org/dc/elements/1.1/"  
         xmlns:cc="http://web.resource.org/cc/">  
...  
<avatar:avatar>  
  <avatar:ressource rdf:resource="http://krawulske.example.org/~erna/avatar.svg"/>  
  <dc:format rdf:datatype="http://purl.org/dc/terms/IMT">image/svg+xml</dc:format>  
  <avatar:rating>FSK18</avatar:rating>  
  <cc:license rdf:resource="http://creativecommons.org/licenses/by/2.0/de/"/>  
  <avatar:expires>2005-12-31T23:59+01:00</avatar:expires>  
</avatar:avatar>  
...  
</rdf:RDF>

Oder man definiert natürlich gleich einen Namensraum „posting“ mit entsprechenden Elementen, die alles mitteilen, was eine Software über einen Poster wissen könnte, wenn einem die FOAF-Elemente nicht ausreichen oder man Abweichung von deren Daten haben will.

Ein paar Probleme dabei: Die Syntax der XML-Serialisierung von RDF, natürlich. Nicht jeder wird damit umgehen können. Mal abgesehen davon, dass es nicht nur eine  kanonische XML-Serialisierung eines RDF-Graphen gibt. D.h. streng genommen müsste man eigentlich einen (langsamen) RDF-Parser nutzen, statt eines halbwegs flotten Text- oder XML-Parsers. Mal ganz abgesehen davon, dass Sören-Kevin, Erna Krawulskes Großneffe, der ihr alles einrichtet, zwar HTML kann, aber von XML, XML mit Namensräumen oder gar RDF/XML noch nichts gehört hat. Wie so viele. Natürlich, es gibt Tools, mit denen man sich inzwischen FOAF-Profile zusammenklicken kann, das hilft schon etwas. Allerdings könnte diese Information in jedem beliebigen RDF-Graphen stehen - und diese werden in der XML-Serialisierung sehr sehr schnell komplex. Man gucke sich nur molilys RDF-Metadaten an - und die generiert er nur aus den marginalen Informationen, die selbst HTML Quelltext stehen.

Das Problem ist einfach der Mangel an Einfachheit. Selbst für RDF/FOAF Autodiscovery braucht man schonmal ein valides, wohlgeformtes (X)HTML-Dokument, damit man mit seinem SGML/XML oder Tag Soup Parser die Angabe <link rel="meta" type="application/rdf+xml" title="FOAF" href="http://krawulske.example.com/~erna/foaf.rdf" /> rausfischen kann. Dazu kommt noch das Parsen des RDF/XML-Graphens.

Ich habe damals Jeena vor alles deswegen zur Übernahme des Pingback Autodiscovery Algorithmus geraten, weil es einfach und in Rechenzeit preiswerter ist, entweder den HTTP Header oder mittels Regulärem Ausdruck das link-Element rauszuholen als wild in der Gegend rumzuparsen. Und vor allem, weil er vor genau demselben Problem stand. Und natürlich weil sein Problem genau das gleiche war.

Bei einer ständigen Angabe eines RDF oder FOAF Metadatendatei entfällt das natürlich, auch wenn man es im Prinzip dazu spezifizieren könnte, um die Leute nicht mit einem Formularfeld mit dem kryptischen Namen „FOAF“ zu verwirren. Bliebe höchstens das Problem der XML-Serialisierung des RDF-Graphen. Bei einer begrenzten Anwendung wäre da ein eigener XML-Dialekt oder noch besser ein Flatfile einfacher zu erstellen und einfach und performanter zu parsen. Ich würde das vorziehen.

Tim