Aller au contenu

Blog ·

Deux noms pour le même article

Un texte de lien qui raccourcit un titre relève de l’usage maison. Celui qui remplace un mot est un défaut. Les distinguer a demandé une mesure, pas un avis.

Par Provibr

Un relecteur a trouvé dans nos articles traduits quelque chose qu’aucune vérification automatique ne pouvait voir : un lien promettant une chose et atterrissant sur une page dont le titre en affirmait une autre. Nous l’avons noté comme une règle, puis nous avons entrepris d’en faire un garde-fou.

Le garde-fou évident est « le texte du lien doit être le titre ». Ce garde-fou est faux, et découvrir pourquoi a demandé toute la mesure.

La règle évidente n’est pas l’usage maison

Nous avons mesuré chaque lien interne entre articles dans les neuf langues : 1153 au total, sans aucune cible manquante. Puis nous avons noté chaque texte de lien contre le titre de la page vers laquelle il pointe, sous forme de recouvrement de mots, et nous avons regardé tout ce qui se trouvait sous un seuil de 0,55.

Il y en avait 418. Quarante-neuf étaient en anglais, qui est la langue source et donc par définition pas une dérive de traduction. Ces quarante-neuf ressemblent à ceci :

> un lien portant le texte only ever connects outbound, pointant vers un article intitulé The case against port forwarding your panel

Ce n’est pas une erreur. Un texte de lien court et descriptif s’inscrit dans la phrase qui l’entoure, et c’est ce qu’il doit faire. Un garde-fou sur la bande basse se déclencherait quatre cents fois et nommerait zéro défaut, et un garde-fou qui crie au loup finit ignoré, ce qui est pire que de ne pas en avoir.

La bande basse relève donc de l’usage maison, et ce que nous cherchions se trouve tout à fait ailleurs.

Le défaut est dans la bande haute, et c’est un remplacement

Le cas issu du rapport a un recouvrement de 0,78. Il est nettement au-dessus du seuil, ce qui explique que regarder sous le seuil n’aurait jamais pu le trouver.

> lien : ein Ablauf ist ein Graph, und ein Graph muss endlich sein > titre : Ein Flow ist ein Graph, und er muss endlich sein

Le texte du lien n’est pas plus court que le titre et ce n’est pas une paraphrase. Il cite le titre et en remplace un mot. Voilà la forme réelle du défaut : un mot apparaît que le titre ne contient pas et un mot du titre manque, en même temps.

Raccourcir un titre est acceptable, car un lien à l’intérieur d’une phrase ne peut souvent pas porter le titre entier. Ajouter un mot d’éclaircissement est acceptable. Faire les deux à la fois signifie que deux noms circulent pour un même article, et un lecteur qui a vu le lien puis le titre doit décider s’il est sur la bonne page.

Énoncée ainsi, la règle tient en une phrase et elle survit au contact d’un texte réel. Au-dessus du seuil de recouvrement, un texte de lien peut raccourcir le titre ou l’étendre, mais pas les deux.

Deux variations qui ressemblent à un autre nom et n’en sont pas

Deux sortes de variation devaient être filtrées avant que la règle ne soit utilisable, et toutes les deux ont été trouvées en l’exécutant et en lisant le bruit.

La première, ce sont les mots outils : articles, conjonctions, prépositions. Ils sont structurels et ne portent aucun nom. Tout mot d’au plus deux caractères est retiré des deux côtés.

Le seuil de deux, plutôt que de trois, est mesuré et non choisi. Le cas italien issu du même rapport oppose deve essere à un titre portant dev'essere : les deux mêmes mots, écrits avec une élision. Avec une limite de trois caractères, dev tombe du côté du titre, plus rien ne manque, et la constatation disparaît. Un garde-fou réglé un caractère trop agressivement serait passé au vert sur l’un des deux cas pour lesquels il avait été construit.

La seconde, c’est la flexion. sell et selling, says et saying sont le même mot sous des formes différentes, et dans huit langues c’est une constante. Deux mots qui partagent un radical de quatre caractères comptent pour le même mot.

La contrepartie anglaise sert de tri

Il restait un ensemble de constatations qui demandaient un jugement, et ce jugement devait venir d’ailleurs que du goût.

La règle que nous avons employée : regarder le même lien dans la source anglaise. Si l’anglais y cite son propre titre, alors la traduction s’est écartée de quelque chose et c’est un défaut. Si l’anglais est lui-même descriptif à cet endroit, la traduction suit la source et cela relève de l’usage maison.

C’est un bon test, car on y répond en regardant, il ne demande pas de connaître la langue, et il place la décision là où se trouve déjà la source de vérité. Il a produit dix-huit exceptions délibérées, chacune consignée avec sa raison, qui est toujours une phrase sur ce que fait l’anglais à cet endroit plutôt qu’une note disant « vérifié ».

