Alex Hopmann     

Technology- History of RSS             

Email Alex Hopmann

Home

XMLHTTP

Lancair

Art

Travel

Food

Hiking

Fast Carrot

About Alex Hopmann


Airplanes

Flying

Family

Food

Travel


February, 2005

March, 2005

April, 2005

May, 2005

June, 2005

July, 2005

August, 2005

September, 2005

October, 2005

RSS Feed

 

 

 

June 22, 2006

Technology- History of RSS

Yesterday I was browsing some stuff and came across a couple of sites that describe the history of RSS. I'm sure these are accurate as far as they go, yet they are still missing quite a bit of the details. Tim Bray wrote a good version of the CDF -> RDF side of things, and this book by Heinz Wittenbrink mentions the CDF angle a bit.

The RSS Specifications web-site says that RSS evolved from RDF which was invented by Ramanathan Guha. However its important to point out a couple of additional specifications that came before RSS. Before he went to Netscape Guha was at Apple where he invented MCF, the Meta Content Format . MCF was based on a name:value format similar to MIME, and Internet email (see the MIMEDIR specification) but was only implemented in a strange experimental 3D browser called HotSauce that Apple shipped for a brief period of time.

Beginning in 1994 I started developing some formats and protocols to use Internet standards for a rich client online application. One of these formats was called "WindowScript" and it was presented at an IETF meeting I think in late 1995. It used the name:value style to specify the user interface of an application, effectively the same concept as XUL (although much less sophisticated at the time). The notion was that you could specify complex User Interface like a whole email application using WindowScript and it would data-bind to HTML and other content to interact with the user.

When I joined Microsoft in November 1996, one of the early projects I got involved with was helping create a format for specifying data about web-sites. The initial vehicle was supposed to be the feature "channels" in IE 4, but as is often typical at Microsoft we had fairly grandios ideas about broader applications. At some point in early 1997 Thomas Reardon dragged me down the hallway to meet with Jean Paoli who had just joined Microsoft and was talking about this new thing called "XML". It seemed like XML was going to be big some day, so we quickly changed all the colons to angle brackets in the spec and published "Web Collections in XML" to the W3C on March 7th, 1997. To the best of my knowledge this is the earliest existing document addressing XML- at the time I believe the decision had not yet been made by the XML working group to make tags and attributes case sensitive and there are several other historical oddities in that spec.

Dated 3 days later on March 10th, 1997 was Castedo Ellerman's Channel Description Format (CDF) specification. I don't remember why we diverged and published two similar but slightly different specs on the same week- I was working with Castedo at the time. I suspect the issue was that IE was under huge pressure to ship quickly and they felt like they needed their own thing that they could just lock down and be done with right away.

In the summer of 1997 Guha, now at Nescape responded to our Web Collections and CDF proposals by adapting MCF to be expressed in XML. The W3C saw these many different proposals and created a working group to sort out the differences. The W3C was very interested in pursuing this as part of their semantic web initiative. Inside Microsoft we had shifted our thinking a bit at this point and thought that these meta-data proposals were unnecessary since the XML was the way to represent the meta-data. Of course XML still needed schemas to do useful applications but we didn't see much value in RDF, being a language in between the base XML language and the actual application-specific schemas. Tim Bray's post back in 2003 acknowledges "it hasn't exactly turned the world inside out" and RDF hasn't made much adoption progress since then. I'd argue that the ratio of "data expressed in RDF in 2006" vs. "data expressed in any XML-based format in 2006" (a number pretty much indistinguishable from 0) suggests we were right. If RDF were really solving such a crucial problem I'd bet that it would be pretty widely used 8 years later. Tim argues that RDF's problem is that the format is too obtuse, but again, if it were really solving a problem, a simplified format such as he proposes would have happened by now. Instead formats like RSS and ATOM suplimented with all sorts of extra XML tags continue to take the Internet by storm.

