Упорядоченные факты

Упорядоченный факт состоит из значения типа symbol и следующей за ним последовательности из нуля или более значений типа symbol. Факт заключа­ется в круглые скобки, а значения в последовательности отделяются друг от друга пробелами. Первое поле упорядоченного факта определяет так назы­ваемое отношение, или связь факта. Например, факт (father-of jack bill) показывает, что отцом Джека является Билл. Ниже приведено несколько примеров упорядоченных фактов:

Пример 4.10. Упорядоченные факты

(the pump is on)

(altitude is 10000 feet)

(grocery-list bread milk eggs)

Поля в упорядоченном факте могут хранить данные любого примитивного типа CLIPS, за исключением первого поля, тип которого должен быть symbol. Следующие слова зарезервированы и не могут быть использованы в качестве первого поля: test, and, or, not, declare, logical, object, exist и forall.

Неупорядоченные факты

Так как упорядоченный факт хранит информацию, используя строго задан­ные позиции данных, то для доступа к необходимой информации пользова­тель должен знать не только какие данные сохранены в факте, но и какое поле содержит эти данные. Неупорядоченные факты (или шаблоны) предос­тавляют пользователю возможность задавать абстрактную структуру факта путем назначения имени каждому полю. Для создания шаблонов, которые впоследствии будут применяться для доступа к полям факта по имени, ис­пользуется конструктор deftemplate. Конструктор deftemplate, по сути, аналогичен определениям записей или структур в таких языках программиро­вания, как Pascal или С.

Конструктор deftemplate задает имя шаблона и определяет последователь­ность из нуля или более полей неупорядоченного факта, называемых сло­тами. Слот состоит из имени, заданного значением типа symbol, и следующим за ним списка полей. Как и факт, слот с обеих сторон ограничивается круглыми скобками. В отличие от упорядоченных фактов слот неупорядо­ченного факта может жестко определять тип своих значений. Кроме того, слоту могут быть заданы значения по умолчанию.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: