Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Final.doc
Скачиваний:
59
Добавлен:
09.11.2019
Размер:
10.39 Mб
Скачать

Контрольные вопросы

    1. Какой инструмент ЭО KAPPA предназначен для описания всех используемых функций?

    2. Какие функции ЭО KAPPA предназначены для манипулирования знаниями?

8. Работа с правилами в эо kappa

Для работы с правилами в ЭО KAPPA можно использовать обычные программы, обращаясь конкретно к каждому необходимому правилу, или применить встроенные средства:

  • механизм формирования прямой цепи событийно-управляемых рассуждений (ForwardChain), в процессе работы которого требуется по известным предпосылкам достичь требуемой цели;

  • механизм формирования обратной цепи рассуждений, управляемых целями (BackwardChain), при котором необходимо восстановить причину (предпосылку) по известному результату (цели).

Рассмотрим более подробно то, что необходимо знать в этой области разработчику баз знаний в ЭО KAPPA.

8.1. Создание и редактирование правил

Напомним, что для начала работы с правилами необходимо выбрать пункт меню Rule или соответствующую иконку в окне инструментов (KTools). На экране появится окно (рис. 8.1) с полем ввода имени правила, которое необходимо создать, либо отредактировать.

Рис. 8.1. Окно ввода имени правила

После ввода имени правила на экране отображается окно редактора правил (см. рис. 6.8, разд. 6.4.6), в котором необходимо ввести заново или отредактировать условие (If), при истинности которого выполняются требуемые действия (Then), приоритет правила (Priority) и определить переменные (Patterns).

8.2. Формирование списка правил

Как уже отмечалось, связь между правилами при формировании цепочки рассуждений осуществляется посредством слотов. Для этого, прежде всего, необходимо объявить все используемые в правилах слоты с помощью функции Assert (см. разд. 7.1.4).

Список правил, которые будут использоваться при формировании цепи рассуждений, можно задать следующими тремя способами:

  1. указать явно, перечислив имена правил при вызове функций ForwardChain или BackwardChain;

  2. занести имена необходимых правил в многозначный слот, имя которого указать в качестве аргумента при вызове функций ForwardChain или BackwardChain;

  3. сформировать список правил с помощью функции ForceCompileRuleNet, а затем вызвать функции ForwardChain или BackwardChain без указания аргумента.

Пример.

Способ 1.

ForwardChain (NULL, Rule1, Rule2, Rule3);

Способ 2.

MakeSlot (Global, Rules1_3, (Rule1, Rule2, Rule3));

ForwardChain (NULL, Global:Rules1_3);

Способ 3.

ForceCompileRuleNet (Rule1, Rule2, Rule3);

ForwardChain(NULL);

В зависимости от получаемых результатов состав рассматриваемых правил в процессе рассуждения можно изменить с помощью функций ActivateRule, DeactivateRule и SetActiveRules.

8.3. Создание и редактирование цели

Для работы с целью необходимо выбрать пункт меню Goal или соответствующую иконку в окне инструментов (KTools). На экране появится окно (рис. 8.2) с полем ввода имени цели, которую необходимо создать, либо отредактировать.

Рис. 8.2. Окно задания цели для обратной цепочки вывода

После этого в окне редактора цели (см. рис. 6.9, разд. 6.4.7) необходимо ввести новое или отредактировать существующее тело цели, т.е. условие, при котором прекращается выполнение цепочки рассуждений, а цель считается достигнутой.