Главная » Просмотр файлов » Разработка языка запросов в бинарной модели знаний и транслятора этого языка в язык SQL (бакалаврская работа)

Разработка языка запросов в бинарной модели знаний и транслятора этого языка в язык SQL (бакалаврская работа) (544460), страница 7

Файл №544460 Разработка языка запросов в бинарной модели знаний и транслятора этого языка в язык SQL (бакалаврская работа) (Разработка языка запросов в бинарной модели знаний и транслятора этого языка в язык SQL (бакалаврская работа)) 7 страницаРазработка языка запросов в бинарной модели знаний и транслятора этого языка в язык SQL (бакалаврская работа) (544460) страница 72015-08-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 7)

<предложение1>.

<предложение2>.

:

<предложениеN>.

END

Пример 3.4. Окружность на плоскости можно идентифицировать, указав координаты ее центра и ее радиус. Поэтому тип данных «Окружность» можно задать так:

Окружность = (Центр:Точка, Радиус:Real).

Точка = (Абсцисса:Real, Ордината:Real).

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

FUN расст:(Точка,Точка) -> Real

расст(X,Y):= sqrt((X.Абсцисса-Y.Абсцисса)**2+ X.Абсцисса-Y.Абсцисса)**2)

END

FUN соприкас:(Окружность, Окружность)-> Boolean

cоприкас(X,Y) := true IFF расст(X.Центр, Y.Центр)= X.Радиус + Y.Радиус

END

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

Пример 2.5. Следующий модуль специфицирует типы данных «Точка», «Вектор», «Окружность» и функции, дающие:

▪ расстояние между точками, длину вектора и площадь окружности; а также предикаты, выясняющие:

▪ коллинеарность двух векторов;

▪ является ли две окружности соприкасающимися;

▪ является ли последовательность векторов цепью (в том смысле, что конец одного вектора совпадает с началом следующего вектора).

TYPES Точка = (Абсцисса:Real, Ордината:Real).

Вектор = (Начало:Точка, Конец:Точка).

Окружность = (Центр:Точка, Радиус:Real).

FUN: расст(X,Y):= sqrt((X.Абсцисса-Y.Абсцисса)**2+.Абсцисса-Y.Абсцисса)**2)

END

FUN: длина: Вектор -> Real

длина(X):= расст(X.Начало,Y.Конец)

END

FUN цепь: LLIST(Вектор)-> Boolean

цепь(Х):= true IF X IN Вектор,

цепь(X::Y):= X.Конец = CAR(Y).Начало; цепь(Y)

END

FUN: коллин: (Вектор, Вектор) -> Boolean

коллин(X,Y):= (длина(X)=длина(Y));

(расст(X.Начало,Y.Начало) = расст(X.Начало,Y.Начало)).

END

FUN: площадь: Окружность -> Real

площадь(Х):= 3.141592*(Х.Радиус)**2

END

FUN: соприкас: (Окружность, Окружность) -> Boolean

cоприкас(X,Y):= true IFF

расст(X.Центр, Y.Центр)= X.Радиус + Y.Радиус

END

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 – спецификации типов данных (1 j n). Эти предложения определяют соответственно следующие универсумы понятий:

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

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

UL = String0 Surr (Surr,Surr) SurrL

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

Замечание. Порядок компонент в кортежах не имеет значения. В частности, [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 = String0 Surr (Surr,Surr) SurrL {[R: x, S: y] | x SurrC, y SurrD } (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] | x SurrC, y SurrD, z SurrE, u String0, v Integer }.

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

e.R SurrC, e.D SurrD, e.P SurrE, e.A String, e.B .

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

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

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

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

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

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

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

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

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

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

x SurrC1 SurrC2 SurrCn.

x Е(C1 | C2 |…|Cn) ó x ECj для некоторого 1 j 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 ,1 j n) }.

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

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

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

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

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С(α) = {X EsurrC | 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) = {X EsurrC | X.A = X.B},

Характеристики

Список файлов ВКР

Разработка языка запросов в бинарной модели знаний и транслятора этого языка в язык SQL (бакалаврская работа).doc
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7031
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее