Пример 5.13. Изменение существующего неупорядоченного факта


 

(deftemplate temperature (slot value) )

(assert (temperature (value low)) )

(modify 0 (value high) )

 

Если включить режим просмотра изменения списка фактов (как было опи­сано в разд. 5.2.2) и выполнить приведенные выше команды, то полученный результат должен соответствовать рис. 5.15.

Рис. 5.15.Результат изменения существующего неупорядоченного факта

Обратите внимание на движение фактов в базе знаний CLIPS при выполне­нии функции modify — сначала удаляется старый факт с индексом f-o, a затем добавляется новый факт с индексом f-1, идентичный предыдущему, но с новым значением заданного слота.

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

5.2.6. Функция duplicate

Помимо функции modify, в CLIPS существует еще одна очень полезная функция, упрощающая работу с фактами, — функция duplicate. Эта функ­ция создает новый неупорядоченный факт заданного шаблона и копирует в него определенную пользователем группу полей уже существующего факта того же шаблона. По действиям, которые выполняет функция duplicate, аналогична modify, за исключением того, что она не удаляет старый факт из списка фактов. Одним вызовом функции duplicate можно создать одну ко­пию некоторого заданного факта. Как и функция modify, duplicate, в случае удачного выполнения, возвращает индекс нового факта, а в случае неуда­чи — значение false.

 

Определение 5.8. Синтаксис команды duplicate

(duplicate <определение-факта>

<новое-значение-слота>+)

Аргумент <определение-факта> может быть либо переменной, связанной с адресом факта с помощью правила, либо индексом факта без префикса. После определения факта следует список из одного или более новых значе­ний слотов указанного шаблона. Продемонстрируем работу данной функ­ции на следующем примере:



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


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

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

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

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