Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Определение 2.2.2. Синтаксис конструктора deffactsСодержание книги
Поиск на нашем сайте (deffacts <имя-списка-фактов> [<необязательные-комментарии>] [<факт>*]) Добавление конструктора deffacts с именем уже существующего конструктора приведет к удалению предыдущего конструктора, даже если новый конструктор содержит ошибки. В среде CLIPS возможно наличие нескольких конструкций deffacts одновременно и любое число фактов в них (как упорядоченных, так и неупорядоченных). Факты всех созданных пользователем конструкторов deffacts будут добавлены при инициализации системы. Все замечания по поводу использования комментариев в конструкторе deftemplate применимы и к конструктору deffacts. В поля факта могут быть включены динамические выражения, значения которых будут вычисляться при добавлении этих фактов в текущую базу знаний CLIPS. Пример 2.2.4. Использование конструктора deffacts (deffacts startup "Refrigerator Status" (refrigerator light on) (refrigerator door open) (refrigerator temp (+ 5 10 15)) Третий факт содержит выражение, в данном примере сумму трех констант, но в качестве выражения, инициализирующего значение факта, могут использоваться и более сложные выражения, например, вызовы функций CLIPS или функций, определенных пользователем.]
Рис. 1.2.3. Просмотр процесса добавления файлов
Функция assert Функция assert позволяет добавлять факты в список фактов текущей базы знаний. Каждым вызовом этой функции можно добавить произвольное число фактов. Определение 2.2.3. Синтаксис команды assert (assert <факт>+) При использовании команды assert необходимо помнить, что первое поле факта обязательно должно быть значением типа symbol. В случае удачного добавления фактов в базу знаний, функция возвращает адрес последнего добавленного факта. Если во время добавления некоторого факта произошла ошибка, команда прекращает свою работу и возвращает значение false. Слотам неупорядоченного факта, значения которых не заданы, будут присвоены значения по умолчанию. Пример 2.2.5. Использование функции assert (clear) (assert (color red)) (assert (color blue) (value (+ 3 4))) (deftemplate status (slot temp) (slot pressure (default low))) (assert (status (temp high))) Команда clear очищает текущий список фактов (а также все определенные конструкторы, которые уже были и еще будет рассмотрены ниже). В отличие от reset, команда clear не добавляет в список фактов initial-fact.
Рис. 2.2.4. Добавление фактов При инициализации факта value использовалось выражение, а слот pressure неупорядоченного факта status получил значение по умолчанию low. По умолчанию CLIPS не позволяет добавлять в список фактов два одинаковых факта. Например, попытка добавить два факта color red приведет к ошибке и функция assert вернет значение false. Функция retract Для удаления фактов из текущего списка фактов в системе CLIPS предусмотрена функция retract. Каждым вызовом этой функции можно удалить произвольное число фактов. Удаление некоторого факта может стать причиной удаления других фактов, которые логически связаны с удаляемым.
|
||
|
Последнее изменение этой страницы: 2021-03-10; просмотров: 170; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.236 (0.007 с.) |