Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка языка запросов в бинарной модели знаний и транслятора этого языка в язык SQL (бакалаврская работа).doc
Скачиваний:
13
Добавлен:
28.06.2014
Размер:
1.31 Mб
Скачать

Глава 4 описание и использование программы, реализуюшей транслятор

4.1. Описание интерфейса программы.

На Рис. 4.1 представлен внешний вид программы и результат работы транслятора.

Рис 4.1

В левой части программы выводится структура заданной схема онтологии, а именно структуры классов, отношений и их атрибуты.

В правой располагаются текстовое поле ввода для запроса для БМЗ и текстовое поле для запроса на SQL после трансляции.

При нажатии на кнопку «Перевести» выполнится трансляция запроса. В случае если запрос неверен, появится сообщение об ошибке (Рис 4.2).

Рис 4.2

Для определения схемы, необходимо указать экстенсионалы понятий (классы и бинарные связей).

4.2. Задание схемы

Схему можно определить при помощи графического интерфейса или измененив программный код:

  1. Графический интерфейс

В программе существует специальная форма (Рис 4.3), где можно изменить название схемы, добавить или удалить класс, отношение и атрибуты. Ее можно вызвать, нажав на кнопку «Изменить схему» в левом нижнем углу главной формы (Рис 4.1).

В представлении схемы при помощи дерева (верхняя правая часть формы) атрибуты стандартного типа(int,float,string,date) подсвечиваются красным цветом, атрибуты классов – синим.

Рис 4.3

  1. Задание схемы в программном коде.

В программе существует набор классов (в смысле объектно-ориентированного программирования), моделирующие понятия БМЗ:

  • OnthologyScheme

  • OnthologyClass

  • OnthologyAttribute

  • OnthologyRelation

Они определяют соответственно структурную схему, класс, атрибут, отношение.

Здесь представлен пример задания схемы в программном коде.

static internal OnthologyScheme currentScheme;

private void CreateOnthologySchemeExample()

{

OnthologyScheme StudiesScheme;

OnthologyClass C_Student = new OnthologyClass("Студент");

OnthologyClass C_Teacher = new OnthologyClass("Препод");

OnthologyClass C_Group = new OnthologyClass("Группа");

OnthologyClass C_Department = new OnthologyClass("Кафедра");

OnthologyClass C_Discipline = new OnthologyClass("Предмет");

OnthologyRelation L_works_on = new OnthologyRelation("Работает_на", C_Teacher, C_Department);

OnthologyRelation L_passed_exam = new OnthologyRelation("СдалЭкзамен", C_Student, C_Discipline);

C_Student.AddSimpleAttribute("ФИО", "string");

C_Student.AddSimpleAttribute("ГодРожд", "int");

C_Student.AddClassAttribute("Группа", C_Group);

C_Teacher.AddSimpleAttribute("ФИО", "string");

C_Teacher.AddSimpleAttribute("Должность", "string");

C_Group.AddSimpleAttribute("Номер", "string");

C_Group.AddClassAttribute("Староста", C_Student);

C_Group.AddClassAttribute("Кафедра", C_Department);

C_Department.AddSimpleAttribute("Назв", "string");

C_Department.AddSimpleAttribute("Заведующий", "string");

C_Department.AddSimpleAttribute("Факультет", "string");

C_Discipline.AddSimpleAttribute("Назв", "string");

C_Discipline.AddSimpleAttribute("HourNumber", "int");

C_Discipline.AddSimpleAttribute("Type", "string");

L_works_on.AddSimpleAttribute("ДатаПоступления", "date");

L_passed_exam.AddSimpleAttribute("Дата", "date");

L_passed_exam.AddSimpleAttribute("Оценка", "int");

L_passed_exam.AddClassAttribute("Кому",C_Teacher);

StudiesScheme = new OnthologyScheme("Учебный процесс",

C_Student, C_Teacher, C_Group, C_Department, C_Discipline,

L_works_on, L_passed_exam);

currentScheme = StudiesScheme;

}

Соседние файлы в предмете Государственный экзамен