Extensión:Cognate
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 | Sí |
Tablas | cognate_sites cognate_pages cognate_titles |
Licencia | GNU Licencia Pública general 2.0 o posterior |
Descarga | |
|
|
Descargas trimestrales | 1 (Ranked 135th) |
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.
- 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
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 carpetaextensions/
.
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.
- 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
Esta extensión está siendo usada en uno o más proyectos de Wikimedia. Esto significa probablemente que la extensión es estable y funciona lo suficientemente bien como para ser usada en sitios con gran cantidad de visitas. Puedes buscar el nombre de esta extensión en los archivos CommonSettings.php e InitialiseSettings.php de Wikimedia para ver dónde se instala. Encontrarás la lista completa de extensiones instaladas en un wiki en particular en la página Special:Version del wiki. |