UserPreferences

PaceDateAsbjornUlsberg


Abstract

There is somewhat large confusion about what the different dates in Atom actually means, and what they are supposed to be used for. This pace tries to clarify this. It also modifies the Date Constructs to be based on [WWW]RFC 3339 instead of W3CDTF or XSD DateTime.

Status

Open.

This pace is superseded by PaceDateAsbjornUlsberg2.

Rationale

Clarify what the different dates in Atom is and how they should be used, and base all Date Constructs on RFC 3339.

Proposal

Replace or append to section 3.3, 4.13.6, 4.13.7 and 4.13.8 the following:

3.3 Date Constructs

A Date Construct is an element whose child content is an RFC 3339 Date-Time string [RFC 3339]. If nothing else is stated for a construct, the following rules apply:

If a Date Construct does not exist in an Atom document, it MUST NOT be assumed to have the semantic or value of any other Date Construct.

4.13.6 Date Constructs of "atom:entry"

An atom:entry MUST contain at least one Date Construct. Which of the following Date Constructs it provides is up to the producer to decide, but at least one of them must be present in each atom:entry.

4.13.6.1 "atom:a" Element

The "atom:a" element is a Date construct that indicates the time that the entry was created. atom:a SHOULD be provided by a tool and not by a human. atom:entry elements MAY contain an atom:a element, but MUST NOT contain more than one.

4.13.6.2 "atom:b" Element

The "atom:b" element is a Date Construct, giving the first date of formal issuance (e.g., publication) of the entry. atom:b SHOULD be provided by a tool and not by a human. atom:entry elements SHOULD contain an atom:b element, but MUST NOT contain more than one.

If an atom:entry is re-issued at several different locations, atom:b MUST NOT be altered to indicate this change in the entry's state.

4.13.6.3 "atom:c" Element

The "atom:c" element is a Date Construct, giving the date of formal issuance (e.g., publication) of the entry. atom:c SHOULD be provided by a tool and not by a human. atom:entry elements SHOULD contain an atom:c element, but MUST NOT contain more than one.

If an atom:entry is re-issued at several different locations, atom:c MAY be altered to indicate this change in the entry's state.

4.13.6.4 "atom:d" Element

The "atom:d" element is a Date Construct, giving the date associated with the contents of the entry, which might not be related to events in the publishing process. Typically, atom:d will be associated with the creation or availability of the resource, but its semantics is largely up to the publisher to define.

atom:d SHOULD NOT be provided by a tool, but rather by a human. Tools SHOULD try to find and express their semantics in any of the other Date Constructs. atom:entry elements MAY contain an atom:d element, but MUST NOT contain more than one.

The content of an atom:d element MAY be more than, less than and equal to the variable "now". That means that atom:d MAY contain a date in the future. It also MUST according to RFC 3339 have a time zone designator. Since atom:d is a subjective date, the timezone SHOULD be local, provided with the format "+hh:mm". It MAY, however, be "+00:00" or "Z" when the local timezone is UTC, or "-00:00" if the UTC time is known but the local time zone is unknown (eg. as a centralised hosting service might know).

4.13.6.5 "atom:e" Element

The "atom:e" element is a Date Construct that indicates the time that the entry was last modified. "Modification" of an entry includes addition, changes, or deletions of child elements of the entry, both in and outside of the Atom namespace. atom:e SHOULD be provided by a tool and not by a human. atom:entry elements SHOULD contain an atom:e element, but MUST NOT contain more than one.

An atom:e date does only give a slight indication of modification. If atom:e has not changed, it is safe to assume that the entry itself has not changed either. However, a change in atom:e does not necessarily imply a change in the entry itself.

Impacts

Not much. Tries to be friendly with existing tools and practice, but encourages everyone to provide as many dates as possible.

Notes

See also: PaceTheOneTrueExplanationOfDateElements


CategoryProposals