Le mar. 26 nov. 2019 à 23:28, Yves P. <yves.prat...@gmail.com> a écrit :

>Notes
>
>1
https://trac.openstreetmap.org/browser/subversion/applications/editors/josm/plugins/tag2link/resources/tag2link_sources.xml#L59
>\p{Lower} dans l’expression rationnelle n’accepte pas le tiret ? Remplacer
par [a-z-] ou [a-zA-Z-]
>
>2 https://github.com/tyrasd/overpass-turbo/blob/master/js/overpass.js#L719
>[a-zA-Z] dans l’expression rationnelle n’accepte pas le tiret. Remplacer
par [a-zA-Z-]

Concernant les préfixes de langue il n'y a pas que les tirets, mais si on
les accepte il faudrait aussi valider la syntaxe. Visiblement ne sont
acceptés que les codes langue en minuscules (même accentuées ou non
latines, ce qui est incorrect). Mais aussi sans limite de longueur. De plus
après les tirets, on peut avoir un code de variante de langue (obsolète, de
3 lettres minuscules), un code d'écriture (1 majuscule et 3 minuscules), un
code région (2 lettres pour un code ISO 3166-1 ou 3 chiffres), et de code
de variante (en minuscules ou chiffres ASCII). Et tous les "subtags" sont
limités à 8 caractères et ont au moins 2 caractères (entre les tirets); les
sub
tags à 1 lettre sont spéciaux et ne devraient pas être utilisés pour
identifier les langues (les anciens codes IANA commençant par "i-" sont
obsolètes, et les codes langues "x-*" sont bannis hors des "subtags" de
variantes régionales (préférables aux codes de régions ISO 3166-1 qui ne
sont pas assez discernants), mais des propriétés de localisation.

Bref une expression régulière correcte serait

[a-z][a-z][a-z]?(-[a-z][a-z][a-z])?(-[A-Z][a-z][a-z][a-z])?(-[A-Z][A-Z]|[0-9][0-9][0-9])?(-x)?(-[a-z]{2,8}):

Si on est strict, mais on peut admettre alors aussi ces préfixes en
capitalisation différente (quitte à les normaliser ensuite automatiquement,
y compris en remplaçant les séparateurs "_" par des "-"), conformément à ce
que prévoit le standard BCP47. Ensuite chaque "subtag" peut éventuellement
être validé si on a une copie locale de la base IANA pour BCP47 (sauf cas
spécial des variantes "-x-[a-z0-9]{2,8}" qui elles sont validées par un
dictionnaire de variantes privées admises dans OSM (mais sont sujette à
remplacement automatisable ultérieurement s'il y a un code standard tel que
"be-x-tarask" reconverti en "be-tarask", avant la suppression de ces
admissions du dictionnaire quand la base OSM a été nettoyée et les
utilisateurs avertis)

Ceci dit la validation peut admettre des codes devenus depuis ambigus et
dépréciés mais qu'on ne peut pas remplacer automatiquement: c'est le cas
quand ISO a scindé un code langue en deux.

Il reste enfin des exceptions venant de Wikimedia (telles que "roa-tara"
qui devraient être plutôt une variante du sicilien "scn-tara" ou une
variante non standard de l'italien "it-x-tara")

D'autres substitutions automatiques sont possibles (exemple changer "fre"
ou "fra" en "fr", si on préfère les codes courts ISO 639-1 aux codes ISO
639-2/3).

Dans l'état, les validateurs sont peu à jour et sont encore basés sur la
vieille version de BCP 47 non basée sur RFC 4646 mais sur une version plus
ancienne. Il serait temsp de convertir tou ça car les RFC 47 a quand mêem
été mise à jour depuis plusieurs années, avant même la sortie de l'ISO
639-3 et les révisions de l'ISO 15924 pour les codes d'écritures et la
refonte du registre IANA avec des règles bien plus précises et une
politique de stabilité et une procédure établie pour les
ajouts/révisions/dépréciations, ainsi que la révision des codes à remplacer
automatiquement !

Quand à la normalisation des codes (la capitalisation) je n'ai pas d'avis
tranché, on peut très bien admettre dans OSM uniquement les formes
minuscules seulement, sans capitaliser la première lettre des codes
d'écriture ou les codes région ISO 3166-1 à deux lettres. En revanche on
doit éviter les formes ISO 3166 ou ISO15924 en chiffres, on peut les
subtituer automatiquement (et leur liste n'est pas longue, il ne doit
rester que quelques codes à 3 chiffres pour les groupes de pays par masse
continentale). Mais ce la ne devrait pas bloquer la validation des données
si un éditeur omet cette substitution automatique. car un bot peut
facilement faire la correction plus tard.
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à