Требования:
-
Операционная система: Linux (с гарантией корректного запуска, другие потенциально на это способны)
-
Внешние зависимости: SWI Prolog
-
Программные зависимости (Python 3.6+):
pip3 install -r requirements.txt
Запуск программы Запуск консольного приложения:
python3 main.py
Запуск prolog с импортом использованной базы знаний:
./run_prolog.sh
Данная информационная система предоставляет доступ к систематизированным общим сведениям о видах кофейных напитков, способов их приготовления и используемых ингредиентах, а также позволяет оценить взаимосвязи между способом приготовления и получаемым в результате напитком.
Система разработана в формате консольного приложения, доступные команды приведены ниже.
Систему можно разделить на два блока:
- общая информация, которая включает в себя:
- краткий глоссарий (команда
инфо
) - обзор известных системе сущностей и значений, которые они могут принимать. Например, команда
инструменты
выведет список инструментов, которые могут использоваться при приготовлении кофе
- краткий глоссарий (команда
- специализированные запросы, ориентированные на анализ взаимосвязей между сущностями. Выделено 4 вида запросов (4 команды):
из чего приготовить
позволяет подобрать ингредиенты для выбранного способа приготовлениячто приготовить из
подбирает способы приготовления, в которых можно использовать указанные ингредиентычто получится
строит оценку результата (кофейного напитка) на основании указанного способа приготовления и используемых ингредиентовкак бы так приготовить
подбирает способы приготовления и ингредиенты таким образом, чтобы результат соответствовал указанным характеристикам.
Можно заметить, что специализированные вопросы отвечают за обработку двух видов зависимостей:
- между способом приготовления и используемыми ингредиентами
- между оценкой получаемого напитка и тем, как и из чего он готовился
Примечания к возможностям информационной системы:
- использование флагов для работы с массивами выводимых результатов:
- ограничение количества выводимых ответов (limit)
- отступ (offset)
- случайное перемешивание ответов (shuffle)
- улучшенные возможности поиска (команда
как бы так приготовить
) по наличию дескриптора, которые включают в себя поиск под-дескрипторов (производных от указанного в иерархии "колеса вкусов")
Список инструментов
Список способов приготовления
"Колесо вкусов", или иерархическая система дескрипторов вкуса кофейных напитков
Из чего приготовить
Что приготовить из
Что получится
Как бы так приготовить