17.3.3.
Языки логического программирования экспертных систем
Критически
оценивая первый опыт применения инструментальных средств типа оболочек при проектировании
экспертных систем, в частности опыт использования EMYCIN, многие исследователи
полагали, что более перспективным является альтернативный подход, основанный
на логическом программировании (см., например, [Kowalski, 1982]). Например,
предполагалось, что порождающие экспертные системы, аналогичные MYCIN, могут
быть довольно просто реализованы на языке PROLOG [Clark and McCabe, 1982].
Правила можно представить в виде фраз Хорна (см. об этом в главе 8), в которых
головной (позитивный) литерал соответствует заключению, а прочие (негативные)
литералы будут соответствовать условиям.
Встроенный
в PROLOG режим управления приблизительно соответствует стратегии обратного логического
вывода, которая используется в системах, подобных MYCIN. Таблицы знаний и другие
данные можно представить с помощью утверждений. Рекурсивные структуры данных
— графы и деревья — можно организовать с помощью фраз языка PROLOG, которые
содержат комплексные термы. Языковые средства PROLOG позволят программисту разработать
собственный механизм обработки неопределенности, причем не исключается и использование
коэффициентов уверенности.
С практической
точки зрения, пользуясь языком PROLOG, программист в качестве "бесплатного
приложения" получает в свое распоряжение следующие возможности:
Действительно,
дедуктивную порождающую систему довольно ПРОСТО эмулировать на языке PROLOG.
Можно без особого труда разработать и простой интерпретатор, реализующий стратегию
построения прямой цепочки вывода. Модификация рабочей памяти выполняется операторами
assert и retract, которые добавляют или удаляют формулы из базы данных. Вы уже
знаете из главы 11, как можно организовать локальное управление ходом процесса
в системе, основанной на фреймах, как организовать обработку значений по умолчанию
и исключений, хотя эти методы и не вписываются в стандартную логику.
Успешный опыт применения идей логического программирования, в частности создание программы МЕСНО (см. главу 11), продемонстрировал ряд явных отклонений от синтаксиса исчисления предикатов первого порядка и его процедурной интерпретации в стандартной версии PROLOG. Некоторые семантические и синтаксические ограничения в программах МЕСНО и PLANNER до сих пор не преодолены в системах, базирующихся на языках логического программирования.