> DateRequirements

You are not allowed to delete this page.

Clear message

DCMI Date and Time Representation Requirements

This document is part of the DCMI Date Format Task Force wiki.

IMPORTANT: Do not cite materials in this Wiki other than for the purposes of collaborating on document creation. This Wiki is intended to be used to work on draft copies of documents. Finished documents will be published, in a persistent and citable form, on the dublincore.org Web site (or elsewhere in some cases).

This is a draft document, currently being worked on by the DCMI Date Format Task Force. Comments should be sent to the DC-DATE@jiscmail.ac.uk mailing list or direct to the editor.

Title: DCMI Date and Time Representation Requirements
Editor: Douglas Campbell, National Library of New Zealand <douglas.campbell@natlib.govt.nz>
Date Created: 2007-08-22 (use the Wiki “Info” link on the right to see changes made since then)
Identifier: http://dublincore.org/datewiki/DateRequirements
Description of Document: This document captures the requirements and objectives for representing dates and times in a format for use by the Dublin Core Metadata Initiative.
Status: Initial Draft

A. Introduction

This document captures the requirements and objectives for representing dates and times in a machine-readable encoding format. These requirements will be used to evaluate the suitability of existing date/time encoding formats and/or to develop one, or more, new encoding formats for use by the Dublin Core Metadata Initiative.

The requirements are grouped into encoding requirements (how to represent a date or time) and usage requirements (how a reader interacts with an encoded date or time). Each requirement is supported by a number of use cases that illustrate the requirement in real-world scenarios.

These requirements focus on Gregorian-style dates as this has the highest immediate need within the Initiative, it is the calendar supported by the Initiative’s currently preferred date formats (ISO 8601 and the W3C Date Time Format), and is the most common civil calendar in use. However, the intention is to also consider representing other calendars.

This document is an initial draft with many issues open for discussion and no attempt to prioritise the requirements.

If you wish to discuss issues raised below, or join the group drafting the requirements, please feel free to contact the document’s editor (see above).

B. Background

The need for a new date format

The Dublin Core metadata community has a need for machine-readable date and time information for metadata interchange.

Dates and times are used in the Date and Coverage elements of the [WWW]Dublin Core Metadata Terms. Element refinements have also been defined – these give an indication of the types of dates that need to be represented: created, valid, available, issued, modified, dateAccepted, dateCopyrighted, dateSubmitted, spatial [coverage], and temporal [coverage].

The [WWW]W3C Date Time Note format (an application profile of ISO 8601) and the DCMI community’s own [WWW]DCMI Period format are used for encoding date information, but these have limitations in the types of dates and times that can be represented. The [WWW]ISO 8601 Standard provides more flexibility, but also has some limitations and is quite complex to implement due to its large number of possible permutations.

The DCMI community’s Date Format Task Force is now investigating alternative date and time formats.

Discussion on dates and times

This document focuses on Gregorian dates but the longer-term intention is to also cater for non-Gregorian dates. This section takes a look at time keeping generally, highlighting wider issues that should be taken into consideration.

Dates and times are typically recorded so events can be compared for sequencing (ordering). Time is continuous so must be artificially segmented in order to have values to compare against for sequencing. It is this segmentation of time, and representing those segments, that calendars and clocks (and hence this document) are concerned with.

There are many ways to segment time; most typically a cyclic event in our environment is used as it is easy to observe and count. A “day” is a common, basic cycle used. The unit of a day is often used as the basis for measuring other cycles, for example, multiple days make up segments named months and years, while fractions of a day are named hours and minutes. However, even the definition of something as universally occurring as a day differs among cultures, for example, some cultures state a day begins at sunset, whereas others state it begins at an arbitrary time during the night (such as ‘midnight’).

Other cycles typically used include:

A calendar defines a set of time segmentations (cycles) so that moments in time, in both the past and the future, can be accurately and consistently identified. These identified moments in time can then be sequenced.

The difficulty in designing a calendar is that many environmental cycles do not overlap conveniently. For example, currently the Earth’s moon rotates around the Earth every 29.53059 Earth days, while the Earth rotates around the Sun every 12.368 of those lunar rotations.

As a result, calendars often approximate natural cycles, but over long periods of time they then cease to represent those original cycles so need adjustments, such as ‘leap years’. What’s more, those adjustments to a calendar may be made differently in different countries at different times. For example, the switch from Julian to Gregorian calendar occurred in different countries at different times, resulting in a different number of catch-up days added in each country.

