Определение 6.3. Синтаксис условного элемента 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Определение 6.3. Синтаксис условного элемента



<условный-элемент>  ::= <pattern-CE> |

<assigned-pattern-CE> |

<not-CE> │

<and-CE> |

<or-CE> |

<logical-CE> |

<test-CE> |

<exists-CE> │

<forall-CE>

В последующих разделах будет подробно рассмотрен синтаксис каждого условного элемента.

Образец (pattern СЕ)

Этот условный элемент состоит из списка ограничений полей, групповых сим­волов (wildcards) и переменных, которые используются для поиска множества фактов или объектов, которые соответствуют заданному образцу. Таким об­разом, образец как бы определяет маску, которой должны соответствовать данные. Такой условный элемент удовлетворяется любым фактом или объ­ектом, соответствующим заданным ограничениям.

Ограничения полей — это набор ограничений, которые используются для проверки простых полей или слотов объектов. Ограничения полей могут состоять только из одного символьного ограничения, однако, несколько ограничений можно соединять вместе. В дополнение к символьным ограни­чениям, CLIPS поддерживает три других типа ограничений: объединяющие ограничения, предикатные ограничения и ограничения, возвращающие значения (см. гл. 13).

Групповые символы используются при сопоставлении образцов в ситуации, когда простое поле или группа полей могут принимать любые значения.

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

Первое поле любого образца обязательно должно быть значением типа symbol и не может принимать значения других типов. CLIPS использует первое поле для определения: является ли данный образец упорядоченным фактом, шаблоном или объектом. Ключевое слово object зарезервировано для создания образцов, предназначенных для сопоставления с объектами. Любое другое значение типа symbol должно соответствовать имени шаблона, созданного с помощью конструктора deftemplate или неявно созданного шаблона. Для задания имен слотов также должны использоваться значения типа symbol.

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

Далее будут показаны синтаксис и примеры использования образцов. В подразделе "Сопоставление образцов с объектами" разд. 6.5.1 будут объяснены отличия между образцами для шаблонов и образцами для объектов. Для обеспечения наглядности примеров в последующих разделах будут исполь­зоваться факты и шаблоны, приведенные в примере 6.6.

Пример 6.6. Необходимые для дальнейшей работы шаблоны и факты

 

(deffacts           data-facts

(data 1.0 blue "red")

(data 1 blue)

(data 1 blue red)

(data 1 blue RED)

(data 1 blue red 6.9))

(deftemplate       person

(slot name)

(slot age)

(multislot friends))

(deffacts                 people

(person (name Joe)      (age 20))

(person (name Bob)    (age 20))

(person (name Joe)      (age 34))

(person (name Sue)     (age 34))

(person (name Sue)     (age 20))

Символьные ограничения

Основные ограничения, использующиеся в образцах, — это ограничения, оп­ределяющие точное соответствие между полями факта и образцом. Эти ограничения называются символьными. Символьное ограничение полностью состоит из констант, таких как вещественные и целые числа, значения типа symbol, строки или имена объектов. Они не могут содержать групповых символов или переменных. Все символьные ограничения при сопоставлении образцов должны точно совпадать по всем указанным полям, иначе факт не будет считаться подошедшим данному образцу.

Условный элемент, представляющий собой образец для неупорядоченного факта, в котором присутствуют только символьные ограничения, имеет сле­дующий синтаксис:



Поделиться:


Последнее изменение этой страницы: 2021-03-10; просмотров: 43; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.154.208 (0.005 с.)