Between XSD 1.0 and XSD 1.1 standards, the meaning of dates with year 0 and negative years changed. In XSD 1.0, year 0 is invalid, and year -1 is 1 BCE. In XSD 1.1, following ISO 8601:2000, year 0 is valid and means 1 BCE, year -1 is 2 BCE.
Judging from these tests:
```
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?date
WHERE {
BIND ( year("0000-01-01T00:00:00"^^xsd:dateTime) AS ?date)
}
MalformedQueryException: "0000-01-01T00:00:00" is not a valid representation of an XML Gregorian Calendar value.
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?date
WHERE {
BIND ( "0001-01-01T00:00:00"^^xsd:dateTime - "-0001-01-01T00:00:00"^^xsd:dateTime AS ?date)
}
366.0
```
Blazegraph follows XSD 1.0. Current RDF spec specifies that it uses XSD 1.1. So we probably need an option to support XSD 1.1.
See also discussion in T94064.