Je cherche à sélectionner les communes actuelles du Haut-Rhin (c'est un exemple, le but étant ensuite de pouvoir le faire sur différentes entités administrative)
J'ai actuellement la requête suivante :
#Communes du Haut-Rhin
SELECT ?insee ?itemLabel ?remplacée ?dateFin1 ?dateFin2 ?dateDébut2 WHERE {
?item wdt:P31 / wdt:P279? wd:Q484170; # nature ou sous-classe de Commune de France
wdt:P131 wd:Q12722. # localisation administrative Haut-Rhin
OPTIONAL { ?item wdt:P1366 ?remplacée. } #remplacé par
OPTIONAL { ?item p:P31 [
ps:P31 wd:Q484170; # nature commune de France
pq:P582 ?dateFin1 ].
}
OPTIONAL { ?item p:P131 [
ps:P131 wd:Q12722; # localisation Haut-Rhin
pq:P582 ?dateFin2;
pq:P580 ?dateDébut2
].
}
# FILTER ( !( BOUND(?remplacée) ||BOUND(?dateFin1) || BOUND(?dateFin2) ) )
OPTIONAL { ?item wdt:P374 ?insee. }
OPTIONAL { ?article schema:about ?item ; schema:isPartOf <https://fr.wikipedia.org/> ; schema:name ?page. }
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],fr". }
}
ORDER BY (?insee)
Mon problème est que certaines communes comme Andolsheim (Q325717) ont deux fois le Haut-Rhin (Q12722) dans la propriété located in the administrative territorial entity (P131), et je récupère celle qui a une date de fin ; donc mon filtre la supprime alors qu'elle est de nouveau dans le Haut-Rhin. J'ai désactivé le filtre pour mieux voir ce qui se passe.