RSS Linking Module and OCS

I have been looking at how mod_link can be used to replicate or replace what I have been developing with OCS. The key function of OCS is to provide user-agents with enough information to make a choice about which channels to retrieve and display for the user and how often. Currently OCS can describe alternates by schema, content type, encoding and publishing schedule.

I have some additional use cases that I have been working on to support in OCS. One is a mechanism for describing the composition of a channel. By this I mean a way of declaring that a channel is a composite of several other channels, perhaps even with some sort of filter applied.

Another use case is describing a fat version of the channel that utilises mod_content and thin version that contains just headlines. Lightweight user-agents could use this information to reduce unnecessary bandwidth consumption.

For mod_link to be able to replicate the functionality in OCS it needs to be able to provide flexible metadata about each related url.

I started by looking at the existing syntax. My first thought was to reduce it down to its essentials and reuse existing elements. My first cut was something similar to this:

<channel rdf:about="http://example.org/rss.rdf">
  <l:link l:rel="http://purl.org/rss/1.0/modules/link/#alternate"
          dc:format="application/rss+xml"
          dc:title="This channel translated into French"
          dc:lang="fr"
          rdf:resource="http://www.example.org/index-fr.rss"/>
</channel>

However, that restricts the additional information about the link to being literals.

A more rdf-ish and flexible approach would be:

<channel rdf:about="http://example.org/rss.rdf">
  <l:link>
    <rdf:Description rdf:about="http://www.example.org/index-fr.rss">
      <l:rel rdf:resource="http://purl.org/rss/1.0/modules/link/#alternate" />
      <dc:format>application/rss+xml</dc:format>
      <dc:title>French</dc:title>
      <dc:lang>fr</dc:lang>
    </rdf:Description>
  </l:link>
</channel>

This allows the metadata about the link to be more richly described. But it has the disadvantage of being harder to parse by a non-rdf aware parser.

My final thought that a more rss-ish approach would be:

<channel rdf:about="http://example.org/rss.rdf">
  <l:links>
    <rdf:Bag>
      <rdf:li rdf:resource="http://www.example.org/index-fr.rss" />
    </rdf:Bag>
  </l:links>
</channel>

<l:link rdf:about="http://www.example.org/index-fr.rss">
  <l:rel rdf:resource="http://purl.org/rss/1.0/modules/link/#alternate" />
  <dc:format>application/rss+xml</dc:format>
  <dc:title>French</dc:title>
  <dc:lang>fr</dc:lang>
</l:link>

This has the advantage of being closer to the rss 1.0 model of items which may make it easier for authors to get to grips with.

I'm still looking at the options for integrating OCS and mod_link and am optimistic that this might eventually be possible.

Permalink: http://blog.iandavis.com/2002/10/rss-linking-module-and-ocs/

Other posts tagged as ocs, projects

Earlier Posts