Friday, September 15, 2006

RSS - A New era of Producing and Sharing Information

RSS is a family of web feed formats. The initialism "RSS" is variously used to refer to the following standards:
Really Simple Syndication (RSS 2.0)
Rich Site Summary (RSS 0.91, RSS 1.0)
RDF Site Summary (RSS 0.9 and 1.0)
In the typical scenario of using web feeds, a content provider publishes a feed link on their site which end users can register with an aggregator program running on their own machines; when instructed, the aggregator asks all the servers in its feed list if they have new content; if so, the aggregator either makes a note of the new content or downloads it. Aggregators can be scheduled to check for new content periodically.
The kinds of content delivered by a web feed are typically HTML (webpage content) or links to webpages and other kinds of digital media. Often when websites provide web feeds to notify users of content updates, they only include summaries in the web feed rather than the full content itself.
Compared to websites, web feeds have a few advantages for the user experience:
Users can be notified of new content without having to actively check for it. The information presented to users in an aggregator is typically much simpler than most websites. This spares users the mental effort of navigating complex web pages, each with its own layout. Media files can be automatically downloaded without user intervention. Web feeds are operated by many news web sites, weblogs, schools, and podcasters.
RSS formats are specified in XML (a generic specification for data formats). RSS delivers its information as an XML file called an "RSS feed", "webfeed", "RSS stream", or "RSS channel".

Usage :

As the mainstream media attempt to realize the full potential of RSS, the news media are utilizing RSS to bypass traditional news sources. By using RSS feeds, consumers and journalists can have news constantly fed to them instead of searching for it.
A program known as a feed reader or aggregator can check a list of feeds on behalf of a user and display any updated articles that it finds. It is common to find web feeds on major websites and many smaller ones. Some websites let people choose between RSS or Atom formatted web feeds; others offer only RSS or only Atom.
RSS-aware programs are available for various operating systems. Client-side readers and aggregators are typically constructed as standalone programs or extensions to existing programs such as web browsers. Many browsers have integrated support for RSS feeds.
Web-based feed readers and news aggregators such as YourLiveWire require no software installation and make the user's "feeds" available on any computer with Web access. Some aggregators combine existing web feeds into new feeds, e.g., taking all football related items from several sports feeds and providing a new football feed. There are also search engines for content published via web feeds like Feedster or Blogdigger.
On Web pages, web feeds (RSS or Atom) are typically linked with the word "Subscribe", an orange rectangle, , or with the letters or . Many news aggregators such as My Yahoo![1] publish subscription buttons () for use on Web pages to simplify the process of adding news feeds.

History:

Before RSS several similar formats already existed for syndication, but none achieved widespread popularity or are still in common use today, as most were envisioned to work only with a single service. These originated from push and pull technologies. Two of the earliest examples are Backweb and Pointcast.

Between 1995 and 1997, Ramanathan V. Guha at Apple Computer's Advanced Technology Group developed the Meta Content Framework (MCF). MCF was a specification for structuring metadata information about web sites and other data, and the basis of Project X (aka Hot Sauce), a 3D flythough visualizer for the web. When the research project was discontinued, Guha left Apple for Netscape, where he adapted MCF to use XML and created the first version of the Resource Description Framework (RDF).
In 1997 Microsoft created Channel Definition Format for the Active Channel feature of Internet Explorer 4.0, which never became popular. This was probably due to CDF being focused on commercial application of the concept and the extensive resources it required at a time people were mostly on dial-up. Backweb and Pointcast were geared towards news much like a personal API feed. Backweb later morphed into providing software updates, a precurser to the push update features by various companies now.
Dave Winer also designed his own XML syndication format for use on his Scripting News weblog, which was also introduced in 1997[1].

