RSS & ATOM Scott Cornelius Tom Morrow -Contents The benefit of RSS and Atom. What is RSS about. Structure and Syntax of RSS. History of RSS. What is Atom about. Structure and Syntax of Atom. History of Atom. What is RSS and Atom all about? - They are a form of communication using XML documents to broadcast information updates to a large group of subscribers. How it works and its benefit. Before RSS and Atom Favorite website A Favorite website B Favorite website C After RSS and Atom Favorite website A Reader or Aggregator Application Favorite website B Favorite website C -Web Based Google Reader Netvibes Pageflakes My Yahoo! Bloglines NewsGator Fwicki -Non-Web Based RssReader RSS Bandit RSSOwl Thunderbird The Benefit? Is to organize news, highlights, and information in one handy location, saving the user valuable time from having to checkout all their favorite websites for new information on a weekly, daily, hourly… bases. What is RSS 2.0 ? • RSS stands for Really Simple Syndication. It's an easy way for you to keep up with news and information that's important to you, and helps you avoid the conventional methods of browsing or searching for information on websites. Now the content you want can be delivered directly to you without cluttering your inbox with e-mail messages. This content is called a "feed.“ • RSS is written in the Internet coding language known as XML (eXtensible Markup Language). RSS must be the root element followed by one channel element. RSS 2.0 Required channel elements: title The name of the channel. It's how people refer to your service. If you have an HTML website that contains the same information as your RSS file, the title of your channel should be the same as the title of your website. link The URL to the HTML website corresponding to the channel. description Phrase or sentence describing the channel. RSS 2.0 Optional <channel > Elements language Copyright item managingEditor webMaster pubDate lastBuildDate category generator docs cloud ttl image rating textInput skipHours skipDays Elements for Item title link description author category comments enclosure guid pubData source Is the email address for the author. It has one optional attribute consisting of “domain”. Has three required attributes. Has three required elements, along with optional ones. -Required• url • title • link Note: Not all required and optional elements or attributes are shown! -Optional• width • height -Required• url • length • type <?xml version="1.0"?> <rss version="2.0"> <channel> <title>Liftoff News</title> <link>http://liftoff.msfc.nasa.gov/</link> <description>Liftoff to Space Exploration.</description> <language>en-us</language> <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate> <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <generator>Weblog Editor 2.0</generator> <managingEditor>editor@example.com</managingEditor> <webMaster>webmaster@example.com</webMaster> <item> <title>Star City</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link> <description>How do Americans get ready to work with Russians aboard the International Spac Station? They take a crash course in culture, language and protocol at Russia's &lt;a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm"&gt;Star City&lt;/a&gt;. </description> <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid> <item> <title>The Engine That Does More</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link> <description>Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that. </description> <pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid> </item> </channel> </rss> RSS 2.0 Sample History • RSS – Netscape’s RSS Team evaporates. – UserLand RSS 0.91 – Specifications released. 6/4/00. – RSS 1.0 - published as a proposal and worked on by a private group led by Rael Dornfest at O’Reilly. This version has an all new format and is based on RDF that uses namespaces. 8/14/00 – RSS 0.92 - is 0.91 with optional elements and designed by Dave Winer at UserLand. 12/25/00. – RSS 0.93 version was never released. 4/20/01. History • RSS – MetaWeblog API merges RSS 0.92 with XML-RPC that’s a powerful blogging API. 3/14/02. – RSS 2.0 – RSS 2.0 – is version 0.92 with optional elements, designed by Dave Winer, after he left UserLand.This format in development was called version 0.94. The MetaWeblog API was updated for RSS 2.0. 9/18/02. – RSS 2.0 - Harvard releases specifications under Creative Commons licence. 7/15/03. • RSS History – scriptingNews format was designed by Dave Winer at UserLand. 12/27/97. – Version 0.90 - designed by Netscape, for use with it’s browser. It had scriptingNews format, the header was RDF (Resource Description Framework) , and plain XML. 3/15/99. – scriptingNews 2.0b1 - designed by Dave Winer at UserLand and includes the features in RSS 0.90. Netscape was urged from Dave Winer to use this format in the next release of RSS. 6/15/99. – RSS 0.91 - Specifications written by Dan Libby and designed by Netscape. RDF header is removed. 7/10/99 – UserLand Adopts RSS 0.91 – deprecates scriptingNews formats. 7/28/99. What is ATOM 1.0 ? • ATOM – The Atom Syndication Format is the next generation of XML-based file formats, designed to allow information--the contents of web pages, for example--to be syndicated between applications. Like RSS before it, Atom places the content and metadata of an internet resource into a machine-parsable format, perfect for displaying, filtering, remixing, and archiving. Atom In Atom, <feed> is used for the root element. Required <feed> elements: id title updated General considerations: • All elements described in Atom must be in the http://www.w3.org/2005/Atom namespace. • xml:lang may be used to identify the language of any human readable text. • xml:base may be used to control how relative URIs are resolved. A unique identifier, which can be as simple as the URI of a blog entry or other Web resource represented by an entry. Contains a human readable title for the feed. Often the same as the title of the associated website. A timestamp which indicates when the last update occurred. (Must conform to RFC 3339) Atom Optional <feed> Elements category contributor entry published contributor generator icon logo source rights subtitle author link Has three required elements, along with optional ones. -Required• id • title • update Has the required element <name>, along with two optional ones. -Optional• uri • email Note: Not all required and optional elements or attributes are shown! -Optional• author • content •link •summary •category •contributor •published •source •rights <?xml version="1.0"?> Atom Sample <feed xmlns="http://www.w3.org/2005/Atom"> <link rel="self" href="http://example.org/blog/index.atom"/> <id>http://example.org/blog/index.atom</id> <icon>../favicon.ico</icon> <title>An Atom Sampler</title> <subtitle>No Splitting</subtitle> <author> <name>Ernie Rutherford </name> <email>ernie@example.org</email> <uri>.</uri> </author> <updated>2006-10-25T03:38:08-04:00</updated> <link href="."/> <entry> <id>tag:example.org,2004:2417</id> <link href="2006/10/23/moonshine"/> <title>Moonshine</title> <content type="text"> Anyone who expects a source of power from the transformation of the atom is talking moonshine. </content> <published>2006-10-23T15:33:00-04:00</published> <updated>2006-10-23T15:47:31-04:00</updated> </entry> <entry> <id>>tag:example.org,2004:2416</id> <link href="2006/10/21/think"/> <title type="html">&lt;strong&gt;Think!&lt;/strong&gt;</title> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml"> <p>We haven't got the money, so we've got to think!</p> </div> </content> <updated>2006-10-21T06:02:39-04:00</updated> </entry> </feed> History • ATOM – Before the development of ATOM, RSS was the used format for web content syndication. People using RSS 2.0 felt there were considerable deficiencies in the format. RSS 2.0 was frozen and not changed. – Sam Ruby put together a wiki for discussions on what makes, “a well- formed log entry”. The wiki soon had discussions on a new syndication format addressing RSS’s shortcomings. It was coming obvious that such tools maybe used such as, the Blogger API and LiveJournal XML-RPC Client/Server Protocol. June 2003. History • ATOM – Sam Ruby a project aimed to develop a web syndication format that was: – – – – “100% vendor neutral,” “implemented by everybody,” “freely extensible by anybody, and” “cleanly and thoroughly specified.” – A project road map was designed. The project involved more than 150 supporters, including David Sifry of Technorati, Mena Trott of Six Apart, Brad Fitzpatrick of LiveJournal, Jason Shellen of Blogger, Jeremy Zawodny of Yahoo, Timothy Appnel of the O’Reilly Network, Glenn Otis Brown of Creative Commons and Lawrence Lessig. Other notables supporting ATOM include Mark Pilgrim, Tim Bray, Aaron Swartz, Joi Ito, and Jack Park. Also, Dave Winer, the key figure behind RSS 2.0, gave tenative support to the project. June 2003. History • ATOM – Before releasing the project they needed a name. Some tentatively used names, “Pie,” “Echo,” and “Necho” before ATOM was chosen. The project snapshot ATOM 0.2 discussion was taken off the wiki in early July 2003. – ATOM 0.3 and Adoption by Google - The discussion then moved to a newly set up mailing list. The next and final snapshot during this phase was ATOM 0.3, released in December 2003. This version gained widespread adoption in syndication tools, and in particular it was added to several Google-related services, such as Blogger, Google News, and Gmail. Google's Data APIs (Beta) Data are based on ATOM 1.0 and RSS 2.0. History • ATOM – ATOM 1.0 and IETF Standardization - In 2004, discussions began about moving the project to a standards body such as the World Wide Web Consortium or the Internet Engineering Task Force (IETF). The group eventually chose the IETF and the ATOMpub working group[ was formally set up in June 2004, finally giving the project a charter and process. The ATOMpub working group is co-chaired by Tim Bray (the co-editor of the XML specification) and Paul Hoffman. Initial development was focused on the syndication format. – The ATOM Syndication Format was issued as a Proposed Standard in IETF RFC 4287 in December 2005. The coeditors were Mark Nottingham and Robert Sayre. This document is known as atompub-format in IETF's terminology. The ATOM Publishing Protocol was issued as a Proposed Standard in IETF RFC 5023 in October 2007. Two other drafts have not been standardized. References • http://www.intertwingly.net/wiki/pie/Rss20AndAtom 10Compared • http://cyber.law.harvard.edu/rss/rss.html • http://atompub.org/2005/07/11/draft-ietf-atompubformat-10.html • http://www.atomenabled.org/developers/syndication • http://www.usa.gov/Topics/Reference_Shelf/Libraries /RSS_Library/What_Is_RSS.shtml • http://www.5z5.com/Web-Feed-KnowledgeBase/ATOM/