专业-wiki / 语义-wikibase
MediaWiki 扩展,使 Wikibase 数据在 Semantic MediaWiki 中可用
Requires
- php: >=7.4
- composer/installers: ^1.0.1
Requires (Dev)
- phpstan/phpstan: dev-master
- vimeo/psalm: dev-master
This package is auto-updated.
Last update: 2024-09-10 15:33:25 UTC
README
由 Wikibase 提供数据,使其在 Semantic MediaWiki 中可用的 MediaWiki 扩展。
语义 Wikibase 由 Professional.Wiki 创建,并在 Frans AL van der Horst 的帮助下开发。
演示
平台要求
- PHP 7.4 或更高版本
- MediaWiki 1.35.x
- Semantic MediaWiki 3.2.x
- Wikibase Repository 分支:REL1_35
安装
首先安装 MediaWiki、Semantic MediaWiki 和 Wikibase Repository。
推荐使用 Composer 和 MediaWiki 内置的 Composer 支持安装 Semantic Wikibase。
在命令行中,进入您的维基根目录。然后运行以下两个命令
COMPOSER=composer.local.json composer require --no-update professional-wiki/semantic-wikibase:*
composer update professional-wiki/semantic-wikibase --no-dev -o
然后通过在您的维基的 LocalSettings.php
文件底部添加以下内容来启用扩展
wfLoadExtension( 'SemanticWikibase' );
您可以通过在浏览器中打开您的维基的 Special:Version 页面来验证扩展是否已成功启用。
作为最后一步,您需要配置属性命名空间。请参阅配置部分。
翻译后的数据
属于 Wikibase 项目和属性 的数据被翻译为 Semantic MediaWiki 属性值对。
标签、描述、ID 等
翻译后的数据形式 Wikibase 数据模型元素 => SMW 属性名称 (SMW 属性类型)
- EntityId => Wikibase ID (文本)
- Labels => Wikibase 标签 (单语文本)
- Descriptions => Wikibase 描述 (单语文本)
- Aliases => Wikibase 别名 (单语文本)
声明
当一个 声明 被翻译时,只有 "主要 snak" 的值被存储在 SMW 中。
SMW 属性名称是 Wikibase 属性的 ID,例如 P42。Wikibase 属性的标签被添加为别名。这意味着在 SMW 查询中,[[P42::+]]
和 [[Capital city::+]]
都是有效的。
已弃用的声明永远不会被翻译。如果有首选声明,则普通声明不会翻译。SMW 属性类型基于 Wikibase 属性类型。只有支持属性类型的声明才会被翻译。
支持的属性类型
目前不支持类型
- 实体模式 (entity-schema)
- 地理形状 (geo-shape)
- 表格数据 (tabular-data)
配置
您可以通过 LocalSettings.php 配置 Semantic Wikibase。
属性命名空间
这是设置语义 Wikibase 所需的唯一配置。
Wikibase 和 Semantic MediaWiki 都添加了一个名为 "Property" 的属性命名空间。这会导致冲突,可以通过重命名 Wikibase 属性命名空间或 Semantic MediaWiki 属性命名空间来解决。
重命名 Wikibase 属性命名空间
$wgExtraNamespaces[WB_NS_PROPERTY] = 'WikibaseProperty'; $wgExtraNamespaces[WB_NS_PROPERTY_TALK] = 'WikibaseProperty_talk';
重命名 SMW 属性命名空间
$wgExtensionFunctions[] = function() { $GLOBALS['wgExtraNamespaces'][SMW_NS_PROPERTY] = 'SemanticProperty'; $GLOBALS['wgExtraNamespaces'][SMW_NS_PROPERTY_TALK] = 'SemanticProperty_talk'; };
您可以选择将这些命名空间重命名为什么。它们不需要是 WikibaseProperty
和/或 SemanticProperty
。只要它们不相同,语义 Wikibase 就可以正常工作。
您可能需要设置这些额外权限以避免在创建新项目或属性时出错。
$wgGroupPermissions['user']['item-create'] = true; $wgGroupPermissions['user']['property-create'] = true;
属性标签语言
用于属性标签翻译的语言默认为维基语言($wgLanguageCode
)。
这意味着,如果您的维基语言是英语,并且您有一个属性 P1,其荷兰语标签为 "lokatie",英语标签为 "location",那么在 Semantic MediaWiki 中的属性名称将是 "location"。
您可以指定使用与维基语言不同的语言。这是通过 $wgSemanticWikibaseLanguage
设置来完成的。以下示例中,P1 的标签将是 "lokatie"。
$wgSemanticWikibaseLanguage = 'nl';
禁用实体类型/命名空间的翻译
$smwgNamespacesWithSemanticLinks[WB_NS_ITEM] = false; $smwgNamespacesWithSemanticLinks[WB_NS_PROPERTY] = false;
增强想法
数据翻译
- 能够将实体列入白名单或黑名单以进行翻译
- 能够将陈述列入白名单或黑名单以进行翻译
- 对限定符、参考、陈述等级和其他非主要 snak 数据的翻译
- 对项目和其他属性之外的实体提供支持
- 翻译项目 sitelinks
属性
- 检测并可能预防 Wikibase 和 SMW 之间属性名称冲突
- 在 SMW 属性页面上对 Wikibase 属性的(多语言)描述
- 在 Special:Browse 上对 Wikibase 属性进行分组
Professional.Wiki 提供商业 MediaWiki 开发、Wikibase 开发 和 托管维基。
发布说明
版本 0.1
发布于 2020 年 9 月 3 日