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

Глава 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’.

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