Разработка языка запросов в бинарной модели знаний и транслятора этого языка в язык SQL (бакалаврская работа) (544460), страница 4
Текст из файла (страница 4)
• Множество точек соотнесения: Г = {сем1, сем2,…, сем10}. Эти точки представляют семестры. Они выбраны потому, что информация об учебном процессе меняется каждый семестр.
• Экстенсионалы ЕxtСтудентсемj (j = 1,2,…,10) могут быть представлены таблицами. Например, для ЕxtСтудентсем2 можно указать следующую таблицу.
Студент
| Surr | Coref | ФИО | ГодРожд | Руков |
| #60 | [‘староста группы А13’] | ‘АндреевВ.М.’ | 1993 | #11 |
| #61 | [] | ‘Борисов И.В’ | 1992 | #11 |
| : | ||||
| #97 | [] | ‘Яковлев Л.Я’ | 1992 | #12 |
Здесь Surr – атрибут, значениями которого служат суррогаты, а Coref – атрибут, значениями которого служат списки кореферентных имен. Первая строка таблицы представляет три кореферентных имени:
#61 ~ ‘староста группы А13’ ~ [ФИО:‘Андреев В.М.’,ГодРожд:1993,Руков:#11].
Таким образом, имеем
ЕСтудентсем2 = {#60, #61, #97, ‘староста группы А13’,
[ФИО:‘Борисов И.В.’,ГодРожд:1993,Руков:#11],…,
[ФИО:‘Яковлев Л.Я.’,ГодРожд:1993,Руков:#11]}.
• Отношение кореференции ~Студентсемj определяется из строк таблицы для точки соотнесения семj так, как это было показано выше.
• Экстенсионал понятия Студент в точке соотнесения семj есть пара
ЕxtСтудентсемj = (ЕСтудентсемj, ~Студентсемj).
• Полный экстенсионал понятия Студент есть семейство
ЕxtСтудент = { ЕxtСтудентсем1, ЕxtСтудентсем2 ,…, ЕxtСтудентсем10}.
Мы предполагаем, что руководителем студента является некоторый преподаватель. В формальном понятии Студент этому соответствует атрибут Руков, значениями которого служат суррогаты, обозначающие примеры понятия Препод. Экстенсионал этого понятия также может быть представлен таблицей, например, таблицей с атрибутами ФИО, Должность и Кафедра (кроме стандартных атрибутов Surr и Coref). Предположим, что эта таблица содержит следующую строку.
| #11 | [] | ‘Вагин В.Н.’ | профессор | ‘Прикладная математика’ |
В формальном понятии Студент этому соответствует атрибут Руков, значениями которого Применение атрибута А к имени е, обозначающего пример понятия, записывается как е.А. В данном случае, например, имеем
#60.ФИО =‘Андреев В.М.’, #60.ГодРожд =1993,
‘староста группы А13’.ФИО =‘Андреев В.М.’,
#60.Руков =#11, #60.Руков.ФИО =#11.ФИО =‘Вагин В.Н.’.
(Конец примера.)
Как мы видели, экстенсионал понятия С в каждой точке соотнесения γ
Г есть пара (ЕСγ, ~γ), состоящая из множества имен ЕСγ, обозначающих примеры понятия, и отношения кореференции ~γ, заданного на этом множестве имен. Если взять фактор-множество ЕСγ / ~γ множества ЕСγ по отношению эквивалентности ~γ , то это множество будет состоять из абстрактных объектов, которые взаимно однозначно соответствуют объектам предметной области, рассматриваемых в точке соотнесения γ.
Заметим, что в примере 1 экстенсионалы в каждой точке соотнесения конечны. Но в общем случае экстенсионалы формальных понятий могут быть счетными.
Данное выше определение формального понятия относится к экстенсиональному аспекту термина «понятие». Но имеется также интенсиональный аспект этого термина, связанный со спецификацией компонентов формального понятия. Мы используем термин «спецификация», а не термин «определение», имея в виду, что результат определения однозначен, но результат спецификации может быть неоднозначен.
В примере 1 два понятия Студент и Препод связаны друг с другом с помощью атрибута Руков. Кроме того, эти понятия имеют одни и те же точки соотнесения.
Вообще, пусть Е – конечное множество формальных понятий, имеющих одни и те же точки соотнесения. Тогда мы скажем, что Е – система понятий. Некоторые из понятий системы могут быть связаны друг с другом. Но каждую связь можно также определить как формальное понятие. Поэтому можно считать, что система понятий Е включает понятия, определяющие связи между понятиями.
Формальной онтологией для системы понятий Е назовем конечное множество предложений О некоторого формального языка, специфицирующих формальные понятия из Е. (В дальнейшем, говоря о формальных понятиях, будем опускать слово «формальные».)
Замечание. Нечеткие понятия и нечеткая онтология определяются аналогично. Нужно только считать, что ЕСγ являются нечеткими подмножествами UC, а атрибуты – нечеткими одноместными функциями.
Предположим, что все понятия С
Е специфицированы с помощью предложений некоторого формального языка, который мы будем называть концептуальным. Предложения этого языка в соответствие с тем, какую из компонент понятия они специфицируют, классифицируются следующим образом.
• Структуральные предложения. Специфицируют универсумы понятий.
• Логические предложения. Специфицируют экстенсионалы понятий равномерно по точкам соотнесения.
• Транзитные предложения. Специфицируют изменения экстенсионалов при переходе от одной точки соотнесения к другой. Эти переходы определяются некоторым бинарным отношением, заданным на точках соотнесения.
Замечание. Фактически спецификация универсума является определением, т.е. результат спецификации однозначен (как это видно в примере 1.5).
Пример 1.6. Для спецификации указанного в примере 1 универсума UСтудент понятия Студент можно взять структуральное предложение
Студент[ФИО:String,ГодРожд:Integer,Руков:Препод].
Логические предложения мы понимаем очень широко. Это предложения, интерпретируемые как произвольные ограничения на экстенсионалы для любой точки соотнесения. Возьмем, например, ограничение на экстенсионалы понятия Студент, состоящее в том, что студенты одной и той же группы должны иметь только таких руководителей, которые работают на одной и той же кафедре. Это ограничение можно представить следующим логическим предложением:
FORALL Студент X,Y (IF X.Группа = Y.Группа
THEN X.Руков.Кафедра = Y.Руков.Кафедра).
Транзитные предложения представляют ограничения, выражающие изменения экстенсионалов при переходах в соответствие с бинарным отношением, заданным на точках соотнесения. В данном случае естественно взять отношение Позже, определяемое следующим образом: семj Позже семk ódf j>k. Возьмем ограничение, состоящее в том, что для каждого студента допускается только одна смена руководителя. Тогда это ограничение можно представить следующим предложением:
FORALL Студент Х; Por Y
(IF EXIST Por Z;Z Позже Y;(X.Руков<Y> =/= X.Руков<Z>)
THEN FORALL Por V; V Позже Z; (X.Руков<V> = X.Руков<Z>).
Здесь Por обозначает тип данных «точка соотнесения» (point of reference). Выражение X.Руков<Y> обозначает значение X.Руков в точке соотнесения Y.
(Конец примера.)
Пусть Е – система понятий, отвечающая данной концептуализации, а О – формальная онтология, специфицирующая Е. Тогда Е служит моделью онтологии О. В соответствующей интерпретации все предложения из О будут истинными. Эту интерпретацию назовем главной. Но, поскольку результат спецификации, как правило, неоднозначен, существуют другие интерпретации онтологии О (соответствующие другим системам понятий). Используя эти интерпретации, можно определить отношение |= логического следствия между онтологией О и предложением s языка онтологии: О |= s ódf не существует интерпретации, в которой все предложения из О истинны, а предложение s ложно.
ГЛАВА 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, где w
String0 и 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);















