- •Национальный исследовательский
- •Университет
- •В ы п у с к н а я р а б о т а
- •Введение
- •Глава 1 общие сведения об онтологиях и языках для спецификации онтологий
- •1.1. Содержание онтологии
- •1.2 Цели создания онтологий
- •1.3. Области применения онтологий
- •1.4. Формальная концептуализация и формальные онтологии
- •1.5. Формальная модель понятия и концептуальные языки
- •Глава 2 бинарная модель знаний
- •2.1. Синтаксис имен, используемых в бмз
- •2.2. Бинарная Модель Данных
- •2.2.1. Спецификация типов данных
- •2.2.2. Конструкторы типов данных
- •2.2.3. Спецификация функций
- •2.2.4. Спецификация структуры объектов
- •2.2.5. Синтаксис языка структурной спецификации
- •2.2.6. Атрибутные условия и интервальные ограничения
- •2.2.7. Структурные схемы
- •2.2.8. Представление данных в бмд
- •2.2.9. Логические предложения.
- •Глава 3 язык запросов для бинарной модели данных
- •3.1. Примеры запросов
- •3.2. Описание запросов
- •3.3. Описание алгоритма трансляции.
- •3.4. Примеры работы транслятора.
- •Глава 4 описание и использование программы, реализуюшей транслятор
- •4.1. Описание интерфейса программы.
- •4.2. Задание схемы
- •4.3. Использование транслятора в программном коде.
- •4.4. Программа с подключенной базой данных.
- •Приложение
- •Код программы Файл Onthology.Cs
- •Файл Translator.Cs
- •Заключение
- •Литература
- •Содержание
Глава 4 описание и использование программы, реализуюшей транслятор
4.1. Описание интерфейса программы.
На Рис. 4.1 представлен внешний вид программы и результат работы транслятора.
Рис 4.1
В левой части программы выводится структура заданной схема онтологии, а именно структуры классов, отношений и их атрибуты.
В правой располагаются текстовое поле ввода для запроса для БМЗ и текстовое поле для запроса на SQL после трансляции.
При нажатии на кнопку «Перевести» выполнится трансляция запроса. В случае если запрос неверен, появится сообщение об ошибке (Рис 4.2).
Рис 4.2
Для определения схемы, необходимо указать экстенсионалы понятий (классы и бинарные связей).
4.2. Задание схемы
Схему можно определить при помощи графического интерфейса или измененив программный код:
Графический интерфейс
В программе существует специальная форма (Рис 4.3), где можно изменить название схемы, добавить или удалить класс, отношение и атрибуты. Ее можно вызвать, нажав на кнопку «Изменить схему» в левом нижнем углу главной формы (Рис 4.1).
В представлении схемы при помощи дерева (верхняя правая часть формы) атрибуты стандартного типа(int,float,string,date) подсвечиваются красным цветом, атрибуты классов – синим.
Рис 4.3
Задание схемы в программном коде.
В программе существует набор классов (в смысле объектно-ориентированного программирования), моделирующие понятия БМЗ:
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;
}