目前已经放弃Semantic MediaWiki,转用Cargo。更多信息可参考《MediaWiki教程之Cargo篇

Semantic MediaWiki简介

Semantic MediaWiki(SMW)是MediaWiki的一个扩展。它有助于维基内容的搜索、组织、标记、浏览、评价以及分享。它新增的语义标注(semantic annotations)使得维基可以作为一种协作式数据库来发挥作用。
更多详细内容可参见官方介绍

使用Composer安装

官方推荐的安装方式是通过Composer进行,如果无法使用可以尝试官网中提到的其他方法

安装Composer

1. 下载composer.phar
curl -sS https://getcomposer.org/installer | php

2. 全局调用

mv composer.phar /usr/local/bin/composer
chmod +x composer

3. 测试安装结果

composer about

composer-about.png

测试兼容性

维基站点的“特殊:版本”页面包含了MediaWiki的版本号,COMPATIBILITY.md中列出了各版本的兼容性,你可以根据实际情况升级合适的MediaWiki版本。

使用Composer

在MediaWiki的安装根目录下运行如下“初始化”命令:
php composer.phar require mediawiki/semantic-media-wiki "~2.5" --update-no-dev
如果Composer是全局安装的话可以用下面的代码替代运行:
composer require mediawiki/semantic-media-wiki "~2.5" --update-no-dev

运行维护脚本

在MediaWiki的安装根目录下运行设置脚本:
php maintenance/update.php
注意:如果你收到跟下面相似的错误消息:
mediawiki/semantic-media-wiki: 2.5.0 installed, ~2.5 required.
请增加--skip-external-dependencies到设置脚本的请求中。

启用Semantic MediaWiki

在LocalSettings.php文件的最后增加一个请求enableSemantics()")。enableSemantics()接受维基站点的名称,例如,一个维基站叫做“example.org”则使用下面的请求:
enableSemantics( 'example.org' );
require_once …请求

检验与核实

检验你的“特殊:版本”页面并且核实是否已经成功安装及使用。

检验注释的用法

  1. 创建一个名叫“TestSMW”的常规维基页面。
  2. 在保存前,在文本编辑框内输入如下内容:
    Property test: [[Property name::Property value]]
  3. 保存页面然后你将看到页面上有显示如下:
    "Property test: Property value"
  4. 导航到“特殊:浏览”的特殊页面,并且点击“工具”中的“浏览”链接。
  5. 在这个特殊页面中你将看到:
    • “Propery name”和“Propery value”都是红的。
    • “Modification date”的特性为蓝色且为斜体。
  6. Semantic MediaWiki测试成功!

完成!

升级

使用以下内容可以帮助你升级一个已经安装了的SMW。

备份

备份你的数据库以及网站内容。

运行Composer升级脚本

在MediaWiki安装的目录下面运行以下脚本:
php composer.phar update
如果Composer是全局安装的,那么用这个替代:
composer update

运行维护脚本

在MediaWiki安装的目录下面运行设置脚本:
php maintenance/update.php
在MediaWiki安装的目录下面运行刷新数据库脚本:
php extensions/SemanticMediaWiki/maintenance/rebuildData.php -d 50 -v

检验与核实

检验你的“特殊:版本”页面并且核实是否已经成功升级。
完成!

安装过程中的错误

注意:我在第一次运行上述代码时就出现错误:

修改服务器上的php.ini文件,将其中disable_functions内的proc_get_status删除。
重新运行上述代码,新的错误出现:
网上说用composer self-update,可惜问题依旧。
之前运行composer update可能由于proc_get_status的原因也不起作用。经过上述的修改之后升级功能可以用了。在过程中貌似见到Semantic MediaWiki。
再次运行,虽然仍会出现Failed to decode response: zlib_decode(): data error,但是进程倒是进行下去了。这次使用composer self-update后问题终于解决。

本文参考:

  1. Semantic MediaWiki入门
  2. Installation with shell access using Composer (MediaWiki 1.25+)
  3. Help:Testing
最后修改:2024 年 08 月 22 日
如果觉得我的文章对你有用,请随意赞赏