Neither MCF, RDF, or Web Collections anticipated the notion of blogs and a feed of posts. They were all more focused around site-map type applications and more traditional notions of web site publishing. Dave Winer created RSS based on some of these earlier formats for this application and the killer makes all the difference (in a good way!) I do remember in the spring of 1997 talking with Dave Winer and evangelizing CDF to him. If I recall, his reaction was that he didn't really get the "channel" thing (which is not a surprise since it was mostly just a Netscape vs. Microsoft hype thing around the latest buzzword- "push") and that the CDF format seemed too complicated. I recall building a CDF "Channel" for scripting news, but the whole channel notion fizzled so much over the summer of 1997 that the CDF approach was quickly forgotten.

For comparison sake, here are some examples of what the various formats look like. These examples make it pretty clear to me the similarity between CDF and RSS.

MIMEDIR (circa Nov 1996)

source: ldap://cn=Meister%20Berger,o=Universitaet%20Goerlitz,c=DE
name: cn=Meister Berger, o=Universitaet Goerlitz, c=DE
cn: Meister Berger
cn: Berger Meister
sn: Berger
age;value=int: 33
o;charset=iso-8859-1;encoding=quoted-printable: Universit=E6t G=F6rlitz
title: Mayor
title;language=de;value=text: Burgermeister
description;encoding=quoted-printable: The Mayor of the great city of=
 Goerlitz in the great country of Germany.
email: mb@goerlitz.de
home.phone;fax,voice,msg: +49 3581 123456
home.addr;encoding=quoted-printable: Hufenshlagel 1234=0A=
 02828 Goerlitz=0A=
 Deutschland
certificate;encoding=base64: dGhpcyBjb3VsZCBiZSAKbXkgY2VydGlma...

Meta Content Format (MCF)

begin-headers: 
MCFVersion: 0.95 
name: "Animals" 
end-headers: 
unit: "http://mcf.research.apple.com/hs/Dogs.mcf" 
name: "Dogs" 
unit: "http://mcf.research.apple.com/hs/Cats.mcf" 
name: "Cats" 
unit: "http://mcf.research.apple.com/hs/Pets.mcf" 
name: "Pets" 
unit: "http://mcf.research.apple.com/hs/FamousDogs.html" 
name: "Famous Dogs Page" 
parent: #"http://mcf.research.apple.com/hs/Dogs.mcf" 
unit: "http://mcf.research.apple.com/hs/BestPets.html" 
name: "Best Pets" 
parent: #"http://mcf.research.apple.com/hs/Dogs.mcf" 
unit: "http://mcf.research.apple.com/hs/WildDogs.html" 
name: "WildDogs" 
parent: #"http://mcf.research.apple.com/hs/Dogs.mcf" 
unit: "http://mcf.research.apple.com/hs/CatLovers.html" 
name: "Cat Lovers Page" 
parent: #"http://mcf.research.apple.com/hs/Cats.mcf" 
unit: "http://mcf.research.apple.com/hs/CatHatershtml" 
name: "Cat Haters Page" 
parent: #"http://mcf.research.apple.com/hs/Cats.mcf" 
unit: "http://mcf.research.apple.com/hs/GeneralPetStuff.mcf"
name: "General Pet Stuff" 
parent: #"http://mcf.research.apple.com/hs/Pets.mcf" 

XML Web Collections

<XML>
<WEBMAP profile="http://www.w3.org/WebMap.webc" VALUE="Widget Inc. Web">
  <Author value="Sally Widget"/>
  <Print value=FALSE/>
  <Offline value=TRUE/>
  <Page about="http://www.widget.com">
    <Author value="Sam Jones"/>
    <LastMod value=="Sat, 01 Feb 1997 10:21:18 GMT"/>
    <Title value="the Widget Inc web site"/>
    <MaxDLSize value=50000/>
    <Schedule value=DAILY/>
  </Page>
  <Page about="http://www.widget.com/products.htm">
    <Author value="Sam Jones"/>
    <LastMod value=="Sat, 01 Feb 1997 10:21:18 GMT"/>
    <Title value="Widget products page"/>
    <MaxDLSize value=50000/>
    <Schedule value=DAILY/>
  </Page>
  <Page about="http://www.widget.com/products/wholesale.htm"/>
    <Author value="Sam Jones"/>
    <LastMod value=="Sat, 01 Feb 1997 10:21:18 GMT"/>
    <Title value="Wholesale Products Info"/>
    <MaxDLSize value=50000/>
    <Schedule value=DAILY/>
  </Page>
