Иллюстрированный самоучитель по введению в экспертные системы


Объектно-ориентированные средствв CLIPS



Использование объектно-ориентированных средств в CLIPS позволяет значительно упростить программирование правил, поскольку для обновления данных можно применять механизм передачи и обработки сообщений методами классов. В этом разделе мы продемонстрируем, как это делается на примере, который моделирует правила обращения с полуавтоматическим пистолетом.

Первым делом определим класс pistol, в котором будут перечислены свойства, необходимые для моделирования.

(defclass pistol

(is-a USER)

(role concrete)

(pattern-match reactive)

(slot safety (type SYMBOL) (create-accessor read-write))

(slot slide (type SYMBOL) (create-accessor read-write))

(slot hammer (type SYMBOL) (create-accessor read-write))

(slot chamber (type INTEGER) (create-accessor read-write))

(slot magazine (type SYMBOL) (create-accessor read-write))

(slot rounds (type INTEGER) (create-accessor read-write)) )

Первые три слота — системные. Они нужны объектно-ориентированной надстройке CLIPS (COOL — CLIPS object-oriented language). Эти слоты COOL извещают о том, что

  • pistol — это пользовательский класс;

  • pistol является конкретным классом, т.е. возможно создание экземпляров этого класса (альтернативный тип — абстрактный класс, который играет ту же роль, что и виртуальный класс в C++);

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

Следующие пять слотов представляют свойства и члены данных класса:

  • слот safety (предохранитель) может содержать символ on или off;

  • слот slide (затвор) может содержать значение forward или back, т.е. хранит информацию о положении затвора;

  • слот hammer (курок) содержит информацию о состоянии курка, back или down;

  • слот chamber (патронник) содержит значение 1 или 0, в зависимости от того, есть ли патрон в патроннике;

  • слот magazine (обойма) может содержать значение in или out, в зависимости от того, вставлена ли обойма;



    Начало  Назад  Вперед



    Книжный магазин