MS BOT

From OpenStreetMap Wiki
Jump to navigation Jump to search

MS Bot est un robot de nettoyage de OSM limité à la zone française continentale.

2022

Mise au point d'un nouveau robot écrit en Python. Le code est publié GitHub Marcussacapuces91/Check-OSM.

Il nécessite d'avoir un JOSM ouvert en même temps puisque les modifications sont faites dans une session. L'utilisateur peut donc vérifier les propositions et utiliser le validateur de JOSM avant l'envoi des modifications.

Il se base sur une fichier .pbf, par exemple http://download.openstreetmap.fr/extracts/europe/france.osm.pbf qu'il parse afin de trouver des tags à corriger. Pour chaque match, il recharge la donnée fraîche depuis l'API 0.6 et vérifie à nouveau la pertinence du match avant de propager la correction dans l'instance JOSM.

Il utilise plusieurs autres fichiers entrant (disponibles dans le Git) :

  • Un fichier des exclusions (exclusions.csv) des ID qui seront donc ignorés, pour éviter en particulier des éléments hors des frontières du pays choisi ;
  • Des fichiers de match, match/replace distincts pour chaque type d'analyse (pour le moment un seul type d'analyse est actif) :
    • invalid_ways_name.csv qui permet des remplacements sur les noms de rues (addr:street dans les nodes ou highway + name dans les ways et les relations).

Le système produit un fichier de log qui contient toutes les modifications avec une "sévérité" variable selon qu'on a simple match (warning) ou un match/remplace (error).

Il produit aussi une liste des noms (names de tous les éléments), avec pour chaque libellé la liste des éléments associés.

2010

Ce compte est utilisé pour lancer des suppression massives de doublons de building.

2009

Abandon

D'après User:Marcussacapuces91 ce robot est abandonné.

Quelques raisons possibles :

  • Quelques modifications effectuées hors de France [1]
  • Champ d'action un peu trop large, certaines modifications étaient indésirables (quelques noms ont une orthographe qui semble être une typo, par exemple Benoit sans accent, mais qui est en fait correcte dans certains cas).
  • Développement nécessaire (API 0.6, limites de la France plus précises)
  • Autre ?

Publication

Pour des raisons évidentes de contrôle de l'utilisation de cette application, le code source de ce robot n'est pas diffusé à ce jour. Il est écrit en C++ et s'appuie sur ma propre librairie OsmApi.

J'étudierais évidemment votre demande si vous souhaitez obtenir le code. N'hésitez pas à m'écrire sur mon adresse personnelle (elle doit bien trainer quelque part). J'ai déjà donné une réponse favorable.

Mode fonctionnement

Workflow

  1. Sélectionner les éléments (nodes, ways, relations) dans le france.osm.bz2 (normalement le dernier trouvé sur geofabrick.de) en fonction de la correction à faire ;
  2. Chercher dans la base OSM le même élément via l'OSM_Protocol_Stack ;
  3. Vérifier que les deux instances de l'élément sont identiques ;
  4. Modifier l'élément localement ;
  5. Envoyer la modification à la base via l'OSM_Protocol_Stack.

Les critères

Les critères et les actions sont codés en dur pour éviter des bug de codage des expressions régulières en plus des bugs habituels de codage. Cela n'est plus vrai depuis la V1.3 à partir de laquelle les critères de sélections sont basés sur des expressions régulières et en particulier sur la librairie PCRE - Perl Compatible Regular Expressions.

Les différents éléments sont des objets avec tous leurs attributs et leurs tags. On peut donc avoir des critères sur chaque champ (sa présence et/ou son contenu).

Modifications automatisées

Futur lointain

Quand j'aurais fait l'unanimité de tous ceux qui ne s'expriment pas mais qui veulent quand même que l'on tienne compte de leur avis. Quand "ils" auront organisé un référendum / vote / consultation représentatif et qu'il l'auront prouvé !

  • Intégrer les noms des 36000 communes françaises (de la base INSEE) et pourquoi pas aussi les lieu-dits.
  • Gérer le contour de la France (boundary administrative 2) à partir de l'Europe ou d'un planet. Ça évitera de "ramasser" des voies de Jersey par exemple.
  • Normalisation des références des Autoroutes (A) et des Nationales (N, RN, etc.) ;

