On May 13, 2009, at 1:14 PM, Martin Atkins wrote:
Nikunj Mehta wrote:
Intermediaries such as libraries, synchronization tools, and
aggregators won't understand 10,000 new link relations that every
vendor dealing with AtomPub is currently producing. IMHO, the rel
value should be understandable to intermediaries not only end points.
If an intermediary is Atom-generic then it should not be attempting
to understand link relations. A library would ideally provide an
interface to retrieve links by (rel, type) pair, possibly also
allowing constraining by hreflang.
Why so? We see tremendous value in interpreting rel values for pre-
fetching certain data that we feel may be useful to the user.
The meaning of specific values of rel is for endpoints to determine,
not intermediaries. Intermediaries should just be concerned with
getting the data from A to B without loss of meaning.
I am using the term intermediaries rather loosely here. See above for
what I mean by the term. When an application produces a variant of
AtomPub for interaction between server A and client B, A and B are the
endpoints. However, if a standard client C wants to play with server
A, it would be useful if it didn't have to fully understand all the
customizations introduced by A.
How is introducing another dimension for application-specified text
worse than creating a huge number of non-standard rel values? It
doesn't break any existing clients or servers.
Adding a new attribute to link seems likely to break more
intermediaries than adding new rel values.
What intermediaries would break if they see new attributes on links?
Can you relate your experience with this issue?
Existing libraries will likely not provide a convenient means to
access the new attribute, and entry re-publishing systems may drop
the new attribute on the floor when the entry round-trips through
their data model.
Dropping foreign mark-up is a boo-boo in Atom, whether it is in
clients or servers.
However, I do agree with your general principle that new link
relationships should be generic and not specific to a given
application. rel and type are two orthogonal dimensions that should
be considered together by applications.
I am not sure what you mean by type - it is optional and merely a hint
for the Content-Type of the representation obtained at the href.