Currently, there is no elegant or canonical way to specify a normalized representation of a non-Gregorian <date>. @when and @when-iso both use Gregorian, which is fine for recent dates, but for work on (e.g.) pre-17thC sources there is usually no reason whatsoever why one would, or should, convert Julian dates into Gregorian; and in fact this can't be done in certain other cases where there is no accepted mapping to Gregorian, as for instance with ancient dates, or where the date is within a fictional context. However, without a generic normalization attribute for non-Gregorian dates it becomes messy to sort dates. <orig> and <reg> could do it, but are always going to be implementation-specific and are hardly elegant for such a potentially very common task.
I am proposing a general-purpose solution which would provide a very broad range of functionality as described by example below, and which would require a new attribute class under att.datable as follows:
@datingPoint [data.pointer, optional]
supplies a pointer to some location defining a named point in time with reference to which the datable item is understood to have occurred. [e.g., points to a taxonomy/category or event.]
@datingMethod [data.pointer, optional]
supplies a pointer to some location defining a calendrical system or other means of interpreting the value of @when-generic, @notBefore-generic, @notAfter-generic, @from-generic or @to-generic (possibly with respect to @datingPoint).
@period [Identical to the attribute in att.datable.w3c.]
@when-generic, @notBefore-generic, @notAfter-generic, @from-generic, @to-generic [data.word, optional]
supplies the value of the date or time in a standard form, e.g. yyyy-mm-dd, which can be an absolute or relative value depending on the presence of the other attributes.
<date when-generic="0027" datingPoint="#RamesesII" datingMethod="#Egyptian365">27 years into the reign of Rameses II, counting in the Egyptian 365-day calendar</date>
On the <date when-generic="5" datingPoint="#ArabianNights">5th night</date>, Scheherazade told another story...
<date when-generic="1590-02-20" datingMethod="#JulianOS">The 20th Feb 1590 (old style)</date> is <date when-generic="1591-02-20" datingMethod="#JulianNS">the 20th Feb 1591 (new style)</date> in the Julian Calendar, according to the English custom.
We aim to sight land on the <date when-generic="35" datingPoint="#sailedSierraLeone" datingMethod="#TravelItinerary">35th day</date>.
In the last example, the targets of @datingPoint and @datingMethod might be as follows:
<gloss>@when-generic indicates the number of days as an integer.</gloss>
<event xml:id="sailedSierraLeone" when-generic="193" datingPoint="#sailedSouthampton" datingMethod="#TravelItinerary"><label>sailed from Sierra Leone</label><p>This was 193 days after leaving Southampton.</p></event>
<event xml:id="sailedSouthampton" when-iso="1582-01-01"><label>sailed from Southampton</label></event>
In addition to the above class att.datable.generic, it would be greatly advantageous if @calendar were available as part of att.datable. Currently, it is only available for <date>, although there seems no reason why this should be the case. It should be emphasized that it specifies the calendar system of the text within the given element rather than that of the attributes of the @when genus, to avoid confusion; however, in the absence of @datingPoint and @datingMethod it could, by convention, indicate the calendrical system used by @when-generic, e.g.
<date when="1499-12-23" when-generic="1500-01-01" calendar="Julian">1st Jan 1500</date>
<date when="1499-12-23" when-generic="905 Jumada i-Ula 11" calendar="Islamic">905 Jumada i-Ula 11</date>
As an aside, after discussion in the TEI-MS-SIG List, it seems likely that some people are currently using @when for Julian dates without realising that they are meant for Gregorian dates. It would be helpful to specify this in the attribute <desc>, which is currently rather misleading. Alternatively, @when might be renamed @when-w3c.