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

2.2.4. Спецификация структуры объектов

В БМЗ понятия делятся на классы и (бинарные) связи. Простейшими структурными предложениями в БМЗ являются:

C [A1: T1, A2: T2,…, An: Tn], (2.1)

(C L D), (2.2)

(C L D) [A1: T1, A2: T2,…, An: Tn] . (2.3)

Здесь С, D – имена классов, Aj – имена атрибутов и Tj – спецификации типов данных (1jn). Эти предложения определяют соответственно следующие универсумы понятий:

UC = String0 Surr SurrC {[A1 : x1, A2: x2,…, An: xn] | xj Tn” (1jn) },

UL = String0 Surr(Surr,Surr)SurrL { [C: x, D: y] | x SurrC, ySurrD },

UL = String0 Surr(Surr,Surr)SurrL

[C: x, D: y, A1: x1, A2: x2,…, An: xn] | x SurrC, ySurrD, xj Tn” (1jn) }.

Замечание. Порядок компонент в кортежах не имеет значения. В частности, [C: x, D: y] = [ D: y, C: x]. Но тогда, если Lбинарная связь, заданная на одном классе С и специфицируемая структурным предложением (C L C), то не ясен результат применения операции «точка» к кортежу [C: x, C: y] : либо [C: x, С: y].С = x, либо [C: x, D: y].С = у. Чтобы избежать эту неопределенность, будем использовать роли 1-С и 2-D, считая, что с предложением (C L C) неявно ассоциировано предложение: (1-C: С L 2-С: C).

В структурные предложения можно включать роли. В сущности, роль – это атрибут, значениями которого служат не элементы типа данных, а суррогаты, обозначающие объекты – возможные примеры класса. Например, включив роли R и S в предложение (3.2), получим следующее структурное предложение, специфицирующее бинарную связь L :

(R:C L S:D). (2.4)

Предложение (3.3) следующим образом определяет универсум связи L:

UL = String0Surr(Surr,Surr)SurrL {[R: x, S: y] | x SurrC, ySurrD } (2.5)

Мы видим, что элементами универсума, определяемого предложением (2.4), являются суррогаты и кортежи вида е = [R: x, S: y], тогда как определяемый предложением (2.5) универсум состоит из тех же суррогатов и кортежей вида e’ = [C: x, D: y]. В первом случае мы можем применять операцию «точка» с атрибутами R и S, во втором случае – с атрибутами C и D :

e.R = x, e.S = y, e.R = x, e.R = y.

Замечание. Очевидно, что предложения (C L D) и (С: C L D: D) эквивалентны в том смысле, что оба эти предложения определяют один и тот же универсум. Таким образом, во втором из этих предложений имя С используется двояко – как имя атрибута для класса и как имя этого класса.

Роли могут также входить в часть структурного предложения, заключенную в квадратных скобках. Рассмотрим, например, предложение

(R:C L D)[P:E, A: String0, B: Integer].

Оно определяет универсум

UL = String0 Surr(Surr,Surr) SurrL

{ [R: x, D: y, P: z, A: u, B: v] | xSurrC, ySurrD, z SurrE, uString0,vInteger }.

Таким образом, к каждому элементу e =[R: x, D: y, P: z, A: u, B: v] универсума для L применимы (через операцию «точка») роли (объектные атрибуты) R, D, P и атрибуты A, B, принимающие значения в примитивных типах данных String, Integer:

e.RSurrC, e.DSurrD, e.PSurrE, e.A String, e.B .

В общем случае атрибут, являющийся ролью, принимает значение во множестве суррогатов, которые могут обозначать примеры произвольного понятия. Но понятие может быть не только простым, но и составным. Для образования составных понятий мы будем использовать три конструктора, подобные конструкторам типов.

Конструктор (*).

Составное понятие С(*) имеет следующий универсум:

UC(*) = Surr String0 {{x1, x2,…, xp} | xj SurrC (1jp) }.

Экстенсионал ExtC(*) понятия С(*) имеет в качестве множества экземпляров (примеров) некоторое подмножество ЕC(*) UC(*) , но такое, что

{x1, x2,…, xp}ЕC(*) ó xj EC для всех 1j n.

Конструктор |.

Понятие (C1 | С2 || Сn) имеет следующий универсум:

U(C1 | C2 |…|Cn) = String0 SurrSurrC1 SurrC2 SurrCn.

Экстенсионал понятия (C1 | С2 || Сn) имеет в качестве множества экземпляров некоторое подмножество Е(C1 | C2 |…|Cn) U(C1 | C2 |…|Cn) , но такое, что для всякого

x SurrC1 SurrC2 SurrCn.

x Е(C1 | C2 |…|Cn) ó xECj для некоторого 1j n.

Конструктор ( , ,…, ).

Понятие (K1, K2,…,Kn) имеет следующий универсум:

U(K1, K2,…, Kn) = String0 Surr {(z1, z2,…, zn) | zj = Aj: xj , если Kj= Aj : Cj , и

zj = xj , если Kj= Cj (xj SurrCj ,1jn) }.

Здесь Aj имя атрибута, а Cj – имя понятия. Экстенсионал понятия (K1, K2,…, Kn) имеет в качестве множества экземпляров некоторое подмножество Е(K1, K2, …, Kn) U(K1, K2,…, Kn) , но такое, что

(z1, z2,…, zn) Е(K1, K2,|…, Kn) ó zjEKj для всех 1j n.

Пример 2.6. Составное понятие (A : C, D, E) имеет универсум

Surr String0 {(A : x, y, z) | x SurrC, ySurrD, z SurrE }.

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