Extension:Cognate/es

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». It can then generate interwiki links across wiki projects in cases where the titles are the same. It was developed to solve the "Centralize interwiki language links for Wiktionary" task.

«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’). This means that this extension is misnamed—since this extension links pages with the same title across wikis, a proper name would be “Homograph”.

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.
 * Page titles are the same across languages (with some simple normalization applied).
 * Sites should have the same interwiki structure for language links.
 * Pages should not contain inter language links in wikitext as these will override the link provided by Cognate.
 * Unexpected hash conflicts are unlikely but could occur, and would result in unexpected language links.

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.

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.

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.

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 (Ordenación interwiki).

Instalación

 * 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