社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103,点点小课堂(腾讯会议):5696651544

全站通知:

SMW

阅读

    

2024-05-24更新

    

最新编辑:迦洛翎

阅读:

  

更新日期:2024-05-24

  

最新编辑:迦洛翎

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
迦洛翎
Lu_23333
幻虚道长
> 文档 > SMW

SMW简介

Semantic MediaWiki(SMW)是一个免费、开源的MediaWiki扩展。它可以帮助wiki进行搜索、组织、标记、浏览、计算和共享数据。传统wiki只包含文本信息,计算机无法对其进行理解和计算。SMW为wiki添加了语义注释(Semantic Annotations)数据,从而使wiki具有数据库的功能。

SMW首次发布于2005年,目前有超过十名开发者,数以百计的站点使用了SMW。另外,目前已有许多相关扩展可以扩充SMW的编辑、显示和浏览数据的功能。Semantic MediaWiki有时也指整个SMW和其相关扩展系列。

关于本页面

本页面仅针对SMW常用语义进行简要说明,详细的机制和更深一层次的说明可以参见:Semantic MediaWiki和THBWiki中的帮助:SMW说明。

简单机制介绍

  1. 语义注释函数:通过语义注释,给页面定义属性,给属性赋值。例如:#set等(其他略)
  2. 行内查询函数:主要用途为检索所需的页面,并显示所需的属性值。例如:#ask,#show
  3. 其他功能性函数:提供一些便利功能的,例如:#info等(其他略)
  4. 主要使用逻辑:使用语义注释函数(#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说明

其他

  • 属性名称、输出字段中不可使用“+”符号