RSS unter der Lupe: die vorhandenen Elemente

Webloginhalte exportieren :: christian_koeppe_berlin, 15. Januar 2004, 23:44

Um auf die von Hr. Mittendorfer gestellte Frage näher eingehen zu können (welche Inhalte noch über RSS verfügbar gemacht werden können), möchte ich erst einmal die vorhandenen Möglichkeiten vorstellen. Es gibt verschiedene Definitionen, welche zur Beschreibung genutzt werden: RSS sowie die Module Syndication und Dublin Core (DC).

Die Elemente in RSS

<rdf:RDF>

Das Wurzelelement eines jeden RSS-Dokuments. Es assoziiert den rdf: Namespace mit dem Syntaxschema.

<channel>

Das Channel-Element enthält Metadaten, welche den Channel als solchen beschreiben. Im Attribut rdf:about steht meist eine URL, welche den Channel identifiziert.

<title>

Ein beschreibender Titel für den Channel.

<link>

Eine URL, zu der in HTML-Darstellung gelinkt wird. (wird in Feed-Readern genutzt)

<description>

Eine kurze Beschreibung des Channels, bei uns enthält diese z.B. den Inhalt einer Story.

<image>

Ein optionales Element zur Verlinkung eines Bildes. Im Attribut rdf:resource wird dann die URL angegeben. Das Image-Element enthält die Tags <title> für den Titel des Bildes, <link> für den Link zur Herkunft des Bildes sowie <url> für die URL-Adresse des Bildes selbst.

<items>

Enthält eine Liste aller Items des Channels, welche später separat definiert werden. Die Liste befindet sich innerhalb des <rdf:Seq>-Tags, die einzelnen Items werden mit <rdf:li resource="item_uri" /> angegeben. Diese Angaben müssen mit den später definierten Items übereinstimmen, sonst werden sie evtl. von Feed-Readern nicht bearbeitet.

<textinput>

Stellt eine Verbindung mit dem optionalen textinput-Element und dem Channel her.

<item>

Vom Element item können beliebig viele in einem RSS-Dokument stehen (empfohlen wird jedoch eine Begrenzung auf 15, bei uns hat diese Begrenzung zum Beispiel bei dem RSS-Feed auf Blogebene eher gestört, da alle Stories eines Blogs ausgelesen werden sollen). Innerhalb des Item-Elements werden folgende weitere Elemente benutzt:
- <title> für den Titel des Items
- <link> für die URL des Items
- <description>für eine Kurzbeschreibung des Items, bei uns ist es der Inhalt
- <textinput> um Formulardaten zu übergeben (spielt bei uns derzeit keine Rolle)

Die Elemente des Syndication-Moduls

Diese Elemente werden mit dem Namespace sy: versehen.

<sy:updatePeriod>

Beschreibt die Periode, in welcher der Channel erneuert wird. Mögliche Werte sind: hourly, daily, weekly, monthly und yearly.

<sy:updateFrequency>

Beschreibt die Häufigkeit, mit welcher der Channel innerhalb der angegebenen Periode erneuert wird. Als Wert werden demzufolge ganze Zahlen erwartet, wobei als Defaultwert 1 angenommen wird.

<sy:updateBase>

Definiert ein Basisdatum als Ausgangswert für die obigen Einstellungen. Der Wert muss in der Form yyyy-mm-ddThh:mm angegeben werden.

Die Elemente des Dublin Core-Moduls

Mit Hilfe dieser Elemente können die Angaben noch wesentlich verfeinert werden.

<dc:title>

Der Titel der Ressource, z.B. der Storytitel oder der Blogname.

<dc:creator>

Der verantwortliche Autor des inhalt der Ressource.

<dc:subject>

Das Thema des Inhalts der Ressource, stimmt bei uns mit dem Titel überein. Vielleicht kann man hier auch das zugeordnete Thema des jeweiligen Blogs ausgeben, werd ich mal prüfen.

<dc:description>

Eine kurze Beschreibung des Inhalts der Ressource, stimmt bei uns mit dem gesamten inhalt überein.

<dc:publisher>

Die Person, Organisation oder der Service, welche die Ressource zur Verfügung stellen.

<dc:contributor>

Personen, Organisationen etc. welche zum Inhalt der Ressource beigetragen haben.

<dc:date>

Typischerweise das Erstellungsdatum der Ressource.

<dc:type>

Wird benutzt zur inhaltlichen Beschreibung der Art des Inhalts.

<dc:format>

