Google+

RSS Linking Module and OCS

Leave a comment

31 October 2002 by Ian Davis

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.

<!–more–>

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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 1,721 other followers

%d bloggers like this: