Date and Time Use Cases

Statens Museum fur Kunst

Error rendering macro 'viewfile' : FileStore Id not found for attachment SMK datering_ENG.pdf

Date and Time Requirements

1. Date entry in our current system generates Display strings in a predictable way.

In CollectionSpace, however, everything must be manually entered.

Action: Create a date display entry module to add on to CollectionSpace which can generate display texts.

Update 07 Sept 2010: A prototype has been created for this module, based on the specification included in the slides above. 

Update 18 Nov 2010: Sample screen shots will be added to this page to demonstrate how the prototype works.

Examples:

Here are a few examples of the prototype. Note that dates are not checked for correctness against a calandar, although boundaries for day and month are checked.

1. Date: Entering a year and segment.

2. Date : If day or month are entered, then 'Segment' is unselectable.

3. Period

4. Before (or After) : There's a default value for calculating 'Earliest Date' but it can be overridden.

5. Century

6. Century by year (like Century, but a different display format)

2. In the current system date display text is sometimes more detailed than the date ranges.

Typically this seems to be because there was confusion over how to enter a month/year in the current system.

Example : SMKDate id 484685. "From" and "To" dates identify a whole year, but the text identifies a single month. Text is "August 1961". "Date from" is Sunday, 1 January 1961 (22282) ,"Date to" is Sunday, 31 December 1961 (22646).

Action: Try to provide a means for users to enter month (and seasons) in a way which the current system does not.

3. Representation of dates in the current system.

Dates are stored in a table represented by the following columns:

  • id (integer : unique identifier)
  • gbdatedisplay (String: English display text translation)
  • datetype (Controlled list : Date, Before, After, Circa, Period, Century, Decade, Millenium, CenturyByFirstYear)
  • dateto (integer: Latest date)
  • datefrom (integer: Earliest date)
  • dateextent (Controlled list : 1st half, 2nd half, 1st quarter, 2nd quarter, 3rd quarter, 4th quarter, beginning of, end of, middle of)
  • datedisplay (String: Danish display text )

Date timestamps (dateto and datefrom) stored in the current system are represented as integers, in such a way that 0 = 30.12.1899, 1 = 31.12.1899 etc. Recent dates have been staightforward to convert, but ancient dates have been more problematic. So far, the most successful method for converting these has been the Java Jodatime library (using its default ISO chronology). The JDT Calendar library resulted in errors (by insisting upon a Gregorian/Julian chronology which couldn't be properly reconfigured and didn't match the representation of our data). However, with dates pre 100AD we still have conversion problems and are awaiting input from the implementers of our current system.

4. Mapping to CollectionSpace date format.

The current (frequently changing) plan is to map all current fields into Collectionspace. The datetype and dateextent fields (see above) from the current system describe two sets of strings which are used to help the user generate a display text. By mapping these to the 'certainty' and 'qualifier' fields we can present the user with the expected user interface when editing data. It remains to be seen if this constitutes misuse of the CS schema.

Below are some examples. Note: This mapping is probably based on a misunderstanding of the CS schema especially the earliest/latest dates, which here a interpreted as 'eariest/latest possible' dates.

Globus Group

CS Date Information representation 

Example data

Day

Date - association


 

Date - earliest/single

26.07.1970

 

> Date - earliest/single certainty

Day

 

> Date - earliest/single qualifier

 

 

Date - latest

 

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period

 

 

Date text

26.07.1970

Globus Group

CS Date Information representation 

Example data

Year

Date - association


 

Date - earliest/single

1970

 

> Date - earliest/single certainty

Year

 

> Date - earliest/single qualifier

 

 

Date - latest

 

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period

 

 

Date text

1970

Globus Group

CS Date Information representation 

Example data

Segment

Date - association


 

Date - earliest/single

01-01-1970

 

> Date - earliest/single certainty

Segment

 

> Date - earliest/single qualifier

first half

 

Date - latest

30-06-1970

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period

 

 

Date text

First half 1970

Globus Group

CS Date Information representation 

Example data

Before

Date - association


 

Date - earliest/single

1870

 

> Date - earliest/single certainty

before

 

> Date - earliest/single qualifier


 

Date - latest

1970

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period

 

 

Date text

Before 1970

Globus Group

CS Date Information representation 

Example data

After

Date - association


 

Date - earliest/single

1870

 

> Date - earliest/single certainty

after

 

> Date - earliest/single qualifier


 

Date - latest

1970

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period

 

 

Date text

After 1870

Globus Group

CS Date Information representation 

Example data

Circa

Date - association


 

Date - earliest/single

1968

 

> Date - earliest/single certainty

circa

 

> Date - earliest/single qualifier


 

Date - latest

1972

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period

 

 

Date text

Circa 1970

Globus Group

CS Date Information representation 

Example data

Period

Date - association


 

Date - earliest/single

1970

 

> Date - earliest/single certainty

period

 

> Date - earliest/single qualifier


 

Date - latest

1984

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period

 

 

Date text

1970 - 1984

Globus Group

CS Date Information representation 

Example data

Decade

Date - association


 

Date - earliest/single

1970

 

> Date - earliest/single certainty

decade

 

> Date - earliest/single qualifier


 

Date - latest

1980

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period


 

Date text

1970s

Globus Group

CS Date Information representation 

Example data

Decade
segment

Date - association


 

Date - earliest/single

1970

 

> Date - earliest/single certainty

decade

 

> Date - earliest/single qualifier

first half

 

Date - latest

1975

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period


 

Date text

First half
1970's

Globus Group

CS Date Information representation 

Example data

Century
segment

Date - association


 

Date - earliest/single

1900

 

> Date - earliest/single certainty

century

 

> Date - earliest/single qualifier

beginning

 

Date - latest

1950

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period

 

 

Date text

Beginning 20th
century

Globus Group

CS Date Information representation 

Example data

Millenium

Date - association


 

Date - earliest/single

500

 

> Date - earliest/single certainty

millenium

 

> Date - earliest/single qualifier

second half

 

Date - latest

1000

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period


 

Date text

Second half of
first Millennium
AD

Globus Group

CS Date Information representation 

Example data

Century by
first year

Date - association


 

Date - earliest/single

1900

 

> Date - earliest/single certainty

centurybfy

 

> Date - earliest/single qualifier


 

Date - latest

2000

 

> Date - latest certainty

 

 

> Date - latest qualifier

 

 

Date - period

 

 

Date text

1900's