One of the challenges facing client developers, including us, is the
limitless proliferation of rel values for atom:link. The problem is
that everyone abuses the rel value mechanisms of atom:link. While we
shouldn't attempt to stop this, where new public standards are being
created we ought to act more prudently.
Specifically, I suggest that new standard rel values be used for
introducing new features in Atom's data model. For example, dealing
with hierarchy/containment requires the use of new rel values because
using any other value will completely trash the existing definition of
that value.
On the other hand, applications may use Atom's category term attribute
to ascribe computer-readable meaning to the specific link. For
example, CMIS shows a good number of such examples where a single
folder entry can have children of four different kinds - policies,
relationships, documents, and descendants [1].
The IETF should not blindly register new link relation values for each
of these types of children. Instead, the IETF should exhaust existing
link relations or see if there is a need for a new general purpose
link relation value. This way, the new value will have uses far beyond
the specific application introducing that value.
As an example, consider the following solution to the CMIS requirement
where I am using hierarchy-ID's rel=detail and rel=related:
<entry xmlns="..." xmlns:h=".../">
<title>A folder entry</title>
<id>...</id>
<updated>...</updated>
<author><name>John Doe</name></author>
<content src="..."/>
<link rel="self" href="/folder;metadata"/>
<link rel="edit" href="/folder;metadata"/>
<link rel="detail" h:count="0"
title="Folder children collection"
href="/folder;contents/" term="http://www.oasis-open.org/cmis#contents
"/>
<link rel="detail" h:count="0"
title="Folder relationships collection"
href="/folder;relationships/" term="http://www.oasis-open.org/cmis#relationships
"/>
<link rel="detail" h:count="0"
title="Folder policy collection"
href="/folder;policies/" term="http://www.oasis-open.org/cmis#descendants
"/>
<link rel="related" h:count="0"
title="Folder descendants feed"
href="/folder;descendants/" term="http://www.oasis-open.org/cmis#descendants
">
</entry>