
- •Национальный исследовательский
- •Университет
- •В ы п у с к н а я р а б о т а
- •Введение
- •Глава 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
(1
j
n);
▪ С(*),
где С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
–
имена
индивидных объектов (1i
m).
Примеры 2.1:
▪ Студент, Профессор, Доцент, P@mt_ab21 – простые имена понятий;
▪ ФИО, ГодРожд, Price – имена атрибутов;
▪ Доцент | Профессор , Студент(*) – составные имена понятий;
▪ студент#1, студент#27, ‘староста группы А13-05’ – простые имена объектов;
▪ SurrСтудент = {студент#0, студент#1, студент#2,…};
▪ [ФИО: ‘А.П. Иванов’, ГодРожд: 1985] – составное имя объекта.
Замечание. В составном имени объекта ‘А.П. Иванов’ использованы одиночные кавычки, так как, если снять кавычки, то получится строчка, которая уже не является именем в системе БМЗ.
Множество всех строчек обычно рассматривают как примитивный (предопределенный) тип данных, обозначаемый String. На этом типе данных действует операция конкатенации: если x, y - произвольные строчки символов, то их конкатенация xy есть строчка, получаемая присоединением строчки у к строчке х. При этом конкатенацией строчек, взятых в одиночные кавычки, ‘x’ и ‘y’ считается строчка ‘xy’, а не ‘x’‘y’.