Extension:Cognate/uk

Розширення Cognate створює центральне сховище, де зберігаються заголовки сторінок для групи сайтів. Потім воно може генерувати інтервікі-посилання між вікі-проєктами у випадках, коли заголовки однакові. Воно було розроблене для вирішення завдання «Централізувати мовні посилання інтервікі для Вікісловника».

«Cognate» — це лінгвістичне поняття, що стосується слів у різних мовах, які виникли з одного походження. Це означає, що це розширення неправильно названо — оскільки воно пов’язує сторінки з однаковою назвою в різних вікі, правильною назвою буде «Омограф».



Передумови й обмеження

 * Сторінки мають бути в одному з стандартних просторів назв MediaWiki.
 * Заголовки сторінок однакові для всіх мов (із застосуванням простої нормалізації).
 * Сайти повинні мати однакову структуру інтервікі для мовних посилань.
 * 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.



Як це працює


Нормалізація назви
Very simple title normalization (reduction to ASCII) occurs within the extension. This can be seen in the StringNormalizer class.

Initially the amount of normalization is very small. Requests can be made to expand this and will be added on a case by case basis.



Хешування назви
Titles are hashed using sha256. This can be seen in the StringHasher class.

Part of the hash is then stored in the database in a BIG_INT field for efficient lookups.

There are roughly 18,446,744,073,709,551,615 possible values.



Відповідність хешів
As titles that require links are assumed to be the same post normalization, they will result in the same hash and thus the same Int stored in the database.

Some sample data might look as follows when loading the "Foo..." page on enwiktionary.

Перезапис
Можна перезаписати автоматичні посилання, надані Cognate, просто додавши на сторінку одне або декілька інтервікі-посилань.

That also means that to make Cognate work when the extension is deployed, the pages should not contain inter language links in their wikitext.

Тестування
The extension can be tested on beta wiktionary sites:


 * 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

These sites are linked together using the Cognate extension with added interwiki sorting provided by the extension.

Installation

 * Populate the sites table by running the populateCognateSites.php maintenance script. Sites must already exist in the MediaWiki sites table with the correct groupings.

php ./maintenance/populateCognateSites.php --site-group=wiktionary


 * Populate the page and title tables by running the populateCognatePages.php maintenance script.

php ./maintenance/populateCognatePages.php