Extensión:Cognate

From mediawiki.org
This page is a translated version of the page Extension:Cognate and the translation is 88% complete.
Manual de extensiones de MediaWiki
Cognate
Estado de lanzamiento: estable
Implementación Base de datos
Descripción Link different language versions of a page by using the page title.
Autor(es) Gabriel Birke, Addshore
Última versión Continuous updates
Política de compatibilidad Lanzamientos de screenshots junto con MediaWiki. Master no es compatible con versiones anteriores.
MediaWiki 1.29+
Cambios de la base de datos
Tablas cognate_sites
cognate_pages
cognate_titles
Licencia GNU Licencia Pública general 2.0 o posterior
Descarga
  • $wgCognateNamespaces
  • $wgCognateReadOnly
Descargas trimestrales 1 (Ranked 148th)
Traduce la extensión Cognate si está disponible en translatewiki.net
Asuntos Tareas abiertas · Reportar un bug

Cognate crea un espacio central donde se almacenan los títulos de las páginas de un conjunto de sitios. La extensión puede entonces generar enlaces interwiki a través de proyectos wiki en casos donde los títulos son iguales. Fue desarrollado para solucionar la tarea «Centralizar enlaces interlingüísticos para el Wikcionario».

«Cognado» (cognate en inglés) es un término lingüístico que se refiere a palabras de distintos idiomas con el mismo origen. Esto quiere decir que el nombre de la extensión es incorrecto: como su función es enlazar páginas con el mismo título a través de diversos wikis, un nombre apropiado sería homograph (‘homógrafo’).

Asunciones y restricciones

  • Las páginas deben pertener a alguno de los espacios de nombres estándar.
  • Los títulos deben ser los mismos en distintos idiomas (se aplicará una normalización simple).
  • Los sitios deberían tener la misma estructura interwiki para los enlaces interlingüísticos.
  • Las páginas no deberían contener enlaces interlingüísticos en forma de wikitexto, ya que estos reemplazarán los enlaces proporcionados por Cognate.
  • No es probable, pero sí posible, que surjan conflictos de hash. Estos conflictos darían lugar a enlaces interlingüísticos inesperados.

Cómo funciona

Normalización de títulos

La extensión realizará una normalización muy simple de títulos. Podrá verse en la clase StringNormalizer (Normalizador de cadenas).

Al principio, el grado de normalización será muy pequeño. Se pueden hacer solicitudes para expandir esta funcionalidad, y estas solicitudes se atenderán caso por caso.

String Normalizado Notas
Hello… Hello... La cuerda en crudo contiene un carácter de elipsis, que se normalizará a tres caracteres punto.
lepelle’ lepelle' La cadena normalizada contiene un apóstrofo normalizado.

Hasheo de títulos

A los títulos se les aplica una función hash SHA-256. Esto se puede comprobar en la clase StringHasher (hasheador de cadenas).

Parte del hash se almacena en la base de datos en formato BIG_INT para permitir búsquedas más eficientes.

Hay aproximadamente 18 446 744 073 709 551 615 valores posibles.

String Hash Int
A 559AEAD08264D5795D3909718CDD05ABD49572E84FE55590EEF31A88A08FDFFD 6168500820899059065
Foo 1CBEC737F863E4922CEE63CC2EBBFAAFCD1CFF8B790D8CFD2E6A5D550B648AFA 2071311921841431698
1234567890 C775E7B757EDE630CD0AA1113BD102661AB38829CA52A6422AB782862F268646 -4074095513246505424

Correspondencia de hashes

Como se asume que los títulos que requieren enlaces son los mismos tras su normalización, darán lugar al mismo hash y por tanto al mismo entero (Int) almacenado en la base de datos.

Un conjunto de datos de muestra puede parecerse a lo que sigue al cargar la página «Foo...» de enwiktionary.

Wiki Título Hash Int Normalized Hash Int Notas
enwiktionary Foo... 395730596998145766 395730596998145766 Fila correspondiente
frwiktionary Foo… -7435652355441782233 395730596998145766 Fila correspondiente, a pesar de que el título previo a la normalización incluye el carácter de elipsis.
dewiktionary Foo... 395730596998145766 395730596998145766 Fila correspondiente
arwiktionary Foo 2071311921841431698 2071311921841431698

Sobreescritura

Se pueden sobreescribir los enlaces automáticos proporcionados por Cognate. Para ello, basta con añadir a la página uno o más enlaces interwiki.

Esto también quiere decir que, para que Cognate funcione una vez esté desplegada la extensión, las páginas no deberían contener enlaces interlingüísticos en su wikitexto.

Pruebas

Se pueden hacer pruebas con la extensión en sitios beta de Wikcionario.

Estos sitios están enlazados entre sí mediante la extensión Cognate con un algoritmo de ordenación interwiki proporcionado por la extensión InterwikiSorting (Ordenación interwiki).

Instalación

  • Descarga y extrae los archivos en un directorio denominado «Cognate» dentro de la carpeta extensions/.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Cognate
  • Añade el siguiente código en la parte final de tu archivo 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 ];
    
  • Ejecuta la secuencia de actualización, que creará automáticamente las tablas de la base de datos que necesita esta extensión.
  • Yes Hecho – Navega a Special:Version en el wiki para verificar que la extensión se haya instalado correctamente.
  • Ejecutar el script de mantenimiento «populateCognateSites.php» para rellenar la table de sitios. Los sitios deben existir en la tabla de sitios de MediaWiki con las agrupaciones correctas.
php ./maintenance/populateCognateSites.php --site-group=wiktionary
  • Ejecutar el script de mantenimiento «populateCognatePages.php» para rellenar las tablas de páginas y títulos.
php ./maintenance/populateCognatePages.php