Пример 6.51. Преобразованное правило с условиями not перед test


 

(defrule example

(а ?х)

(test (> ?х 5))

(not (b ?x) )

=>)

Использование элемента not перед or

Если сразу перед условным элементом or использовался условный элемент not, то CLIPS автоматически заменяет комбинацию not/or на эквивалент­ную комбинацию and/not. Например, следующее правило (пример 6.52) будут изменено так, как показано в примере 6.53.

Пример 6.52. Правило с условиями not перед or

 

(defrule example

(а ?х)

(not (or (b ?x)

(с ?x)))

=>)

Пример 6.53. Преобразованное правило с условиями not перед or

 

(defrule example

(a ?x)

(and (not (b ?x))

(not (c ?x)))

=>)

Замечания об автоматическом добавлении и перегруппировке условных элементов

В завершение описания синтаксиса левой части правил CLIPS обратим внимание на следующие важные особенности:

1. Полная версия левой части правила содержит неявный условный элемент and.

2. Преобразование условных элементов forall и exists к эквивалентным выражениям с помощью not и and выполняется перед добавлением соот­ветствующих образцов в левую часть правила.

3. Условный элемент test обычно не используется в качестве первого элемента в условии and.

4. Команды, выводящие информацию об условных элементах в левой части правила, отображают информацию об определении правила в виде, в котором ее задал пользователь. Информация о перегруппировке и добавлении образцов initial-fact и initial-object не выводится.

Команды и функции для работы с правилами

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

Просмотр и удаление существующих правил

После создания правил с помощью конструктора defrule вполне естествен­но возникает желание сделать что-нибудь с уже существующим правилом. CLIPS поддерживает множество различных команд, оперирующих с пра­вилами. В данном разделе мы рассмотрим наиболее часто используемые команды: ppdefrule,list-defrules и undefrule.

С помощью команды ppdefrule можно просмотреть определение правила в том виде, в котором оно было создано с помощью конструктора defrule.

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

(ppdefrule <имя-правила>)

Для того чтобы получить полный список правил, присутствующих в CLIPS в данный момент, используется команда list-def rules.



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


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

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

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

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