RDF Site Summary, the first version of RSS, was created by Dan Libby of Netscape in March 1999 for use on the My Netscape portal. This version became known as RSS 0.9. In July 1999, responding to comments and suggestions, Libby produced a prototype tentatively named RSS 0.91[2] (RSS standing for Rich Site Summary), that simplified the format and incorporated parts of Winer's scripting news format. This they considered an interim measure, with Libby suggesting an RSS 1.0-like format through the so-called Futures Document[citation needed].
Soon afterwards, Netscape lost interest in RSS/XML, leaving the format without an owner, just as it was becoming widely used. A working group and mailing list, RSS-DEV, was set up by various users and XML notables to continue its development. At the same time, Winer unilaterally posted a modified version of the RSS 0.91 specification to the Userland website, since it was already in use in their products. He claimed the RSS 0.91 specification was the property of his company, UserLand Software.[3] Since neither side had any official claim on the name or the format, arguments raged whenever either side claimed RSS as its own, creating what became known as the RSS fork.

The RSS-DEV group went on to produce RSS 1.0[4] in December 2000. Like RSS 0.9 (but not 0.91) this was based on the RDF specifications, but was more modular, with many of the terms coming from standard metadata vocabularies such as Dublin Core.

Nineteen days later, Winer released by himself RSS 0.92[5], a minor and supposedly compatible set of changes to RSS 0.91 based on the same proposal. In April 2001, he published a draft of RSS 0.93[6] which was almost identical to 0.92. A draft RSS 0.94 surfaced in August, reverting the changes made in 0.93, and adding a type attribute to the description element.

In September 2002, Winer released a final successor to RSS 0.92, known as RSS 2.0 and emphasizing "Really Simple Syndication" as the meaning of the three-letter abbreviation. The RSS 2.0 spec removed the type attribute added in RSS 0.94 and allowed people to add extension elements using XML namespaces. Several versions of RSS 2.0 were released, but the version number of the document model was not changed.
In November, 2002, The New York Times began offering its readers the ability to subscribe to RSS news feeds related to various topics. In January, 2003, Winer called the New York Times' adoption of RSS the "tipping point" in driving the RSS format's becoming a de facto standard.
In July, 2003, Winer and Userland Software assigned ownership of the RSS 2.0 specification to his then workplace, Harvard's Berkman Center for the Internet & Society[7].

Winer was criticized for unilaterally creating a new format and raising the version number. In response, RSS 1.0 coauthor Aaron Swartz published RSS 3.0[8], a non-XML textual format. The format was possibly intended as a parody and only a few implementations were ever made.
In January 2005, Sean B. Palmer, Christopher Schmidt, and Cody Woodard produced a preliminary draft of RSS 1.1.[9] It was intended as a bugfix for 1.0, removing little-used features, simplifying the syntax and improving the specification based on the more recent RDF specifications. As of July 2005, RSS 1.1 had amounted to little more than an academic exercise.
In April 2005, Apple Computer released Safari 2.0 with RSS Feed capabilities built in. Safari delivered the ability to read RSS feeds, and bookmark them, with built-in search features. Safari's RSS button is a blue rounded rectangle with RSS written inside in white, . The favicon displayed defaults to a newspaper icon .

In November 2005, Microsoft proposed its Simple Sharing Extensions [2] to RSS, informally named "Real Simple Synchronization" [3] by Colm Smyth.
In December 2005, the Microsoft IE team and Outlook team announced in their blogs that they will be adopting the feed icon first used in the Mozilla Firefox browser , effectively making the orange square with white radio waves the industry standard for both RSS and related formats such as Atom. Also in February 2006, Opera Software announced they too will add the orange square in their next release of Opera 9.

Incompatibilities :

