[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[COAS-List] TimeStamp constants



y'all,

in discussions with submitters and supporters in Philadelphia, some issues
came up regarding TimeStamp and its constants.

ISSUES

* a constant for "unknown" might be necessary for "order entry"
specifications, but it is not clear if COAS needs one.  what is the
use-case?  a vague use-case is a COAS wrap of a legacy which might have
some code for "unknown" in a stringified date format.  but we need
specifics.  would this requirement be satisfied with one "unknown" for the
entire date, or would individual items in the timestamp need individual
"unknown" codes?  is this requirement quite general, or could a COAS wrap
handle it outside of the specification, turning "unknown" date items into
real ones with some uncertainty qualifier?

* since we specify the use of a Gregorian calendar, the lower limit for
years should be 1538, when that calendar came into use (need to verify
year; see CosTime spec).  this points out the need for a constant like
"EARLIEST_YEAR = 1538" so that a timespan of "all time up to now" would be
straightforward.  

* since "current time" is used to set all TimeStamp fields at once, it can
be codified in one field.  TimeStamp has a coded field for timezone, so
adding a simple code there seems easier than adding codes for all fields.

* "don't care" values would only used within a TimeSpan for a query, and
the resulting desired TimeSpan actually has the meaning of "all time from
beginning of time till now".  since we have a fixed "beginning of time"
date in 1538, and a "current time" indicator, this TimeSpan can be
manufactured rather than indicated with codes (see below).


PROPOSAL

based on this feedback, consider the following modification to the
specification:

* add const short EARLIEST_YEAR = 1538; (and document this lower limit)

* eliminate XXXX_DONT_KNOW constants (barring discovery of compelling
use-case)

* eliminate XXXX_DONT_CARE constants

* eliminate XXX_NOW constants

* add const QualifiedCodeStr USE_CURRENT_TIME =
"DNS:omg.org/DSObservationAccess/USE_CURRENT_TIME" (for use in timezone
field only)

for example, with these modifications, a timespan for "all possible time
till now" would be:

TimeSpan {
	start_time = TimeStamp {
			year 	= EARLIEST_YEAR
			month 	= 1
			day 	= 1
			hour 	= 0, minutes = 0, seconds = 0,
			timezone = [server default] }
	stop_time = TimeStamp {
			year 	= 9999 // doesn't matter--will be replaced
			month 	= 1
			day 	= 1
			hour 	= 0, minutes = 0, seconds = 0,
			timezone = USE_CURRENT_TIME }
}

and this timespan would be used for a (common) query in which the "when"
parameter didn't matter, i.e., all observations ever.

let me know what you think.

larry