# RDF/RSS

Auch schlechte Nachrichten können wertvoll sein –
wenn man sie früher hat als die anderen.
Peter Hohl, dt. Journalist und Verleger

Content-Syndication, das ist das Schlagwort, mit dem das Einbinden von News oder anderen Inhalten von fremden Seiten in die eigenen bezeichnet wird. Dass dies durchaus von einigen Anbietern gewünscht ist, mag man bei dem Begriff eher weniger vermuten.

# Was ist RDF/RSS?

Es gibt zahllose Quellen im Internet, durch die man an die neuesten Infos zu jedem Thema herankommt. Es kann jedoch gelegentlich ein wenig mühselig sein, nacheinander alle einschlägigen Seiten abzuklappern und nach einer halben Stunde wieder von vorn anzufangen, weil sich in der Zwischenzeit wieder einiges ereignet hat.

Anfangs gab es einige findige Programmierer, die sich den HTML-Quelltext der Webseiten angesehen haben und exakt die Stellen herausgefiltert haben, an denen die News standen. Alle für sie interessanten Neuigkeiten konnten sie so bequem zusammenfassen und sogar in ihre eigenen Webseiten einbinden.

Die Zeiten dieser aufwendigen Frickelei sind aber schon ein ganze Weile vorbei. Mittlerweile haben sich Formate etabliert, mit denen sich News gewollt und vor allem einfach verteilen lassen. Eines dieser Formate ist RSS. Es wurde ursprünglich von Netscape entwickelt, um einen Austausch von News zwischen Portalen zu ermöglichen. In der Version 0.90 war dieses Format überaus mächtig, aber auch überladen. Es wurde kurzerhand vereinfacht und ist noch immer in der Version 0.91 aktuell im Netz in Verwendung.

Nachdem Netscapes Interesse an Portalen stark absank und nicht mehr weiterentwickelt wurde, hat UserLand Software sich des Formats angenommen und es als Basis für seine Blog-Software genutzt. UserLand Software entwickelte das RSS-0.91-Format weiter und veröffentlichte die Versionen 0.92 bis 0.94, bis zur aktuellsten Version 2.0.

Parallel zu dieser Entwicklung durch UserLand blieb der alte Standard 0.90 erhalten, nur dass er als Version 1.0 »vermarktet« wurde. Dieser basiert nun vollständig auf RDF (Resource Description Framework). RDF ist ein durch das W3C standardisiertes Format, um Inhalte beschreiben zu können. Das Ziel von RDF ist die Entwicklung eines semantischen Webs, d. h., Inhalte werden durch Tags ausgezeichnet, die den Inhalt exakt bezeichnen, wodurch dieser eingeordnet werden kann (siehe Abschnitt 1.3.1).

Um ein wenig Ordnung in diese unterschiedlichen Versionen zu bringen, werfen Sie einmal einen Blick auf die nachfolgende Tabelle.

Version Entwickler Bemerkung
0.90 Netscape Ursprünglichste Form von RSS
0.91 UserLand Die am einfachsten zu handhabende Version
0.92, 0.93, 0.94 UserLand Weiterentwicklungen von RSS 0.91, die mehr Inhalte ermöglichen; Ablösung durch RSS 2.0
1.0 RSS-DEV Working Group Basiert auf RDF, modular erweiterbar
2.0 UserLand Durch Module erweiterbar

Tabelle 4.1: Die RSS-Versionen im Überblick

In der Regel treffen Sie im Internet auf die RSS-Version 0.91; und selbst wenn Ihnen einmal die Version 2.0 unterkommen sollte, beschränkt diese sich auf die von Version 0.91 bekannten Elemente.

# RDF/RSS-Dokumente einsetzen

Ein Beispiel für ein RSS-Dokument könnte so aussehen (die Links im Dokument existieren übrigens nicht):

<?xml version="1.0" encoding="ISO-8859–1"?>
<rss version="0.91">
    <channel>
        <title>Mark-Lubkowitz.De</title>
        <description>Private Webseite des Autors</description>
        <link>http://www.mark-lubkowitz.de/</link>
        <language>de</language>
        <item>
            <title>Einstieg in MySQL erschienen</title>
            <link>http://www.mark-lubkowitz.de/news.php?id=5</link>
            <description>Das Werk zu MySQL für alle Einsteiger ist nun   
        im Handel erhältlich.</description>
            <comments>http://www.mark-lubkowitz.de/news.php?id=5</comments>
            <pubDate>Thu, 29 May 2004 11:24:00 +0000</pubDate>
        </item>
        <item>
            <title>Relaunch von Mark-Lubkowitz.De</title>
            <link>http://www.mark-lubkowitz.de/news.php?id=4</link>
            <description>Ende des Jahres steht der erneute Relaunch der   
        Webseite an.</description>
            <comments>http://www.mark-lubkowitz.de/news.php?id=4</comments>
            <pubDate>Thu, 29 May 2004 11:12:00 +0000</pubDate>
        </item>
    </channel>
</rss>

Listing 4.1: Beispiel für ein RSS-Dokument der Version 0.91

Schon bei einem unwissenden Blick auf das Beispiel aus dem vorangegangenen Listing lässt sich die Art und Weise, wie die News ausgetauscht werden, sehr schnell erkennen.

Der Wurzelknoten in einem RSS-Dokument ist das Element rss. Die Version, auf der das RSS-Dokument beruht, wird mit dem Attribut version festgelegt.

