Представленная ниже карта трассировки будет сформирована при запуске про-граммы в режиме трассировки.
Команда reset обеспечит перезагрузку описания исходного состояния в рабочую память, а команда run запустит программу на выполнение.
В карте трассировки каждая строка, которая начинается с символов ==>, представляет добавление вектора в рабочую память, а строка, которая начинается с символов, <==, — удаление вектора из рабочей памяти. Строки, которые начинаются с 'FIRE', представляют активизацию какого-либо правила. Остальные строки пока ,что игнорируйте.
(reset)
==> f-0 (initial-fact)
=> f-1 (in (object robot) (location RoomA))
==> f-2 (in (object box) (location RoomB))
==> f-3 (goal (action push) {object box)
(from RoomB) (to RoomA)) CLIPS>
(run) FIRE 1 move: f-3, f-2, f-1
<== f-1 (in (object robot) (location RoomA))
==> f-4 (in (object robot) (location RoomB))
FIRE 2 push: f-3, f-2, f-4 <== f_4
(in (object robot) (location RoomB))
==> f-5 (in (object robot) (location RoomA))
<== f-2 (in (object box) (location RoomB))
==> f-6 (in (object box) (location RoomA))
FIRE 3 stop: f-3, f-6
[PRCCODE4] Execution halted during the actions of defrule stop.
CLIPS> (reset)
<== f-0 (initial-fact)
<== f-3 (goal {action push)
(object box) (from RoomB) (to RoomA))
<== f-5 (in (object robot) (location RoomA))
<== f-6 (in (object box) (location RoomA))
CLIPS>
Обратите внимание на то, что выполнение программы останавливается правилом 'stop'.