Abstract
This pace tries to hash out some of the ideas around modifying and superseding entries in Atom, and also tries to draw a line between the two actions.
Status
Open
Conflicting Paces
-
PaceMinimalEntryVersioning -- proposes a minimal change to the format to allow a versioning mechanism to be layered over the core Atom format.
Rationale
This pace introduces two new terms to Atom: minor and major updates.
Minor updates
A minor update is a small typographical change in an entry. Such a change will only result in a fresh "atom:modified" date, but will not change "atom:issued". A minor update will typically not revoke the entry to be positioned at the top in a feed, if a feed is chronologically ordered. A minor update is just editorial, and will not do much to the entry but make it a better read due to typographical errata's and such.
Major updates
A major update is a change that adds something new to an entry. It is not a typographical errata or other minor changes, but a big change such as a new paragraph, a new section, etc. A major update does not overwrite the entry it is an update of, but instead results in a new entry (with a new "atom:id") being created that supersedes the old entry.
Use cases for atom:supersede
A Wiki
A Wiki is a good use case for atom:supersedes. Whenever a change is made to a Wiki page, the associated Atom entry is superseded with a new entry. The new entry has a new atom:id, and contains an atom:supersedes element which references the atom:id of the previous version of the Wiki page.
Each Atom entry for that distinct Wiki page will contain a <link rel="alternate" type="text/html" href="http://example.com/wiki/WikiName" />, however, which at all time points to the most current Wiki page version. If each sub-version of the Wiki page can be referenced directly, then that URI should be the "alternate" URI of the entries.
In the HTML of the Wiki page, you will find a <link rel="alternate" type="application/atom+xml" href="http://example.com/WikiName-00-01.atom" /> that is a reference to the latest Atom entry associated with this Wiki page.
Archive export
If you have a CMS that supports versioning, and ever want to export the entries from it, you could use Atom with the atom:supersedes element to indicate each change that has ever occurred to a given entry. Without atom:supersedes, you would just have a random set of entries with the same atom:id and no system to "nest up" what order the modifications has been performed in.
Proposal
Add the following section to 4.13 The atom:entry Element:
4.13.x "atom:supersedes" Element
The "atom:supersedes" Element is an element that refers to the value an atom:id element. atom:supersedes further indicates that the atom:entry that is associated with the referenced atom:id element is to be considered obsolete, or no longer valid.
atom:entry MAY contain an atom:supersedes element, but MUST NOT contain more than one.
atom:supersedes is a mechanism to alert of a major change to an entry. A major update is a change that adds something new to an entry. It is not a typographical errata or other minor changes, but a big change such as a new paragraph, a new section, etc.
Impacts
This pace impacts how Atom CMS's are allowed to work. A minor update may result in a change to "atom:modified", while a major update will result in a new entry being created, where the entry being created supersedes the old entry.
