Help:Array format/zh-hans

From semantic-mediawiki.org
< Help:Array format
Array formatHelp:Array format/zh-hans
Array format/zh-hans
逗号分隔型列表,且带有括在英文圆括号当中的额外输出以及额外的格式编排选项
更多信息
提供者: Semantic Result Formats(语义结果格式)/zh-hans
添加版本: 1.6.1
移除版本: 依然支持
需求:
格式名称: array
启用?表明安装相应扩展时是否默认启用该结果格式。 "是" is not recognized as a Boolean (true/false) value.
作者: Daniel A. R. Werner
分类: misc
目录

数组格式array,作为Semantic Result Formats(语义结果格式)扩展的组成部分,用于采取最适合于MediaWiki模板或解析器函数进一步处理的方式,对查询结果加以格式编排。其相当类似于列表格式,但却提供有更多的自定义选项。 它或者可以将结果输出为在不同取值之间采用各种分隔符的字符串, 或者可以直接将结果存储到数组(数组扩展)当中。

参数[edit]

数组格式不仅在安装了数组扩展ArrayExtension的情况下有用,而且还是默认列表格式list不错的替代手段,因为其允许采用各种各样的分隔符,而不仅仅是每个页面的查询输出取值之间的分隔符(列表格式list的分隔符参数sep)。

针对与数组扩展ArrayExtension或者其他的输出处理方式配合使用,而不是针对Semantic MediaWiki专有列表格式list之类非机器友好型的花瓶(养眼之物),对默认参数进行了优化。这就意味着,默认情况下禁用了所有种类的链接以及产生不必要的信息,尽管可以予以启用。

参数 参数中文名称 描述 允许取值 默认值
pagetitle 页面标题 究竟是将页面标题显示为结果条目,还是将其从结果当中略去 show(显示), hide(隐藏) show(显示)
headers 标头 属性输出之前对属性名称的显示方式。取值为'show'(显示)时将它们显示为链接,而取值为'plain'(普通)时不显示链接。可采用标头分隔符参数headersep来定义属性名称(标头)与某个页面的实际属性取值之间的分隔符。 show(显示), plain(普通), hide(隐藏) hide(隐藏)
hidegaps 隐藏空白 究竟是打印输出所请求但又不可用的,采用分隔符分隔的属性和记录取值,还是将其略去。例如,如果请求的是属性NameAgeValue,假设某个页面上又尚未提供AgeValue的话,当hidegaps无效时,就会返回'..., Max<PROP><PROP>, ...'之类的结果,而当hidegaps有效时,就会返回'..., Max, ...'之类的结果。 none(无), property(属性), recordy(记录), all(全部) none(无)
link 链接 允许在可能的情况下将取值输出为链接。如果该参数被设置为subject(主题)(仅仅适用于数组Array),那么,只会将页面标题作为链接包含进来。 all(全部), subject(主题), none(无) none(无)
limit 限值 所要返回结果的最大数量【等于信息显示时所依据页面的最大数量以及相应数组或哈希表(如果创建了的话)的长度】 任意数值 最大值 *
结果分隔符(Result Separators)
注意: 另请参阅利用LocalSettings.php来为结果分隔符设置默认取值的可能性
sep 分隔符 每个页面的结果之间的分隔符 任意字符串 ', '(逗号)
propsep 属性分隔符 每个页面所请求属性之间的分隔符 任意字符串 <PROP>
manysep 多值型属性取值分隔符 多值型属性取值之间的分隔符 任意字符串 <MANY>(多值型)
recordsep 记录型属性取值分隔符 记录型属性成员取值之间的分隔符 任意字符串 <RCRD>(记录型)
headersep 标头分隔符 当没有将标头参数headers设置为'hide'(隐藏)的时候,属性名称与某个所请求页面属性的实际属性取值之间的分隔符。默认为一个空格' '。将此参数设置为更为独特的某种取值,且哈希表扩展HashTables可用的话,则可轻松地允许创建某种二维数组/哈希或者哈希/哈希结构。 任意字符串 ' '(空格)
特殊功能
name 名称 如果提供此参数,且存在可用的数组扩展ArrayExtension,则会创建一个采用指定名称的数组(无可见输出) 任意字符串 未设定

* array(数组)查询结果的数量限值被设置为默认情况下Semantic MediaWiki的配置变量$smwgQMaxInlineLimit之中所设定的最大值。

配置[edit]

有5个配置变量可用来配置默认分隔符。如果需要的话,可利用LocalSettings.php来加以调整。

$srfgArraySep
参数sep的默认值。 默认值: ', '
$srfgArrayPropSep
参数propsep的默认值。 默认值: '<PROP>'
$srfgArrayManySep
参数manysep的默认值。 默认值: '<MANY>'
$srfgArrayRecordSep
参数recordsep的默认值。 默认值: '<RCRD>'
$srfgArrayHeaderSep
参数headersep的默认值。 默认值: ' '

示例[edit]

可将这些变量设定成一个正常的字符串取值,或者其中包含一个数组('title', (int)namespace, (array)parameters),从而定义维基站点当中的一个页面。 如果选择后一种情况,所解析的该网站的内容将作为默认值。 生成每个页面时仅对该取值解析一次,而且页面当中不应当含有任何动态性很强的内容, 尽管定义继而可在那些进一步处理查询结果的模板当中使用的模板,是一种有用的做法。 如下为定义示例:

# 数组分隔符参数'arraysep'的默认取值字符串'<,,,>'
$srfgArraySep = '<,,,>';

# 作为属性分隔符参数'propsep'默认值的'Template:SepP'的内容:
$srfgArrayPropSep  = array( 'SepP', NS_TEMPLATE );

# 参数为1='abc'和val='def'的'Template:SepH'的内容:
$srfgArrayHeaderSep array( 'SepH', NS_TEMPLATE, array( 1 => 'abc', 'val' => 'def' );

Special:Ask有关的事项[edit]

一旦对任何配置变量加以设置,使其把某一维基页面的内容作为取值加以获取, 这就不会像对Special:Ask所期望的那样发挥作用。 这是因为解析器在需要这种取值的时候并未在全面运行。 在这种情况下,如果并非在嵌入型模式运行查询,就会从另一个配置变量$srfgArraySepTextualFallbacks那里加载一个后备分隔符(fallback separator)。这是一个具有键值seppropsepmanyseprecordsepheadersep的数组,其中含有来自这些键值的等价默认值(当然并不是LocalSettings.php当中所设定的那一个)。 尽管亦可在LocalSettings.php当中对此变量加以修改,但这么做并没有任何的实际好处,因为这些取值总之仅仅准备在语义搜索特殊页面上使用。 我们只是应当清楚这一点,以免混淆。

示例[edit]

现在,让我们定义一个名称为arrName的数组,对于发现其中含有属性Name的页面,每个页面分配一个数组取值。

{{#ask: [[Name::+]]
| format = array
| name = arrName
}}

实际示例[edit]

有待添加



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

Help:Array format zh-hans 1.6.1