Баннер
Баннер

Разработка прототипа экспертной системы

Оглавление
Разработка прототипа экспертной системы
Контрольные вопросы и задания
Все страницы

 При разработке прототипа экспертной системы, использующей продукционную модель представления знаний, можно использовать демонстрационный проект \EXAMPLES\GENI.VPR.

Рис. 12.4. Рабочее окно программы GENI

 

Представим фрагмент базы знаний geni.gni.

 

rule(1,"carnivore","cheetah",[1,2])

rule(2,"carnivore","tiger",[1,3])

cond(1,"it has tawny color")

cond(2,"it has dark spots")

cond(3,"it has black stripes")

 

Структура rule: номер правила, категория, подкатегория, список условий для выполнения правила.

Структура cond: номер условия, текст условия.

Приведем рекомендации по преобразованию проекта geni.vpr в прототип экспертной системы, использующий графический интерфейс пользователя.

Начальные действия

1. Создать папку для проекта, скопировав в нее файл geni.pro.

2. Запустить Visual Prolog, выполнить действия, представленные на рисунках.

 

3. В опция компиляции (Options – Project (.VPR) – Compiler Options) выставить соответствующие параметры.

4. Добавить запись

include "geni.pro"

в файл geniwin.pro

 

5. Закомментировать goal в geni.pro.

6. Проверить работоспособность проекта.

Загрузка базы знаний

1. Модифицировать меню проекта.

2. Добавить код вызывающий стандартный диалог выбора файла dlg_GetFileName.

 

%BEGIN Task Window, id_file_open

task_win_eh(_Win,e_Menu(id_file_open,_ShiftCtlAlt),0):-!,

FILENAME = dlg_GetFileName("*.gni",["gni","*.gni"],

"Загрузка базы знаний",[],"",_OutListFiles),

consult (FILENAME, geni),

!.

%END Task Window, id_file_open

 

Оформление вызова целевого предиката

1. Создать целевой предикат.

Целевой предикат создается из модификации цели в файле geni.pro.

 

work if topic(MAINGOAL,PURPOSE),

%write(PURPOSE),nl,

Title="Начало работы",

dlg_Note(Title, PURPOSE),

go([],MAINGOAL).

 

work if Title="Предупреждение",

dlg_Note(Title,"База знаний не загружена!").

% dlg_Error("База знаний не загружена!").

 

2. Добавить в меню пункт «Консультация» и в текст программы  вызов предиката work.

 

%BEGIN Task Window, id_ консультация

task_win_eh(_Win,e_Menu(id_консультация,_ShiftCtlAlt),0):-!,

work,

!.

%END Task Window, id_ консультация

 

Преобразование текстовых сообщений

Для преобразования текстовых сообщений использовать предикат concat.

Для преобразования диалога, организованного на предикате readchar, использовать диалог dlg_ask.

 

Рекомендации по вызову собственных диалогов или окон

Для вызова диалога или окна не из меню, необходимо выполнить два шага:

  • ранее сохранить дескриптор окна в базе данных (тип дескриптора WINDOW);
  • взять из базы данных дескриптор окна и его использовать для подстановки в предикат, вызывающий собственный диалог.





Читайте также:

Добавить комментарий


Защитный код
Обновить




Разделы



Главная Представление знаний Разработка прототипа экспертной системы