<?xml version="1.0" encoding="UTF-8"?>
<essay xml:lang="en" version="5.0" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:gal="http://norman.walsh.name/rdf/gallery#" xmlns:foaf="http://xmlns.com/foaf/0.1/">
<info>
    
    
    
    
    
    
    
    
    
<title>Feeds</title><biblioid class="uri">http://norman.walsh.name/2006/02/14/feeds</biblioid>
<volumenum>9</volumenum>
<issuenum>17</issuenum>
<pubdate>2006-02-14T09:07:31-05:00</pubdate>
<date>$Date: 2006-02-15 09:24:56 -0500 (Wed, 15 Feb 2006) $</date>
<author>
      <personname>
<firstname>Norman</firstname>
	<surname>Walsh</surname>
</personname>
    </author>
<copyright>
      <year>2006</year>
      <holder>Norman Walsh</holder>
    </copyright>
<abstract>
<para>My plan to
<link xlink:href="http://norman.walsh.name/2006/02/01/rssrip">remove RSS feeds</link>
caused some consternation in the community. In addition to pointing
out some places where RSS is still needed, a workaround was proposed.
So, before I <emphasis>pull the plug</emphasis>, let's see if the
workaround will…work. [Update: no, it won't.]
</para>
</abstract>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#Atom"/>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#RSS"/>
</info>

<epigraph>
<attribution>
      <personname>
<firstname>Samuel</firstname>
	<surname>McChord Crothers</surname>
</personname>
    </attribution>
<para xml:id="p2">Try as hard as we may for perfection, the net result of our labors is
an amazing variety of imperfectness. We are surprised at our own
versatility in being able to fail in so many different ways.
</para>
</epigraph>

<para xml:id="p3">The problem I have with RSS is that it requires escaping markup.
And I won't. I've avoided the issue by (almost) never putting any markup in essay
abstracts or titles. If there's no markup,
there's nothing to escape. But every now and then I <emphasis>want</emphasis>
to use markup in the abstract or title and being constrained by RSS irritates me.
That was my motivation for
<link xlink:href="http://norman.walsh.name/2006/02/01/rssrip">pulling
the plug</link>.
</para>

<para xml:id="p1">In response to comments about my plans, I've made
three changes. In decreasing order of significance:</para>

<orderedlist>
<listitem>
<para xml:id="p4">One
<link xlink:href="http://dig.csail.mit.edu/breadcrumbs/node/78">suggestion</link>
is to use <literal>rdf:parseType="Literal"</literal>. There's
<link xlink:href="http://dannyayers.com/archives/2006/02/03/fixing-rss-10-content/">some concern</link>
that the
<link xlink:href="http://en.wikipedia.org/wiki/RSS_%28file_format%29">RSS</link>
1.0
<link xlink:href="http://web.resource.org/rss/1.0/spec">specification</link>
doesn't allow this. I dunno. The spec says “RSS is an XML application, conforming to the W3C's RDF Specification. RSS is extensible via XML-namespace and/or RDF based modularization.”</para>

<para xml:id="p5">Taking that as justification, I've adjusted the stylesheet that
generates RSS so that if a <tag>title</tag> or <tag>description</tag>
contains markup, it is identified as
<link xlink:href="http://www.w3.org/TR/rdf-concepts/#section-XMLLiteral">XML
content</link> in the RDF.</para>

<para xml:id="p6">Amazingly (considering all their parsing bugs)
<link xlink:href="http://www.bloglines.com/">Bloglines</link> gets this
right. The
<link xlink:href="http://feedvalidator.org/">Feed Validator</link> is not
quite so sanguine, but whether that's my bug or theirs is an open question
I think. (Why the validator complains about my namespace declaration for
the RSS namespace is a little baffling, but that's something else entirely.)
</para>
</listitem>

<listitem>
<para xml:id="p7">I've adjusted the stylesheet that generates
<link xlink:href="http://en.wikipedia.org/wiki/Atom_%28standard%29">Atom</link>
so that the full
text feed includes both the summary and the content.</para>
</listitem>

<listitem>
<para xml:id="p8">I've fixed the bug where my Atom feeds didn't include a
<literal>rel="self"</literal> link.</para>
</listitem>
</orderedlist>

<para xml:id="p9">This essay serves as a kind of test case. The
abstract contains a couple of examples of markup. I hope that even
tools which don't understand
<tag class="attribute">rdf:parseType</tag> will fallback gracefully. I
hope.</para>

<para xml:id="p10">If this solution goes over well, I'll leave the RSS
feeds alone. (It's not actually hard to <emphasis>not</emphasis>
delete them.) If not…I dunno. I could still pull the plug, but I
suppose I could arrange to discard the markup too. Time will
tell.</para>

<para xml:id="p11">[Update: 15 Feb 2006: As Ken points out in the comment below,
<tag>title</tag> and <tag>description</tag> are defined as text-only, so
the <tag class="attribute">rdf:parseType</tag> solution doesn't work.
Well, at least, markup isn't allowed. Whether or not
<literal>rdf:parseType="Literal"</literal> should allow “&lt;”, “&gt;”,
and “&amp;” to appear without double-escaping them may still be an open
question, but I give up. And I renege. I won't drop RSS. Instead, I've
adjusted the stylesheet that generates RSS so that it replaces “&lt;”,
“&gt;”, and “&amp;” with “✕” and discards other markup. Yeah, that
makes for titles like
“<link xlink:href="/2006/01/06/doctype">Drop the ✕!DOCTYPE✕</link>” in
RSS; if you don't like that, use the Atom feeds.</para>

<para xml:id="p12">For the record, the list of
<link xlink:href="/atom/">Atom</link> and <link xlink:href="/rss/">RSS</link>
feeds includes a “what's new” feed
(<link xlink:href="/atom/whatsnew.xml">Atom</link>,
<link xlink:href="/atom/whatsnew-fulltext.xml">Atom (full-text)</link>,
and 
<link xlink:href="/rss/index.rss">RSS</link>),
an “everything” feed
(<link xlink:href="/atom/everything.xml">Atom</link>,
<link xlink:href="/rss/everything.rss">RSS</link>),
and a fairly haphazard selection of topic-oriented feeds. Most, but not
quite all, are available in either Atom or RSS. (The
<link xlink:href="/atom/comments.xml">comment</link> and
<link xlink:href="/atom/subversion.xml">Subversion log</link> feeds
are Atom-only.)]</para>

</essay>

