如何理解semantic mediawiki插件的用途?

用通俗的语言来解释semantic mediawiki插件的用途和使用方法?
关注者
15
被浏览
1,365

2 个回答

一、简单的来说,SMW是把维基页面变成“数据库”
  • 每个页面就是对象(object),唯一且不重复的key就是{{PAGENAME}}
  • 页面下面还可以挂子对象——即subobject
SMW就是靠这个把维基上的文字内容和infobox里的“文本”变成计算机可以理解的语义化内容。
从前,一个维基收录一万个人物就是一万段文本,现在是一万条数据,你可以根据性别、年龄、职业来筛选对应的结果(在不依靠分类的情况下)


二、SMW的核心概念是“属性”(property)和“概念”(concept)


三、具体应用上来说,SMW分为两个部分
  1. 设定属性:对象靠{{#set}}函数, 子对象靠{{#subobject}}函数
  2. query属性:主要靠{{#ask}}函数来完成,{{#show}}函数是辅助手段

四、从插件扩展来说,主体功能是由SemanticMediaWiki所提供,但是也离不开这几个好帮手:
  • SemanticResultFormat(SRF),主要是丰富query结果的格式,解决“输入结果”这一部分
  • SemanticForms(SF),通过表单编辑(新的编辑方式)结合SMW进行操作,主要解决“录入属性”这一部分,同时提供了一个非常强大的函数{{#arraymap}}
  • Arrays,数组插件,主要是{{#arraydefine}}和{{#arrayprint}}(类似{{#arraymap}}但略有不同)
——————————————————
跳出上文略显冗长的文字,概括来说,SMW并没有对维基阅读者带来直接的巨大变革,相反的,是为维基编辑者/维护者带来了巨大的便利,解放了搞基者的双手。为维基提供了一个成熟(但可能不是最优的)数据化解决方案,使得MediaWiki在功能扩展和呈现上有了更广阔的想象空间。

不可否认的是,也极大的提高了维基使用者的技术门槛

对比其他数据化解决方案,cargo功能略少,wikidata应用还不是很广阔,应该就wikipedia在用,相比之下SMW的实例非常多,

以上主要来自个人实践,灰机在16年开始大规模应用SMW到游戏维基,后来扩展到影视、文学类站点,基本上每个站点都是数十万条属性级别的,所以我对SMW还算了解,优缺点都比较清楚。

我之前见过的最棒的SMW架构来自starbounder.org(屎大棒的官方维基)
在这里学了不少技巧,然后融入个人的理解和想法,做了许多升级,灰机如下站点都是我在SMW领域进行的完整案例
  • 异星工厂wiki 比较成熟的SMW解决方案,几乎全程自动语义化
  • 文明VI中文维基 应该是我个人目前最满意的一个案例
  • dota.huiji.wiki 刀塔,这里做了一些实验性的内容,比如changelog系统等等,
另外我在冰火维基着手进行语义化改造,时间精力有限,所以进展缓慢,改造完毕后基本上人物关系、家族树、死亡信息、生卒年、继承更替、书卷登场目次都可以不用手写自动生成。

另外这里有一些SMW的教程,更新中
个人理解在使用了Semantic Mediawiki之后,
Mediawiki站点内部恰好实现了语义网的一些概念

语义概念—— Semantic Mediawiki对应概念
Entity—— Category
Property—— Property
Instance—— Article
Type Value—— Type
Domain/Namespace—— Article前缀

Mediawik随即增强了内容标记功能,
可以通过Ask方法对所标记的文章进行多维查询
结果能够显示为图表、时间轴、地图等