Extension:Cognate/fr

Cognate crée un espace de stockage central pour les titres des pages d'un ensemble de sites. L'extension génère alors des liens interwikis entre les wikis lorsque les titres des pages sont identiques. Elle a été développée pour résoudre la tâche "Centraliser les liens interlangues pour le Wiktionnaire".

"Cognate" (en français cognat) est un concept linguistique désignant des mots identiques dans différentes langues, développés depuis la même origine. is a linguistic concept, meaning same words in different languages developed from the same origin. Comme l'extension a une mécanisme de traduction similaire, cela faisait un nom court et intéressant, même si le concept en lui-même est différent.

Pré-requis et restrictions

 * Les pages doivent être dans l'un des espaces de noms standard de MediaWiki.
 * Les titres des pages sont les mêmes d'une langue à l'autre (une normalisation simple sera appliquée).
 * Les sites doivent avoir la même structure interwiki pour les liens interlangues.
 * Les pages ne doivent pas contenir de liens interlangues dans le wikitexte, car ils prendront alors l'ascendant sur les liens automatiques de Cognate
 * Des conflits de hachage inattendus peuvent subvenir, il peut alors y avoir des liens interlangue erronnés.

Normalisation des titres
Une normalisation des titres très simple sera effectuée par l'extension. Cela est détaillé dans la classe StringNormalizer.

La normalisation effectuée est basique. Il est possible de demander d'autres opérations, qui seront ajoutées au cas par cas.

Title Hashing
Titles are hashed using sha256. This can be seen in the StringHasher class.

Part of the hash is then stored in the database in a BIG_INT field for efficient lookups.

There are roughly 18,446,744,073,709,551,615 possible values.

Matching Hashes
As titles that require links are assumed to be the same post normalization, they will result in the same hash and thus the same Int stored in the database.

Some sample data might look as follows when loading the "Foo..." page on enwiktionary.

Overwriting
It is possible to overwrite the automatic links provided by Cognate, simply by adding one or more interwiki links in the page.

That also means that to make Cognate work when the extension is deployed, the pages should not contain inter language links in their wikitext.

Testing environments


A testing environment has been created for the extension on Wikimedia Labs made of the following sites:


 * https://enwiktionary-cognate.wmflabs.org
 * https://dewiktionary-cognate.wmflabs.org
 * https://frwiktionary-cognate.wmflabs.org

These sites are linked together using the Cognate extension with added interwiki sorting provided by the InterwikiSorting extension. The Main Page of the enwiktionary test wiki provides examples for testing.

Installation
php ./maintenance/populateCognateSites.php --site-group=wiktionary php ./maintenance/populateCognatePages.php
 * Populate the sites table by running the populateCognateSites.php maintenance script. Sites must already exist in the MediaWiki sites table with the correct groupings.
 * Populate the page and title tables by running the populateCognatePages.php maintenance script.