Internet-Draft: draft-kunze-temper-01.txt J. Kunze TEMPER Date Format University of California Expires 1 February 2008 C. Blair University of Chicago 1 August 2007 Temporal Enumerated Ranges (TEMPER) (http://www.ietf.org/internet-drafts/draft-kunze-temper-01.txt) Status of this Document By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Distribution of this document is unlimited. Please send comments to jak at ucop dot edu. Copyright (C) The IETF Trust (2007). All Rights Reserved. Abstract TEMPER (TEMPoral Enumerated Ranges) is a simple date and time syntax for representing points, lists, and ranges of timestamps. The syntax is designed to be trivial to parse, easy for humans to read, and friendly to basic lexical sorting algorithms. Examples: J. Kunze [Page 1] Internet Draft TEMPER Date Format August 2007 BCE1212 bce0551 1850~ 1952, 1958-1967, 1975 19990916_Z 19990916145903_z 20070401 J. Kunze [Page 2] Internet Draft TEMPER Date Format August 2007 1. TEMPER Points A TEMPER point is a string of characters representing a single date or a combination of a date and a time. Sometimes a point is called a timestamp. Here are some examples of TEMPER points. 0384 The year 384. 1999 The year 1999. 19990916145903 3rd second past 2:59 PM, 16 September 1999. 19990916145903_z The same time, but in UTC time. 1999091614590312 12 seconds later, no specified time zone. 20041201 December 1st in the year 2004. There are five different lengths of basic TEMPER points: CCYY 4-digit year, with CC for 2-digit century CCYYMMDD 8-digit year-month-day CCYYMMDDhh 10-digit year-month-day-hour CCYYMMDDhhmm 12-digit year-month-day-hour-minute CCYYMMDDhhmmss 14-digit form with hour-minute-second TEMPER points of 15 digits or more indicate fractions of seconds: 1999091614590312 No fractional seconds. 1999091614590312986 986 milliseconds later. As a special case, to specify just a year and month without naming a day in the month, give DD as 00: CCYYMM00 8-digit year-month, but no day specified For example, 20070500 The month of May in the year 2007. A 6-digit form is reserved for a downgraded TEMPER idiom that expresses a year-month-day with only a 2-digit year (i.e., the 2-digit century is missing): YYMMDD 6-digit year-month-day (not recommended) 6-digit points are not recommended because they will not sort correctly unless all the other dates (a) are 6-digit TEMPER points and (b) have the same implicit century. 1.1. TEMPER Zones The basic TEMPER point may optionally be followed by an '_' (underscore) and a zone indicator of either 4 digits or 1-3 digits: J. Kunze 1.1. TEMPER Zones [Page 3] Internet Draft TEMPER Date Format August 2007 19990916145903_0000 Greenwich Mean Time (GMT). 19990916145903_GMT Greenwich Mean Time (GMT). 19990916145903_0100 One hour WEST of GMT. 19990916145903_2300 One hour east of GMT. 19990916145903_PST US Pacific Standard time. 19990916145903_edt US Eastern Daylight time. 19990916145903_EDT US Eastern Daylight time. 19990916145903_z UTC (Coordinated Universal Time). In the absence of a zone indicator, TEMPER does not define a default. 1.2. Approximate and Uncertain Points Any TEMPER point followed by a `~' (tilde) is interpreted as an approximate point, indicating ambiguity or fuzziness in the point. Because the tilde follows the TEMPER point, approximate and precise dates will be placed together by normal sorting software. There is currently no way in TEMPER to express the confidence level or the extent of variation (plus or minus values). Examples: 1066~ Circa the year 1066. 20020800~ August 2002 or thereabouts. 19781201020000~ Around 2 AM on December 1st, 1978. TEMPER reserves the '?' for expressing uncertain points; the details of uncertain points are under construction. 1.3. Non-Gregorian Calendars A TEMPER point may be preceded by the three letters "BCE" for "Before Common Era" dates. These three ASCII letters express (with no case sensitivity) "negative" dates, namely, dates that are chronologically less than the year 0000. Examples: BCE1212 Death of Rameses the Great. bce0551 Birth of Confucius. Note that BCE dates inherently sort in reverse order. But because "BCE" appears first in TEMPER dates, naive sorting software (e.g., Unix "sort" command with no arguments) first places all BCE dates together as a group, after which the simple intervention of reversing the order of the group achieves correct chronological order. TEMPER reserves all 3-letter (alphabetic) prefixes for future use to indicate Hebrew, Chinese, Islamic, and other calendars; these are under construction. Although naive sorting will not work between calendars, use of prefixes will cause sorting to work on groups of dates that use the same calendar. The prefix "IBA" (from Tagalog) is defined to mean "other unspecified", as in, J. Kunze 1.3. Non-Gregorian Calendars [Page 4] Internet Draft TEMPER Date Format August 2007 IBA 28 May, 2004 2. TEMPER Ranges and Lists A TEMPER range is a start point and an end point separated by a hyphen. 1996-2000 A range of four years. 2004- The year 2004 and later. A missing start or end point indicates an open-ended range. In general, a missing start point is strongly discouraged because it disturbs sorting among records from other sources, e.g., shifting a modern date range so that it appears near prehistoric dates; usually, it works better at least to approximate the start point. 1860~-1872 Around 1860 and up to 1872. A TEMPER list is one or more points and ranges separated by commas. Every point in a list must have the same number of digits; e.g., a 14-digit point and a 4-digit range end point cannot occur in a valid TEMPER list. Points and ranges in a list may occur in any order. Here are some examples of lists. 1952, 1957, 1969 A list of three years. 1952, 1958-1967, 1985 A mixed list of dates and ranges. 3. Security considerations The TEMPER syntax poses no direct risk to computers and networks. Implementors should always exercise care when receiving data that may be private or maliciously intended. These are normal risks to which TEMPER is no more vulnerable than most other syntaxes. 4. Authors' Addresses John A. Kunze California Digital Library University of California, Office of the President 415 20th St, 4th Floor Oakland, CA 94612-3550, USA Fax: +1 510-893-5212 EMail: jak@ucop.edu Charles Blair Digital Library Development Center University of Chicago Library J. Kunze 4. Authors' Addresses [Page 5] Internet Draft TEMPER Date Format August 2007 1100 E. 57th St., JRL 220P Chicago, IL 60637, USA Fax: +1 773-702-6623 EMail: chas@uchicago.edu 5. Informative References [ISO8601] ISO, "Data elements and interchange formats -- Information interchange -- Representation of dates and times", December 2004. 6. Copyright Notice Copyright (C) The IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Expires 1 February 2008 J. Kunze 6. Copyright Notice [Page 6] Internet Draft TEMPER Date Format August 2007 Table of Contents Status of this Document . . . . . . . . . . . . . . . . . . . . . . 1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1. TEMPER Points . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. TEMPER Zones . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Approximate and Uncertain Points . . . . . . . . . . . . . . . 4 1.3. Non-Gregorian Calendars . . . . . . . . . . . . . . . . . . . 4 2. TEMPER Ranges and Lists . . . . . . . . . . . . . . . . . . . . 5 3. Security considerations . . . . . . . . . . . . . . . . . . . . 5 4. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5 5. Informative References . . . . . . . . . . . . . . . . . . . . . 6 6. Copyright Notice . . . . . . . . . . . . . . . . . . . . . . . . 6 J. Kunze 6. Copyright Notice [Page 2]