On 11.08.2016 13:40, Daniel Kinzler wrote:
Hi Navino!
Thank you for your awesome work!
Since this has caused some confusion again recently, I want to caution you about
a major gotcha regarding dates in RDF and JSON: they use different conventions
to represent years BCE. I just updated our JSON spec to reflect that reality,
see <https://www.mediawiki.org/wiki/Wikibase/DataModel/JSON#time>.
There is a lot of confusion about this issue throughout the linked data web,
since the convention changed between XSL 1.0 (which uses -0044 to represent 44
BCE, and -0001 to represent 1 BCE) and XSL 1.1 (which uses -0043 to represent 44
BCE, and +0000 to represent 1 BCE). Our JSON uses the traditional numbering (1
BCE is -0001), while RDF uses the astronomical numbering (1 BCE is +0000).
Is this still true? We have discussed this at length over a year ago [1]
and there is really not much complication or "fun" about this. It is
actually quite simple: the whole world has agreed on using +0000 to mean
1 BCE in technical contexts. It's just nicer to calculate with.
In particular, the JSON export is at odds with JavaScript itself (!),
which also treats year +0000 as 1 BCE, or course:
http://www.ecma-international.org/ecma-262/6.0/#sec-extended-years
Besides JavaScript, the exact same convention is used by ISO 8601, XML
Schema, RDF, SPARQL, and in other programming languages that support BCE
dates, such as Java (see SimpleDateFormat class).
Can we file a bug against the current JSON export to have this fixed? It
would be very good if our JSON would agree with ISO, W3C, JavaScript,
our own RDF export, and all astronomers ;-)
This would affect users of BCE dates, such as Histropedia, so it would
be good if any users of such dates could comment on what they prefer.
Cheers,
Markus
[1]
https://phabricator.wikimedia.org/T94064