我想总结使用模板输入的数据,每个页面可能会多次出现。我希望此摘要仅基于当前页面。
我似乎无法弄清楚如何捕获由每页模板多次分配给属性的所有值。我尝试过的所有语义查询只返回给定页面上属性的唯一值。
例如,如果我的模板有三个字段和属性:
</noinclude><includeonly>
'''GeneralFoodF:''' [[GeneralFoodP::{{{GeneralFoodF|}}}]]
'''SpecificFoodF:''' [[SpecificFoodP::{{{SpecificFoodF|}}}]]
'''RatingFoodF:''' [[RatingFoodP::{{{RatingFoodF|}}}]]
</includeonly>
我将这个模板的四次出现添加到具有以下值的特定页面:
{{FoodT
|GeneralFoodF=Fruit
|SpecificFoodF=Apple
|RatingFoodF=4
}}
{{FoodT
|GeneralFoodF=Vegetable
|SpecificFoodF=Spinach
|RatingFoodF=5
}}
{{FoodT
|GeneralFoodF=Fruit
|SpecificFoodF=Pear
|RatingFoodF=5
}}
{{FoodT
|GeneralFoodF=Fruit
|SpecificFoodF=Apple
|RatingFoodF=3
}}
然后我执行#show查询:
{{#show: {{PAGENAME}} | mainlabel =- | headers = hide | link=none | ?GeneralFoodP}}
它返回:水果,蔬菜,当我期望它返回:水果,蔬菜,水果,水果。维基页面文本是正确的并显示所有四个条目,但我似乎无法使用语义查询捕获重复条目。如何捕获在给定页面上输入的属性值的所有(包括重复)?
答案 0 :(得分:1)
考虑一个属性意味着什么:如果一辆汽车拥有属性is red
,如果你的状态是两次,它就不会变得更红。颜色仍然是红色,而不是“红色”。因此,您向我们展示的结果是完全可以预期的。
根据您的需要,您可能需要考虑使用子对象。它们是对象,就像页面一样,但没有自己的页面,它们可以有一个或多个属性:
{{#subobject:
|GeneralFoodF=Fruit
|SpecificFoodF=Apple
|RatingFoodF=3
|Belongs to={{PAGENAME}}
}}
然后,您可以像这样查询该页面的所有子对象:
{{#ask: [[Belongs to::{{PAGENAME}}]]
|?GeneralFoodF
|?SpecificFoodF
|?RatingFoodF
}}
或所有页面上的类似子对象:
{{#ask: [[SpecificFoodF::+]]
|?GeneralFoodF
|?SpecificFoodF
|?RatingFoodF
}}
也可以命名Subobjetcs,但在您的情况下,您希望匿名(有效地将它们全部唯一的,自动创建的名称)。
请参阅: