[microformats-discuss] Evaulating RSS per the
microformats principles.
Stephen Downes
stephen at downes.ca
Sun Aug 14 19:08:34 PDT 2005
Hiya,
Just a note to try to clear up some misconceptions. Like this:
> But I can't use that RSS archive for anything. I can't read it (or
> I'll have to add it to a subscription list to read it just once). I
> can't link to it. For it to be usable as an archive format RSS
> readers will have to reinvent every aspect of the webbrowser - with
> an added RSS wrapper. That's more tha a little silly.
This (and similar comments about what RSS "can't do") is simply false.
Anything XHTML can do, RSS can do.
RSS is a type of XML (so is Atom, and all my comments apply to both
equally). Crucially:
RSS + XSLT = XHTML
And for that matter,
XHTML + XSLT = RSS
So what's the difference? Specifically: XHTML uses elements (such as
'p', 'h1', etc) that are interpreted automatically by your browser,
while RSS uses elements (such as 'item','title', etc) that your browser
requires XSLT in order to interpret. Today's browsers can all do this;
they can easily display XML using XSLT (here is an example:
http://www.downes.ca/news/OLDaily.xml ) but the kicker is, the XSLT
declaration needs to be contained in the RSS file and the XSLT must be
located in the same domain as the RSS (for the browser; on the server
side, any XSLT may be applied without restraint).
*What this means* is that any XHTML definition of 'blog posts' should
*map* to existing RSS (or Atom) elements.
IMHO, the easiest way to do it is to simply use divs (for channels and
items) and spans (for internal elements), using either Atom or RSS to
specify classes Here is an example using RSS:
<div class="channel">
<span class="title">My Blog</span>
<a class="link">http://www.whatever.com</a>
<div class="item">
<span class="title">My Blog Post</span>
<a class="link">http://www.whatever.com/post/1</a>
</div>
</div>
Why not use specialized XHTML, such as <h1> to indicate, say, blog post
titles? Because *many* RSS files contain XHTML embedded in the
'description' or 'content' elements. It is a virtual certainty that this
usage conflict with any XHTML specifications for blog posts.
Now I should say, I do not consider the formulation given above to be a
*micro* format. This is because this is a base into ehich microformats
can be embedded.
In RSS (and Atom) we can think of microformats as extensions. For
example, RSS allows a Dublin Core extension. Dublin Core is used to
specify bibliographic metadata, such as author or publisher. Thus, for
example, in RSS you can have:
<item>
...
<dc:publisher>McGraw-Hill</dc:publisher>
</item>
Again, this should map to XHTML using classes:
<div class="item">
...
<span class="dc_publisher">My Blog Post</span>
</div>
The other microformats discussed on microformats.org would be (should
be) *embedded* in the items (or channels, as approrpiate). They *should*
map, first, to existing RSS (or Atom) extnsions, and then, ultimately,
to *proposed* RSS (or Atom) extensions (such both RSS and Atom are not
as semantically rich as they should be).
For example:
<div class="item">
<span class="title">My Blog Post</span>
<a class="link">http://www.whatever.com/post/1</a>
<a href="http://technorati.com/tag/tech" rel="tag">tech</a>
</div>
Another example, of post turned into a calendar item (using syntax as is
currently at http://microformats.org/wiki/hcalendar ):
<div class="item">
<span class="title">My Blog Post</span>
<a class="link">http://www.whatever.com/post/1</a>
<span class="vevent">
<a class="url" href="http://www.web2con.com/">
<span class="summary">Web 2.0 Conference</span>:
<abbr class="dtstart" title="2005-10-05">October 5</abbr>-
<abbr class="dtend" title="2005-10-07">7</abbr>, at
the <span class="location">Argent Hotel, San Francisco, CA</span>
</a>
</span>
</div>
This, in turn, would map back to RSS (roughly?) as follows:
<item>
<title>My Blog Post</title>
<link>http://www.whatever.com/post/1</link>
<hcal:hcal>
<hcal:dtstart title="2005-10-05">October 5</hcal:dtstart>
<hcal:dtend" title="2005-10-07">7</hcal:dtend>
<hcal:location>Argent Hotel, San Francisco,
CA</hcal:location>
</hcal:hacl>
</div>
(I left out 'link' and 'simmary' from the hcal RSS example becvause they
are redundant with the 'item' link and description and title.)
Anyhow, the *main* point here is that the RSS and the XHTML versions are
fundamentally the same thing. For most systems, *both* are derived (via,
eg., templating) from database contents. Items from both XHTML and RSS
can be displayed individually or as a list in a channel. Archives may be
expresswed as RSS or XHTML, no difference.
And the *secondary* point is that it is best to treat RSS channels and
items as 'wrappers' into which other microformats are embedded; the
exact combination of embedded microformats is what makes the item a
'comment', a 'b log post', an 'event' or whatever.
With all of that said, my thoughts on RSS referencing for discussion
lists and more, posted to RSS-DEV:
http://www.downes.ca/cgi-bin/website/view.cgi?dbs=Article&key=1122488147&format=full
And the concept and theory behind my remarks, a talk I delivered at a
national metadata conference last week:
http://www.downes.ca/cgi-bin/website/view.cgi?dbs=Article&key=1123857153
-- Stephen
--
Stephen Downes ~ Research Officer ~ National Research Council Canada
http://www.downes.ca ~ stephen at downes.ca __\|/__ Free Learning
--
More information about the microformats-discuss
mailing list