Читать книгу Агрегация контента и его обработка. Сборник статей по архитектуре распределенных систем и программной инженерии - Д. А. Попов, Денис Александрович Шевчук, Денис Александрович Мурзин - Страница 11
Гибридная категориальная экспертная система для использования в агрегации контента
Перевод с английского
5. Инструментарий для создания экспертных систем
ОглавлениеРазработка экспертных систем – очень сложная задача, требующая инженеров по знаниям, которые переводят экспертные знания на язык экспертной системы. Для ускорения процесса разработки часто используется специализированное программное обеспечение. В этом разделе представлен краткий обзор некоторых оболочек и языков программирования, которые используются для создания экспертных систем.
5.1. Exsys Corvid
Exsys Corvid [51] уже много лет является одной из самых популярных коммерческих оболочек и активно используется до сих пор. Он включает в себя инструменты для программной отладки и тестирования, а также редактирования и модификации знаний и данных. Система логического вывода (Corvid Inference Engine), написанная на Java, позволяет решать сложные задачи с использованием правил ЕСЛИ – ТО.
Экспертные системы автоматизации знаний на основе Exsys Corvid нашли свое широкое применение в самых разных областях, таких как медицина, техническое обслуживание, управление человеческими ресурсами, госсектор, энергетика и т. д. [52]. Использование Exsys Corvid в качестве инструмента разработки для реализации экспертных систем описано в статьях [53—56].
5.2. CLIPS
CLIPS [57] – хорошо известный программный инструмент для построения экспертных систем на основе правил. Он написан на языке программирования C и использует прямую цепочку логического вывода (forward chaining). В настоящее время CLIPS активно используется в многочисленных современных проектах, таких как разработка экспертной системы для выбора тоннелепроходческой машины [58], прототипирование экспертных систем на основе правил [59], а также в реализации цифрового фитнес-тренера [60].
5.3. Java Expert System Shell (JESS)
Java Expert System Shell (JESS) – это еще одна популярная оболочка для создания экспертных систем. Данная оболочка является интерпретатором языка программирования Jess и может использоваться в консольных и графических приложениях. С архитектурной точки зрения система JESS основана на продукционной модели представления знаний (production system) и выполняет программы, основанные на правилах [61].
JESS успешно использовалась во многих проектах, включая интерактивную голосовую систему [62], обнаружение семантических веб-сервисов [63], анализ рисков безопасности [64], создание виртуальной лабораторной платформы [65], и многих других проектах.
5.4. Kappa PC
Kappa PC [66, 67] представляет собой оболочку, объединяющую критически важные технологии, необходимые для быстрой разработки недорогих и высокопроизводительных экспертных систем. Позволяет писать приложения с использованием графического пользовательского интерфейса и генерирует стандартный программный код ANSI C. Компоненты предметной области представлены как объекты и могут описывать объекты реального мира, такие как автомобили, или нематериальные понятия, такие как собственность, и эти объекты могут быть расширены с помощью методов [66].
Применение программного обеспечения Kappa PC можно найти во многих проектах, таких как экспертная система для проектирования коммерческих автобусов [68] или консультативная система, помогающая повысить эффективность транспортной системы [69].
5.5. Prolog
Prolog [70—72] – язык логического программирования, который очень популярен в программировании искусственного интеллекта и часто используется для разработки экспертных систем. Основными особенностями Prolog являются механизм сопоставления с образцом (pattern matching), поддержка поиска с возвратом (backtracking), а также возможность древовидного структурирования данных.
5.6. Flex
Flex – это набор инструментов для разработки экспертных систем на основе языка программирования Prolog. Поддерживает рассуждения на основе фреймов с наследованием, программирование на основе правил и процедуры, управляемые данными, полностью интегрированные в среду логического программирования [73, с. 9]. Существует множество экспертных систем, построенных с использованием этой оболочки, например: экспертная система выбора площадки для тепловых электростанций [74] и экспертная система для интерпретации результатов микроматрицы аллергенов [75].
5.7. Gensym G2
G2 – мощная экспертная система для операций в реальном времени, предоставляемая Gensym Corporation. G2 может обрабатывать десятки тысяч правил в секунду, поддерживает рассуждения как в пределах установленных временных рамок, так и рассуждения по умолчанию; определение правил на естественном языке и планирование приоритетов задач [76].
G2 используется в таких проектах, как, например, динамическое моделирование угольной шахты [77] и реализация концептуальной основы моделирования биофармацевтического завода [78], где требуются высокая производительность и надежность.
5.8. Lisp
Lisp, помимо Prolog, – это еще один популярный язык программирования для создания экспертных систем, который сегодня активно используется в таких проектах, как экспертная система диагностики и лечения диабета [79], а также во многих других.
5.9. VisiRule
VisiRule [81] – популярный инструмент визуального моделирования, предназначенный для построения надежных моделей принятия решений. VisiRule не требует навыков программирования и генерирует код Flex и Prolog на основе визуальных моделей. Пример работы VisiRule можно найти в исследовании [81], описывающем создание экспертной системы принятия решений на основе правил.
Как было показано выше, существует множество оболочек и языков программирования, которые можно использовать для построения экспертных систем. К сожалению, многие инструменты в настоящее время не поддерживаются. Технический отчет [82] содержит подробный обзор многих из них.