Modifications demandées

Les modifications demandées sont des demandes pendantes, non implémentées pour l'instant. Les seules modifs qui passeront à l'exécussion de cette version sont celles programmées (cf. ci-dessous) :

on transforme... en... Commentaires
cotier côtier Majuscule ou pas ?
recherche remplace commentaire

V1.5 - Premier passage le 11 mars 2009 19:49 UTC

C'est la cata : la moitié des modifications ont été revertées. Visiblement, il faut que je quitte ce métier que j'aime mais qui ne m'aime pas !

v1.4 - Premier passage le soir du mercredi 18 février.

v1.3 - Premier passage dans la nuit du mercredi 4 février au jeudi 5 février

v1.2 - Premier passage le 28 janvier 2009

v1.1 - Premier passage le 21 janvier 2009

Activité

  • 23:00, 21 Janvier 2009 (UTC) : premier lancement avec modifications des "rue*" en "Rue*", Log du 21 janvier
  • 17:58, 28 Janvier 2009 (UTC) : premier lancement de la version 1.2, Log du 28 janvier.

Remarque : n'a pas été a son terme suite à une "mauvaise" réponse du serveur OSM_Protocol_Stack.

À noter que j'ai rajouté des informations sur les déclenchements des critères qui permettent de voir les corrections les plus fréquentes. Sauf que comme le robot s'est planté, les valeurs n'ont pas de sens. Je vous encourage à regarder la dernier log de la V1.3 que j'ai passé juste avant.

Corrections à faire

D'après Pieren, le 22/01/2009 09:58 :

  • Espace dans les refs "D xx" ou "N xx" ou "C xx".
  • "source=cadastre" ou "source_ref=cadastre" en version complète d'attribution légale "source="cadastre-dgi-fr source : Direction Générale des Impôts – Cadastre ; mise à jour : AAAA"" où AAAA est remplacé par l'année en cours.

