Образец (pattern СЕ)
Этот условный элемент состоит из списка ограничений полей, групповых символов (wildcards) и переменных, которые используются для поиска множества фактов или объектов, которые соответствуют заданному образцу. Таким образом, образец как бы определяет маску, которой должны соответствовать данные. Такой условный элемент удовлетворяется любым фактом или объектом, соответствующим заданным ограничениям.
Ограничения полей — это набор ограничений, которые используются для проверки простых полей или слотов объектов. Ограничения полей могут состоять только из одного символьного ограничения, однако, несколько ограничений можно соединять вместе. В дополнение к символьным ограничениям, CLIPS поддерживает три других типа ограничений: объединяющие ограничения, предикатные ограничения и ограничения, возвращающие значения (см. гл. 13).
Групповые символы используются при сопоставлении образцов в ситуации, когда простое поле или группа полей могут принимать любые значения.
Переменные применяются для хранения значения поля, которое может быть впоследствии использовано в левой части правила для другого условного элемента или в правой части, как аргумент действия.
Первое поле любого образца обязательно должно быть значением типа symbol и не может принимать значения других типов. CLIPS использует первое поле для определения: является ли данный образец упорядоченным фактом, шаблоном или объектом. Ключевое слово object зарезервировано для создания образцов, предназначенных для сопоставления с объектами. Любое другое значение типа symbol должно соответствовать имени шаблона, созданного с помощью конструктора deftemplate или неявно созданного шаблона. Для задания имен слотов также должны использоваться значения типа symbol.
В слотах простых полей образцов, предназначенных для объектов и шаблонов, может содержаться только одно ограничение поля, и не могут присутствовать групповые символы или переменные. В составных слотах может содержаться любое количество ограничений поля.
Далее будут показаны синтаксис и примеры использования образцов. В подразделе "Сопоставление образцов с объектами" разд. 6.5.1 будут объяснены отличия между образцами для шаблонов и образцами для объектов. Для обеспечения наглядности примеров в последующих разделах будут использоваться факты и шаблоны, приведенные в примере 6.6.