Extension:Cognate

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:Cognate and the translation is 97% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎español • ‎euskara • ‎français • ‎magyar • ‎português do Brasil • ‎中文 • ‎日本語
Manuel des extensions MediaWiki
OOjs UI icon advanced.svg
Extension:Cognate
État de la version : stable
Implémentation Database
Description Link different language versions of a page by using the page title.
Auteur(s) Gabriel Birke, Addshore
Dernière version Continuous updates
Compatibility policy release branches
MediaWiki 1.29+
Changements
base de données
Oui
Tables cognate_sites
cognate_pages
cognate_titles
Licence GNU General Public License 2.0 or later
Téléchargement
Traduisez l’extension Cognate sur translatewiki.net
Vérifiez la matrice des utilisations et des versions.
Problèmes Tâches ouvertes · Signalez un bug

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 ».

« 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. Comme l'extension a un 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.

Fonctionnement

Normalisation des titres

Une normalisation des titres très simple (réduction au code 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.

String Normalisé 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ère 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é dans la base de données dans un champ BIG_INT pour faciliter les recherches.

Il y a approximativement 18 446 744 073 709 551 615 valeurs possibles.

String Hash Int
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..." sur le Wiktionnaire en anglais.

Wiki Titre Hash Int Normalized Hash Int 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 que Cognate fonctionne quand l'extension est déployée, les pages ne doivent pas contenir d'autre liens interlangues dans leur wikitexte.

Test

Wikimedia Cloud Services logo notext.svg

L'extension peut être testée sur les sites wiktionaires beta :

Ces sites sont reliés en utilisant l'extension Cognate, ainsi que l'extension InterwikiSorting qui trie les liens interwiki.

Installation

  • Téléchargez et placez le(s) fichiers (s) dans un répertoire appelé Cognate dans votre dossier extensions/.
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
    wfLoadExtension( 'Cognate' );
    # 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 ];
    
  • Lancez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
  • 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