Type:Date
From CreationWiki, the encyclopedia of creation science
The Date type is the most recent edition to Semantic MediaWiki among its ten standard types. With it one can annotate any date and time during the so-called Julian Period (the period beginning at noon on 1 January 4713 BC according to the Julian calendar), and any date (but not a time) alleged to have fallen earlier than that.
Contents |
How to Annotate
This datatype is a timestamp, not an interval. It is meant to stand for a particular point in time, as precise as the knowledge of that point will allow.
Dates
One can annotate a year alone, or a year and a month, or a year, a month, and a day. This datatype typically supports a simple space (" ") as a separator, but the datatype will recognize other, traditional separators.
One can specify a month either as the number of the month (beginning with 1 for the first month of the year) or by name. In addition, one can specify a day as an ordinal construct, e.g. 1st, 2nd, 3rd, 4th, etc. The datatype will treat all such non-numeric specifications accordingly—but if it does not recognize any particular construct, it will throw an error condition and store nothing in the semantic store.
The datatype will resolve ambiguous date formats according to a language-specific order. In English, a three-part date is assumed to be a month-day-year triple if the numbers will allow it, and then a day-month-year, a year-month-day, or even a year-day-month. Other languages will consider these formats in their own particular order.
By default, if the user does not specify a calendar-model symbol, the year will be treated as Gregorian if it is later than October 4, 1582, or Julian if it is that date or earlier. A specified symbol will in some cases determine the calendar model to be used, and in others determine the preference for an after-date symbol to be used at printout. For example, in English, one can specify "AD" or "CE" and the date will print out with that symbol. The datatype supports the following symbols:
- AD for Anno Domini
- CE for Common Era (not used in CreationWiki)
- BC for Before Christ
- BCE for Before Common Era (not used in CreationWiki)
- OS for the British Old Style. By this rule, a year within any date between January 1 and March 25 inclusive will be incremented by one, and the resulting date will be treated as a Julian date. However, this symbol will not persist during browse or query.
- Gr for Gregorian. Use this to force the year to be Gregorian even if it would otherwise be Julian. (This is not available for BC years; they are automatically Julian.)
- Jl for Julian. Use this to force the year to be Julian even if it is late enough to be Gregorian. Different countries adopted the Gregorian calendar at different times.
- AM for Anno Mundi. Use this for the Biblical calendar suggested by Floyd Nolen Jones, based on his work and the work he built upon by James Ussher.
- He for Hebrew. Use this for the Hillel II fixed-calculation calendar now in use in the modern Republic of Israel and as a liturgical calendar in Jewish communities worldwide.
These symbols are used only in English. Every other supported language has its own set of symbols.
Time
Annotate a time in the same line as an annotated date, and separated from it by a space or a capital T.
Civilian time
Use the colon (":") as a separator to separate hours from minutes, and minutes from seconds; the datatype recognizes no other separator at present. Seconds are optional; hours and minutes are not.
If no time zone is specified, the datatype will assume that the time stated is in Coordinated Universal Time (UTC), which is the same as Greenwich Mean Time (GMT).
One can specify a time zone in one of two ways: by providing a time-zone offset or by using a recognized civilian time-zone moniker. To specify an offset, introduce it with a + or a - sign immediately after the seconds (no space between). The time-zone offset is the number of hours and minutes to be added to (+) or subtracted from (-) UTC in order to produce the specified clock reading locally. The datatype computes the Julian Day (see below) normalized to UTC by subtracting the offset (as a fraction of a day) from the annotated time (again as a fraction of a day).
All time-zone monikers are supported, each with the most common offset from UTC associated with them. For example, EST means -5, EDT means -4, and so on.
Twelve-hour annotations (i.e., am and pm in English, and their equivalents in Cyrillic, Korean, and Chinese) are also supported. The "am" symbol gives no offset; the "pm" is treated as -12.
Military time
One can also annotate times in the format used by the United States armed services. This is a four (or six)-digit number that is always suffixed by a capital letter (not the letter J; that letter always stands for local time). The standard time zone for operational times in the US military is, of course, Z (read "Zulu"), which is the same as UTC and has an offset of 0. The letters A-M (J is left out) produce positive offsets, and N-Y produce negative offsets.
Direct Julian Day Annotation
This datatype supports the direct annotation of either a Julian Day (JD) or a Modified Julian Day (MJD). The JD is the commonly used date for listing astronomical events; the MJD appears most often in published flight schedules for artificial satellites, rocket probes, and the like.
Hashtag annotation
A user may annotate a hashtag, consisting of a hash symbol ("#") followed by an ALL-CAPS name. Currently only one supported hashtag exists: #CREATION.
Technical Specification
The base numeric value of this type is J. J. Scaliger's Julian Day (JD). This is the number of days elapsed since noon on 1 January 4713 BC (Julian calendar), plus a fraction that can indicate a time at least as precise as one millisecond. For dates allegedly earlier than 1 January 4713 BC, the value is the algebraic value of the year (stored as a negative), plus a fraction to indicate the part of the year, not the part of a day. Thus, in theory, this datatype can handle a date in deep time. (See Uniformitarianism for a further discussion of this point.)
However, this Julian Day is not the value stored in the SMW database. Instead, a proleptic Gregorian calendar date (and, where applicable, time) is stored, except that any part of the date that was not specified at annotation is left empty. (If a Julian Day or Modified Julian Day was specified, all three parts are stored, together with a time string.) In addition, a symbol stating the printout preference is stored for easy recall.
Annotated or query-returned dates appear in yellow text on a white background. This is the traditional appearance of "tooltip" text. By moving the mouse cursor over this text, the user can obtain a "tooltip dialog bubble" containing a listing of the date according to the Gregorian or proleptic Gregorian calendar, regardless of the original specified calendar model. Annotated dates always print out in the original annotated model in browsing (including "Browse properties" and "Factbox") and querying.
Developmental History
The origina datatype, as written by Fabian Howahl of the SMW development team and introduced with SMW 1.0, could handle dates and times only in the Gregorian calendar and only between Friday, 13 December 1901 20:45:54 UTC and Tuesday, 19 January 2038 03:14:07 UTC. The reason is that the datatype relied on a time in seconds to either side of the Unix Epoch, which was the last second of the year 1969, and used UNIX-based date-and-time processing functions provided in the PHP scripting language that is the basis of MediaWiki and SMW.
The administration of CreationWiki was not satisfied with this datatype and initially decided to develop a type, called Historical date, of its own. This type used the JD as its base numerical value and included support for the four models described above (Gregorian, Julian, Hillel II, and Biblical) and also support for a specialized annotation of a year and a season (e.g., 1095c BC for "springtime of 1095 BC"). However, the annotation of time was never supported fully.
The administration shared this datatype freely with the SMW development team. In the autumn of 2008, the SMW developers released SMW 1.4, which included, for the first time, a Date datatype that could support a Gregorian or proleptic Gregorian date in a range that was far less limited and could include all of recorded history. This type also had an improved time parser and a means by which to delineate 12-hour clock labels ("am" and "pm"). The developers also added support for "short month" names (in three letters) and then developed a means by which to move the support for month names in other languages out of the script file that defines the datatype and into the language-support system. Yet this type did not have internationalization support for any symbols other than month names, though they expressed a desire to achieve such internationalization in the comments. Furthermore, they used a JD that was normalized, not to noon on 1 January 4713 BC (Julian calendar), but to midnight on the day after that date.
The CW administration took up the implied challenge to support the desired internationalization, and also sought to give to the standard Date datatype the same multi-model support that Type:Historical date had. The first feature to be added was time-zone moniker support and military-time parsing. The SMW developers accepted this refinement at once and have announced that the current beta-test version of their script (SMW_DV_Time.php) includes this code. CW has since added all of the other support that it intended, including full internationalization of all calendar-model symbols. In addition, CW has re-normalized the base numeric value to make it equal to the Scaliger Julian Day.
At this time, all Properties originally declared to be of Type:Historical date are now of Type:Date. The "seasonal annotation" format is not supported, and by now all such annotations have been replaced with month-and-year annotations in the required model.
Support for Type:Historical date is now discontinued. Please do not declare any properties having this as a type.
Known issues
Dates that are annotated with less than three parts (i.e., a year only, or a year and a month), in any model different from the proleptic Gregorian calendar, may "slip back in time" by one month or one year when browsed or queried. For example, the Biblical person named Jacob is listed as having entered Egypt on "Teveth 2298 AM"—but the browsed or queried date will appear as "Kislev 2298 AM." The proleptic Gregorian tooltip dialog will, in both case, say "December 1706 BC." (Proleptic Gregorian BC years are zero-based, not minus-one based as are Julian or proleptic Julian years.) The reason is that SMW stores only a month and a year, and the corresponding months of the Biblical (or the Hillel II) and Julian (or Gregorian) calendars clearly begin on different days. CW is in discussion with the SMW development team to determine the most performance-effective manner of resolving this issue.
This type is among the standard datatypes of this wiki.

