Разработка интеллектуальных информационных систем с использованием CLIPS. Дякин В.Н. - 6 стр.

UptoLike

Составители: 

?*f* = symbol)
При выполнении команды reset все глобальные переменные получают начальные значения, определенные в конструк-
торе.
Команда ppdefglobal выводит в диалоговое окно системы определение заданной глобальной переменной.
Имя глобальной переменной должно быть задано без вопросительного знака и символов *, т.е. name для переменной
?*name*.
Команда list-defglobals предназначена для отображения в диалоговом окне списка имен всех определенных в системе гло-
бальных переменных.
(list-defglobals [<имя-модуля>])
Если необязательный параметр <имя-модуля> не указан, то данная команда выводит имена глобальных переменных,
определенных в текущем модуле. Если параметр содержит имя конкретного модуля, команда list-defglobal выводит список
переменных, определенных в заданном модуле. Допускается использование символа *. В этом случае команда выведет в
диалоговое окно имена всех глобальных переменные, определенных во всех модулях системы.
Команда show-defglobals, в отличие от команды list-defglobals, выводит в диалоговое окно CLIPS не только имена гло-
бальных переменных, но и их значения. В остальном эти две команды практически идентичны.
(show-defglobals [ <имя-модуля> ])
Команда undefglobal предназначена для удаления определенных пользователем глобальных переменных.
(undefglobal <имя-глобальной-переменной>)
В качестве параметра <имя-глобальной-переменной> допускается использование символа *. В этом случае команда по-
пытается удалить все определенные пользователем глобальные переменные. Если глобальная переменная указана, например,
в определении функции, удаление этой переменной закончится неудачей.
Существуют похожие функции для стандартных операций с конструкторами различных типов (не только для defglobal).
(bind <имя-переменной> <выражение>*)
Параметр выражения является необязательным. Если он не задан, то переменной будет установлено начальное значе-
ние, заданное в конструкторе defglobal. В случае, если выражение было задано, то его значение будет вычислено и результат
присвоен переменной. Если было задано несколько выражений, все они будут вычислены, из их результатов будет составле-
но составное поле, которое будет присвоено глобальной переменной.
Функция bind возвращает значение false в случае, если переменной по какой-то причине не было присвоено никакого
значения. В противном случае функция возвращает значение, присвоенное переменной.
Поскольку переменные в CLIPS слабо типизированы, типы значений, присваиваемые одной и той же переменной, в
разные моменты времени могут не совпадать.
CLIPS поддерживает эвристическую и процедурную парадигму представления знаний. Для представления знаний в
процедурной парадигме CLIPS предоставляет такие механизмы, как глобальные переменные, функции и родовые функции.
Кроме того, существует такой способ представления знаний, как правила. Правила в CLIPS служат для представления эври-
стик или так называемых "эмпирических правил" действий при возникновении некоторой ситуации. Разработчик экспертной
системы определяет набор правил, которые вместе работают над решением некоторой задачи. Правила состоят из предпосы-
лок и следствия. Предпосылки называются также ЕСЛИ-частью правила, левой частью правила или LHS правила (left-hand
side of rule). Следствие называется ТО-частью правила, правой частью правила или RHS правила (right-hand side of rule).
Предпосылки правила представляют собой набор условий (или условных элементов), которые должны удовлетвориться
для того, чтобы правило выполнилось. Предпосылки правил удовлетворяются в зависимости от наличия или отсутствия не-
которых заданных фактов в списке фактов или некоторых созданных объектов, являющихся экземплярами классов, опреде-
ленных пользователем. Один из наиболее распространенных типов условных выражений в CLIPS – образцы (patterns). Об-
разцы состоят из набора ограничений, которые используются для определения того, удовлетворяет ли некоторый факт или
объект условному элементу. Другими словами, образец задает некоторую маску для фактов или объектов. Процесс сопос-
тавления образцов фактам или объектам называется процессом сопоставления образцов (pattern-matching). CLIPS предостав-
ляет механизм, называемый механизмом логического вывода (inference engine), который автоматически сопоставляет образ-
цы с текущим списком фактов и определенными объектами в поисках правил, которые применимы в данный момент.
Следствие правила представляется набором некоторых действий, которые необходимо выполнить в случае, если прави-
ло применимо к текущей ситуации. Таким образом, действия, заданные вследствие правила, выполняются по команде меха-
низма логического вывода, если все предпосылки правила удовлетворены. В случае, если в данный момент применимо более
одного правила, механизм логического вывода использует так называемую стратегию разрешения конфликтов (conflict reso-
lution strategy), которая определяет, какое именно правило будет выполнено. После этого CLIPS выполняет действия, опи-
санные вследствие выбранного правила (которые могут оказать влияние на список применимых правил), и приступает к вы-
бору следующего правила. Этот процесс продолжается до тех пор, пока список применимых правил не опустеет.
Чтобы лучше понять сущность правил в CLIPS, их можно представить в виде оператора IF-THEN, используемого в
процедурных языках программирования, например, таких как Ada или С. Однако условия выражения IF-THEN в процедур-
ных языках вычисляются тогда, когда поток управления программой непосредственно попадает на данное выражение путем
последовательного перебора выражений и операторов, составляющих программу. В CLIPS, в отличии от этого, механизм
логического вывода создает и постоянно модифицирует список правил, условия которых в данный момент удовлетворены.
Эти правила запускаются на выполнение механизмом логического вывода. С этой стороны правила похожи на обработчики
сообщений, присутствующие в таких языках программирования, как, например, Ada или SmallTalk.