In this document, I wish to explore how feeds may be implemented in a hypertext artifact such as the one I am designing. In order to define feeds for this site, I must first take a look at what a feed is:

A feed is a type of resource that contains an informative header and an ordered sequence of items. The items each contain a link to, and often meta-data and excerpts from another resource. The sequence depicts changes happening to a resource on a Web site, a set of resources, or, as a site is inductively a set of resources, an entire site itself.

The purpose of a feed is to provide a concise and unambiguous summary of changes that consumers of a site's data can poll for updates.

Feeds are represented primarily by the following, mostly-overlapping data formats:

RSS 1.0
RSS 1.0 is one of the older extant feed formats. It is also an early RDF vocabulary which makes it consumable by Semantic Web systems, but its widespread use as an XML feed format is sunsetting.
RSS 2.0
RSS 2.0 was a unilateral effort to simplify what was regarded as superfluous syntax of RSS 1.0. It has been widely adopted and extended on an ad-hoc basis.
Atom can be seen as an attempt to rein in some of the chaos of RSS 2.0 by establishing an IETF RFC and giving some structure to its extensibility. It is also widely adopted.


There are three major ways a feed can be serialized. Each of these has semantics that are slightly different, but overlap mostly with the other two. It therefore makes sense to represent feeds internally as the union of these three formats, and then provide functions to access each representation as a facet of the internal structure.

Clients can request specific feed variants by way of the Accept HTTP header:

Along with other resources, the system could allow the Accept header to be overridden by the URI query string.

First-Class, or Derived Resources?

With an abstract internal structure that depicts events, it becomes extremely attractive to address feeds as derivations of other resources. This way, the system could expose a feed for any resource or set of resources within it. The feed could be accessed, for example, by appending a path parameter to its URI, like;feed.

This strategy depends, however, on whether or not a feed could always be defined as being about another resource.

Feeds on

To satisfy those that have asked, I have placed a provisional feed at a temporary location. I will update this feed when I add new documents to the site. Once I have chosen a final location for it, I will permanently redirect all requests, though the feed will be accessible by its UUID in perpetuity.