Импорт и экспорт фактов и объектов

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

Следует отметить, что конструкцию deftemplate, определяющую initial-fact, и конструкцию defclass, определяющую initial-object, необходимо явно импортировать из модуля main. Без этого правила, содержащие initial-fact или initial-object в левой части (например, безусловные правила или правила, содержащие not в качестве первого условного элемента) не будут активированы.

Имя объекта должно быть уникально в пределах модуля, но в области видимости одного модуля могут находиться одновременно несколько объектов с одинаковым именем. Поэтому в CLIPS, начиная с версии 6.0, синтаксис задания имени объекта был расширен, что позволило определять модуль, в котором определен объект (обратите внимание, что квадратные скобки в данном случае являются частью синтаксиса языка CLIPS, а не обозначают необязательность элементов определения).

Рис. 12.5. Импорт/экспорт фактов


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



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