Здравствуйте, Sorc17, Вы писали:
S>И вот я думаю: а чем делать такую иерархию? Как задавать правила, например, что у кресел качалок не может быть регулятора высоты и колёсиков? Наверняка же уже придуманы какие-нибудь годные гибкие подходы к такому софту.
У меня кресло-качалка с регулятором высоты и колесиками
Не знаю как тему назвать. Поясню на примере о чём речь.
Вот допустим делаю я какой-нибудь интерфейс для выбора стула. Понятно что стулья могут быть самые разные и допустим я сделал десятки или сотни всяких справочников всевозможных свойств которые только могут быть у стульев: материал обивки, форма подлокотников, наличие мягких подлокотников, наличие колёсиков и т.д. и т.п. И теперь мне нужно сделать какую-то иерархию с правилами, чтобы с одной стороны человек мог (с минимумом усилий) описать уже существующий стул, который стоит перед его глазами либо по какими-то отдельным признакам подобрать себе стул.
И вот я думаю: а чем делать такую иерархию? Как задавать правила, например, что у кресел качалок не может быть регулятора высоты и колёсиков? Наверняка же уже придуманы какие-нибудь годные гибкие подходы к такому софту.
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Здравствуйте, Sorc17, Вы писали:
S>Не знаю как тему назвать. Поясню на примере о чём речь.
S>Вот допустим делаю я какой-нибудь интерфейс для выбора стула. Понятно что стулья могут быть самые разные и допустим я сделал десятки или сотни всяких справочников всевозможных свойств которые только могут быть у стульев: материал обивки, форма подлокотников, наличие мягких подлокотников, наличие колёсиков и т.д. и т.п. И теперь мне нужно сделать какую-то иерархию с правилами, чтобы с одной стороны человек мог (с минимумом усилий) описать уже существующий стул, который стоит перед его глазами либо по какими-то отдельным признакам подобрать себе стул.
S>И вот я думаю: а чем делать такую иерархию? Как задавать правила, например, что у кресел качалок не может быть регулятора высоты и колёсиков? Наверняка же уже придуманы какие-нибудь годные гибкие подходы к такому софту.
S>
Если нужен поиск как в yandex.market, то посмотри на механизмы полнотекстового поиска вроде lucene.
Они все поддерживают так называемый faceted search, когда вместе с результатами отдается набор категорий и количество попаданий в каждую категорию. Потом можно "уточнить" запрос по этой категории.
Соответственно если в результаты не попала категория вообще, например искали "кресла-качалки" и нету результатов в категориях "с регулятором высоты" и "без регулятора высоты", то эти категории не выводятся в интерфейсе.
Здравствуйте, Sorc17, Вы писали:
S>Не знаю как тему назвать. Поясню на примере о чём речь.
S>Вот допустим делаю я какой-нибудь интерфейс для выбора стула. Понятно что стулья могут быть самые разные и допустим я сделал десятки или сотни всяких справочников всевозможных свойств которые только могут быть у стульев: материал обивки, форма подлокотников, наличие мягких подлокотников, наличие колёсиков и т.д. и т.п. И теперь мне нужно сделать какую-то иерархию с правилами, чтобы с одной стороны человек мог (с минимумом усилий) описать уже существующий стул, который стоит перед его глазами либо по какими-то отдельным признакам подобрать себе стул.
S>И вот я думаю: а чем делать такую иерархию? Как задавать правила, например, что у кресел качалок не может быть регулятора высоты и колёсиков? Наверняка же уже придуманы какие-нибудь годные гибкие подходы к такому софту.
S>
Если я правильно понял, то это называется "экспертная система". Известный мне "живой" пример: яндекс.гуру, который можно посмотреть на маркете в некоторых разделах. Например, он помогает выбирать мобилки. Только вот описать уже имеющийся стул это вряд ли поможет.