As noted above, there are several different versions of RSS, falling into two major branches (RDF and 2.*). The RDF, or RSS 1.* branch includes the following versions:
RSS 0.90 was the original Netscape RSS version. This RSS was called RDF Site Summary, but was based on an early working draft of the RDF standard, and was not compatible with the final RDF Recommendation. RSS 1.0 is an open format by the RSS-DEV Working Group, again standing for RDF Site Summary. RSS 1.0 is an RDF format like RSS 0.90, but not fully compatible with it, since 1.0 is based on the final RDF 1.0 Recommendation. RSS 1.1 is also an open format and is intended to update and replace RSS 1.0. The specification is an independent draft not supported or endorsed in any way by the RSS-Dev Working Group or any other organization. The RSS 2.* branch (initially UserLand, now Harvard) includes the following versions:
RSS 0.91 is the simplified RSS version released by Netscape, and also the version number of the simplified version championed by Dave Winer from Userland Software. The Netscape version was now called Rich Site Summary, this was no longer an RDF format, but was relatively easy to use. It remains the most common RSS variant. RSS 0.92 through 0.94 are expansions of the RSS 0.91 format, which are mostly compatible with each other and with Winer's version of RSS 0.91, but are not compatible with RSS 0.90. In all Userland RSS 0.9x specifications, RSS was no longer an acronym. RSS 2.0.1 has the internal version number 2.0. RSS 2.0.1 was proclaimed to be "frozen", but still updated shortly after release without changing the version number. RSS now stood for Really Simple Syndication. The major change in this version is an explicit extension mechanism using XML Namespaces. For the most part, later versions in each branch are backward-compatible with earlier versions (aside from non-conformant RDF syntax in 0.90), and both versions include properly documented extension mechanisms using XML Namespaces, either directly (in the 2.* branch) or through RDF (in the 1.* branch). Most syndication software supports both branches. Mark Pilgrim's article "The Myth of RSS Compatibility" discusses RSS version compatibility in more detail.

The extension mechanisms make it possible for each branch to track innovations in the other. For example, the RSS 2.* branch was the first to support enclosures, making it the current leading choice for podcasting, and as of mid-2005 is the format supported for that use by iTunes and other podcasting software; however, an enclosure extension is now available for the RSS 1.* branch, mod_enclosure [4]. Likewise, the RSS 2.* core specification does not support providing full-text in addition to a synopsis, but the RSS 1.* markup can be (and often is) used as an extension. There are also several common outside extension packages available, including a new proposal from Microsoft for use in Internet Explorer 7.

The most serious compatibility problem is with HTML markup. Userland's RSS reader—generally considered as the reference implementation—did not originally filter out HTML markup from feeds. As a result, publishers began placing HTML markup into the titles and descriptions of items in their RSS feeds. This behaviour has become widely expected of readers, to the point of becoming a de facto standard, though there is still some inconsistency in how software handles this markup, particularly in titles. The RSS 2.0 specification was later updated to include examples of entity-encoded HTML, however all prior plain text usages remain valid.

Atom :

In reaction to recognised issues with RSS (and because RSS 2.0 is frozen), a third group began a new syndication specification, Atom, in June 2003, and their work was later adopted by Internet Engineering Task Force (IETF) leading to the publication of a specification (RFC 4287) for the Atom Format in 2005. Work on the Atom Publishing Protocol, a standards-based protocol for posting to publishing tools is ongoing.

The relative benefits of Atom in comparison to the two RSS branches are a matter of debate within the Web-syndication community. Supporters of Atom claim that it improves on RSS by relying on standard XML features, by specifying a payload container that can handle many different kinds of content unambiguously, and by having a specification maintained by a recognised standards organisation. Critics claim that Atom unnecessarily introduces a third branch of syndication specifications, further confusing the marketplace.

BitTorrent and RSS :

The peer-to-peer application BitTorrent has also announced support for RSS. Such feeds (also known as Torrent/RSS-es) will allow client applications to download files automatically (also known as Broadcatching). Most common BitTorrent clients already offer RSS support.

RSS Syntax:

RSS defines an XML grammar (a set of HTML-like tags) for sharing news. Each RSS text file contains both static information about your site, plus dynamic information about your new stories, all surrounded by matching start and end tags.
Each story is defined by an tag, which contains a headline TITLE, URL, and DESCRIPTION. Here's an example: ...

Each RSS channel can contain up to 15 items and is easily parsed using Perl or other open source software. If you want more details on creating RSS files see Jonathan Eisenzopf's excellent article in the February issue of Web Techniques. But you don't have to worry about the details, we've made it easy to create your own RSS channel with free open source scripts, all Web based. More on these later.
Once you've created and validated your RSS text file, register it at the various aggregators, and watch the hits roll in. Any site can now grab and display your feed regularly, driving traffic your way. Update your RSS file, and all the external sites that subscribe to your feed will be automatically updated. What can be easier? But wait, there's more.