Die physische oder digitale Form der Ressource, z.B. der MIME-Medientyp.

<dc:identifier>

Ein Wert zur formalen Identifikation der Ressource, z.B. eine URL, ein Digital Object Identifier oder auch eine ISBN-Nummer.

<dc:source>

Eine Referenz auf eine Ressource, von der die vorliegende abgeleitet wurde.

<dc:language>

Die Sprache, welche für den Inhalt benutzt wurde, z.B. "en" für englisch.

<dc:relation>

Eine Referenz auf eine zur vorliegenden in Beziehung stehenden Ressource.

<dc:coverage>

Das Umfeld bzw. der kontext, in welchem der Inhalt der Ressource zu sehen ist. Beispiel wäre eine zeitliche Periode oder geografische Angaben.

<dc:rights>

Informationen über die Rechte bezüglich der Ressource.


So, das waren erstmal die allgemein benutzten Elemente, welche uns zur Verfügung stehen, wenn wir RSS-konform bleiben wollen. (Die RSS-konformität ist im übrigen bei den Handy-Feeds bereits nicht mehr gegeben, da dort aus Gründen der Datenreduzierung viele Elemente weggelassen wurden). Weitere Informationen können wir natürlich auch in selbst definierten Elementen weitergeben, z.B. in einem Tag <timesRead>, welche die Anzahl der Lesezugriffe auf eine Story enthält. Eine nähere Betrachtung wären sicherlich auch die tags <image> zum Extrahieren der Bilder oder auch <dc:relation> zum Betrachten der Verbindungen zu anderen Blogs wert.

Christian Köppe

2 comments :: Kommentieren

Die von FeedReadern genutzten Elemente

christian_koeppe_berlin, 14. Januar 2004, 23:13

Ich habe mal untersucht, welche Tags von welchen FeedReadern überhaupt genutzt werden, das Ergebnis war recht ernüchternd. Ich habe dazu einen Pseudo-Feed mit allen von mir vorgestellten Elementen erzeugt und diesen in einem FeedReader geladen. Hier mein Ergebnis:

Syndirella:

Channel: <title>, <dc:creator>, <sy:updatePeriod>
Items: <title>, <link>, <description>, <dc:date>

FeedReader:

Channel: <title>, <link>, <description>, <image>(!)
Items: <title>, <link>, <description>, <dc:creator>, <dc:date>

RSSReader:

Channel: <title>, <link>, <description> (im Extra-Fenster)
Items: <title>, <link>, <description>


Die vorhandenen Tags werden also von den gängigen FeedReadern nur in sehr geringem Masse genutzt. Der FeedReader hat dabei noch am besten abgeschnitten. Trotzdem denke ich, dass es Sinn macht, die vorhandenen Elemente in unseren Feeds so gut es geht zu nutzen. Dadurch ermöglichen wir Eigenentwicklungen oder anderen FeedReadern, soviel wie möglich nützliche Informationen über unsere Beiträge zu bekommen.

Ich habe in die Story-Feeds den Tag <dc:relation> eingebaut, welcher Links, die mit Hilfe der von Johannes Wegner entwickelten Funktionen aus dem Inhalt ausgelesen wurden, enthält. So kann man die Vernetzung untereinander auch mit Hilfe dieser Tags erforschen.

Als nächstes werde ich noch das Image-Tag standardmässig in unsere Feeds einzubauen. Allerdings bräuchte ich da Hilfe bei der Auswahl des Motivs...(der komplette Link reicht). Eine Änderung der Syndication-Tags halte ich nicht für notwendig, da die Blogs so unregelmässig upgedatet werden, dass eine Auswertung dieser Tags eher sinnlos ist.

ACHTUNG: Die Änderungen werden erst wirksam, nachdem Hr. Griessmeier die entsprechenden Dateien auf dem Server installiert hat (15.1. ??)

Christian Köppe

PS: Falls jemand mit anderen FeedReadern Erfahrung gemacht hat, würde ich mich freuen, wenn er/sie diese hier kurz darstellen könnte (Liste der ausgewerteten Tags etc.).

Verlinken :: Kommentieren

danke, das ist ausführlich ..

Hans.Mittendorfer.Uni-Linz, 16. Januar 2004, 14:06

.. genung. Um Vorstellungen zu entwicklen, was für unser Anwendungsfeld von Nutzen sein könnte.

Mittlerweilen haben Sie ja eigenständig kreative und brauchbare Varianten von RSS-Feeds erzeugt

H. Mittendorfer

Verlinken :: Kommentieren