23.2.1.
Оболочка экспертной системы MINERVA
MINERVA— это
оболочка экспертной системы, разработанная на базе EMYCIN и NEOMYCIN (см. главы
10-12). Система MINERVA обеспечивает ODYSSEUS базой знаний и методом решения
проблем и разработана специально для поддержки метода обучения EBL. Одно из
главных отличий системы MINERVA от EMYCIN состоит в том, что в ней представлены
не только знания о предметной области, но и стратегические знания, отражающие
способ мышления практикующего врача. Такие знания можно рассматривать как дальнейшее
развитие метаправил систем MYCIN, EMYCIN и NEOMYCIN.
Главным компонентом
этой системы является база медицинских знаний о диагностировании менингита и
других неврологических заболеваний. MINERVA реализована на языке PROLOG, и знания
о предметной области представлены в этой системе в виде фраз Хорна (см. главу
8), но правила по содержанию аналогичны тем, что использовались в MYCIN. Например,
следующее выражение представляет тот факт, что фотофобия может быть связана
с головной болью:
conclude(migraine-headache, yes)
:-
finding(photophobia, yes).
Знания о состоянии
проблемы записываются в виде выражений для фактов в процессе работы системы.
Например, выражение
rule-applied(rulel63).
утверждает,
что в процессе работы системы было активизировано правило 123 и что эта информация
доступна программе в процессе дальнейшей работы. Другое простое выражение
differential(migraine-headache,
tension-headache).
зафиксирует
тот факт, что мигрень и повышенное давление — текущие гипотезы, выдвинутые программой.
Очевидно,
что такая информация может быть представлена и зарегистрирована любым способом,
например установкой флагов или переменных, но наиболее целесообразно использовать
такое же представление, какое принято в базе знаний предметной области.
Несложное
метаправило может быть представлено в следующем виде: goal(findout(Р)) :- not(concluded(P)),
ask-user(P).
Это правило
утверждает, что если текущая цель системы — найти значение параметра Р и если
система не может прийти к заключению о значении этого параметра на основании
имеющихся у нее знаний, то она должна запросить его у пользователя. Поскольку
Р является переменной, то головная часть выражения goal (findout (Р)) сопоставляется
с выражением цели системы, представленным в явном виде, например goal (f indout
(temperature)). Подцели вроде not(concluded(P)) могут быть сопоставлены (успешно
или нет) с системными данными, описывающими текущее состояние процесса вычислений,
например concluded (temperature).
Такие стратегические знания используются для выработки суждения о текущем состоянии проблемы и принятия решения о том, располагает ли система в данном случае достаточными знаниями. Кроме того, наличие таких знаний упрощает программу обучения, которая может обращаться к структурам на метауровне экспертной системы.