Atom-Überblick

(Auszug aus "Newsfeeds mit RSS und Atom" von Heinz Wittenbrink, erschienen bei Galileo Press, 2005)

Zur Entwicklung von Atom führten vor allem zwei Motive: Die RSS-Spezifikationen sind – abgesehen von RSS 1.0 – in vielen Punkten vage und unvollständig; außerdem fehlt ein einheitliches Protokoll für das Verfassen und Editieren von weblog-artigen Publikationen. Das Blogger- und das Metaweblog-API, die bis heute von vielen Weblog-Systemen unterstützt werden, sind unvollständig, unsicher und beruhen auf einem Konzept von Webservices, das vielfach als unzureichend angesehen wird. Atom soll einerseits die bekannten Unvollkommenheiten von RSS beseitigen und andererseits einen offenen Standard für die Entwicklung von Publishing-Werkzeugen festlegen, der einem modernen, REST (Representational State Transfer)-orientierten Konzept von Webservices entspricht.

Dass die RSS 2.0-Spezifikation und ihre Vorgänger unvollständig und vor allem ungenau sind, ist nicht schwer zu erkennen. Fast überall muss man auf die gängige Praxis zurückgreifen, um zu erkennen, was mit der Spezifikation gemeint ist. Ich habe bei der Darstellung von RSS 2.0 mehrfach auf die Atom-Spezifikation verwiesen, um Formulierungen zu präzisieren.

Weiterentwicklung oder Alternative zu RSS?

Die Atom-Entwickler weisen Dave Winer einen Teil der Verantwortung dafür zu, dass sie RSS 2.0 nicht einfach weiterentwickelt haben, sondern ein neues Format definieren, dass an die Stelle von RSS treten soll und nicht rückwärtskompatibel ist. Die RSS 2.0-Spezifikation legt selbst fest, dass weitere Entwicklungen des Formats unter einem neuen Namen erfolgen sollen; Winer bezeichnet RSS 2.0 als "frozen". Die Atom-Entwickler berufen sich darauf, dass es verwirrend wäre, bei einem neuen Format das Dokumentelement rss beizubehalten; damit sei aber Rückwärtskompatibilität mit den vorhandenen RSS-Formaten ohnehin nicht mehr gegeben. Also bestehe die Chance, das neue Format so zu definieren, dass es allen heute relevanten Ansprüchen gerecht werden kann.

Ausgangspunkte für die Entwicklung von Atom

Die Schlüsseleinsichten, die hinter der Entwicklung von Atom stehen, hat Robin Cover zusammengefasst (siehe Atom as the New XML-Based Web Publishing and Syndication Format):

  1. Atom soll so entworfen werden, dass Inhalte nicht als Bürger zweiter Klasse behandelt werden.
  2. Die Kernkonzepte sollen in einem einheitlichen Mechanismus so ausgedrückt werden, dass sie von bestimmten Anwendungen unabhängig sind.
  3. Das Format soll offen und einfach gehalten werden.

Die Kritik der RSS 2.0-Verfechter an Atom konzentriert sich auf die Behauptung, ein neuer Standard sei nicht notwendig oder sogar verwirrend. Die inhaltlichen Argumente werden kaum aufgegriffen.

Standardisierungsverfahren und Spezifikationen

Für die Standardisierung von Atom ist eine Arbeitsgrupppe der Internet Engineering Task Force (IETF) zuständig, die von Paul Hoffman und Tim Bray geleitet wird.

"Atom" ist ein Sammelbegriff für mehrere Protokolle und Spezifikationen. Die wichtigste und stabilste Spezifikation definiert das Atom Publishing Format oder Atom Syndication Format. Sie liegt seit August 2005 in der Version 1.1 (Draft) vor. Die Publikation von Atom-Dokumenten wird im Atom Publishing Protocol beschrieben. Die Version 1.7 (Draft) wurde am 15. August 2005 publiziert. Ein drittes Dokument, Atom Feed Autodiscovery, legt fest, wie in einem Webdokument zugehörige Atom-Feeds gefunden werden. Bisher liegt nur die Version 0.1 vom 10. Mai 2005 vor. Alle Atom-Spezifikationen sind Internet-Drafts, die der IETF vorgeschlagen werden. Wenn der Spezifikationsprozess weit genug fortgeschritten ist, werden sie bei der Internet Engeneering Steering Group (IESG) eingereicht. Wenn die IESG ein Dokument akzeptiert, publiziert sie es offiziell als "Request for Comments" (RFC). Von den Atom-Spezifikationen wurde das Atom Publishing Protocol (RFC 5023, Oktober 2007) und das Atom Syndication Format (RFC 4287, "Atom 1.0", Dezember 2005) an die IESG übergeben.

Das Atom Publishing Format ist das Format für Atom-Dokumente, also das Gegenstück zu den Formaten RSS 2.0, RSS 1.0 und RSS 1.1.

Der Entwicklung der Atom-Spezifikationen dienen eine Mailingliste für die Atom-Syntax, eine Mailingliste für das Atom-Protokoll und das Atom Wiki. Dabei werden im Wiki Problemstellungen und neue Vorschläge (in sogenannten "Paces") dokumentiert; die eigentliche Entwicklung der Spezifikation findet auf den Listen statt.

