logo search
Учебник_Final

8.4.2. Формирование прямой цепи рассуждений

Рассмотрим более подробно процесс рассуждений в прямом направлении, реализованный в ЭО KAPPA.

Цикл событийно-управляемых рассуждений начинается, когда элемент вида «объект : слот» переносится из списка слотов, подлежащих рассмотрению (Agenda). Этот элемент представляет собой уже сделанное изменение, последствия которого будут рассмотрены. Кроме того, пара «объект : слот» может быть помещена в список слотов и самим разработчиком.

Текущий элемент проверяется каждым правилом из списка активных правил, сформированного функцией ForwardChain.

Правило рассматривается, если хотя бы одна из предпосылок упоминает текущую пару «объект : слот». Для каждого рассмотренного правила проверяются все сохраняемые предпосылки. Правило, в котором все предпосылки поддаются проверке, является применимым, т.е. готовым к выполнению. Такое правило перемещается из списка и выходит из игры – его операторы-заключения оценены. Если новые данные отвечают первоначальному вопросу (цели), то цепь рассуждений прекращается. В противном случае, вход данных побуждает вставку недавно оцененных пар «объект : слот» в список слотов с соответствующими изменениями, последствия которых будут исследоваться в том же порядке.

Если цель не достигнута, то процесс формирования цепи рассуждений продолжается до тех пор, пока список слотов не опустеет.