База знаний.
База знаний состоит из набора фреймов и правил-продукций. Формат внешнего представления базы знаний (в текстовом файле) выглядит следующим образом:
TITLE = <название экспертной системы>
COMPANY = <название предприятия>
FRAME // фрейм
<описание фрейма>
ENDF
.
.
.
FRAME // фрейм
<описание фрейма>
ENDF
RULE // правило-продукция
<описание условий правила>
DO
<описание заключений правила>
ENDR
.
.
.
RULE // правило-продукция
<описание условий правила>
DO
<описание заключений правила>
ENDR
База знаний состоит из двух частей: постоянной и переменной. Переменная часть базы знаний называется базой данных и состоит из фактов, полученных в результате логического вывода. Факты в базе данных не являются постоянными. Их количество и значение зависит от процесса и результатов логического вывода.
До начала работы с экспертной оболочкой база знаний находится в текстовом файле. В файле с расширением *.klb (KnowLedge Base) хранятся фреймы и правила-продукции (база знаний). При начале работы с программной оболочкой наличие данного файла обязательно. Этот файл создается пользователем с помощью специального редактора или вручную. В файле с расширением *.dtb (DaTa Base) хранятся факты, полученные в процессе логического вывода (база данных). При начале работы с программной оболочкой наличие данного файла необязательно. Файл с базой данных создается программной оболочкой в процессе логического вывода. Первые части имен этих двух файлов совпадают.
При работе с программной оболочкой (после загрузки в оперативную память баз) фреймы и правила-продукции, находившиеся в файле с расширением *.klb, остаются неизменными. Факты, находившиеся в файле с расширением *.dtb, могут изменяться в процессе логического вывода (появляться, удаляться или менять свое значение в результате срабатывания правил-продукций или диалога с пользователем).
Пример базы знаний:
TITLE = для выбора метода представления знаний
FRAME = Цель
Метод представления знаний: ()
ENDF
FRAME = Тип
Решаемые задачи: (диагностика; проектирование)
ENDF
FRAME = Область
Применение [Какова область применения?]: (медицина;
вычислительная техника)
ENDF
FRAME = Действие
Сообщение: ()
ENDF
RULE 1
= (Область.Применение; медицина)
= (Тип.Решаемые задачи; диагностика)
DO
= (Метод представления знаний; Правила-продукции с
представлением нечетких знаний) 90
ENDR
RULE 2
= (Область.Применение; вычислительная техника)
= (Тип.Решаемые задачи; проектирование)
DO
= (Метод представления знаний; Фреймы) 100
= (Метод представления знаний; Правила-продукции с
представлением нечетких знаний) 70
= (Метод представления знаний; Семантические сети) 70
MS (Действие.Сообщение; Доказано правило 4)
ENDR
Фреймы.
Фреймы используются в базе знаний для описания объектов, событий, ситуаций, прочих понятий и взаимосвязей между ними. Фрейм - это структура данных, состоящая из слотов (полей). Формат внешнего представления фреймов (в текстовом файле) выглядит следующим образом:
FRAME (<тип фрейма>) = <имя фрейма>
PARENT: <имя фрейма-родителя>
OWNER: <имя фрейма-владельца>
<имя слота 1> (<тип слота>) [<вопрос слота>?]: (<значение 1>;
<значение 2>; ... ;
<значение k>)
<имя слота 2> (<тип слота>) [<вопрос слота>?]: (<значение 1>;
<значение 2>; ... ;
<значение l>)
.
.
.
<имя слота n> (<тип слота>) [<вопрос слота>?]: (<значение 1>;
<значение 2>; ... ;
<значение m>)
ENDF
Фрейм может принадлежать к одному из трех типов фреймов: фрейм-класс (тип описывается зарезервированным словом "класс"), фрейм-шаблон (тип описывается зарезервированным словом "шаблон"), фрейм-экземпляр (тип описывается зарезервированным словом "экземпляр"). В базе знаний содержатся фреймы-классы и фреймы-шаблоны. При создании базы знаний тип фрейма-класса можно не описывать, этот тип фрейма понимается по умолчанию. Явно следует описывать только тип фрейма-шаблона.
В базе данных хранятся только фреймы-экземпляры. Так как для хранения фреймов-экземпляров используется специальный файл с расширением *.dtb, явно их тип в этом файле также можно не описывать. (Описание типов фреймов-классов и фреймов-экземпляров используется по преимуществу во внутреннем представлении базы знаний и базы данных).
Имя Фрейма, Фрейма-Родителя, Фрейма-Владельца, Слота.
Имена фрейма, фрейма-родителя, фрейма-владельца, слота - это последовательность символов (русские и/или латинские буквы, цифры, пробелы, знаки подчеркивания).