À la recherche des communes françaises sur Wikidata

Ash_Crow Wikidata

J’ai eu besoin récemment d’obtenir la liste des communes françaises avec leur identifiant Wikidata. Cette liste change constamment : si la France compte toujours un peu plus de 35 000 communes, le nombre exact change plusieurs fois par an, les communes fusionnant ou étant séparées à un rythme difficile à suivre. Il y a même un article de Wikipédia dédié aux nombre de communes en France. Si on peut s’y fier, il y en a donc très exactement 35 884 au moment où j’écris ces lignes, et une autre fusion entrant en vigueur mardi 1er mars (entre Binic et Étables-sur-Mer), il y aura à ce moment une commune de moins.

L’article n’est cependant pas clair sur ce qui est supposé être inclus dans ce décompte : la métropole uniquement ? Les DOM sont-ils inclus ? Et les COM ? Avant de me pencher plus en détails là-dessus, allons-voir combien ce qu’en disent d’autres sources.

Une liste officielle des communes de la métropole et des DOM[1] est publiée chaque année par l’Insee dans le Code officiel géographique (COG) mais la dernière version publiée est celle de 2015. Le fichier, dont on voit un extrait ci-dessous, compte 36 658 entrées , ce qui est cohérent avec les données annoncées par l’article de Wikipédia pour 2015…

CDC    CHEFLIEU    REG    DEP    COM    AR    CT    TNCC    ARTMAJ    NCC    ARTMIN    NCCENR
0    0    82    01    001    2    08    5    (L')    ABERGEMENT-CLEMENCIAT    (L')    Abergement-Clémenciat
0    0    82    01    002    1    01    5    (L')    ABERGEMENT-DE-VAREY    (L')    Abergement-de-Varey
0    1    82    01    004    1    01    1        AMBERIEU-EN-BUGEY        Ambérieu-en-Bugey
0    0    82    01    005    2    22    1        AMBERIEUX-EN-DOMBES        Ambérieux-en-Dombes
0    0    82    01    006    1    04    1        AMBLEON        Ambléon
0    0    82    01    007    1    01    1        AMBRONAY        Ambronay
0    0    82    01    008    1    01    1        AMBUTRIX        Ambutrix
0    0    82    01    009    1    04    1        ANDERT-ET-CONDON        Andert-et-Condon

Par curiosité, je regarde aussi du côté d’OpenStreetMap qui, de son côté, fournit sur data.gouv.fr un export du découpage des communes françaises. D’après sa description, il est à jour au 1er février 2016, et contient le titre des articles Wikipédia. C’est un fichier shapefile dont il est très simple d’extraire la liste des codes Insee et le titre des articles Wikipédia correspondants grâce à la librairie python qui va bien et un tout petit bout de code. Surprises, il contient 35 888 communes, soit deux de trop comparé à Wikipédia[2], et pour 282 d’entre elles, il manque le lien vers l’article de Wikipédia.

Mais revenons à Wikidata, qui devrait avoir 35 934 communes, en comptant les TOM. Vérifions avec SPARQL :

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>

SELECT (COUNT(DISTINCT ?commune) AS ?nbCommunes) {
  ?commune wdt:P31 wd:Q484170 .
}

https://w.wiki/4AJz

Le résultat que j’obtiens est de 38 663 communes. C’est 2729 de trop… C’est dû aux anciennes communes, fusionnées ou supprimées depuis. Pour obtenir la liste à jour, il me faudrait donc faire un filtre sur la présence d’un qualificateur « Date de fin (P582) » sur la déclaration « wdt:P31 wd:Q484170 ».  Sauf qu’en faisant ça… J’obtiens 37 475 résultats : la date de fin n’est manifestement pas correctement indiquée de manière systématique. Il semble également y avoir quelques îles marquées comme commune alors qu’un élément séparé existe pour celle-ci.

Bon, plus qu’à se retrousser les manches et corriger tout ça…

Histoire de dégrossir le travail, je vais commencer par passer sur toutes les communes sans code Insee ni date de fin et corriger ce qui cloche :

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>

SELECT ?commune ?communeLabel {
  ?commune p:P31 ?statement .
  ?statement ps:P31 wd:Q484170 . 
  FILTER NOT EXISTS { ?statement pq:P582 ?x } .  #Pas de date de fin
  FILTER NOT EXISTS { ?commune wdt:P374 ?insee } . #Ni de code Insee, histoire de dégager les communes actuelles
  
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "fr" .
  }
} ORDER BY ?communeLabel

https://w.wiki/4AK3

Pour chaque commune : je vérifie la date de fusion ou suppression indiquée dans Wikipédia, et je reporte l’info dans Wikidata. Si c’est devenu une commune associée, je l’indique également et j’en profite aussi pour supprimer la nature « ancienne commune française » qui est présente sur une poignée d’éléments et ne devrait tout simplement même pas exister… Ça donne un résultat comme ça et si vous voulez venir me filer un coup de main, vous êtes les bienvenus 🙂

Image d’en-tête:

Le port de Binic, ou plutôt maintenant Binic-Étables-sur-Mer, CC-BY-SA-3.0 Semnoz

2 commentaires publiés.

Notes de bas de page

  1. Excluant donc les 48 communes de Polynésie française et les deux de Saint-Pierre-et-Miquelon

  2. Deux et non quatre, car le fichier inclut les deux communes de Saint-Pierre-et-Miquelon qui ne sont pas dans le COG. Pourquoi Saint-Pierre-et-Miquelon et pas la Polynésie française, mystère.

Commentaires

TomT0m 1 mars 2016 14:16

Pourquoi supprimer "ancienne commune française" ? c'est largement plus facile à requetter que "date de fin", même si c'est moins à jour. PS: arg, ton blog ne retient pas les commentaires quand on oublie de noter son nom, du coup obligé de le retaper, spa top.

Ash Crow 2 mars 2016 18:43

Je les supprime parce que l'élément ne correspond pas à la façon normale de procéder (on ne va pas commencer à dupliquer tous les éléments utilisés comme valeur de P31 pour leur existence actuelle/passée/future), parce qu'il n'était présent que sur une poignée de communes, parce qu'il ne peut pas donner de requêtes correctes (quid des communes qui ont été supprimées puis recréés ?) et donne donc une illusion de requête facile. Le même problème se pose d'ailleurs (à l'envers) pour l'élément « région française actuelle » qui était posé sur une partie des régions actuelles (mais pas toutes...) Par contre, une fois que ça sera à jour, j'ai l'intention de mettre en place des csv à publication annuelle vérifiée pour les communes / départements / régions avec l'identifiant WD, l'article WP, la catégorie Commons, etc. sur le compte Wikimédia France de data.gouv.fr.

Les commentaires sont fermés.