</WEBMAP>
</XML>

CDF

<Channel HREF="http://www.foosports.com/foosports.cdf" IsClonable=YES >
    <IntroUrl
VALUE="http://www.foosports.com/channel-setup.html" />
    <LastMod VALUE="1994.11.05T08:15-0500" />
    <Title VALUE="FooSports" />
    <Abstract VALUE="The latest in sports and atheletics from
FooSports" />
    <Author VALUE="FooSports" />
    <Schedule>
      <EndDate VALUE="1994.11.05T08:15-0500" />
      <IntervalTime DAY=1 />
      <EarliestTime HOUR=12 />
      <LatestTime HOUR=18 />
    </Schedule>
    <Logo HREF="http://www.foosports.com/images/logo.gif"
Type="REGULAR" />
    <Item HREF="http://www.foosports.com/articles/a1.html">
       <LastMod VALUE="1994.11.05T08:15-0500" />
       <Title VALUE="How to get the most out of your mountain bike" />
       <Abstract VALUE="20 tips on how to work your mountain-bike
to the bone and come out on top." />
       <Author VALUE="FooSports" />
    </Item>

    <Channel IsClonable=NO >
        <LastMod VALUE="1994.11.05T08:15-0500" />
        <Title VALUE="FooSports News" />
        <Abstract VALUE="Up-to-date daily sports news from
FooSports" />
        <Author VALUE="FooSports" />

        <Logo HREF="http://www.foosports.com/images/newslogo.gif"
         Type="REGULAR" />

        <Logo HREF="http://www.foosports.com/images/newslogowide.gif"
         Type="WIDE" />

        <Item HREF="http://www.foosports.com/articles/news1.html" >
            <LastMod VALUE="1994.11.05T08:15-0500" />
            <Title VALUE="Michael Jordan does it again!" />
            <Abstract VALUE="Led by Michael Jordan in scoring, the
Chicago Bulls make it to the playoffs again!" />
            <Author VALUE="FooSports" />
        </Item>
        <Item HREF="http://www.foosports.com/articles/news2.html" />
            <LastMod VALUE="1994.11.05T08:15-0500" />
            <Title VALUE="Islanders winning streak ends" />
            <Abstract VALUE="The New York islanders' 10-game
winning streak ended with a disappointing loss to the Rangers" />
            <Author VALUE="FooSports" />
        </Item>
    </Channel>
    <Item HREF="http://www.foosports.com/animations/scrnsvr.html" />
       <Usage VALUE="ScreenSaver"></Usage>
    </Item>
    <Item HREF="http://www.foosports.com/ticker.html" />
       <Title VALUE="FooSports News Ticker" />
       <Abstract VALUE="The latest sports headlines from FooSports" />
       <Author VALUE="FooSports" />
       <LastMod VALUE="1994.11.05T08:15-0500"/>
...

RDF

<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:exterms="http://www.example.com/terms/">

<rdf:Description rdf:ID="item10245">
<exterms:model rdf:datatype="&xsd;string">Overnighter</exterms:model>
<exterms:sleeps rdf:datatype="&xsd;integer">2</exterms:sleeps>
<exterms:weight rdf:datatype="&xsd;decimal">2.4</exterms:weight>
<exterms:packedSize rdf:datatype="&xsd;integer">784</exterms:packedSize>
</rdf:Description>

...other product descriptions...

</rdf:RDF>

RSS

<?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 </description> 
 <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate> 
 <guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid> 
</item>
<item>
 <description>Sky watchers in Europe, Asia, and parts </description> 
 <pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate> 
 <guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid> 
</item>
<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 </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>

 

 

000000

 

 

The fine print- Not much fine print for this website.