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

2.2.5. Синтаксис языка структурной спецификации

Здесь мы опишем записанный в метаязыке БНФ синтаксис языка структурной спецификации. При этом мы рассмотрим только некоторое («ядерное») подмножество языка структурной спецификации.

<структурное предложение для класса>::==

<имя класса>[хвост] ||

<имя класса> ISA <имя кдасса>

<структурное предложение для бинарной связи> ::==

(<имя класса> <имя бинарной связи>

<имя класса>)[<хвост>] ||

<имя бинарной связи> ISA<имя бинарной связи>

<хвост> ::== <указатель> < ; <указатель>>*

<указатель> ::== <атрибут> : <спецификация типа данных> ||

<концептуальный атрибут> : <имя класса>

2.2.6. Атрибутные условия и интервальные ограничения

Пусть класс С имеет атрибуты A1, A2,…, An, принимающие значения в типах T1,T2,…,Tn (соответственно). Пусть pкакой-либо предикат, заданный на этих типах, p: (T1,T2,…,Tn) -> Boolean. Тогда выражение p(A1, A2,…, An) называется атрибутным условием для класса С. Аналогично определяются атрибутные условия для бинарной связи L.

Атрибутное условие p(A1, A2,…, An) (обозначим его α) интерпретируется как ограничение на возможные экстенсионалы класса. Точнее, α выделяет из множества суррогатов EsurrC (примеров понятия С) подмножество тех суррогатов, которые удовлетворяют условию α. Это подмножество считается множеством всех суррогатов – примеров понятия, обозначаемого С(α):

EsurrС(α) = {XEsurrC | p(X.A1, X.A2,…, X.An) = true}.

Простейшими атрибутными условиями являются выражения вида A = B, A=/=B, A = a и А=/=а , где A, Bатрибуты, а а – значение атрибута А. Такие атрибутные условия будем называть элементарными. Если C – понятие, имеющее атрибуты A и B, то для понятий C(А = В), C(A=/=B), С(А = а) и С(А=/=а) имеем

EsurrC(A=B) = {XEsurrC | X.A = X.B},

EsurrC(A=/=B) = {XEsurrC | X.A X.B},

EsurrC(A=а) = {XEsurrC | X.A = а},

EsurrC(A=/=а) = {XEsurrC | X.A а}.

Вообще, к элементарным атрибутным условиям мы относим все выражения вида A θ B и A θ b , где θ – какое-либо бинарное отношение между доменами атрибутов A и B. Точнее, пусть А и В – атрибуты понятия С, причем T1 и T2 – спецификации типов данных – значений атрибутов А и В (соответственно). Пусть bT2и θ Т1Т2 . Тогда для понятий С(А θ В) и С(А θ b) имеем

EsurrС(А θ В) = {X EsurrC | X.A θ X.B },

EsurrС(А θ b) = {X EsurrC | X.A θ b }.

Наконец, элементарными атрибутными условиями мы также будем считать все выражения вида S1 θ S2 и S1 θ s , где S1 и S2 – селекторы, а sкакое-либо значение атрибута S2 .

Базовым атрибутным условием назовем конъюнкцию элементарных атрибутных условий. Записывая такую конъюнкцию, мы будем использовать точку с запятой вместо обозначения AND.

Пример 2.7. Рассмотрим следующие структурные предложения:

C[A:D,K:Integer], D[B:E,L:String,M:Integer], E[R:C].

Для класса С селекторами являются, например, A.B.R.K , A.D.M , A.D.L .Тогда A.B.R.K > A.D.M ; A.D.L = aba является базовым атрибутным условием.

Бинарную связь L между классами C и D можно представлять (экстенсионально) в виде двудольным графа GraphL, левыми вершинами которого служат суррогаты вида с#j EsurrC, а правыми – вершины вида d#j EsurrD. Ребра графа GraphL определяются суррогатами l#jEsurrL: если l#j.С = с#r и l#j.D = с#s, то вершина с#r соединяется ребром с вершиной с#s.

Пример 2.8. Пусть для бинарной связи L между классами C и D имеем:

EsurrC = {c#1, c#2, c#3, c#4, c#5},

EsurrD = {d#1, d#2, d#3, d#4, d#5, d#6, d#7},

EsurrL = {l#1, l#2, l#3, l#4, l#5, l#6, l#7, l#8, l#9, l#10} и

l#1.С = c#1 , l#1.D = d#1 ; l#2.С = c#2 , l#2.D = d#1 ;

l#3.С = c#2 , l#3.D = d#2 ; l#4.С = c#2 , l#4.D = d#4 ;

l#5.С = c#2 , l#1.D = d#7 ; l#6.С = c#3 , l#3.D = d#4 ;

l#7.С = c#3 , l#7.D = d#7 ; l#8.С = c#4 , l#8.D = d#3 ;

l#9.С = c#4 , l#1.D = d#5 ; l#10.С = c#5 , l#5.D = d#7 .

Тогда имеем граф GraphL этой бинарной связи, изображенный на Рис.2.8.

d#1

c#1 d#2

c#2 • d#3

c#3 d#4

c#4 d#5

c#5 • d#6

d#7

Как видим, степени левых вершин этого графа находятся в интервале

I = {1,2,3,4} = { xNat | 1 x4 }, а степени правых вершин находятся в интервале J = {0,1,2,3} = { xNat | 0 x3 }. (Степенью вершины в графе называют число ребер, инцидентных этой вершине.) Принадлежность степеней вершин к заданному интервалу можно рассматривать как ограничение, налагаемое на бинарную связь.

Введем следующие обозначения:

= p для вырожденного («одноточечного») интервала {x | pxp};

=<p для интервала {x | 0xp};

<p для интервала {x | 0x<p};

>p для интервала {x | x>p};

p:q для интервала {x | pxq}. Здесь предполагается p<q.

* для максимального интервала Nat.

Замечание. Можно использовать сокращения:

L вместо L(*,*);

L(=p) вместо L(=p,=p);

L(=<p) вместо L(=<p,=<p);

L(<p) вместо L(<p,<p) и т.д.

Если в структурное предложение для бинарной связи входит выражение L(I,J) (где I, J – интервалы), то в графе GraphL этой бинарной связи степень любой левой вершины должна принадлежать интервалу I, а степень любой правой вершины – интервалу J. Ясно, что свойство функциональности бинарной связи L является интервальным ограничением L(=1,*). Таким образом, предложение(С L(=1,*)D) интерпретируется как утверждение, что отношение L на самом деле является функцией, отображающей множество EsurrC в множество EsurrD. Поэтому вместо (С L(=1,*)D) можно писать L:C -> D. В этом случае L(x) обозначает значение функции L для суррогата х EsurrC. Интервальное ограничение L(=1,=<1) означает, что бинарная связь L функциональна и обладает свойством, что отнощение L есть инъективная функция. Таким образом, предложение (С L(=1,=<)D) утверждает, что L есть инъекция EsurrC в EsurrD . Предположим, что имеет место кореферентность x ~ L(x) для всех суррогатов xEsurrC. Тогда, отождествляя каждый суррогат x с суррогатом L( x), мы можем считать, что класс C является подклассом класса D.

Особую роль в представлении знаний играет бинарная связь, обозначаемая ISA, с помощью которой определяется иерархия понятия. Эта связь имеет стандартную интерпретацию. Предложение C ISA D означает, что для любого суррогата c#jSurrC, если c#j EsurrC, то d#j EsurrD .

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