La réparation elle-même a porté sur 76 textes de lien répartis dans 66 fichiers, en huit langues : quinze en néerlandais, treize en italien, douze en français, huit en roumain et autant en ukrainien, sept en allemand et autant en espagnol, six en portugais, et aucun en anglais. Le différentiel est ressorti à exactement 66 lignes ajoutées et 66 lignes retirées, ce qui est la confirmation la moins chère qui soit que rien d’autre n’a bougé. Le décompte de la bande haute est passé de 94 à 18, et les 18 sont les exceptions.

Une liste d’exceptions a besoin d’un test qui prouve qu’elle est vivante

Le garde-fou a onze tests : un par langue, un qui exige que chaque exception porte une raison, et un qui exige que chaque exception soit réellement atteinte.

Le troisième est le plus important, et il vient d’une leçon coûteuse ailleurs dans cette base de code. Une entrée de liste d’exceptions qui contient une faute de frappe ne correspond à rien. Elle a l’air complète, reste dans le fichier pendant un an, et ne protège rien en silence. Nous avions dans un autre garde-fou une liste de trente entrées dont quatre étaient mortes exactement pour cette raison.

La liste est donc vérifiée depuis l’autre côté : si une de ses lignes ne se déclenche jamais, le test échoue et la ligne doit partir. Cela ferme la boucle, car une exception qui a été réparée ne peut plus traîner comme décoration.

Le garde-fou a été prouvé rouge avant d’être cru vert, sur l’état de l’arborescence antérieur à la réparation : huit tests sur onze ont échoué, en rapportant précisément les 76 constatations qui ont ensuite été corrigées.

Deux choses que cette ronde a trouvées et n’a pas corrigées

Deux constatations sortaient du périmètre et ont été notées au lieu d’être réparées en silence.

Cinq traductions d’un même article avaient perdu dans leur titre un mot que quatre autres langues portaient, si bien que le même article avait un sujet différent selon la langue. C’est un problème de titre plutôt qu’un problème de lien, et il a été traité séparément.

Les articles ukrainiens orthographient un terme du métier de deux manières, dix-sept fichiers contre six. C’est une décision de terminologie qui porte sur tout le catalogue et non un défaut dans dix-sept fichiers, et la trancher en passant, pendant que l’on répare autre chose, est la façon dont un catalogue finit avec trois orthographes au lieu de deux.

Ce que nous noterions

  1. La règle que vous écririez d’après le rapport est en général fausse. Mesurez tout le corpus avant de l’encoder.
  2. Un texte de lien court et descriptif relève de l’usage maison, et un garde-fou qui le vise nomme des centaines de non-défauts.
  3. Le défaut est un remplacement, pas un raccourcissement. Un mot ajouté et un mot manquant en même temps.
  4. Regardez au-dessus du seuil, pas en dessous. Le cas réel était à 0,78 pour un seuil de 0,55.
  5. Réglez vos limites sur les cas que vous avez, et vérifiez que le réglage n’en fait pas disparaître un.
  6. La flexion n’est pas un autre nom. Un radical partagé suffit.
  7. La langue source sert de tri. Si l’anglais est descriptif au même endroit, la traduction ne dérive pas.
  8. Chaque exception porte une raison, et cette raison dit ce que fait la source, non que quelqu’un a regardé.
  9. Testez que votre liste d’exceptions est vivante. Une entrée morte ne protège rien et a l’air complète.
  10. Prouvez le garde-fou rouge sur l’ancien état, avec le décompte des constatations qu’il doit produire.

Pour être clair : 1153 liens internes entre articles mesurés dans neuf langues sans aucune cible manquante, 76 réparés dans 66 fichiers, un différentiel d’exactement 66 lignes ajoutées et 66 retirées, la bande haute ramenée de 94 constatations aux 18 exceptions consignées, le nouveau garde-fou 11 tests et prouvé rouge à 8 échecs sur l’ancienne arborescence, la vérification de contenu 851 fichiers générés sur 851 identiques octet pour octet, la suite web 4594 verts là où elle en donnait 4583, la vérification de types sans anomalie, l’analyse statique sans erreur, et un balayage octet sur les 66 fichiers touchés avec les deux décomptes typographiques expliqués plutôt que supposés. Non prouvé : il y a toujours un seul relecteur par langue, aucun d’eux n’est locuteur natif, et les raisons des exceptions n’ont pas été relues par une seconde personne.

Issu du travail de plateforme sur Provibr. La relecture qui a fait remonter cela est dans Trois défauts qu’aucun script ne pouvait voir, et ce que neuf catalogues font à un ensemble de contrôles de taille fixe est dans Seize mille clés, neuf langues.

Commencez avec un hôte et un agent

Créez un compte, installez l’agent avec une seule commande et connectez votre premier hôte Proxmox. La période d’essai dure 14 jours et ne demande aucune coordonnée de paiement.