Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Final.doc
Скачиваний:
59
Добавлен:
09.11.2019
Размер:
10.39 Mб
Скачать

6.4.4. Редактор методов (Method Editor)

Используется для создания, просмотра, удаления и редактирования методов. В окне редактора находятся меню и три поля редактирования (Arguments, Body и Comment), имеющих текстовый формат (рис. 6.7).

Рис. 6.7. Окно редактора методов

В поле Arguments необходимо указать внутреннюю переменную метода и через пробел ее конкретное значение для данного слота. Благодаря такой форме записи, метод, описанный один раз, можно использовать в любом потомке класса, которому непосредственно принадлежит этот метод.

Поле Body описывает действие, производимое методом.

Меню редактора содержит три пункта: Update, Edit и Options. Пункт меню Update / Check Syntax позволяет проверить метод на наличие синтаксических ошибок.

Примечание.

Ни одно из выполненных в редакторе метода изменений не будет иметь эффекта, пока не будет сохранен весь модифицируемый класс.

6.4.5. Редактор функций (Function Editor)

Этот редактор предназначен для создания, просмотра и редактирования функций. Окно редактора содержит три редактируемых поля (Arguments, Body, Comment) и меню (Update, Edit, Options), назначение которых аналогично полям окна редактора методов (см. разд. 6.4.4).

6.4.6. Редактор правил (Rule Editor)

Этот редактор предназначен для определения (создания), просмотра и изменения правил (рис. 6.8).

Рис. 6.8. Окно редактора правил

Окно редактора содержит стандартное меню и пять редактируемых полей: Patterns, Priority, If, Then и Comment.

Напомним, что в общем виде правила имеют следующую конструкцию:

If <предпосылка> Tten <заключение>.

Как предпосылки, так и заключения представляют собой выражения, состоящие из объектов, их слотов и значений слотов. Эти выражения заносятся в соответствующие поля редактора правил.

В поле Patterns записываются переменные, которые будут использоваться правилах, причем слева от вертикальной черты вводится имя переменной, фигурирующей в правиле, а справа – класс («старейший» предок), которому принадлежит эта переменная. Правило будет работать только в том случае, когда таким образом будут описаны все входящие в него переменные.

Поле Priority позволяет установить приоритет правила в порядке рассуждений. Прежде чем выполнять правила в соответствии со списком рассуждения (Rule List), каждая стратегия оценки упорядочивает правила из данного списка по их приоритету. По умолчанию приоритет равен нулю, и правила в списке записаны в случайном порядке. Диапазон значений приоритета лежит в пределах [-32000; 32000]. Чем больше число, тем выше приоритет правила.

6.4.7. Редактор цели (Goal Editor)

Позволяет создавать и редактировать цели (рис. 6.9).

Рис. 6.9. Окно редактора цели

Окно редактора содержит стандартное меню (Update, Edit и Options) и два редактируемых поля (Body и Comment).

Поле Body (тело цели) должно содержать KAL-выражение, определяющее заключение, которое использует механизм рассуждений при попытке проверить, достигнута ли эта цель.

6.5. Окно интерпретатора (kal Interpreter)

В окне интерпретатора можно выполнить любую корректную функцию, что позволяет быстро проверить правильность ее написания и работы. Находясь в любом окне ЭО KAPPA, где доступно использование выражений в KAL-коде, нажатие правой кнопки мыши активизирует всплывающее меню, с помощью которого можно оперативно выбрать необходимую из имеющихся функций, а также нужный элемент знаний: класс, объект, правило или цель.

Функции разделены на следующие группы:

  • манипулирования элементами знаний − Knowledge;

  • математические − Math;

  • работы со строками − String;

  • работы с групповыми объектами и сетями объектов − Lists;

  • логические − Logical;

  • работы с файлами − File;

  • управления рассуждением и взаимодействием с ОС − Control;

  • работы с окнами KAPPA и объектами интерфейса − Windows;

  • функции, определенные пользователем, − User Functions.

При выборе той или иной группы функций на экране появляется окно Select Command, содержащее список функций указанной группы, а при активации пункта меню All Functions − полный список всех функций, имеющихся в ЭО. При выделении щелчком мыши одной из функций внизу окна появляется формат ее написания и список аргументов.

KAL-интерпретатор имеет свое меню, содержащее пункты File и Edit. Пункт File содержит только один пункт – Save, позволяющий сохранить содержимое окна в файле. Кроме стандартных пунктов в подменю Edit имеются еще два пункта: очистки окна – Clear Window и проверки синтаксиса – Check Syntax. Следует помнить, что интерпретатор ограничивает содержимое окна 10-ю страницами текста и в случае необходимости автоматически удаляет лишнее.

Пример.

В классе People определим слот NumberOfP − количество человек. Тогда и объекты Lgotn, и Usual получат свойство NumberOfP, перешедшее к ним по наследству от родительского класса People (см. рис. 6.2).

Создадим класс Ground, подобный рассмотренному ранее классу People:

=>MakeClass (Ground, VOLOST);

Ground

Оценим содержимое элемента «People:NumberOfP»:

=> People:NumberOfP;

150