Die Atom-Spezifikation verwendet die Termini des XML Information Set. Der Infoset-Standard definiert die unterschiedlichen information items, die ein XML-Dokument enthält (die ihm also von einem Parser entnommen werden können). Bei Atom-Elementen und Atom-Attributen verzichtet die Spezifikation aber darauf, explizit von information items zu sprechen.

Informationsquellen

Die Spezifikationen, Mailinglisten und das Wiki sind die wichtigsten Informationsquellen zu Atom. Einen immer wieder aktualisierten Überblick bieten – wie bei den meisten XML-Themen – die "XML Cover Pages". Mark Pilgrim, Joe Gregorio und andere Entwickler haben viele Aspekte von Atom in Artikeln auf XML.com beleuchtet. Wichtige Quellen zu Atom bilden die Weblogs der Entwickler des Standards. An der Diskussion um Atom beteiligen sich einige der interessantesten und wichtigsten Köpfe der XML-Szene, darunter Tim Bray, Sam Ruby, Mark Pilgrim und Norman Walsh.

Unterschiede zu den anderen Feed-Formaten

Es ist schwerer, die Unterschiede zwischen Atom und RSS 2.0 in wenigen Sätzen zu beschreiben, als RSS 2.0 und RSS 1.0 voneinander abzuheben. Atom wurde nicht als Konkurrenzformat zu RSS, sondern als Präzisierung dieses Formats entworfen. Generelle Unterschiede bestehen darin, dass bei Atom wie bei RSS 1.0 alle Elemente zu einem definierten Namensraum gehören und dass sie alle die Attribute xml:base und xml:lang tragen können. Außerdem unterscheiden sich Atom und RSS in zahlreichen Details; diese betreffen meist die Definition einzelner Elemente. Darüber hinaus ergeben sich aber aus den Entwurfsprinzipien von Atom Unterschiede, die die Funktionalität von Atom gegenüber der von RSS 2.0 so weit ausdehnen, dass Atom zu einem eigenen Publikationsformat für periodisch aktualisierte Informationen wird.

Erweiterte Funktionalität

Von einer erweiterten Funktionalität lässt sich auf mindestens vier Gebieten sprechen:

  • Inhalt: Atom erlaubt es, nahezu jeden im Internet überhaupt möglichen Inhalt in einen Eintrag aufzunehmen – vorausgesetzt, es ist eindeutig angegeben, um welchen Typ von Inhalt es sich handelt.
  • Links: Atom hat eine präzise und vor allem erweiterbare Link-Semantik. Die Funktionen von Links sind einem Atom-Dokument eindeutig festgelegt; zusätzliche Funktionen können registriert werden. Der Funktionsumfang des Formats lässt sich vor allem erweitern, indem zusätzliche Typen von Links definiert werden.
  • Aggregierung: Atom-Einträge können die Metadaten des Feeds, zu dem sie gehören, mit sich führen, wenn sie in einen anderen Feed aufgenommen werden. Dadurch ist es möglich, Feeds mit Einträgen zu konstruieren, die aus unterschiedlichen Feeds entnommen werden und dennoch alle relevanten Informationen, z. B. über ihre Urheber, weiter enthalten.
  • Publizieren: Atom wurde als Format für die Publikation von Inhalten definiert. Atom-Dokumente können Informationen über die URIs enthalten, die Atom-Clients für das Publizieren und Editieren benötigen. Atom-Dokumente mit dem Dokument-Element entry dienen der Publikation von Einträgen.

In allen vier Fällen ergibt sich die neue Funktionalität daraus, dass die Bedeutung der Elemente präziser beschrieben wird, als es bei RSS 2.0 der Fall ist. Bei RSS bleibt unentschieden, in welchem Maß der Inhalt eines Elements Daten- oder Metadatencharakter hat. Die Präzisierung bei Atom führt dazu, dass die Art und Weise, in der Inhalte in eine Atom-Dokument eingebettet werden können, genau definiert sind. Bei RSS ist unentschieden, ob das Element link bei einem Eintrag dessen eigenen URI aufnehmen soll oder muss oder auch den URI eines Beitrags enthalten kann, auf den sich dieser Beitrag bezieht. Atom schreibt vor, im Element link zu beschreiben, um welche Art von Link es sich handelt; damit wird es möglich, zwei und mehr Arten von Links in einem Eintrag zu kombinieren. Bei RSS 2.0-Feeds können auf der Ebene des Feeds (channel) und der des Eintrags (item) dieselben Elemente vorkommen; das Element source kann nur wenige Informationen aufnehmen. Die Präzisierung bei Atom führt dazu, dass jeder Eintrag unter dem Namen source einen Container mit den Metadaten seines Ursprungsfeeds mit sich führen kann. Die RSS 2.0-Elemente waren außerdem Ausgangspunkte für die Definition von Publikationsschnittstellen wie dem Metaweblog-API. Bei Atom führt die genaue Definition des Transports von Dokumenten über HTTP zu einem kompletten Publikationsprotokoll.

   

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Newsfeeds mit RSS und Atom bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: