База знаний.

База знаний состоит из набора фреймов и правил-продукций. Формат внешнего представления базы знаний (в текстовом файле) выглядит следующим образом:

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, явно их тип в этом файле также можно не описывать. (Описание типов фреймов-классов и фреймов-экземпляров используется по преимуществу во внутреннем представлении базы знаний и базы данных).

Имя Фрейма, Фрейма-Родителя, Фрейма-Владельца, Слота.

Имена фрейма, фрейма-родителя, фрейма-владельца, слота - это последовательность символов (русские и/или латинские буквы, цифры, пробелы, знаки подчеркивания).