datetime が紀元前 36 年の日付である次の SPARQL を考えてみましょう。
SELECT ?date ?year WHERE {
wd:Q1180731 wdt:P577 ?datetime .
BIND(xsd:date(?datetime) AS ?date)
# BIND(YEAR(?datetime) AS ?year)
}
このxsd:date(?datetime)
関数は、ウィキデータ クエリ サービス Blazegraph インスタンスで失敗しますjava.lang.IllegalArgumentException: -036-01-01T00:00:00Z
。
それはうまくいくと思いますか?の行YEAR
は文句を言いません (コメントを外した場合)。
代わりに、このバリエーションを思いつきました:
SELECT ?date WHERE {
wd:Q1180731 wdt:P577 ?datetime .
BIND(REPLACE(STR(?datetime), 'T.*', '') AS ?date)
}
この場合、結果は-036-01-01
です。このような BC 日付のソート可能性は良くない可能性があります。(文字列?) 1000 年より前の日付 (紀元前の日付を含む) をソート可能にする他のメソッド/関数はありますか?