Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Пример 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.
|