query-b73a1aecc2ad59b7938cf73fcf952315
Voilà comme ça, c'est ptete moche mais ça a l'air de marcher : 12:58, 6 June 2024 (UTC) pagetalk / TomT0m author 14:47, 6 June 2024 (UTC) pagetalk / TomT0m author https://www.w3.org/TR/xmlschema11-2/#dateTimePour ce qui est des dates en SPARQL, la réponse est là : 14:17, 6 June 2024 (UTC) 💛●✒️●💬 Bouzinac https://eclipse.gsfc.nasa.gov/SEcat5/SE-0099-0000.htmlCerise sur le gâteau, la NASA ne numérote pas les années négatives comme on s'y attendrait : 14:13, 6 June 2024 (UTC) 💛●✒️●💬 Bouzinac https://w.wiki/AJff (Q5686956)solar eclipse of June 20, 1 BC Intéressant, reste qq dates placées dans la mauvaise décennie exemple Sinon en traitant en cas particulier la première décennie négative :
Use at
- https://query.wikidata.org/sparql
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT distinct ?éclipse ?date
?decade_min
(if(?decade_min = ?decade_max_ && ?date , ?decade_max_ + 10 , ?decade_max_) as ?decade_max)
WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?éclipse (wdt:P31/(wdt:P279*)) wd:Q3887; wdt:P585 ?date.
bind (year(?date) as ?éclipse_year) .
bind (
if (
?date > "-0009-01-01"^^xsd:dateTime && ?date < "0001-01-01"^^xsd:date,
-10,
floor( ?éclipse_year / 10) * 10
)
AS ?decade_min)
bind ( ?decade_min + 10 AS ?decade_max_)
} order by abs(?decade_min) ?date
Query found at
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v2("?date"):::projected
v6("?decade_max")
v5("?decade_max_"):::projected
v5("?decade_min"):::projected
v3("?éclipse"):::projected
v4("?éclipse_year")
a1((" "))
c2(["bd:serviceParam"]):::iri
c4(["#91;AUTO_LANGUAGE#93;,en"]):::literal
c7(["wd:Q3887"]):::iri
subgraph s1["http://wikiba.se/ontology#label"]
style s1 stroke-width:4px;
c2 --"wikibase:language"--> c4
end
v3 --"wdt:P31"--> a1
a1 --"wdt:P279"--> c7
v3 --"wdt:P585"--> v2
bind0[/"year-from-dateTime(?date)"/]
v2 --o bind0
bind0 --as--o v4
bind1[/"if(?date > '-0009-01-01^^xsd:dateTime'?date < '0001-01-01^^xsd:date','-10^^xsd:integer',numeric-floor(?éclipse_year / '10^^xsd:integer') * '10^^xsd:integer')"/]
v2 --o bind1
v4 --o bind1
bind1 --as--o v5
bind2[/"?decade_min + '10^^xsd:integer'"/]
v5 --o bind2
bind2 --as--o v5
bind3[/"if(?decade_min = ?decade_max_?date,?decade_max_ + '10^^xsd:integer',?decade_max_)"/]
v5 --o bind3
v5 --o bind3
v2 --o bind3
bind3 --as--o v6