- •3.3. Разработать вопросы к пользователю и граф диалога
- •3.4. Разработать бд для хранения исходных, промежуточных и результирующих данных.
- •3.5. Разработать вопросно-ответную компоненту бз.
- •3.6. Разработать правила и реализовать машину вывода.
- •Варианты заданий: (допускается предложить свой вариант бз с количеством объектов не менее пяти и согласовать его с преподавателем)
3.4. Разработать бд для хранения исходных, промежуточных и результирующих данных.
Для принятия решения ЭС необходимо наличие исходных данных, которые представляют собой группу характеристик и их значения. Эти характеристики могут быть представлены как атрибуты (свойства) реального объекта. Например, объект – правильная геометрическая фигура со свойствами количество ребер, длина ребра, цвет, материал. Характеристики также могут быть представлены как свойства некого абстрактного объекта. Например, объекты заказ, анкета_сотрудника, протокол_ответов.
Необходимо разработать структуры для хранения данных о параметрах P, полученных в ходе ответов на вопросы, об атрибутах A объекта(ов) и, по желанию, о вариантах принятия решения (выбора).
3.5. Разработать вопросно-ответную компоненту бз.
Важное отличие ЭС от традиционной расчетно-логической программы состоит в отделении алгоритма работы (машины вывода) от базы знаний, которая содержит вопросы, варианты ответов и информацию о последовательности и необходимости задавания вопросов. База знаний должна быть реализована в архитектуре баз данных (напр. таблицах Paradox, XML, объектная БД или текстовый файл). Программа должна работать независимо от содержимого БЗ (в рамках неизменной структуры).
* Можно расширить функциональные возможности программы за счет создания подсистем редактирования БЗ, и отображения графа диалога.
* Можно несколько усложнить задачу, создав структуру правил очередности задавания вопросов и механизм ее обработки. Применение таких правил позволяет избежать лишних вопросов. Например, если пользователь сообщит программе точную информацию о модели устройства, то нет необходимости выявлять все его параметры.
Ниже предлагается один из вариантов реализации структуры БЗ в архитектуре реляционных БД. БЗ содержит 3 таблицы: таблицу вопросов (Quest.db), таблицу правил очередности задавания вопросов (QuestRules.db) и таблицу ответов (Answ.db).
Таблица Quest.db
Поле |
Тип данных |
Описание |
ID |
Integer |
Идентификатор вопроса |
Question |
String |
Вопрос |
AnsType |
Integer |
Тип данных для ответа (0 – Boolean, 1 – Integer, 2 – String) |
Answer1 |
String |
Вариант ответа 1 |
Answer2 |
String |
Вариант ответа 2 |
… |
… |
… |
AnswerN |
String |
Вариант ответа N |
Asked |
Boolean |
Задан/не задан |
Parameter |
String |
Параметр (свойство) объекта, значение которого определяется ответом. |
Order |
Integer |
Порядок (очередность) задавания вопроса |
Таблица Answ.db
Поле |
Тип данных |
Описание |
ID |
Integer |
Идентификатор записи |
Parameter 1 |
String |
Значение параметра (свойства) объекта, заполняемое после ответа на вопрос. |
Parameter 2 |
String |
Значение параметра 2 |
… |
… |
… |
Parameter M |
String |
Значение параметра M |
Таблица QuestRules.db
Поле |
Тип данных |
Описание |
ID |
Integer |
Идентификатор правила |
IF_Par |
String |
Параметр (свойство) объекта. |
IF_Value |
String |
Значение параметра (свойства) объекта |
NextQuest |
Integer |
Номер (ID) следующего вопроса. Значение =0, если нужно только исключить вопрос. |
NoAsk |
Integer |
Номер (ID) вопроса, который не надо задавать. Значение =0, если не нужно исключать вопрос. |