社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103,点点小课堂(腾讯会议):5696651544
SMW
阅读
2024-05-24更新
最新编辑:迦洛翎
阅读:
更新日期:2024-05-24
最新编辑:迦洛翎
SMW简介
Semantic MediaWiki(SMW)是一个免费、开源的MediaWiki扩展。它可以帮助wiki进行搜索、组织、标记、浏览、计算和共享数据。传统wiki只包含文本信息,计算机无法对其进行理解和计算。SMW为wiki添加了语义注释(Semantic Annotations)数据,从而使wiki具有数据库的功能。
SMW首次发布于2005年,目前有超过十名开发者,数以百计的站点使用了SMW。另外,目前已有许多相关扩展可以扩充SMW的编辑、显示和浏览数据的功能。Semantic MediaWiki有时也指整个SMW和其相关扩展系列。
关于本页面
本页面仅针对SMW常用语义进行简要说明,详细的机制和更深一层次的说明可以参见:Semantic MediaWiki和THBWiki中的帮助:SMW说明。
简单机制介绍
- 语义注释函数:通过语义注释,给页面定义属性,给属性赋值。例如:#set等(其他略)
- 行内查询函数:主要用途为检索所需的页面,并显示所需的属性值。例如:#ask,#show
- 其他功能性函数:提供一些便利功能的,例如:#info等(其他略)
- 主要使用逻辑:使用语义注释函数(#set)在页面上储存数据,然后使用行内查询函数(#ask、#show)按照一定的定义和分类进行行内查询,最后输出结果。分页面储存便于多人协作,但同时也增加了维护的总量。
说明
- BWIKI提倡大家多使用SMW语义来处理一些数据向的内容。
- 另外一本正经教程详见旧教程存档
如何使用SMW
首先:要为想被查询的页面声明想要被查询的属性
这就需要一个SMW中很重要的函数:#set
- 语法格式
{{#set: |属性名1=值1,值2|+sep=, |属性名2=值1;值2;值3;|+sep=; |属性名3=值1 |属性名3=值2 |属性名4=值1|值2|值3 |属性名5=值1 … }}
- 语法解释:
- 允许单行声明单个属性名的单个属性值或多个属性值。例如例子中的属性名5和属性名1/2/4的写法
- 允许多行声明单个属性名的多个属性值。例如例子中过的属性名3的写法
|+sep=
用来声明单行属性名多个属性值中间的分隔符。如果不通过|+sep=
来声明,默认使用|
为分隔符。例如例子中的属性名1用|+sep=
声明了多个属性值之间的分隔符为,
;属性名2中用|+sep=
声明了多个属性值之间的分隔符为;
;而属性名4直接使用了默认分隔符|
来分割多个属性值。
- 查看声明是否生效
- BWIKI页面上的"WIKI功能按钮"中点击浏览属性按钮,就可以看到该页面已经声明的属性有哪些。
然后:我们需要了解如何进行查询和展现效果
这里涉及SMW另外一个核心函数:#ask
- 我们通常在页面上这样使用:
{{#ask:[[分类:游戏WIKI]][[列表显示::显示]] |?游戏名 |?WIKI域名 |?创建时间 |?创建人UID |?创建人昵称 |link=none |sort=创建时间 |template=游戏WIKI申请列表 |headers=hide |order=desc |format=template |limit=1000 }}
- 简单归纳下
{{#ask:[[>>查询条件<<]] |?>>展示信息<< |>>输出结果式<< }}
如何写查询条件
- 通过分类进行查询:
[[分类:载具]]
- 通过属性进行查询:
[[载具名称::汽车]]
- 组合查询:
[[分类:载具]][[载具名称::汽车]]
。这种写法其实是逻辑and(代码相关概念,初学者可以理解要同时满足所有查询条件)的写法。另外,逻辑or的写法为,或者写成[[分类:载具]]or[[分类:交通工具]]
当前版本失效[[分类:载具||交通工具]]
如何写展示信息
- 仅展示值:
|?>>展示的属性名<<
如何写输出结果式
SMW为我们提供了非常多的参数来控制输出结果,具体参数可以见下表:
参数 | 值 | 说明 |
---|---|---|
format | 详见format说明 | 选择结果展示出来的格式,可不填。常用的值为template,以模板进行输出结果。如果不配置,会默认以表格输出查询结果。 |
limit | 1~1000的整数 | 输出的结果的最大数量 (在table下是行数),BWIKI为了方便用户已将该值上限调整到1000 |
offset | 数值 | limit=10 表示从总查询的结果的第2个开始输出10个结果 |
sort | 属性名 | 指定一个查询页面中存在的属性(可以不展示),所有结果会按照这个属性值来排序 |
order | 升序:asc 降序: desc 随机: random |
查询结果的输出排序规则,默认为升序。如果未指定sort,则不会生效。 |
headers | show , plain , hide |
控制输出结果表头第一行的样式,show是默认值。hide隐藏,plain是不带链接的纯文本 |
mainlabel | 纯文本 | 定义表格第一行第一个单元格的文字内容,如果配置为“-”,则会隐藏第一列标题 |
link | none , subject , all |
控制结果中的值是否带链接, all 为全部带链接,subject只有第一列带链接,none则是全部不带链接。 |
default | 纯文本 | 当查询的返回结果为空值时所显示的文字 |
searchlabel | 纯文本 | 当查询的结果超过了limit的限制后,会出现一个点击查看更多的链接,可以通过searchlabel来定义链接的文字。配置为空时,则不会显示点击查看更多的链接 |
更多的结果式
通过控制 format
对应的参数,可以输出非常多的结果式。详见:format说明
其他
- 属性名称、输出字段中不可使用“+”符号