Мы рады представить вам новый модуль нашей системы управления сайтами «Scrofa Magna» — новый вид структурного поиска по каким-либо объектам.
Допустим, у нас есть некоторый список объектов (к примеру, ресторанов) с определёнными особенностями (критериями) — есть ли музыка (живая и/или в записи), шумно в ресторане или тихо (или бывает и так, и сяк), возможно ли в ресторане курить (да или нет, или «и да, и нет», то есть существуют залы как для курящих, так и некурящих), дороговизна ресторана (условно: дешёвый, средний, дорогой), стоит ли туда идти с детьми и т.д.
Человек, который хочет найти подходящий себе ресторан (или несколько), просто собирает вместе те критерии, которые его устраивают, и получает список ресторанов, которые отвечают всем этим критериям.
Но особенность именно нашей системы поиска в том, что многие критерии могут быть связаны между собой, а бывают и взаимоисключающими. Например, не стоит идти с ребёнком в ресторан для курящих, но если в ресторане есть зал и для некурящих, то это возможно.
Если кратко описать суть работы системы, то у нас получается, собственно, список ресторанов с проставленными критериями для каждого и, отдельно, некоторая структура, «дерево» этих критериев, в котором отображены их «взаимоотношения».
Вот, к примеру, список ресторанов:
Первый ресторан (дорогой; залы и для курящих, и не курящих; есть музыка, как живая, так и в записи; бывает шумно, а бывает и тихо; можно с детьми — ну, например, в зале для некурящих в день, когда играет тихая музыка)
Второй ресторан (дешёвый; для курящих; бывает шумно, а бывает и тихо)
Третий ресторан (средний по дороговизне; для некурящих; бывает только живая музыка; причём, там довольно шумно; хотя, можно с детьми)
Теперь самое интересное: структура, дерево «взаимоотношений» всех этих критериев вне зависимости от ресторана:
Дороговизна (просто раздел, не участвует в поиске)
- Дешёвый
- Средний
- Дорогой
(каждый из трёх критериев исключает остальные)
Курение (просто раздел, не участвует в поиске)
- Для некурящих
- Смешанный
- Для курящих
(каждый из трёх критериев исключает остальные, а последний также исключает критерий ниже «Можно с детьми»)
Звук (просто раздел, не участвует в поиске)
Музыка
- Живая
- В записи
(можно выбрать как только критерий «Музыка», когда неважно, живая или в записи, а можно выбрать отдельно «Живую» или «В записи»)
- Громко
- Тихо
(тоже относится к звуку, необязательно к музыке; может быть выбрано и «Громко», и «Тихо», например, днём в ресторане тихо, а вечером шумно)
Можно с детьми (исключает критерий «Для курящих»)
Эта структура может выглядеть довольно сложной и запутанной, но она создаётся автоматически. Существует специальный web-интерфейс, в котором вы сможете легко вводить новые объекты и их критерии, а также наглядно и без углубления в частности связать критерии между собой. Всё остальное программа построит сама.
Собственно, сам интерфейс поиска на примере тех же ресторанов представлен ниже. Он вполне нагляден.
Круги одного уровня обозначают уровень структуры критериев, например, «Дороговизна», «Курение», «Звук», «Можно с детьми». Если кликнуть, к примеру, по «Дороговизне», внутри этого круга появится круг с подразделами: «Дешёвый», «Средний», «Дорогой» и т. д.
Чтобы выбрать какой-либо устраивающий критерий, его нужно просто перетащить мышкой на площадку посередине. Оттуда же можно его утащить, если вы передумали. Критерии-разделы, которые не участвуют в поиске, а нужны просто для организации подразделов, например, «Курение», просто на площадку не встанут.
Таким образом, на площадке в конце концов соберётся некоторое количество устраивающих вас критериев, по которым программа, учитывая все их связи и взаимоисключения выдаст вам список подходящих вам ресторанов.