In taking a look back over the archives, I see that a good bit or discussion around links & link extension has already place [0], which I found enlightening (and I am happy to back away from rehashing old arguments if that all this ends up being).

In the interest of putting the "what" before the "how", the goals here, as I understand it, would be to figure out a way to:

1. provide a way to add metadata to a particular atom:link

2. provide a way to group a set of links and/or to establish a relationship between links that appear in a single atom:entry and possibly to "type" those relationships

and the means at our disposal:

1. the "rel" attribute of atom:link

2. new extension attributes of atom:link

3. child elements of atom link (and attributes on those elements).

By sticking to those goals & means, I suspect you cover most use cases (at least ones that have at hand and/or am aware of), AND clients that DON'T implement such an extension shouldn't be hampered.

The one bit of "how" I'd like to see (and this, I realize, may not be a majority opinion) would be to have every media entity have it's own atom:link, and not be made a child of another atom:link or made part of an enumerated, space-delimited list in an atom:link attribute. I.e., I would hope that the relationships/groups could be expressed as metadata "about" a link. (The challenge, of course, is to figure out a way to say "this is related to that" without identifying the "that" in the statement). James Snell's Atom Link Extension ID used a "group" attribute on atom:link with a case-insensitive opaque text string identifying the group. One would them need to rely on the type or rel attributes to discover the media entities "role" in that group. Not bad, I think.

Grouping/relationships is the trickiest bit. Not as difficult, would be to come up with the list of metadata attributes that might be used with a link and figure out if they should be attributes on atom:link or children. If children (my preference), you could keep them fairly abstract and allow for an "open" set of possible values, e.g.:

<link ...>
  <x:hash type="md5">391ea33cbe3a052e6b247c7b943d1a73</hash>
</link>

OR even:

<link ....>
  <x:format type="height" unit="px">128</format>
  <x:format type="channelMode">stereo</format>
</link>

--Peter Keane

[0] http://www.imc.org/atom-syntax/mail-archive/msg17378.html

On Fri, 18 Jan 2008, James Holderness wrote:


Eric Scheid wrote:
On 18/1/08 3:20 AM, "James M Snell" <[EMAIL PROTECTED]> wrote:
One of the criticisms of that work was that while rfc4287 allowed the
atom:link element to have child elements, it was not clear how many
implementations would actually be able to do anything with them. Another
issue was whether implementations that could get to the extensions
actually would do anything with them.

that is pretty much par for the course for *any* extension though, right?

Sure, but if you can't find anyone that intends to use your extension (and you need both clients and servers), you have to ask yourself why you're bothering to design it in the first place.

Not that I'm saying that's the case for media extensions. I just don't think you should underestimate the importance of the question: will anyone use this?

Regards
James


Reply via email to