Extension:Cognate
Appearance
发行状态: 稳定版 |
|
|---|---|
| 实现 | 数据库 |
| 描述 | Link different language versions of a page by using the page title. |
| 作者 | Gabriel Birke, Addshore |
| 最新版本 | Continuous updates |
| 兼容性政策 | 快照跟随MediaWiki发布。 master分支不向后兼容。 |
| MediaWiki | 1.29+ |
| 数据库更改 | 是 |
| 虚拟域 | virtual-cognate |
|
|
| 许可证 | GNU General Public License 2.0 or later |
| 下載 | |
| 前往translatewiki.net翻譯Cognate扩展 | |
| 問題 | 开启的任务 · 报告错误 |
Cognate扩展创建一个中央存储库,用于存储一组网站的页面标题。 如果标题相同,它就可以在不同的维基计划之间生成跨维基链接。 它的开发是为了解决“集中管理维基词典的跨语言链接”这项任务。
“Cognate(同源词)”是一个语言学概念,指不同语言中源自同一词源的词语。 这意味着这个扩展的名称不正确——因为这个扩展会将不同维基网站上标题相同的页面链接起来,所以一个更合适的名称应该是“homograph(同形異義詞)”。
假设和限制
- 页面必须位于标准MediaWiki命名空间之一。
- 页面标题在不同语言版本中保持一致(并进行了一些简单的标准化处理)。
- 各站点应针对语言链接采用相同的跨语言结构。
- 页面不应包含维基文本中的跨语言链接,因为这些链接会覆盖Cognate提供的链接。
- 意外的哈希冲突不太可能发生,但并非不可能,一旦发生,会导致语言链接出现异常。
工作原理
标题规范化
该扩展内部会进行非常简单的标题规范化处理(转换为ASCII字符)。您可以在StringNormalizer类中查看相关代码。
最初的规范化程度非常低。可以提出申请以扩大标准化范围,我们将根据具体情况逐案进行审批。
| 字符串 | 规范化 | 備註 |
|---|---|---|
Hello…
|
Hello...
|
原始字符串包含省略号字符。该字符会被规范化为三个点号。 |
lepelle’
|
lepelle'
|
标准化后的字符串包含一个标准化的撇号。 |
标题哈希
标题使用sha256进行哈希处理。这可以在StringHasher类中看到。
然后,哈希值的一部分被存储在数据库的BIG_INT字段中,以便进行高效查找。
大约有18,446,744,073,709,551,615种可能的取值。
| 字符串 | 哈希 | 整数 |
|---|---|---|
A
|
559AEAD08264D5795D3909718CDD05ABD49572E84FE55590EEF31A88A08FDFFD | 6168500820899059065 |
Foo
|
1CBEC737F863E4922CEE63CC2EBBFAAFCD1CFF8B790D8CFD2E6A5D550B648AFA | 2071311921841431698 |
1234567890
|
C775E7B757EDE630CD0AA1113BD102661AB38829CA52A6422AB782862F268646 | -4074095513246505424 |
哈希值匹配
由于需要链接的标题在标准化后被认为是相同的,因此它们会生成相同的哈希值,从而在数据库中存储相同的整数值。
在enwiktionary上加载“Foo...”页面时,一些示例数据可能如下所示。
| Wiki | 标题 | 哈希整数 | 标准化哈希整数 | 注释 |
|---|---|---|---|---|
| enwiktionary | Foo...
|
395730596998145766 | 395730596998145766 | 匹配的行 |
| frwiktionary | Foo…
|
-7435652355441782233 | 395730596998145766 | 匹配到了相应的行,尽管预处理后的标题包含省略号字符。 |
| dewiktionary | Foo...
|
395730596998145766 | 395730596998145766 | 匹配的行 |
| arwiktionary | Foo
|
2071311921841431698 | 2071311921841431698 |
覆盖
只需在页面中添加一个或多个跨语言链接,即可覆盖Cognate提供的自动链接。
这也意味着,为了使Cognate扩展在部署后正常工作,页面中的维基文本不应包含跨语言链接。
测试

该扩展可在维基词典测试版网站上进行测试:
- 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
这些网站使用Cognate扩展相互链接。
安裝
- 下载文件,并解压
Cognate文件夹到extensions/目录中。
开发者和代码贡献人员应改从Git安装此扩展,输入:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Cognate
- 請新增下列代码到您的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 ];
- 請运行更新脚本,它将自动创建此扩展所必须的数据库表。
完成 – 請导航至您的wiki上的Special:Version,以验证此扩展已成功安装。
- 运行维护脚本“populateCognateSites.php”来填充
sites表。站点必须已存在于MediaWiki站点表中,并且分组正确。
php maintenance/run.php ./extensions/Cognate/maintenance/populateCognateSites.php --site-group=wiktionary
- 运行维护脚本“populateCognatePages.php”来填充页面表和标题表。
php maintenance/run.php ./extensions/Cognate/maintenance/populateCognatePages.php
| 此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。 |
Categories:
- Stable extensions/zh
- Database extensions/zh
- ArticleUndelete extensions/zh
- ContentAlterParserOutput extensions/zh
- LoadExtensionSchemaUpdates extensions/zh
- PageMoveComplete extensions/zh
- PageSaveComplete extensions/zh
- WikiPageDeletionUpdates extensions/zh
- GPL licensed extensions/zh
- Extensions in Wikimedia version control/zh
- All extensions/zh
- Pages using deprecated NoteTA template
- Extensions used on Wikimedia/zh
- Interwiki extensions/zh
