- •Национальный исследовательский
- •Университет
- •В ы п у с к н а я р а б о т а
- •Введение
- •Глава 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
- •Заключение
- •Литература
- •Содержание
Глава 2 бинарная модель знаний
2.1. Синтаксис имен, используемых в бмз
Суррогаты будут обозначаться #1, #2, #3 и т.д. Множество суррогатов Surr = {#1,#2,#3,…} мы будем рассматривать как стандартный тип данных. Также через Surr будем обозначать атрибут, который, будучи примененным к имени объекта, дает суррогат этого объекта.
Если a – имя объекта obj, то этот объект называется референтом (или денотатом) этого имени: ref(a) = obj. Если имена a и b имеют один и тот же референт, ref(a) = ref(b), то эти имена называются кореферентными. Ясно, что кореферентность имен является отношением эквивалентности. Мы будем писать a ~ b, если имена. В частности, имеем a ~ a .Surr, т.е. имя а кореферентно суррогату a .Surr этого имени.
Формальные понятия строятся из имен. Пусть U – универсум имен (т.е. потенциальное множество имен для понятий и их примеров). Входящие в него имена разделяются на имена понятий, имена типов данных (значений), имена атрибутов и имена (индивидных) объектов.
Эти имена имеют следующий синтаксис.
Имена атрибутов и простые имена понятий записываются как слитные (т.е. без пробелов) строчки символов клавиатуры, начинающиеся с заглавной буквы и не включающие знаков пунктуации, скобки и символов #, %, ^, + , | , <, >, “, \ , /. Множество всех таких строчек обозначим String1.
Через String0 обозначим множество строчек, получающихся из строчек множества String1 путем замены начальной большой буквы на малую. Простые имена вида w#j, где wString0 и j – натуральное число (j{0,1,2,…}), называются суррогатами, ассоциированными с именем w. Эти суррогаты используются в качестве идентификаторов для индивидных объектов моделируемой ПО. Множество всех суррогатов обозначается Surr. (Заметим, что множество Surr не пересекается в String0, так как суррогаты содержат символ #, но строчки из String0 этот символ не содержат.)
Пусть СString1 и с – соответствующее имя из String0. Обозначим SurrC= {c#j | j = 0,1,2,…}. Например, если в качестве С возьмем имя Студент, то элементами множества SurrC служат слова студент#j (j = 0,1,2,…).
Простыми именами объектов считаются строчки из String0, суррогаты и произвольные строчки, взятые в одиночные кавычки.
Составные имена понятий имеют следующие формы:
▪ C1 | C2 |…| Cn , где Cj String1 (1jn);
▪ С(*), где СString1;
▪ (K1, K2,…, Kn), где Kj String1 или Kj есть пара вида E: D с E, D String1;
▪ С(α), где СString1 и α – атрибутное условие. Синтаксис атрибутных условий будет рассмотрен в п. 2.5. Синтаксис составных имен для типов данных будет рассмотрен позднее в п. 2.3.1.
Составные имена объектов имеют форму
[A1: e1, A2: e2,…, Am: em],
где Ai – имена атрибутов, а ei – имена индивидных объектов (1im).
Примеры 2.1:
▪ Студент, Профессор, Доцент, P@mt_ab21 – простые имена понятий;
▪ ФИО, ГодРожд, Price – имена атрибутов;
▪ Доцент | Профессор , Студент(*) – составные имена понятий;
▪ студент#1, студент#27, ‘староста группы А13-05’ – простые имена объектов;
▪ SurrСтудент = {студент#0, студент#1, студент#2,…};
▪ [ФИО: ‘А.П. Иванов’, ГодРожд: 1985] – составное имя объекта.
Замечание. В составном имени объекта ‘А.П. Иванов’ использованы одиночные кавычки, так как, если снять кавычки, то получится строчка, которая уже не является именем в системе БМЗ.
Множество всех строчек обычно рассматривают как примитивный (предопределенный) тип данных, обозначаемый String. На этом типе данных действует операция конкатенации: если x, y - произвольные строчки символов, то их конкатенация xy есть строчка, получаемая присоединением строчки у к строчке х. При этом конкатенацией строчек, взятых в одиночные кавычки, ‘x’ и ‘y’ считается строчка ‘xy’, а не ‘x’‘y’.