此扩展允许在Wikibase实例中存储和修改结构化词典数据。
前提条件
WikibaseLexeme要求在MediaWiki实例上安装和配置以下扩展:
安装
注意:目前,此扩展仅与Wikibase的当前开发版本兼容,即,如果使用较旧的Wikibase版本,它可能无法正常工作。
通过运行安装依赖项编写器安装
.添加wfLoadExtension(“WikibaseLexeme”);
到LocalSettings.php。
开发设置
设置开发环境的推荐方法是使用MediaWiki开发的Docker容器.
使用Docker设置扩展
设置mediawiki-docker-dev
获取Wikibase扩展
遵循安装指南https://www.mediawiki.org/wiki/Wikibase/安装,运行:
cd扩展git克隆https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikbase.git光盘Wikibasegit子模块update--init--recursive#使用子模块获取依赖项
使用composer安装依赖项:
添加作曲家.json
将Wikibase的作曲家.local.json
位于mediawiki文件夹的根目录,如中所述MediaWiki的Composer文档
现在它应该类似于:
{“额外”:{“合并插件”:{“包括”:[“extensions/Wikibase/composer.json”]}}}
使用与安装mediawiki依赖项类似的命令,使用docker和composer安装依赖项。
您应该从mediawiki安装的根目录运行此命令。
docker-run-it--rm--user$(id-u):$(id-g)-v~/.composer:/composer-v$(pwd):/app-docker.io/composer安装
可能需要运行两次。第一次获取composer-merge-plugin和大多数库,然后第二次获取由合并插件添加的库。如果update.php失败,并显示:
docker compose exec“web”php/var/www/mediawiki/demaintenance/update.php--wiki默认值--快速[26142080ebaf7fde12c6233c][no req]/var/www/mediawiki/extensions/Wikibase/lib/Wikibase lib.entitytypes.php:找不到类“Wikibase\DataModel\Entity\ItemId”的第35行错误
然后再次尝试运行该命令。
最后,如果您的composer.lock文件不包含由merge-pulgin引入的额外依赖项,那么您可能也会遇到问题。在这种情况下,删除composer.lock或运行作曲家更新
而不是编写器安装
启用扩展
将以下行添加到本地设置.php
在mediawiki文件夹的根目录下:
$wgEnableWikibaseRepo=true;$wgEnableWikibaseClient=true;require_once“$IP/extensions/Wikibase/repo/Wikibase.php”;require_once“$IP/extensions/Wikibase/repo/ExampleSettings.php”;require_one“$IP/extensions/Wikbase/client/WikbaseClient.php”;require_once“$IP/extensions/Wikibase/client/ExampleSettings.php”;
运行Wikibase设置脚本
运行更新.php
从web docker容器中的默认站点中。这需要从mediawiki-docker-dev目录运行;那个有码头组合
docker-compose exec“web”php/var/www/mediawiki/mainment/update.php--wiki默认值--quickdocker-compose exec“web”php/var/www/mediawiki/extensions/Wikbase/lib/mainment/polopateSitesTable.php--wiki默认值--quick
获取WikibaseLexeme扩展
克隆WikibaseLexeme代码
从mediawiki跑步的extensions文件夹中:
git克隆https://gerrit.wikimedia.org/r/mediawiki/extensions/WikbaseLexeme
将其添加到配置
将此添加到本地设置.php
在mediawiki回购的基础上:
wfLoadExtension(“WikibaseLexeme”);
使用编写器安装
添加extensions/WikibaseLexeme/composer.json
到作曲家.local.json
位于mediawiki文件夹的根目录,因此看起来类似于
{“额外”:{“合并插件”:{“包括”:[“extensions/Wikibase/composer.json”,“extensions/WikibaseLexeme/composer.json”]}}}
从mediawiki的根文件夹再次运行
docker-run-it--rm--user$(id-u):$(id-g)-v~/.composer:/composer-v$(pwd):/app-docker.io/composer安装
如果你得到您的需求无法解析为一组可安装的程序包
错误消息,删除作曲家.lock
文件并再次运行该命令。
配置
默认情况下,WikibaseLexeme使用名称空间编号146存储lexeme页面,使用名称空间数字147存储相关的对话页面。可以通过设置自定义命名空间$wgLexemeNamespace
和$wgLexemeTalk命名空间
相应的全局变量。
当使用Special:NewLexeme页面创建一个新的词素时,可以从引用该词素语言的项目中扣除该词素的语言代码。语言代码是使用指定属性的语言项上的语句的值。可以使用指定语言代码属性$wgLexeme语言代码属性ID
全局变量。
TODO:我们想要一个例子吗?
运行测试
PHP测试可以在tests/phpunit目录中找到。
PHP测试使用MediaWiki测试运行程序运行。您可以通过将跑步者指向测试目录来运行测试:
php/path/to/mw/tests/phpunit.php/path/to/mw/extensions/WikbaseLexeme
不需要安装MediaWiki的测试可以通过运行作曲家普尼特
.
JavaScript脚本
JavaScript测试在目录中测试/qunit
(测试取决于MediaWiki),以及测试/茉莉
(不需要MediaWiki)。
JavaScript测试是使用MediaWiki测试运行程序运行的,除了几个独立于MediaWikis的UI小部件的测试,这些小部件可以使用nodej运行。
MediaWiki跑步者可以通过在浏览器中打开Special:JavaScriptTest页面或运行咕哝的因果报应
(这将运行MediaWiki安装的所有QUnit测试)。独立于MediaWiki的组件的JavaScript测试可以使用咕哝着茉莉花
.
浏览器测试
有两个单独的浏览器测试套件,分别用ruby和node编写。
目前的经验法则是,我们将逐步淘汰ruby测试,并扩展节点测试。
红宝石
浏览器测试位于测试/浏览器中,可以使用运行捆绑黄瓜
。您可能希望在中添加/更改环境设置环境.yml
,并调整MEDIAWIKI_环境
环境变量。
节点
请查看它自述文件.
其他
还提供了几个过梁等的配置文件。将这些与测试一起运行的最简单方法是作曲家测试
(对于PHP代码),或呼噜声试验
(对于JavaScript部分)。