Abstract
Better characterize the requirements around atom:id
Status
Open
Rationale
Capture consensus from the mailing-list and several other Paces; the chief sources are mailing list contributions from
Dare Obasanjo and
Tim Bray.
Proposal
Change sections 4.2.6 and 5.5 of the format specification to read:
4.2.6 "atom:id" Element
-
The "atom:id" element's content conveys a permanent, globally unique identifier for the feed. It MUST NOT change over time, even if the feed is relocated. atom:head elements MAY contain an atom:id element, but MUST NOT contain more than one. The content of this element, when present, MUST be a URI.
It is not a goal that atom:id be usable for retrieval of information. Given that HTTP URIs can be used for retrieval, it is possible that their use in atom:id could lead to misunderstanding of the meaning and correct use of atom:id. For this reason, implementors SHOULD consider using another URI scheme (see the
URI Scheme Registry) which does not imply information-retrieval semantics, for example URNs (see [RFC2141] and the
URN Namespace Registry).
-
Historically, in syndication feeds, the detection of duplicates has been error-prone because of failure to assign identifiers which are globally unique and stable. Identifiers have been observed to change when a feed moved hosts or when an entry was reassigned to a different category or its title was edited. The management of globally unique and immutable identifiers requires prior planning and extra effort, but this is more than justified by the benefits of robust duplicate detection.
5.5 "atom:id" Element
-
The "atom:id" element's content conveys a permanent, globally unique identifier for the entry. It MUST NOT change over time. atom:entry elements MUST contain exactly one atom:id element. The content of this element MUST be a URI.
The discussion of uniqueness and permanence in atom:id within atom:head found in 4.6 above applies also to atom:id within atom:entry.
Impacts
Slightly increases complexity of generating atom feeds and entries since an identifier other than permalink must be created for each feed and entry.
Significantly increases the ability of feed aggregators and other atom processors to detect and manage new atom entries and feeds.
