我有以下实体,它们创建了一个层次结构:
所以:一个街区的许多城镇,一个区内的许多分区。
约束:我希望将这些作为子对象/记录或类似的东西创建,因为在为每个城镇创建页面时没有任何意义(也不可接受)(其中大约有1,400个)。 "区"可以是实际页面,因为只有6个,但可能会在不同的命名空间中("数据:")。
然后我们有另一个实体,让我们称之为"服务",它有一个"在城里::"属性。这实际上是一个多值属性。
因为我尝试使用子对象,"在城里::"对应于Town.name,而不是Town(因为Town将是一个子对象,说" Towns#HaHotrim")。
我希望能够检索某个地区的所有服务;我根本无法这样做。
My Town子对象全部驻留在一个页面上(" Towns"),看起来像这样:
{{#subobject:HaHotrim
| Name = HaHotrim
| is in sub district: Hadera
|@category=Towns
}}
然后我将我的分区放在另一页(" Sub subtricts")上,如下所示:
{{#subobject:Hadera
| name = Hadera
| is in district = Haifa
|@category=sub districts
}}
但我仍然不知道如何查询某个地区(甚至是一个分区)的所有服务。我错过了什么?
我认为如果我直接在子区/区内创建城镇列表作为属性可能会有所帮助,方法是在子对象中添加这样的属性:
| towns in sub district: {{#ASK:[[is in sub district::Hadera]] |?name | mainlabel=- | link = none | format=list | headers=hide}}|+sep=,
答案 0 :(得分:0)
要查找分区中的所有服务,并假设查询位于具有{{{sub-district}}}
参数的模板中,仅使用SMW,请尝试:
{{#ask:
[[In town::{{#ask:
[[is in sub district::{{{sub-district|none}}}]]
| ?Name#-
| mainlabel = -
| headers = hide
| format = list
| sep = {{!}}
| limit = 100
| searchlabel =
}}]]
| ?Service name
| format = ul
}}
内部查询将为{{{sub-district}}}
中的城镇创建一个名称列表,以|
分隔,这将是外部查询的条件。
PS
{{#subobject:HaHotrim
| Name = HaHotrim
| is in sub district: Hadera
|@category=Towns
}}
包含错字:is in sub district: Hadera
应该是is in sub district = Hadera
。