Semantic MediaWiki之中包含一种简便易用的查询语言,可供用户用来访问存取维基站点上的知识。 该查询语言的语法类似于Semantic MediaWiki之中的标注语法。 该查询语言可用在Special page "Ask"特殊页面、概念以及嵌入式查询之中。 本页面提供的是总体上对于语义搜索的简要介绍。对于更多详细的解释,请参见本手册的其他页面:
- 选择页面:解释用于描述查询结果之中究竟应当显示什么页面的基本方法。这是SMW查询语言的核心。
- 显示信息:介绍作为在查询之中显示附加信息(如属性取值或者类别指定)的一种方式的打印输出语句。
- 概念:介绍如何才能将查询保存在概念当中。此类概念乃是SMW所提供的一种«动态类别»(dynamic categories)。
- 行内查询:解释把查询结果纳入到维基页面之中的种种方法,以及介绍如何格式化用于显示的查询结果。这正是SMW解析器函数#ask和#show的用途所在。
- 推理:解释如何才能在SMW之中规范说明通用图式知识(general schematic knowledge)(以及首先这是什么)。SMW利用该功能巧妙地推断出那些并非直接录入到维基站点当中的事实。
当然,回答查询是需要额外资源的,而一些网站的管理员则可以决定关闭或限制查询功能,以便确保高流量的网站能够应付这种额外的负荷。
简介[edit]
语义查询要规定的事情有两个方面:
- 要选择哪些页面
- 要显示关于这些页面的哪些信息
所有的查询都必须声明一些条件,以描述究竟要的是什么。 您可以按名称、命名空间、类别,以及最为重要的是按属性取值来选择页面。例如,下列查询:
[[Located in::Germany]]
这是一个对具有属性"Located in"(位于……)且其取值为"Germany"(德国)的所有页面的查询。 如果您在特殊页面Special page "Ask"(又称为“语义搜索”页面)之中输入该查询,并点击搜索结果按钮,SMW就会执行该查询,并将结果显示为一张简单的表格,其中含有所有匹配页面的标题。如果有很多的结果,则可以利用查询结果页面顶部和底部的导航链接来浏览,例如,这是对semanticweb.org网站上所有人员的查询。
对于显示更多的信息来说,第二点至关重要。 在上述例子当中,有人可能会对德国国内的城市人口数量感兴趣。 要在Special:Ask页面上显示这些信息, 则只需在右侧的打印输出框当中输入下列语句即可:
?Population
如果存在相应的数据的话,SMW就会显示同样的页面标题以及这些页面上人口数量属性Population的那些取值。打印输出语句还可以有一些额外的设置,用于进一步控制该属性的显示方式。