Extension:Cognate/fr
Cognate État de la version : stable |
|
---|---|
Implémentation | Base de données |
Description | Link different language versions of a page by using the page title. |
Auteur(s) | Gabriel Birke, Addshore |
Dernière version | Continuous updates |
Politique de compatibilité | Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière. |
MediaWiki | 1.29+ |
Tables | cognate_sites cognate_pages cognate_titles |
Licence | Aucune licence spécifiée |
Téléchargement | |
Téléchargements trimestriels | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Utilisé par les wikis publics | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Traduire l’extension Cognate sur translatewiki.net si elle y est disponible | |
Problèmes | Tâches ouvertes · Signaler un bogue |
L’extension 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 ».
Le « cognat » (cognate en anglais) est un concept linguistique désignant des mots identiques dans différentes langues, développés depuis la même origine. Cela signifie que cette extension est mal nommée parce qu’elle relie des pages ayant le même titre à travers les différents wikis, un nom plus adapté serait « Homonyme » (homograph en anglais).
Pré-requis et restrictions
- Les pages doivent être dans l’un des espaces de noms standards 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 contenir aucun lien interlangue 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 erronés.
Comment cela fonctionne
Normalisation des titres
Une normalisation des titres très simple (réduction de certaines variantes typographiques de caractères en leurs variantes ASCII) 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.
Chaîne | Normalisée | Notes |
---|---|---|
Hello…
|
Hello...
|
La chaîne brute contient un caractère points de suspensions. Cela est normalisé en trois caractères points. |
lepelle’
|
lepelle'
|
La chaîne de caractères normalisée contient une apostrophe droite. |
Hachage des titres
Les titres sont hachés en utilisant SHA256. Cela est détaillé dans la classe StringHasher.
Une partie du hachage est stockée dans la base de données dans un champ entier signé de 64 bits (BIG_INT) pour faciliter les recherches.
Il y a 264 = 18 446 744 073 709 551 615 valeurs possibles, soit approximativement 19 chiffres décimaux et un signe.
Chaîne | Hachage | Entier |
---|---|---|
A
|
559AEAD08264D5795D3909718CDD05ABD49572E84FE55590EEF31A88A08FDFFD | 6168500820899059065 |
Foo
|
1CBEC737F863E4922CEE63CC2EBBFAAFCD1CFF8B790D8CFD2E6A5D550B648AFA | 2071311921841431698 |
1234567890
|
C775E7B757EDE630CD0AA1113BD102661AB38829CA52A6422AB782862F268646 | -4074095513246505424 |
Hachages correspondants
Comme les titres qui nécessitent des liens sont supposés être les mêmes après normalisation, ils auront le même hachage et donc la même variable stockée dans la base de données.
Un échantillon de données peut ressembler à ce qui suit lorsque que l’on charge la page « Foo... » du Wiktionnaire en anglais.
Wiki | Titre | Entier de hachage | Entier de hachage normalisé | Notes |
---|---|---|---|---|
enwiktionary | Foo...
|
395730596998145766 | 395730596998145766 | Ligne correspondante |
frwiktionary | Foo…
|
-7435652355441782233 | 395730596998145766 | Ligne correspondante, même quand le titre avant normalisation inclut le caractère points de suspension. |
dewiktionary | Foo...
|
395730596998145766 | 395730596998145766 | Ligne correspondante |
arwiktionary | Foo
|
2071311921841431698 | 2071311921841431698 |
Écrasement des liens
Il est possible d’écraser les liens automatiques générés par Cognate, simplement en ajoutant un ou plusieurs liens interwikis dans la page.
Cela signifie également que pour faire fonctionner Cognate lorsque l’extension est déployée, les pages ne doivent contenir aucun autre lien interlangue dans leur wikicode.
Test
L’extension peut être testée sur les sites bêta du Wiktionnaire :
- https://en.wiktionary.beta.wmflabs.org/wiki/Wiktionary:Main_Page
- https://de.wiktionary.beta.wmflabs.org/wiki/Hauptseite
- https://he.wiktionary.beta.wmflabs.org/wiki/%D7%A2%D7%9E%D7%95%D7%93_%D7%A8%D7%90%D7%A9%D7%99
Ces sites sont reliés en utilisant l’extension Cognate, ainsi que l’extension InterwikiSorting qui trie les liens interwikis.
Installation
- <translate> [[<tvar name=2>Special:ExtensionDistributor/Cognate/fr</tvar>|Download]] and move the extracted <tvar name=name>
Cognate/fr
</tvar> folder to your <tvar name=ext>extensions/
</tvar> directory.</translate>
<translate> Developers and code contributors should install the extension [[<tvar name=git>Special:MyLanguage/Download from Git</tvar>|from Git]] instead, using:</translate>cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Cognate%2Ffr - <translate> Add the following code at the bottom of your <tvar name=1>LocalSettings.php </tvar> file:</translate>
wfLoadExtension( 'Cognate/fr' ); # Settings used in WMF production # Use the external cluster 'extension1' and dbname 'cognate_wiktionary' $wgCognateDb = 'cognate_wiktionary'; $wgCognateCluster = 'extension1'; # Only work on the main namespace $wgCognateNamespaces = [ 0 ];
- <translate> Run the [[<tvar name=update>Special:MyLanguage/Manual:Update.php</tvar>|update script]] which will automatically create the necessary database tables that this extension needs.</translate>
- File:OOjs UI icon check-constructive.svg <translate> Done</translate> – <translate> Navigate to <tvar name=special>Special:Version</tvar> on your wiki to verify that the extension is successfully installed.</translate>
- Remplir le tableau des sites en lançant le script de maintenance populateCognateSites.php. Les sites doivent déjà exister dans le tableau des sites MediaWiki avec les groupements corrects.
php ./maintenance/populateCognateSites.php --site-group=wiktionary
- Remplir les tableaux des pages et titres en lançant le script de maintenance populateCognatePages.php.
php ./maintenance/populateCognatePages.php
File:Wikimedia-logo black.svg | <translate> This {{<tvar name=1>#ifeq:Extension|Extension</tvar>|extension|skin}} is being used on one or more [[<tvar name=2>m:Special:MyLanguage/Wikimedia projects</tvar>|Wikimedia projects]].</translate> <translate> This probably means that the {{<tvar name=1>#ifeq:Extension|Extension</tvar>|extension|skin}} is stable and works well enough to be used by such high-traffic websites.</translate> <translate> Look for this {{<tvar name=1>#ifeq:Extension|Extension</tvar>|extension's|skin's}} name in Wikimedia's <tvar name=2>CommonSettings.php</tvar> and <tvar name=3>InitialiseSettings.php</tvar> configuration files to see where it's installed.</translate> <translate> A full list of the {{<tvar name=1>#ifeq:Extension|Extension</tvar>|extensions|skins}} installed on a particular wiki can be seen on the wiki's <tvar name=ver>Special:Version</tvar> page.</translate> |
- Pages with script errors
- Pages with broken file links
- Stable extensions/fr
- Database extensions/fr
- Extensions with manual MediaWiki version
- Extensions with no license specified/fr
- Extensions in Wikimedia version control/fr
- All extensions/fr
- Extensions not in ExtensionJson
- Extensions used on Wikimedia/fr
- Interwiki extensions/fr