<?xml version="1.0" encoding="ISO-8859–1"?>  
<rss version="0.91">  
  ...  
</rss>

Das zweitwichtigste Element eines RSS-Dokuments ist channel. Viele Webseiten unterteilen ihre News nach Kategorien. Normalerweise werden alle News, auch wenn sie einer unterschiedlichen Kategorie angehören, ein und demselben Channel zugeordnet. Es ist jedoch durchaus möglich, dass ein Betreiber einer Webseite für jede News-Kategorie einen eigenen Channel in das RSS-Dokument einfügt. Egal, ob nun ein oder mehrere Channels in einem RSS-Dokument enthalten sind, werden Sie in der Regel folgende Elemente innerhalb eines channel-Elements antreffen:

  • title
    Der Titel des Channels. Für den Fall, dass es nur einen Channel gibt, ist es der Titel der Ursprungswebseite.
  • description
    Eine Beschreibung zum Channel oder zur Webseite, von der die News stammen.
  • link
    Entweder ein direkter Link zu der Newskategorie oder zur Ursprungswebseite.
  • language
    Die Sprache, in der die News verfasst wurden. Zur Angabe, welche Sprache verwendet wird, kommen die Sprachkürzel zum Einsatz.

Alle diese Elemente dürfen nur einmal pro Channel verwendet werden, sollten aber auf jeden Fall eingesetzt werden.

<?xml version="1.0" encoding="ISO-8859–1"?>  
<rss version="0.91">  
  <channel>  
    <!-- Infos zum Channel oder zur Webseite -->  
    <title>Mustermann.De</title>  
    <description>Webseite von Max Mustermann</description>  
    <link>http://www.mustermann.de/</link>  
    <language>de</language>  
    ...  
  </channel>  
</rss>

Die eigentlichen News, die in einem RSS-Dokument enthalten sind, werden mit den item-Elementen definiert, die Kindelemente der channel-Elemente sind.

<?xml version="1.0" encoding="ISO-8859–1"?>  
<rss version="0.91">  
  <channel>  
    <!-- Infos zum Channel oder zur Webseite -->  
    <title>Mustermann.De</title>  
    <description>Webseite von Max Mustermann</description>  
    <link>http://www.mustermann.de/</link>  
    <language>de</language>  
    <!-- Hier folgen die News -->  
    <item>  
      ...  
    </item>  
    ...  
  </channel>  
</rss>

Folgende Elemente können als Kindelemente von item notiert werden:

  • title
    Der Titel der Nachricht.
  • description
    Ein kurzer Anreißer oder Teaser, der Interesse an der Nachricht weckt.
  • link
    Ein direkter Link zu der Nachricht, über den diese immer erreichbar ist.
  • comments
    Ein Link zu den Kommentaren zu dieser Nachricht, falls das Kommentieren auf der Webseite möglich ist. Andernfalls ist es häufig auch der Link direkt zur Nachricht.
  • pubDate
    Das Datum, wann die Nachricht veröffentlicht wurde.
<?xml version="1.0" encoding="ISO-8859–1"?>
<rss version="0.91">
    <channel>
        <!-- Infos zum Channel oder zur Webseite -->
        <title>Mustermann.De</title>
        <description>Webseite von Max Mustermann</description>
        <link>http://www.mustermann.de/</link>
        <language>de</language>
        <!-- Hier folgen die News -->
        <item>
            <title>Musternachricht</title>
            <description>Nachricht im RSS-Feed.</description>
            <link>http://www.mustermann.de/news.php?id=3</link>
            <comments>http://www.mustermann.de/newscomments.php ?id=3</comments>
            <pubDate>Wed, 25 Aug 2004 18:01:00 +0000</pubDate>
        </item>
    </channel>
</rss>

Listing 4.2: Vollständiges Beispiel für ein RSS-Dokuments

Wie bereits zuvor erwähnt, können mehrere item-Elemente unterhalb eines channel-Elements notiert werden. Jedoch sollte dies nicht ausarten. In der Regel werden 10 bis 20 News in einem RSS-Feed veröffentlicht.

Die Informationen in diesem Kapitel spiegeln den kleinsten gemeinsamen Nenner wider und sind kompatibel zu den Version 0.91 und 2.0.

# Zusammenfassung

  • RSS bezeichnet ein auf XML basierendes Format, mit dem News ausgetauscht werden können.
  • RDF ist eine Technologie, um Inhalte semantisch korrekt in eine Beziehung zu bringen.
  • Die am häufigsten anzutreffenden Formate sind RSS 0.91, RSS 2.0 und RDF.
  • Channels dienen dazu, Nachrichten in einem Newsfeed nach Kategorien unterteilen zu können. Nur wenige Seiten nutzen die Möglichkeiten der Channel in ihren Newsfeeds.

# Fragen und Übungen

  1. Gibt es Unterschiede zwischen Newsfeeds im Format RSS und RDF?
  2. Welches Attribut müssen Sie im Start-Tag des rss-Elements unbedingt angeben?
  3. Welches Element steht bei einem RSS-Dokument für den Titel einer Nachricht?
  4. Welche Information wird in einem RSS-Dokument bei einer Nachricht mit dem Element comments ausgezeichnet?
  5. Müssen Channels in einem RSS-Dokument verwendet werden?