Atom Syndication Format

Web-Based Services (INFO 290-4)

Erik Wilde, UC Berkeley School of Information
2008-02-26
Creative Commons License

This work is licensed under a CC
Attribution 3.0 Unported License

Abstract

For many information sources on the Web, it is useful to have some standardized way of subscribing to information updates. Syndication formats such as RSS and Atom can be used by these information sources to publish a feed of updated information items. The basic syndication mechanism describes a data format for publishing entry metadata and entries. In addition to the basic format, services might also support additional functionality, such as the ability to indicate that clients may page through a feed, if it contains more entries than published on the first page.

Content Feeds

Outline (Syndication Formats)

  1. Syndication Formats [19]
    1. RSS [11]
    2. Atom [8]
  2. Syndication Aggregation [2]
  3. Atom Add-Ons [4]
  4. Conclusions [1]

Outline (RSS)

  1. Syndication Formats [19]
    1. RSS [11]
    2. Atom [8]
  2. Syndication Aggregation [2]
  3. Atom Add-Ons [4]
  4. Conclusions [1]

RSS History

RSS 0.9x

RSS 0.91 Example

<rss version="0.91">
 <channel>
  <title>XML.com</title>
  <link>http://www.xml.com/</link>
  <description>XML.com features a rich mix of information and services for the XML community.</description>
  <language>en-us</language>
  <item>
   <title>Normalizing XML, Part 2</title>
   <link>http://www.xml.com/pub/a/2002/12/04/normalizing.html</link>
   <description>In this second and final look at applying relational normalization techniques to W3C XML Schema data modeling, Will Provost discusses when not to normalize, the scope of uniqueness and the fourth and fifth normal forms.</description>
  </item>

RSS 1.0

RSS 1.0 Example

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/">
 <channel rdf:about="http://www.xml.com/cs/xml/query/q/19">
  <title>XML.com</title>
  <link>http://www.xml.com/</link>
  <description>XML.com features a rich mix of information and services for the XML community.</description>
  <language>en-us</language>
  <items>
   <rdf:Seq>
    <rdf:li rdf:resource="http://www.xml.com/pub/a/2002/12/04/normalizing.html"/>
    <rdf:li rdf:resource="http://www.xml.com/pub/a/2002/12/04/som.html"/>
    <rdf:li rdf:resource="http://www.xml.com/pub/a/2002/12/04/svg.html"/>
   </rdf:Seq>
  </items>
 </channel>
 <item rdf:about="http://www.xml.com/pub/a/2002/12/04/normalizing.html">
  <title>Normalizing XML, Part 2</title>
  <link>http://www.xml.com/pub/a/2002/12/04/normalizing.html</link>
  <description>In this second and final look at applying relational normalization techniques to W3C XML Schema data modeling, Will Provost discusses when not to normalize, the scope of uniqueness and the fourth and fifth normal forms.</description>
  <dc:creator>Will Provost</dc:creator>
  <dc:date>2002-12-04</dc:date>
 </item>

RSS 2.0

RSS 2.0 Example

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
 <channel>
  <title>XML.com</title>
  <link>http://www.xml.com/</link>
  <description>XML.com features a rich mix of information and services for the XML community.</description>
  <language>en-us</language>
  <item>
   <title>Normalizing XML, Part 2</title>
   <link>http://www.xml.com/pub/a/2002/12/04/normalizing.html</link>
   <description>In this second and final look at applying relational normalization techniques to W3C XML Schema data modeling, Will Provost discusses when not to normalize, the scope of uniqueness and the fourth and fifth normal forms.</description>
   <dc:creator>Will Provost</dc:creator>
   <dc:date>2002-12-04</dc:date>
  </item>

The Case for Content Management

Consuming RSS

RSS Technical Problems

RSS Political Problems

Outline (Atom)

  1. Syndication Formats [19]
    1. RSS [11]
    2. Atom [8]
  2. Syndication Aggregation [2]
  3. Atom Add-Ons [4]
  4. Conclusions [1]

