Модули и выполнение правил

Каждый модуль имеет свой собственный процесс сопоставления образцов для своих правил и свой план решения задачи. По команде run начинает выполняться план решения задачи модуля, на который в данный момент установлен фокус. Команды reset и clear автоматически устанавливают фокус на модуль main. Выполнение правил продолжается до тех пор, пока в плане решения задачи не останется применимых правил, и другой модуль не получит фокус, либо правая часть одного из выполняемых правил не вы­зовет функцию return. После того как в плане решения задачи модуля, имеющего фокус, заканчиваются правила, текущей модуль удаляется из стека фокусов (focus stack) и находящийся в стеке следующий модуль полу­чает фокус. Перед выполнением правила текущим становится модуль, в ко­тором данное правило определено. Управлять стеком фокусов можно с по­мощью команды focus. На рис. 12.6 приведен пример использования моду­лей, правил и команды focus.

Текущее состояние стека фокусов можно просматривать с помощью коман­ды get-focus-stack или list-focus-stack. Пользователи Windows-версии системы CLIPS могут просматривать содержимое стека фокусов и его изме­нение в процессе решения задачи посредством окна Focus. Это окно вызы­вается с помощью пункта Focus Window меню Windows. Внешний вид окна Focus показан на рис. 12.7.

Рис. 12.6. Использование правил в различных модулях

Рис. 12.7. Окно Focus для модуля А



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: