
- •Национальный исследовательский
- •Университет
- •В ы п у с к н а я р а б о т а
- •Введение
- •Глава 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
- •Заключение
- •Литература
- •Содержание
3.2. Описание запросов
Запрос состоит из двух частей: цели и условия. Запрос начинается с символа “?”, после него пишутся цели, затем символ “-”, после которого пишутся условия. Как в целях запроса, так и в условиях пишутся переменные. В целях перечисляются запрашиваемые переменные и атрибуты. В условиях запроса задается тип переменных, значение атрибутов, или указывается, как атрибуты одной переменной связываются с другими переменными.
Тип может определяться явно и неявно. Явное определение осуществляется через ключевое слова IN, либо через круглые скобки, если переменная описывает отношение. Неявное определение типа осуществляется через атрибуты другой переменной, либо через круглые скобки, если переменная учавствует в отношении.
Примеры определения типа:
X IN Студент
Переменная Xотносится к классуСтудент.
X IN Студент;X.Группа = Y
Переменная Yотносится к классуГруппа.
(X СдалЭкзамен Y Z)
Переменная Yотносится к отношениюСдалЭкзамен. Так как отношениеСдалЭкзамендолжно быть согласовано с формой(Студент СдалЭкзамен Предмет)переменнаяXотносится к классуСтудент, а переменнаяZ– к классуПредмет.
Значение атрибутов задается с помощью оператора «точка» («.») и одного из операторов сравнения («=», «<=», «>=», «LIKE»). Допускается многократное использование оператора «точка».
Пример:
X IN Студент; X.ФИО = ‘Архипов А.А.’
Во втором условии указано,что атрибут Nameдолжен равняться значению ‘Архипов’.
X IN Студент; X.Группа.Староста.ФИО =’Иванов’
Во втором условии указано многократное примение оператора «точка».
Допускается использовать атрибутное условие, когда сразу после объявления класса переменной задаются атрибуты в круглых скобках
Пример:
X IN Студент(ГодРожд=1990)
Это условие эквивалентно двум: X IN Студент;X.ГодРожд=1990
Связывание атрибутов одной переменной с атрибутами другой переменной пишется, так же как и задание атрибутов, за исключением того что после оператора сравнения должна стоять переменная с атрибутом, либо название класса с атрибутом.
Пример:
Y IN Группа;X IN Студент(ГодРожд < Y.Староста.ГодРожд)
X IN Студент(ГодРожд < Группа.Староста.ГодРожд)
Второй пример эквивалентен первому, за исключением того что явно не используется переменная Y.
Отношения могут задаватся одним из следующих образов:
(X relation Y Z),
(X relation Z),
relation(X).Y_Attribute,
где relation– имя отношения,X,Z– переменные для отношенияrelation,Y– переменная, описывающяя отнощение,Y_Attribute– атрибут переменнойY.
В целях может присутвовать агрегатная функция:
?AVG(Z.Оценка) – Z IN СдалЭкзамен; …
Запрашивается среднее значение атрибутов Оценка переменной Z, относящейся к классу далЭкзамен.
Ниже описана грамматика языка:
<запрос>::= ? <цели запроса> - <условия запроса>
<цели запроса> ::= <цель>|<цели запроса>,<цель>
< цель> ::= <имя переменной>.<имя столбца>|<имя переменной>
<условия запроса>::= <условие>|<условия запроса>;<условие>
<условие> ::=<условие IN>|<определение атрибута>|
<отношение с внешними скобками>|<отношение без внешних скобок>
< условие IN>::= <имя переменной>IN<имя класса>|
<имя переменной> IN<имя класса>(<атрибутные условия>)
< атрибутные условия> ::= < атрибутное условие >|< атрибутные условия >;< атрибутное условие >
< атрибутное условие > ::= <атрибуты > <оператор> <значение атрибута>
<определение атрибута> ::= <имя переменной>. <атрибуты ><оператор> <значение атрибута>
<значение атрибута> := <слово>|<имя переменной>.<атрибуты>|<имя класса>.<атрибуты>
<атрибуты >::= <имя атрибута>|<атрибуты>.<имя атрибута>
< отношение с внешними скобками >::=
(<имя переменной> <имя отношения> <имя переменной> ) |
(<имя переменной> <имя отношения> <имя переменной> <имя переменной>)
<отношение без внешних скобок>::= <имя отношения>(<имя переменной>)< атрибуты через точку><оператор><значение атрибута>
< оператор сравнения> ::= =|<=|>=|<> |LIKE
<имя класса> ::= <имя определяемое пользователем>
<имя переменной> ::= <имя определяемое пользователем>
<имя отношения> ::= <имя определяемое пользователем>
<слово> ::= '<имя определяемое пользователем>'|<число>
<имя определяемое пользователем> ::= <буква или нижнее подчеркивание>|
<имя определяемое пользователем>< буква или нижнее подчеркивание >|
<имя определяемое пользователем><цифра>
<число> ::= <цифра>|<число><цифра>
<буква или нижнее подчеркивание > ::=
А|Б|В|Г|Д|Е|Ё|Ж|З|И|К|Л|М|Н|О|П|Р|С|Т|У|Ф|Х|Ч|Ш|Щ|Ъ|Ы|Ь|Э|Ю|Я|
а|б|в|г|д|е|ё|ж|з|и|к|л|м|н|о|п|р|с|т|у|ф|х|ц|ч|ш|щ|ъ|ы|ь|э|ю|я|
A|B|C|D|E|F|G||H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|
a|b|c|d|e|f|g||h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|_
<цифра> ::= 0|1|2|3|4|5|6|7|8|9