Semantic MediaWiki template with subobject

From 清冽之泉
Jump to navigation Jump to search

在 Semantic MediaWiki 使用过程中,难免需要在同一页面,使用相同的模板。相同模板使用多次时,会导致一个参数有多个取值,最终在用 #ask 查询时,出现笛卡尔积。笛卡尔积的定义:假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。笛卡尔积的排序是乱的,我们必须用 subobject,令每一个参数及其取值,都变得唯一。subobject 的用法如下:

{{#subobject:mysubobject
 |Has property 1=value1
 |Has property 1=value2
 |Has property 2=value1
 ...
}}

自动模板

<noinclude>
{{#template_params:
案件名称 (property=案件名称)|
阶段案号 (property=阶段案号)|
审判时间 (property=审判时间)}}
</noinclude>

<includeonly>
{| class="wikitable"

! 案件名称
| [[案件名称::{{{案件名称|}}}]]
|-
! 阶段案号
| [[阶段案号::{{{阶段案号|}}}]]
|-
! 审判时间
| [[审判时间::{{#time:Y-m-d|{{{审判时间|}}}}}]]

subobject 模板

<syntaxhighlight lang="bash" line>

Error: #template_params can only be called within a template.