“There’s something out there!”: the link element
by ZetaGecko | Add Your Comments | Atom/RSS
It has again been suggested on the AtomPub mailing list that a link relation of "stylesheet" be used to point to an XSL template that could be used to transform a feed to some other format. This lead back to the question of what the link element was designed for. Unfortunately, we didn't nail the answer to that down very tightly. After a little thought, here's what I think the "link" element in a few formats means, and what it should have meant in Atom.
RSS: "There's something out there." Okay, it's a little more specific than that: "There's something over there." The link element points to something. Nothing more is known than that. Well, maybe just a little more. The link element points to something that has some relationship to the item. By convention, the something is either an HTML representation of the item, or a webpage that the item is talking about.
Atom: "There's something over there, and this is how it's related to this entry." It's a step up. The two major RSS cases are handled by link/@rel="alternate" (another reprentation of the data in the entry) and link/@rel="related". Some of us wanted a mor specified link/@rel="about" ("this entry talks about that resource--not just the same topic, but the resource itself") to go along with "related" ("here's some more reading on the topic"). Oh well, I could still propose that it be added to the link registry. Maybe I will.
The Atom that could have been: "There's something over there that I think you might want to see, and this is how it's related to this entry." That would have been the version that outlawed using link to point to XSL templates. ...of course if you wanted your readers to look at the XSL template itself, you could have pointed to it with a link, but that would have been different than pointing to the template so that the feed reader (or more likely, web browser) could use it to transform the data. The link element would have been used only to point to things that the reader might want to go check out, and another element would have been needed by those wanting to point to data intended for consumption by feed reading software.
Oh well.