Запрос по свойствам в Semantic MediaWiki

У меня есть следующие сущности, которые создают иерархию:

  1. Город (Свойства: название, в подрайоне)
  2. Подрайон (Свойства: Название, в районе)
  3. Округ

Итак: много городов в подрайоне, много подрайонов в районе.

Ограничение: я хочу создать их как подобъекты/записи или что-то подобное, так как нет смысла (и неприемлемо) создавать страницу для каждого города (их около 1400). «Районы» могут быть реальными страницами, так как их всего 6, но, вероятно, они будут в другом пространстве имен («Данные:»).

Затем у нас есть еще одна сущность, назовем ее «Сервис», которая имеет свойство «В городе::». На самом деле это многозначное свойство.

Поскольку я пытался использовать подобъекты, «В городе::» соответствует Town.name, а не Town (поскольку Town будет подобъектом, скажем, «Towns#HaHotrim»).

Что я хочу сделать, так это получить все службы, которые находятся в определенном районе; Я вообще не смог этого сделать.

Все подобъекты «Мой город» находятся на одной странице («Города») и выглядят следующим образом:

{{#subobject:HaHotrim
 | Name = HaHotrim
 | is in sub district: Hadera
 |@category=Towns
}}

Затем у меня есть свои подрайоны на другой странице («Подрайоны»), которая выглядит так:

{{#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=,


person Dror S.    schedule 02.11.2016    source источник


Ответы (1)


Чтобы найти все службы в подрайоне, предполагая, что запрос находится в шаблоне с параметром {{{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}}}, разделенных |, что будет условием для внешнего запроса.

P.S.

{{#subobject:HaHotrim
 | Name = HaHotrim
 | is in sub district: Hadera
 |@category=Towns
}}

содержит опечатку: is in sub district: Hadera должно быть is in sub district = Hadera.

person Alexander Mashin    schedule 22.09.2020