Hash format/zh-hans | |
---|---|
逗号分隔型列表,且带有括在英文圆括号当中的额外输出以及额外的格式编排选项 | |
更多信息 | |
提供者: | Semantic Result Formats(语义结果格式)/zh-hans |
添加版本: | 1.6.1 |
移除版本: | 依然支持 |
需求: | 无 |
格式名称: | hash |
启用?表明安装相应扩展时是否默认启用该结果格式。 | 是"是" is not recognized as a Boolean (true/false) value. |
作者: | Daniel A. R. Werner |
分类: | misc |
目录 | |
哈希格式hash, 作为Semantic Result Formats(语义结果格式)扩展的组成部分, 用于采取更适合于MediaWiki模板或解析器函数进一步处理的方式,对查询结果加以格式编排。
它与列表格式相当类似,但却提供有更多的自定义选项。 它既可以采用各种分隔符来分隔不同的取值而将结果输出为字符串,亦可将结果直接存储到哈希表(hash)(HashTables)当中。
参数[edit]
针对与哈希表扩展HashTable或者其他的输出处理方式配合使用,而不是针对Semantic MediaWiki专有列表格式list之类非机器友好型的花瓶(养眼之物),对默认参数进行了优化。这就意味着,默认情况下禁用了所有种类的链接以及产生不必要的信息,尽管可以予以启用。
参数 | 参数中文名称 | 描述 | 允许取值 | 默认值 |
---|---|---|---|---|
pagetitle | 页面标题 | 究竟是将页面标题显示为结果条目,还是将其从结果当中略去 | show (显示), hide (隐藏)
|
show (显示)
|
headers | 标头 | 属性输出之前对属性名称的显示方式。取值为'show '(显示)时将它们显示为链接,而取值为'plain '(普通)时不显示链接。可采用标头分隔符参数headersep来定义属性名称(标头)与某个页面的实际属性取值之间的分隔符。
|
show (显示), plain (普通), hide (隐藏)
|
hide (隐藏)
|
hidegaps | 隐藏空白 | 究竟是打印输出所请求但又不可用的,采用分隔符分隔的属性和记录取值,还是将其略去。例如,如果请求的是属性Name、Age和Value,假设某个页面上又尚未提供Age和Value的话,当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 | 名称 | 如果提供此参数,且存在可用的哈希表扩展HashTables,则会创建一个采用指定名称的哈希表(无可见输出) | 任意字符串 | 未设定 |
* array(数组)和hash(哈希)查询结果的数量限值被设置为默认情况下Semantic MediaWiki的配置变量$smwgQMaxInlineLimit
之中所设定的最大值。
配置[edit]
有5个配置变量可用来配置默认分隔符。如果需要的话,可利用LocalSettings.php来加以调整。尽管在这些参数的名称当中并没有hash字样,但它们仍适用于哈希格式。
- $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)。这是一个具有键值sep、propsep、manysep、recordsep及headersep的数组,其中含有来自这些键值的等价默认值(当然并不是LocalSettings.php当中所设定的那一个)。
尽管亦可在LocalSettings.php当中对此变量加以修改,但这么做并没有任何的实际好处,因为这些取值总之仅仅准备在语义搜索特殊页面上使用。
我们只是应当清楚这一点,以免混淆。
示例[edit]
现在,让我们定义一个名称为hashName
的哈希表,同时将页面名称(Pagenames)作为关联键(associative keys),并将每个结果页面Name属性的取值作为取值:
{{#ask: [[Name::+]] | ?Name | format = hash | name = hashName }}
实际示例[edit]
有待添加