Re: Proposal: deprecate mod_link (was Re: Re: multiple Links)

Ken MacLeod <ken-VbOJbV3qneKf+c8Povm/[email protected]>
Newsgroups gmane.network.syndication.rss.devel
Message-ID <[email protected]>
"Randy Morin" <[email protected]> writes:

> What's the alternate (pun) solution? How would you do a generic
> <link> in rss1.0?

Take a look at the bottom of Aaron's reply,
    http://groups.yahoo.com/group/rss-dev/message/4325

Aaron wrote:
AS>   Please recast it as RDF. Your example:
AS>    <l:link l:rel="http://purl.org/rss/1.0/modules/link/#alternate"
AS>      l:type="application/rss+xml"
AS>      l:title="What's New on Example (French)"
AS>      l:lang="fr"
AS>      rdf:resource="http://www.example.org/index-fr.rss"/>
AS>   should be:
AS>    <l:alternate rdf:resource="http://www.example.org/index-fr.rss"
AS>      dc:format="application/rss+xml"
AS>      dc:title="What's New on Example (French)"
AS>      dc:language="fr" />

I'm gonna try to stay out of the abstract and stick with the concrete,
which "hides" some concepts that might give an "Aha!" but also might
make things ramble.

I do, however, have to explain, in RDF terms, why even the *model* of
the Link module is wrong.

First, a basic RDF link:

  <atom:service.feed rdf:resource="http://example.org/feed.atom"/>

This indicates that the RDF subject (not shown, just assume it's the
resource this property is attached to) has a "feed" property, and that
representation of the "feed" property resource is at 'feed.atom'.  We
know this because that's the definition of atom:service.feed
documented somewhere else.

Every other bit of XML within that element or its children is about
the linked resource, 'feed.atom'.  That's because the above syntax is
a shorthand for,

  <atom:service.feed>
    <rdf:Description rdf:about="http://example.org/feed.atom"/>
  </atom:service.feed>

After its basic premise (RDF doesn't have links), the second biggest
problem with the Link module is that it presumes that the properties
l:title, l:rel, l:type are about the *link* (the property), when the
RDF model says they are about the resource *referenced* by the
property (the object URI).  Literally, the above Link example
translates to:

  <l:link>
    <rdf:Description rdf:about="http://www.example.org/index-fr.rss">
      <l:type>application/rss+xml</l:type>
      <l:title>What's New on Example (French)</l:title>
      <l:lang>fr</l:lang>
      <l:rel>http://purl.org/rss/1.0/modules/link/#alternate</l:rel>
    </rdf:Description>
  </l:link>

Here, l:type, l:title, and l:lang actually look quite appropriate as
properties of 'index-fr.rss'.  It's the l:rel that is out of place,
because it's not a property of 'index-fr.rss', but somehow a property
of the l:link from the subject (channel) and 'index-fr.rss'.

So, if we switch that around and use the relation as the property
name, add in reusing existing vocabularies, and you get the
alternative.

  <atom:service.feed>
    <rdf:Description rdf:about="http://www.example.org/index-fr.rss">
      <dc:format>application/rss+xml</dc:format>
      <dc:title>What's New on Example (French)</dc:title>
      <dc:language>fr</dc:language>
    </rdf:Description>
  </atom:service.feed>

Noting the shorthand mentioned earlier, this is also:

  <atom:service.feed rdf:resource="http://www.example.org/index-fr.rss"
    dc:format="application/rss+xml"
    dc:title="What's New on Example (French)"
    dc:language="fr" />

Every relation in RDF is a generic link, and like the 'rel' attribute
in Atom and HTML, it's the property name that tells you what you can
do with the relation.

  -- Ken

P.S.  I understand that a follow-on discussion could happen about what
constitutes a "generic link", but the protracted discussion on
atom-syntax resolved that there's no such thing as a "generic link",
it's just that some people feel more comfortable "extending" a syntax
at a bottlneck point where they believe they don't have to create a
namespace or URI and new XML elements.  RDF says, "get past it, it's
simpler when you do".


 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/rss-dev/

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.