Atom History

atom-logo.png

Atom vs. RSS

Atom Example

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us">
 <title>ongoing</title>
 <id>http://www.tbray.org/ongoing/</id>
 <link rel='self' href="http://www.tbray.org/ongoing/ongoing.atom"/>
 <updated>2007-04-11T12:55:09-07:00</updated>
 <author>
  <name>Tim Bray</name>
 </author>
 <subtitle>ongoing fragmented essay by Tim Bray</subtitle>
 <entry xml:base="When/200x/2007/04/02/">
  <title>Atom Publishing Protocol Interop!</title>
  <id>http://www.tbray.org/ongoing/When/200x/2007/04/02/APP-Interop</id>
  <published>2007-04-02T13:00:00-07:00</published>
  <updated>2007-04-10T14:24:00-07:00</updated>
  <category scheme="http://www.tbray.org/ongoing/What/" term="Technology/Atom"/>
  <category scheme="http://www.tbray.org/ongoing/What/" term="Technology"/>
  <category scheme="http://www.tbray.org/ongoing/What/" term="Atom"/>
  <content type="xhtml">
   <div xmlns="http://www.w3.org/1999/xhtml">
    <p>Mark your calendar: <a href="http://www.intertwingly.net/wiki/pie/April2007Interop">April 16-17 at Google</a>. <em>Everybody</em> is invited, provided they bring along an APP implementation, client or server. This was just announced a couple of days ago, and as I write this there are already <s>six</s> twelve client and <s>seven</s> fourteen server implementations signed up to be there and try to <a href="http://www.intertwingly.net/wiki/pie/InteropGrid">fill in the grid</a>. Let’s drop some names, in alphabetical order: AOL, Flock, Google, IBM, Lotus, Microsoft, Oracle, O’Reilly, Six Apart, Sun, WordPress. Um, have I mentioned that the APP is going to be huge?</p>
   </div>
  </content>
 </entry>
</feed>

Atom Data Model

Atom Data Model

Atom Content

Atom Content Examples

<content type="xhtml">
  <div xmlns="http://www.w3.org/1999/xhtml">
    One <strong>bold</strong> foot forward
  </div>
</content>
<content>The "atom:content" element either contains or links to the content of the entry. The content of atom:content is Language-Sensitive.</content>
<content type="html">The &lt;code>atom:content&lt;/code> element either contains or links to the content of the entry. The content of &lt;code>atom:content&lt;/code> is &lt;a href="http://www.ietf.org/rfc/rfc3066.txt">Language-Sensitive&lt;/a>.</content>
<content type="image/png">
iVBORw0KGgoA … TAAAAAElFTkSuQmCC
</content>
<content src="image.png" type="image/png"/>

Atom Categories

Switching from RSS to Atom

Outline (Syndication Aggregation)

  1. Syndication Formats [19]
    1. RSS [11]
    2. Atom [8]
  2. Syndication Aggregation [2]
  3. Atom Add-Ons [4]
  4. Conclusions [1]

End-User Aggregation

feed-icon.png
<link rel="alternate" type="application/rdf+xml" title="…" href="…" />
<link rel="alternate" type="application/rss+xml" title="…" href="…" />
<link rel="alternate" type="application/atom+xml" title="…" href="…" />

Aggregation Intermediaries

Outline (Atom Add-Ons)

  1. Syndication Formats [19]
    1. RSS [11]
    2. Atom [8]
  2. Syndication Aggregation [2]
  3. Atom Add-Ons [4]
  4. Conclusions [1]

Extensibility

Atom Threading Extensions

Atom License Extension

Feed Paging and Archiving

Outline (Conclusions)

  1. Syndication Formats [19]
    1. RSS [11]
    2. Atom [8]
  2. Syndication Aggregation [2]
  3. Atom Add-Ons [4]
  4. Conclusions [1]

Semantic Web Light