显示信息

From semantic-mediawiki.org
Table of Contents


Semantic MediaWiki之中的查询返回的是页面列表。默认结果仅仅是罗列出页面标题。利用附加的打印输出语句,可在查询结果之中包含上页面的属性取值或类别之类的附加信息。

打印输出语句有不同的种类,而查询当中开头的问号 ? 则能够对它们全部加以识别。 打印输出语句与打印描述之间的重要差别就是,前者并不会以任何方式对结果集加以限制,即使是对于特定的页面,某打印输出没有任何取值,也会打印输出空字段,而该页面却仍旧是该结果的组成部分。

请注意:下文当中所有的打印输出语句均须在查询之中使用。

打印输出属性取值[edit]

打印输出语句最为常见的形式是属性打印输出;其显示的是已赋予特定属性的全部取值。 这种语句写作一个英文问号之后再加上相应的属性名称,如:

?population

这将打印输出查询结果的人口数量属性«population» 的所有取值。

亦可改变属性在打印输出当中的标签:

?population = 居民人数

这打印输出的仍是人口数量属性«population» 的取值,但属性的标签则经过了修改。

如前所述,某些页面上可能并未定义某些属性,比如,当某事物并没有任何的人口数量属性。如果需要的话,带有通配符的属性条件可用于保证查询结果之中的所有元素都具有特定属性的某一取值。

打印输出类别[edit]

打印输出类别信息的方式有两种: SMW要么是打印输出所有赋予某页面的所有类别,要么是检查某个特定的类别。如下打印输出语句可实现第一种情况:

?Category

其中,«Category»是本地语言的类别命名空间Category的名称。这个打印输出语句将显示的是某个结果页面上所直接使用的所有类别。另一种选项就是查询某个特定的类别,如:

?Category:Actor

其结果将包含一个演员列«Actor»,其中,该列将包含的是代表直接属于该类别的所有页面的条目;否则,结果则为空(原文:The result then will contain a column «Actor» that contains X for all pages that directly belong to that category)。同样,亦可采用等号来更改其标签。

?Category:Actor = A

该语句仅仅显示一个作为结果列标题的«A»;假如该列当中的条目都很短的话,这样的短标签可能会显得更为合理。如下文所述,亦可改变这种类别查询的格式编排方式。

主要的结果列[edit]

所有的查询默认在第一列之中显示主要的结果页面列表。在某些情况下,将该列表移动到别的位置可能有用。 这与Special:Ask并不相干,但对行内查询则可能相当有用。如下打印输出语句可用于这种目的:

?

这个单独的问号处理的就是用于显示主要结果列的«不加标签的结果列(unlabelled result column)»。 与前面的情况一样,亦可采用等号赋予其不同的标签,如:

? = Results

如果您想省略这个主要的结果列,可使用参数mainlabel=-(另见这里)。

显示格式[edit]

通过指定某种打印输出格式,可进一步对许多的打印输出语句加以自定义。 可在属性名称后面以井字号#为分隔符给出打印输出格式。 可用的格式取决于打印输出的类型以及相应的属性。

普通的(未加格式编排的)打印输出[edit]

大多数类型的打印输出所支持的一种通用格式就是,自SMW 1.4.3版以来可用的普通格式(plain format),又称为空白格式(empty format)。 采用这种格式的打印输出将在其呈现当中避免使用所有形式的美化或链接,而仅仅返回单纯的取值。 当要在模板或解析器函数之中进一步加以处理的话,这种格式特别有用。 如下例所示,要选用这种普通的输出格式,打印输出字符串只需一个连字符("-"),甚至什么都不写。

?population# -
?capital #

上述这两个打印输出语句选用的都是普通格式。其中,空格没关系,因而可通过插入空格来提高易读性。 对于像人口数量之类的数值型属性,普通格式就是不采用逗号分隔位数的单纯的数字字符串。 对于页面型属性,普通格式则仅仅是不带任何链接的页面名称。

请注意:带有计量单位的属性的普通打印输出(参见下文)仍将包含作为结果组成部分的计量单位(属于(物理)量纲的取值是由一个数值乘以一个量(计量单位)所构成的,因此省略计量单位实际上就改变了这个取值)。出于这个原因,现在已经新增了两个特殊的打印输出格式(自1.5.1版可用):

假设有一取值"12,345.6 km":

?my value # - 显示的是"12345.6 km"(正如预期)
?my value # -n 显示的是"12345.6" (仅为该取值的数值部分)
?my value # -u 显示的是"km" (仅为该取值的计量单位部分)

特殊打印输出类型的格式[edit]

对于支持计量单位的属性,查询因此可以确定究竟应当在其输出当中使用哪种计量单位。 比如,若要打印输出以cm为单位的高度,可以采用下列语句:

?height#cm

该语句假设这个高度属性知晓计量单位«cm»。

计量单位可完全省略,仅仅返回一个数值(#-n);或者,查询计量单位本身,仅仅返回相应的计量单位(#-u):

?height#-n
?height#-u

对于日期型的属性,另外还有两个可用的输出格式:

  1. "ISO"可用于按照符合ISO 8601标准的科技格式来获取结果。
    ?birthday#ISO
    
  2. "MEDIAWIKI"可用于按照MediaWiki关于日期和时间的i18n(国际化)方法来格式编排日期范围,且通常是介于的1901-12-14与2038-01-19之间的日期范围。
    ?birthday#MEDIAWIKI
    

其他的数据类型也可能拥有不同的打印输出格式。详情请参见类型文档

对于?Category:Actor形式的打印输出,可利用显示格式来修改当某个页面位于(或不在)相应类别之中情况下SMW究竟要显示什么。参见如下示例:

?Category:Actor#an actor, not an actor

这个语句对于那些属于演员的所有页面都显示文字«an actor»,否则显示文字«not an actor»。 例如,可利用这个,配合小型图像,为某些类别显示相应的图标。


本文档页面适用于SMW从1.8.0版到最新版本的所有版本。
      其他语言: deenru

Displaying information zh-hans 1.8.0