Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CLIPS.docx
Скачиваний:
7
Добавлен:
25.12.2018
Размер:
79.82 Кб
Скачать

Управление средой

Помимо математических функций в CLIPS другие команды. Перечислим некоторые из них:

  • exit — завершение работы с системой CLIPS. В меню соответствует File/Exit;

  • batch — выполняет команды, записанные в текстовом файле так, как если бы они были введены непосредственно в консоли. Имя файла задается параметром команды и должно является строкой (т. е. в двойных кавычках). В меню соответствует File/Load Batch…;

  • batch* — то же, что batch, но без повтора самих выполняемых команд на экране;

  • reset — сброс системы. В меню соответствует Execution/Reset.

Пример:

(batch "C:/Some folder/Some command file.bat")

Факты

Система CLIPS поддерживает два вида фактов: упорядоченные и шаблонные. Для работы с обоими видами фактов используются одни и те же команды; однако использование шаблонных фактов требует предварительного описания шаблона, в то время как для использования упорядоченных фактов ничего такого не надо.

Для ввода в список фактов используется команда assert, параметрами которой должны быть вводимые факты (отметим, что нет разницы, вводить ли несколько фактов одной командой или каждый факт — отдельной). В команде assert каждый факт должен быть задан отдельным списком. Первый элемент этого списка определяет тип факта и должен быть символом; остальные элементы задают параметры факты и могут быть произвольного типа. Если в списке, задающем факт, встречается вложенный список, то он интерпретируется как вызов функции, значение которой определяет значение соответствующего параметра факта. Пример:

(assert (weather fine))

(assert (temperature 5))

(assert (wind 7 north-east))

(assert (autumn))

(assert (location box-1 floor) (size box-1 80 60 40))

(assert (weight part-1 4.5) (weight part-2 8.25))

(assert (weight part-3 (+ 1.5 3.25)))

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

Возвращаемый командой assert адрес факта не является ни числом, ни символом, ни строкой; — это значение специального типа данных. Адрес факта может быть использован, например, для удаления факта из списка фактов. Помимо адреса каждый факт, находящийся в списке фактов, характеризуется номером. Получить этот номер, зная адрес факта можно с помощью функции fact-index.

Отметим, что изначально список фактов не пуст: в нем присутствует факт initial-fact, не имеющий параметров. Номер этого факта — 0.

Просмотреть список фактов можно командой facts. По умолчанию (т. е. без параметров) эта команда выводит на экран весь список фактов; однако с помощью параметров можно задать минимальный и максимальный номер факта, а также максимальное количество выводимых фактов. Пример:

(facts)

(facts 7)

(facts 1 2)

Также для просмотра списка фактов в меню можно выбрать Window/Facts. В этом случае на экране появится окно Facts, отображающее текущее содержимое списка фактов. По мере добавления и удаления фактов содержимое этого окна автоматически обновляется.

Для удаления фактов используется команда retract, параметрами которой являются адреса или номера удаляемых фактов либо символ * (звездочка), предписывающий удаление всех фактов. Команда retract ничего не возвращает. Пример:

(bind ?f (assert (weather fair)))

(retract ?f)

(retract 0)

Также к удалению всех фактов приводит использование команды reset (ранее упомянутой). После удаления всех фактов команда reset автоматически добавляет в список фактов факт initial-fact.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]