While the sequence of days and nights through the ages is constant, the ways of identifying each day varies, even within a single calendar. For example, if we count backwards using the Gregorian calendar, “0800-11-06” may actually have been Christmas Day in some countries.

The primary aim of a date encoding format for the DCMI is to identify each day consistently for comparing and sequencing events, even if the date representation doesn’t represent the day as it would have been experienced at the time, that may require a secondary translation.

Discussion on a framework for date encoding formats

(At this stage, this section contains suggestions for requirements that need further discussion.)

This document’s scope is primarily the Gregorian calendar so it does not include requirements for non-Gregorian calendars. However, it is worth looking at a generic framework that might be applicable to other calendars as this may affect how this format is developed.

Calendars represent cycles of time. Often there are multiple overlapping cycles included in a calendar, eg. Gregorian has ‘year-month-day’, but also ‘day number with this whole year’ and the repeating seven day week.

A date encoding format should select one set of cycles and encode using those only. This set of cycles must identify each day uniquely. Typically these will be a hierarchical set of cycles where each cycle is of a shorter duration than its parent cycle, such as ‘year-month-day’. The additional cycles in the calendar can be derived separately.

Sequencing is easiest when using numbers. Where a cycle is not currently identified using numbers, numbers should be arbitrarily assigned, with the mapping documented for conversion to and from those numbers.

C. Encoding Requirements

The requirements below are features or characteristics that the date format is expected to support when an agent wishes to represent a date or time. Use cases are provided as real-world examples to illustrate the requirements. They also indicate sample dates and times that are expected to be representable using the date format.

Only the scenario for each use case appears below, as there is only actually one generic use case that has multiple scenarios, i.e. “Encoder converts date or time to a machine-readable representation”.

Scope: Dates of events only; dates as subjects is excluded

Dates are sometimes used as part of a label to indicate a theme or topic or genre that might be associated with that date or period, e.g. ‘1940s music’.

The date encoding format documented in this document might be used to represent these labels in a way that can be used for sequencing. However, this usage is not a requirement of, nor intended to be supported by, this date encoding format. This document only includes dates and times of events.

Scope: Absolute dates only

The primary purpose of this date encoding is for sequencing actual moments in time. Abstract dates or periods are excluded, e.g. “3 weeks”, “12 March”, “2pm”. Note that dates/times without the time zone specified are in scope.

1. Gregorian dates

Encoding requirement:

Comment:

2. ISO 8601 and W3C Date Time Format compatibility

Encoding requirement:

Comment:

3. Precision available

Encoding requirement:

Issues:

Use case scenarios:

4. Short format

Requirement:

Comment:

Source:

User case scenario:

5. Approximate dates

Encoding requirement:

Issues:

Source:

Use case scenarios:

Resources:

6. Questionable dates

Encoding requirement:

Source:

Use case scenarios:

Resources:

7. Date/time ranges

Encoding requirement:

Comments:

Issues:

Source:

Use case scenarios:

8. Broken date/time ranges

Encoding requirement:

Comment:

Use case scenarios:

9. Elapsed date/time ranges

Encoding requirement:

Comment:

Issues:

Use case scenarios:

10. Open-ended date/time ranges

Encoding requirement:

Comment:

Source:

Use case scenarios:

Resources:

11. Range soft termini

Encoding requirement:

Use case scenarios:

12. Dates prior to 1582

Encoding requirement:

Comment:

Issues:

13. B.C.E. dates

Encoding requirement:

Source:

Use case scenarios:

Resources:

14. Large dates

Encoding requirement:

Comment:

Issues:

Use case scenarios:

15. Named periods

Encoding requirement:

Comment:

Issues:

Use case scenarios:

16. Non-Gregorian dates

Encoding requirement:

Comment:

Use case scenarios:

D. Usage Requirements

The requirements below are objectives that the date format is expected to meet when an agent wishes to use an encoded date or time. Use cases are provided as real-world examples to illustrate the requirements.

Only the scenario for each use case appears below, as there is only actually one generic use case that has multiple scenarios, i.e. “Encoder uses machine-readable representation of a date or time”.

17. Human interpretable

Usage requirement:

Comment:

Use case scenarios:

18. Filename friendly

Usage requirement:

Comment:

Issues:

Use case scenarios:

19. ASCII sortable

Usage requirement:

Comment:

Issues:

Use case scenarios: