Extension:Cognate/tr

Cognate uzantısı, bir grup site için sayfa başlıklarının depolandığı merkezi bir depo oluşturur. Daha sonra başlıkların aynı olduğu durumlarda viki projeleri arasında vikiarası bağlantıları oluşturabilir. "Vikisözlük için vikiarası dil bağlantılarını merkezileştir" görevini çözmek için geliştirilmiştir.

"Cognate", aynı kökenden geliştirilen farklı dillerdeki kelimelere atıfta bulunan dilbilimsel bir kavramdır. Bu uzantının yanlış adlandırıldığı anlamına gelir, bu uzantı, vikiler arasında aynı başlığa sahip sayfaları bağladığından, özel ad "Homograph" olacaktır.



Varsayımlar ve kısıtlamalar

 * Sayfalar standart MediaWiki ad alanlarından birinde olmalıdır.
 * Sayfa başlıkları diller arasında aynıdır (bazı basit normalleştirme uygulanmıştır).
 * Siteler, dil bağlantıları için aynı vikiarası yapısına sahip olmalıdır.
 * Sayfalar, Cognate tarafından sağlanan bağlantıyı geçersiz kılacağından, vikimetinde diller arası bağlantılar içermemelidir.
 * Beklenmeyen hash çakışmaları olası değildir, ancak meydana gelebilir ve beklenmedik dil bağlantılarına neden olabilir.



Nasıl çalışır


Başlık Normalleştirme
Uzantı içinde çok basit başlık normalizasyonu (ASCII'ye indirgeme) gerçekleşir. Bu, StringNormalizer sınıfı içinde görülebilir.

Başlangıçta normalleştirme miktarı çok azdır. Bunu genişletmek için istekler yapılabilir ve duruma göre eklenecektir.



Başlık Karması
Başlıklar sha256 kullanılarak karma hale getirilir. Bu, StringHasher sınıfı içinde görülebilir.

Karmanın bir kısmı daha sonra verimli aramalar için BIG_INT alanında veritabanında depolanır.

Yaklaşık 18,446,744,073,709,551,615 olası değer vardır.



Karmaları Eşleşme
Bağlantı gerektiren başlıkların normalleştirme sonrası aynı olduğu varsayıldığından, bunlar aynı hash ve dolayısıyla veritabanında depolanan aynı Int ile sonuçlanır.

Enwiktionary'de "Foo..." sayfasını yüklerken bazı örnek veriler aşağıdaki gibi görünebilir.

Üzerine yazma
Cognate tarafından sağlanan otomatik bağlantıların üzerine, yalnızca sayfaya bir veya daha fazla vikiarası bağlantısı ekleyerek yazmak mümkündür.

Bu aynı zamanda, uzantı dağıtıldığında Cognate'in çalışmasını sağlamak için sayfaların vikimetinler de diller arası bağlantılar içermemesi gerektiği anlamına gelir.

Deneme
Uzantı, beta vikisözlük sitelerinde test edilebilir:


 * 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

Bu siteler Cognate uzantısı kullanılarak birbirine bağlanır ve uzantısı tarafından sağlanan vikiarası sıralaması eklenir.

Kurulum

 * populateCognateSites.php bakım betiğini çalıştırarak siteler tablosunu doldurun. Siteler, doğru gruplandırmalarla MediaWiki siteleri tablosunda zaten mevcut olmalıdır.

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


 * populateCognatePages.php bakım betiğini çalıştırarak sayfa ve başlık tablolarını doldurun.

php ./maintenance/populateCognatePages.php