Каждый модуль имеет свой собственный процесс сопоставления образцов для своих правил и свой план решения задачи. По команде 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 для модуля А