Mediawiki templates 语义mediawiki捕获当前页面中属性的所有值
我想用一个每页可以出现多次的模板来总结输入的数据。我希望此摘要仅基于当前页面 不过,我似乎不知道如何捕获由每页多次模板分配给属性集的所有值。我尝试过的所有语义查询都只返回给定页面上属性的唯一值 例如,如果我的模板有三个字段和属性:Mediawiki templates 语义mediawiki捕获当前页面中属性的所有值,mediawiki-templates,semantic-mediawiki,Mediawiki Templates,Semantic Mediawiki,我想用一个每页可以出现多次的模板来总结输入的数据。我希望此摘要仅基于当前页面 不过,我似乎不知道如何捕获由每页多次模板分配给属性集的所有值。我尝试过的所有语义查询都只返回给定页面上属性的唯一值 例如,如果我的模板有三个字段和属性: </noinclude><includeonly> '''GeneralFoodF:''' [[GeneralFoodP::{{{GeneralFoodF|}}}]] '''SpecificFoodF:''' [[SpecificFoo
</noinclude><includeonly>
'''GeneralFoodF:''' [[GeneralFoodP::{{{GeneralFoodF|}}}]]
'''SpecificFoodF:''' [[SpecificFoodP::{{{SpecificFoodF|}}}]]
'''RatingFoodF:''' [[RatingFoodP::{{{RatingFoodF|}}}]]
</includeonly>
{{#subobject:
|GeneralFoodF=Fruit
|SpecificFoodF=Apple
|RatingFoodF=3
|Belongs to={{PAGENAME}}
}}
然后执行#show查询:
{{#show: {{PAGENAME}} | mainlabel =- | headers = hide | link=none | ?GeneralFoodP}}
当我期望它返回时,它返回:水果,蔬菜:水果,蔬菜,水果,水果。wiki页面文本是正确的,显示了所有四个条目,但我似乎无法用语义查询捕获重复条目。如何捕获给定页面上输入的所有属性值(包括重复项) 想想财产意味着什么:如果一辆车的财产
是红色的
,如果你两次声明它,它不会变得更红。颜色仍然是红色,而不是“红色”。因此,您向我们展示的结果完全是意料之中的
对于您的需求,您可能需要考虑使用子对象。它们是对象,与页面类似,但没有自己的页面,它们可以有一个或多个属性:
</noinclude><includeonly>
'''GeneralFoodF:''' [[GeneralFoodP::{{{GeneralFoodF|}}}]]
'''SpecificFoodF:''' [[SpecificFoodP::{{{SpecificFoodF|}}}]]
'''RatingFoodF:''' [[RatingFoodP::{{{RatingFoodF|}}}]]
</includeonly>
{{#subobject:
|GeneralFoodF=Fruit
|SpecificFoodF=Apple
|RatingFoodF=3
|Belongs to={{PAGENAME}}
}}
然后,您可以查询该页面的所有子对象,如下所示:
{{#ask: [[Belongs to::{{PAGENAME}}]]
|?GeneralFoodF
|?SpecificFoodF
|?RatingFoodF
}}
或对于所有页面上的类似子对象:
{{#ask: [[SpecificFoodF::+]]
|?GeneralFoodF
|?SpecificFoodF
|?RatingFoodF
}}
子对象也可以命名,但在您的情况下,您希望它们是匿名的(有效地为它们指定所有唯一的、自动创建的名称)
见: