Пример 5.8. Использование функции assert


 

(clear)

(assert (color red))

(assert (color blue)

(value (+ 3 4)))

(deftemplate status

(slot temp)

(slot pressure

(default low)))

(assert (status (temp high)))

Команда clear очищает текущий список фактов (а также все определенные конструкторы, которые уже были и еще будет рассмотрены ниже). В отличие от reset, команда clear не добавляет в список фактов initial-fact. Эту команду также можно выполнить, выбрав пункт Clear CLIPSв меню Execution.При выборе данной команды на экране появляется диалоговое окно, представленное на рис. 5.11. Это окно запрашивает подтверждение пользователя на очистку текущей базы знаний.

Рис. 5.11.Подтверждение очистки среды CLIPS

В случае, если команда была набрана с клавиатуры, никакого подтвержде­ния на выполнение этой операции система не запрашивает. Если вы недав­но начали работать в среде CLIPS, то для очистки системы лучше использо­вать меню, т. к. потеря всех текущих данных из базы знаний может оказать­ся весьма болезненной.

Включите режим просмотра изменения списка фактов и наберите приве­денный выше пример. После этого выполните команду (facts). Если при

Рис. 5.12. Добавление фактов

выполнении этих действий не было допущено ошибок, то вы должны полу­чить результат, идентичный изображенному на рис. 5.12.

Обратите внимание, что при инициализации факта value использовалось выражение, а слот pressure неупорядоченного факта status получил значе­ние по умолчанию low.

По умолчанию CLIPS не позволяет добавлять в список фактов два одинако­вых факта. Например, попытка добавить два факта color red приведет к ошибке и функция assert вернет значение false. Данную установку сис­темы можно изменить с помощью функции set-fact-duplication. Кроме того, пользователям Windows-версии CLIPS доступен еще один способ настройки. Для этого необходимо открыть диалоговое окно Execution Options,выбрав пункт Optionsиз меню Execution,установить флажок Fact Duplication.Внешний вид этого диалогового окна приведен на рис. 5.6.

5.2.4. Функция retract

После добавления факта в базу знаний рано или поздно встанет вопрос о том, как его оттуда удалить. Для удаления фактов из текущего списка фактов в системе CLIPS предусмотрена функция retract. Каждым вызовом этой функции можно удалить произвольное число фактов. Удаление неко­торого факта может стать причиной удаления других фактов, которые логи­чески связаны с удаляемым. Кроме того, удаление факта вызывает удаления правил из плана решения текущей задачи, активированных удаляемым фак­том, но об этом речь пойдет в следующих главах. В случае если был вклю­чен режим просмотра изменения списка фактов, то соответствующее ин­формационное сообщение будет отображаться в окне CLIPS при удалении каждого факта.

 



Дата добавления: 2021-12-14; просмотров: 314;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.011 сек.