D'après Gerhard, le 22/01/2009 21:54 :

  • Dans un premier temps pas changer des mots précis, mais avec prudence (de genre sandbox, sur terrain d'essai) :
  • virer des leading blanks du string "name",
  • mettre en majuscule la première lettre du string,
À priori, je ne suis pas d'accord pour un changement global et automatique ; à discuter --Marcussacapuces91 10:03, 2 February 2009 (UTC)
  • et voir après, s'il restent des mots précis à corriger.
  • Toutefois d'accord pour mettre "Allee_*" en "Allée_*" (accent).

D'après Yann Coupin (Pov 14:05, 23 January 2009 (UTC)) en s'inspirant de l'extract de Mathieu Arnold

  • Autoroute
  • Mail (et non ça ne se prononce pas "mèïle" ;)
  • Square
  • Rond-Point
  • Aire
  • Villa
  • Carrefour
  • Porte


  • Un log des modifications faites à chaque passage ;
  • Corriger "avenue *" en "Avenue *" (avec espace final) ;
  • Corriger "route *" en "Route *" ;
  • Corriger "Allee *" en "Allée *" (plus difficile avec l'UTF-8) ;
  • Corriger "allée *" en "Allée *" ;
  • Corriger "chemin *" en "Chemin *" ;
  • Corriger "place *" en "Place *" ;
  • Corriger "boulevard *" en "Boulevard *".

D'après Yann Coupin, le 22/01/2009 12:38 :

  • Impasse ;
  • Avenue ;
  • Boulevard (déjà noté) ;
  • Chemin (déjà noté) ;
  • Sente.

D'après Pieren, le 22/01/2009 12:49 :

  • Voie ;
  • Route (déjà noté) ;
  • Ruelle (ben oui, ce n'est plus avec rue ;-) --Marcussacapuces91 19:16, 23 January 2009 (UTC)).

D'après Mathieu Arnold, le 22/01/2009 12:52

  • Passages ;
  • Sentiers.

Proposition de mise en conformité des yes/no/false/true/1/0

tunnel et ponts

Changer pour :

  • tunnel
  • bridge
  • Toutes les valeurs true et 1 en yes
  • toutes les valeurs de false et 0 en no

sondage

  • oui Sletuffe 20:43, 8 December 2008 (UTC)
  • oui Wawet76 21:10, 8 December 2008 (UTC)
  • oui Mat 22:44, 8 December 2008 (UTC)
  • oui domi 09:54, 9 December 2008 (UTC)
  • Je m'interroge sur la raison d'être d'une valeur "false", "no" ou "0" dans ces tags précis : Est-ce que ça ne justifierait pas la suppression du tag lui-même ? Gerhard 22 janvier 2009
  • j'avoue ne pas trop comprendre l'intérêt de dire qu'une route n'est pas un tunnel, mais bon. Si certain l'ont fait, ils ont sans doute leur raison, et je me garderais bien de penser à leur place. Sletuffe 14:13, 23 January 2009 (UTC)

oneway

Changer pour :

  • oneway
    • Toutes les valeurs true et 1 en yes
    • toutes les valeurs de false et 0 en no

sondage

  • oui Sletuffe 20:43, 8 December 2008 (UTC)
  • oui Wawet76 21:10, 8 December 2008 (UTC)
  • bof : on perdrait la cohérence avec le -1 (sens inverse) Murphy 22:34, 8 December 2008 (UTC)
  • oui le -1 devrait être remplacé par yes et l'ordre des nd inversés Mat 22:44, 8 December 2008 (UTC)
ça, je suis pas sûr que ce soit une bonne idée, le -1 est bizarre d'accord, mais parfois il a une raison d'être. Je voudrais pas casser ça Sletuffe 22:52, 8 December 2008 (UTC)
et attention aux éventuels left/right à inverser aussi --PhilippeP 07:00, 9 December 2008 (UTC)
surtout pas inverser l'ordre des noeuds ! Le -1 est exceptionnel et a sa raison d'être. Pieren 09:29, 9 December 2008 (UTC)
Pas toucher par automate au -1 de oneway, ça a son sens par exemple s'il y a des left/right. Mais pareil que pour pont et tunnel ci-dessus, question : Quelle utilité a le ce tag lui-même, quand sa valeur est "false, "no" ou "0" ? Gerhard 22 janvier 2009

proposé par Sletuffe 15:35, 22 January 2009 (UTC)

Propositions rejetées

Ici le cimetière à propositions, surtout pour se souvenir que ça a été demandé et donc déjà refusé avec parfois des explications.

si on trouve on le transforme en commentaires
\d ?i?(é|e|è)?m?e (à vérifier) \dᵉ transforme tous les 5e, 5 e, 5eme, 5 ème, 5éme, 5ième, 5ème, etc. en 5ᵉ (\d correspond à un chiffre). Comment faire pour 1er ?? ('1er Régiment d'Infanterie'). Pourquoi pas « 1ᴱᴿ » (mais problème de sémantique : «ᴱ» et «ᴿ» sont des caractères utilisés en phonétique)
Contre — Le caractère unicode ᵉ est également destiné à la phonétique. Pas à l'écriture du français en exposant. --Wawet76 00:22, 25 February 2009 (UTC)
(i|î)le(-| )de(-| )france Île-de-France à éviter peut-être (je n'ai pas d'exemples en tête mais) : "Rue de l'Île de France" (pas la région, mais simplement "une île de France")
Donc non --Marcussacapuces91 22:51, 18 February 2009 (UTC)
\bth(é|e)(a|â)tre\b Théâtre attention, en anglais, 'theatre' s'écrit sans accents
Donc non --Marcussacapuces91 22:51, 18 February 2009 (UTC)

Liens