Abstract
Better characterize the requirements around atom:id. Nearly identical to PaceBasicAtomID except it uses strings instead of URIs.
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.
IDs can be unique and unchanging more easily as text strings than as URIs. The people who want their IDs to be URIs can, and the people who want to use other unique and unchanging text don't have to force that into a URI structure.
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 string of Unicode characters. When atom:id elements are compared, they MUST be compared on an exact character-by-character basis.
It is not a goal that atom:id be usable for retrieval of information. Even if a particular atom:id instance looks like a URI, it SHOULD NOT be treated as one.
-
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 string of Unicode characters.
The discussion of uniqueness, permanence, and comparison 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.
Notes
Posted by: PaulHoffman