Ca me fait penser que aux liens wikipédia qui contiennent des ancres (après
un #) derrière le nom d'un article : si on les écrit en clair, les
navigateurs de cartes OSM ne savent pas les convertir correctement en
ancres selon le codage utilisé par MediaWiki (ce codage est pas de
l'URL-encoding comme le nom de l'article, par exemples caractères accentués
comme 'é' sont codés non pas avec la notation hexadécimale %xx des octets
de codage UTF-8, mais sous la forme ambiguë ".nn" qui ne sait pas faire
toutes les distinctions avec le point littéral "." qui n'est, lui, pas
réencodé).

De plus les ancres dans un article ne sont pas forcément stables non plus
si un titre de sous-section est utilisé plusieurs fois dans la page (pour
ça on conseille dans les pages Wikipédia de coder une ancre stable avec un
code comme <span id="xyz" /> vide, utilisable dans les ancres publiées dans
les liens externes. En effet, dans ce cas, MediaWiki ne vas pas se
contenter de réencoder le titre de section mais il va lui ajouter un
suffixe numérique selon un algorithme non stable (qui peut changer si des
sections sont ajoutées avant la section référencée).

Plein de questions (désolé pour la longueur de ce qui suit) :

Devrait-on mettre alors dans OSM ces ancres instables dans les URLs ? Ne
devrait-on pas les éliminer ? Et aucun outil de QA ne vérifie le codage ou
même l'existence de ces ancres. La plupart du temps elles ne marchent pas
et on reste en tête de l'article affiché, ou bien on pointe sur la mauvaise
section homonyme quand celui-ci a été remanié/restructuré (modification du
contenu du sommaire).

Si les URL avec ancres sont utilisées pour distinguer divers objets OSM
décrits dans le même article Wikipédia, mais dans des sections différentes
(qui pourraient devenir ensuite des articles séparés) ne devrait-on pas
simplement ne pas renseigner du tout l'URL WIkipédia tant que le titre de
l'article général n'est pas applicable à ces seuls objets ? (afin de ne
garder dans OSM que les liens Wikipédia des objets "conteneurs" qui
décrivent un ensemble.

Erreurs courantes fréquemment rencontrés:
- des tags comme "wikipedia=fr:http://fr.wikipedia.org/wiki/Xyz_Abc";

Osmose propose tout aussi incorrectement "wikipedia="wikipedia=fr:
http://fr.wikipedia.org/wiki/Xyz Abc" (recodage de l'espace) car il ne
détecte pas que le nom après "fr:" n'est pas un nom mais une URL complète.
Des utilisateurs confondent régulièrement le préfixe d'un nom et en mettent
avant une URL complète.

Dans des cas comme ça Osmose ne devrait pas tenir compte du tout du préfixe
("fr:" ici) mais regarder l'URL qui est après (qui commence par "http://";
ou "https://";) pour analyser le nom de domaine (vérifier qu'il est bien de
la forme "<lang>.wikipedia.org" et que le chemin est de la forme
"/wiki/<Xyz...> et alors proposer "wikipedia=<lang>:<Xyz...>" après avoir
contrôle le codage de "<Xyz...>" (donc sans souligné "_" ni URL-encodage
des octets UTF-8 "%nn".

Osmose ne sait pas non plus vérifier que l'URL-decoding des séquences de
"%nn" trouvées dans le tag donne bien de l'UTF-8 valide (on tombe sur ces
cas quand une URL a été mal copiée, souvent tronquée, ou un caractère
supprimé ou ajouté par erreur). Dans un cas comme ça, il ne peut pas
proposer de correction, mais doit demander de rechercher sur Wikipédia le
vrai nom (les deux moteurs de recherche de Wikipédia en général s'en
sortent bien quand on lui donne l'URL mal codée telle qu'elle est, il
trouve la plupart du temps l'article, et encore mieux avec le nouveau
moteur expérimental en évaluation Bêta).

Osmose ne semble pas non plus faire une recherche de l'existence de
l'article (il lui suffirait de lancer une requête HTTP HEAD à l'URL générée
à partir du nom, sans tenir compte des ancres ajoutées).

Parfois je suis tombé sur des URLs de la forme "http://<lang>.
wikipedia.org/w/index.php?title=<Xyz...>", qui marche aussi comme la forme
plus simple ""http://<lang>.wikipedia.org/wiki/<Xyz...>", et parfois aussi
avec d'autres paramètres dans la query string (après le "?") comme
"uselang=<code langue de l'UI>" ou pire "setlang=<nouvelle langue de
l'UI>"action=edit" : les query strings devraient être éliminées autant que
possible d'OSM (on n'a pas à forcer la langue UI du visiteur de la page ni
à changer ses préférences de langue en suivant un simple lien).

Toutes les URLs de Wikipédia devraient être éliminées (pour laisser le
choix entre "http://"; ou "https://"; par exemple, selon la config réseau ou
le type de navigateur utilisé par le visiteur.) on ne devrait garder que
"wikipedia=<lang>:Nom d'article" ou "wikipedia:<lang>=Nom d'article", sans
aucune ancre ni autres paramètres de query string

Donc le nom d'article mentionné ne devrait plus jamais contenir:
- aucun "_", "%", "?"
- ni aucun "#" (si on exclue les ancres),
- ni aucun autre caractère réservé par MediaWiki (le "+" par exemple a un
traitement spécial, il est admis dans certains contextes, les "{" et "}" ne
sont pas admis dans les noms d'articles),
- ni aucun préfixe de protole "http(s)://", ni aucun nom de domaine de la
forme "<lang>.wikipedia.org" (penser que Wikipedia a plusieurs domaines
pour la même langue, dont un supplémentaire pour sa version mobile, et
d'autres portails pour mobiles plus limités en Wap seulement, ou encore une
appli pour smartphone; et Wikipédia n'est peut n'être accessible
gratuitement que via un proxy ou un portail d'un opérateur qui propose
Wikipédia gratuitement, sans consommer son forfait data, par exemple Orange
pour les mobiles en Afrique, ou via un agrégateur de contenus ou un cache
local validé par une école par exemple; il pourrait aussi être accédé sur
un CDROM ou une clé USB sans aucun accès réseau, les URLs sont donc
adaptables, seuls les noms d'articles non URL-encodés sont à utiliser),
- ni commencer par un "/" ni contenir aucun "//" nulle part (le "/" est
admis de façon isolé en milieu du nom pour les sous-pages, mais l'espace de
nom principal des articles de Wikipédia n'a aucune sous-page car le "/"
fait partie du nom principal de nombreux objets comme les noms de villes).

Idéalement, il faudrait aussi vérifier qu'il n'y a pas plusieurs préfixes
de langue ou interwiki (pour ne pas malencontreusement aller vers un autre
site que Wikipédia via un interwiki externe comme "bugzilla:" ou même
"mediawiki:"). Mais ça demanderait à Osmose d'avoir une liste à jour des
préfixes interwikis et interlangues supportés par wikipédia, car sinon les
":" peuvent faire partie soit du nom d'un article (pas recommandé du
tout!), ou d'un préfixe de namespace local (comme "Utilisateur:" ou "User:"
ou un espace de discusion, un espace projet...).

Tout ça pour ne pas se retrouver avec des tags (déjà rencontrés dans OSM)
de la forme:
"wikipedia=fr:fr:<Xyz...>" (au lieu de "wikipedia=fr:<Xyz...>"
ou encore
"wikipedia=http://fr.wikipdia.org/wiki/en:<Xyz...>" (au lieu de
"wikipedia=en:<Xyz...>"
Autrement dit on demande à disposer de noms "canoniques", qui sont résolus
directement sans nécessiter aucune redirection implicite d'un domaine à un
autre (une redirection qui n'est pas sensée marcher partout si on n'a pas
un accès direct et "en live" à Internet).

Autre problème annexe:

Comment référencer les articles qui sont sur Incubator (y compris ceux qui
étaient sur un wiki fermé et déplacé depuis vers Incubator) ? Sachant alors
le nom d'article sur Incubator est de la forme "Wp:<lang>/<Xyz...>". Il
faudrait pouvoir indiquer "wikipedia=incubator:Wp:<lang>/<Xyz...>". Mais
ces articles sont des ébauches difficilement référençables dans OSM. A mon
avis il vaut mieux s'en passer dans OSM (les articles d'Incubator sont
aussi exclus de Wikidata et exclus des listes d'interwikis inclus dans les
articles de Wikipédia des autres langues, on ne les trouve que dans
quelques liens externes en fin d'article d'une vraie Wikipédia, ou par des
liens dans le sens inverse d'Incubator vers Wikipédia des autres langues).

En revanche Wikidata n'exclue pas de pouvoir mentionner des noms d'objets
(pas les noms des articles Wikipédia qui les aborde) dans les très
nombreuses langues non supportées par une édition active de Wikipédia (ou
d'autres projets Wikimedia comme Wikispecies, Wikinews...).

Dernier point (question subsidiaire pour les courageux qui arrivent jusque
là !):

Peut-on envisager que certains objets n'aient aucun article référençable
dans Wikipédia, mais seulement dans une page d'entrée du Wiktionnaire ou
une page de galerie sur Commons ? Doit-on utiliser "wikipedia=*" pour
inclure des pages d'autres projets Wikimedia ?

Ou sur divers autres wikis supportés par Wikimedia uniquement au plan de la
plateforme technique d'hébergement, comme ceux de Wikia (qui n'ont en
revanche aucune charte de contenu, ces wikis n'étant pas nécessairement
ouverts à la modif collaborative par tous, et admis pour des projets privés
ou en groupe fermé tant qu'ils ne violent pas les droits de tiers, ils ont
le droit de tout inventer, ne rien sourcer, et font largement place à la
créativité de leurs auteurs, ils sont donc difficilement utilisables comme
sources de référence) ?
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à