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