- •Национальный исследовательский
- •Университет
- •В ы п у с к н а я р а б о т а
- •Введение
- •Глава 1 общие сведения об онтологиях и языках для спецификации онтологий
- •1.1. Содержание онтологии
- •1.2 Цели создания онтологий
- •1.3. Области применения онтологий
- •1.4. Формальная концептуализация и формальные онтологии
- •1.5. Формальная модель понятия и концептуальные языки
- •Глава 2 бинарная модель знаний
- •2.1. Синтаксис имен, используемых в бмз
- •2.2. Бинарная Модель Данных
- •2.2.1. Спецификация типов данных
- •2.2.2. Конструкторы типов данных
- •2.2.3. Спецификация функций
- •2.2.4. Спецификация структуры объектов
- •2.2.5. Синтаксис языка структурной спецификации
- •2.2.6. Атрибутные условия и интервальные ограничения
- •2.2.7. Структурные схемы
- •2.2.8. Представление данных в бмд
- •2.2.9. Логические предложения.
- •Глава 3 язык запросов для бинарной модели данных
- •3.1. Примеры запросов
- •3.2. Описание запросов
- •3.3. Описание алгоритма трансляции.
- •3.4. Примеры работы транслятора.
- •Глава 4 описание и использование программы, реализуюшей транслятор
- •4.1. Описание интерфейса программы.
- •4.2. Задание схемы
- •4.3. Использование транслятора в программном коде.
- •4.4. Программа с подключенной базой данных.
- •Приложение
- •Код программы Файл Onthology.Cs
- •Файл Translator.Cs
- •Заключение
- •Литература
- •Содержание
1.3. Области применения онтологий
Современные информационные технологии требует решения задач распределенной семантики знаний. Онтологии представляют средства для формального выражения этой семантики. В настоящее время организации начинают рассматривать онтологии как полезный формальный инструмент для представления машинно-обрабатываемой семантики для многих компьютерных приложений. Примерами таких приложений являются:
• электронная коммерция;
• биоинформатика;
• юридические информационные системы;
• электронное обучение;
• технология агентов;
• построение баз данных;
• программная инженерия;
• обработка естественного языка;
• информационный поиск;
• Семантический Веб;
• Веб-сервисы .
1.4. Формальная концептуализация и формальные онтологии
В книге [Genesereth et al., 1987], определяя понятие концептуализации, авторы пишут: «Блок формально представленного знания основан на концептуализации: объекты, понятия и другие сущности, которые существуют, как предполагается, в некоторой области интереса, а также отношения, которые существуют между ними. Концептуализация – абстрактный, упрощенный взгляд на мир, который мы хотим представить с некоторой целью. Каждая база знаний, система, основанная на знаниях, или агент на уровне знаний фиксирует, явно или неявно, некоторую концептуализацию».
Несмотря на сложность ментальной природы понятия «концептуализация», Дженесерет и Нильссон выбирают для его объяснения очень простое математическое представление – экстенсиональную реляционную структуру.
Экстенисинальная реляционная структура (концептуализация по Дженесерету и Нильссону) – это пара (U,R), где
• U – множество, называемое универсумом;
• R – множество отношений, заданных на U.
Заметим, что по этому определению элементами множества R являются обычными математическими отношениями, т.е. некоторыми множествами кортежей, составленными из элементов D. Таким образом, элемент R – это экстенсиональное отношение, отражающее конкретное состояние мира.
Пример 1.1. Рассмотрим предметную область «Компания», связанную с хранением сведений о работниках некоторой компании. Предположим, что в компании работает 300 человек, каждый из которых идентифицируется номером ИНН (индивидуальный номер налогоплательщика). Пусть универсум U содержит всех этих работников. Мы интересуемся отношениями между ними. Таким образом, R содержит некоторые унарные отношения (т.е. подмножества) такие, как Работник, Менеджер и Исследователь, а также бинарные отношения подчинен и сотрудничает_с. Соответствующая экстенсиональная реляционная структура (U,R) такова:
• U = ИНН всех работников компании;
• R = {Работник, Менеджер, Исследователь, подчинен, сотрудничает_с}.
Экстенсионалы отношений отражают конкретный мир. Здесь мы предполпгаем, что множество Работник совпадает с универсумом U, а множества Работник, Менеджер, Исследователь являются собственными подмножествами универсума. Бинарные отношения подчинен, сотрудничает_с являются множествами пар, которые указывают иерархию подчинения и совместную работу работников. На Рис.1.1 некоторые из этих пар изображены в виде ориентированного графа. Здесь исследователь 110104675801 подчинен менеджеру 11010382002 и сотрудничает с другим исследователем 110104444303, который также подченен менеджеру 11010382002.
Менеджер(110103482002)
подчинен
Исследователь(110104675801) подчинен
Работает_вместе_с
Исследователь(110104444303)
Работник(110105000027)
Рис.1.1
• Работник = U;
• Менеджер = {…, 110103482002,…};
• Исследователь = {…, 110104444303,…, 110104675601,…};
• подчинен = {…, (110104675801,1103482002),…,
(110104444303,110103482002),…};
• сотрудничает_с = {…, (110104675601,110104444303),…};
Несмотря на простоту понятия «экстенсиональная концептуализация», это понятие на самом деле плохо соответствует нашим нуждам и отвечает нашей интуиции, главным образом, потому, что оно слишком зависит от конкретного состояния предметной области. Концептуализация должна зависеть только от понятий, а не от состояний (примеров понятий). Следует ли понятию «подчинен» изменяться тогда, когда иерархическая стуруктура компании меняется? В работе [Guarino et al.,1995] обсуждается, следует ли изменять концептуализации предметной области при изменении сосотяний это предментной области. Если в соответствии с взглядами Дженесерета и Нильссона считать, что это так, то каждый новый конкретный граф отношения «подчинен» такой, как в примере 1.1., давал бы новую концептуализацию.
Пример 1.2. Рассмотрим следующую модификацию примера 1.1.:
R* = { Работник, Менеджер, Исследователь, подчинен*, сотрудничает_с },
где подчинен*= подчинен U {(110103482001,110105000005)}.
Поскольку (U,R) ≠ (U,R*), то в соответствии с Дженесеретом и Нильссоном мы имеем две различные экстенсиональные концептуализации. Проблема в том, что принадлежащие R экстенсиональные отношения отражают конкретные состоянии предметеной области. Однако, мы должны сосредоточиться на смысле (значении) понятий, которые не зависимы от кокретного состояния. Например, смысл отношения сотрудничает_с лежит в конкретном способе как два работника действуют в компании.
В примере 1.1 предметная область состоит из элементов универсума U и имен Работник, Менеджер, Исследователь, подчинен и сотрудничает_с. Приведенную в этом примере экстенсиональную концептуализацию можно представить себе как назначение именам Работник, Менеджер и Исследователь конкретных подмножеств множества U, а именам подчинен , сотрудничает_с назначение конкретных отношений, т.е. подмножеств множества U x U.
С каждой парой (Менеджер, х), где хU, свяжем булеву переменную ξ«Менеджер,х» , которая равна 1 в том и только том случае, если х является примером понятия Менеджер (т.е. х есть ИНН некоторого менеджера). Точно так же, введем булевы переменные ξРаботник,х и ξИсследователь,х . Таким образом, в примерах 1.1 и 1.2 имеем, что ξРаботник,х = 1 для всех хU (поскольку универсум U состоит из ИНН всех работников), а ξ«Менеджер,110103482002» = 1 и ξ«Менеджер,110104444303» = 0 (так как работник с ИНН 110103482002 является менеджером, а работник с ИНН 110104444303 менеджером не является).
С каждой тройкой (подчинен,х,у), где х,уU, свяжем булеву переменную ξ«подчинен,х,у», которая равна 1 в том и только том случае, если работник с ИНН х подчинен работнику с ИНН у. Точно так же, введем булеву переменную ξ«сотрудничает_с,х,у» .
Итак, с предметной облстью из примеров 1.1 и 1.2 связано следующее множество булевых переменных:
{ξ«Работник,х», ξ«Менеджер,х», ξ«Исследователь,х»,
ξ«подчинен,х,у», ξ «сотрудничает_с» | х, уU}.
Состоянием этой предметной области назовем присваивание этим переменным конкретных значений 0 или 1.
Рассмотрим общий случай задачи моделирования некоторой системы (или приложения) S. Пусть PS – предметная область для этой задачи. Пусть Var = Var(PS) – множество всех переменных, связанных с предметной областью PS. (Заметим, что в основном Var состоит из булевых переменных; но в Var могут входить и не булевы пременные.) Состоянием σ предметной области PS назовем присваивание булевых значений переменным из Var. Другими словами, состояние σ можно отождествить с функцией, заданной на множестве Var и принимающая значения в {0,1}, т.е. σ: Var → {0,1}. Однако, вообще говоря, не любую функцию σ: Var → {0,1} следует считать допустимым состоянием. Обозначим А(PS) множество всех допустимых состояний предметной области PS. Это множество выражает смысл понятий, входящих в эту предметную область.
Пусть r – имя какого-либо отношение предметной области PS. Предположим, что r имеет арность (местность) n. Тогда для заданных (х1,х2,…,хn) Un имеем булеву переменную ξ«r,х1,х2,…,хn». Каждое состояние σ предметной области PS задает n-местное отношение rσ = {(х1,х2,…,хn) | σ(ξ«r,х1,х2,…,хn») = 1}. Определим семейство n-местных отношений r• = {rσ | σА(PS)}, состоящее из всех отношений rσ , когда σ пробегает все допустимые состояния предметной области PS. Семейство r• отношений rσ называется интенсиональным отношением.
Замечание. Сказанное является общим способом выражения интенсиональных свойств, восходящим к Рудольфу Карнапу, [Карнап, 1959]. Данное нами определение интенсионального отношения является модификацией определения, данного в [Guarino et al., 2004]. Гуарино называет интенсиональные отношения также концептуальными.
Интуитивное понимание смысла отношения сотрудничает_с связано с некоторым правилом, определяющим кооперацию работников. Предположим, в нашем случае, два работника сотрудничают друг с другом, если: (1) оба они заявляют, что имеют одну и ту же цель; (2) оба делают что-то для достижения этой цели. Тогда смысл отношения сотрудничает_с можно определить как функцию, которая для каждого допустимого состояния дает множества всех пар работников, которые удовлетворяют условиям (1) и (2).
Обобщая этот подход и абстагируясь (ради простоты) от времени, мы можем сказать, что интенсиональное отношение (в противоположность экстенсиональному) есть функция из множества допустимых состояний предметной области в множество экстенсиональных отношений. Предположим, что имеется множество Г точек соотнесения – некоторых абстрактных объектов, взаимно однозначно соответствующих допустимым состояниям предметной области. Тогда интенсиональное отношение – это семейство экстенсиональных отношений, индексированное точками соотнесения.
Пусть U - универсум и Г – множество точек соотнесения, взаимно однозначно соответствующих допустимым состояниям предметной области. Концептуализация (или интенсиональная реляционная структура) – это тройка (U,Г,R), где R – множество концептуальных (интенсиональных) отношений.
Пример 1.3. Возьмем опять предметную область, рассмотренную в примерах 1.1 и 1.2. Положим:
• Г = {…, γ1,…, δ2,…};
• R – следующее множество концептуальных отношений:
Работник (γ) = U для всех γГ;
Менеджер(γ) = {…, 110103482002,…} для всех γГ;
Исследователь(γ) = {…, 110104444303,…, 110104675801,…, 1101001243005}
для всех γГ;
подчинен
={…,(110104675801,110103482002),…,(110104444303,110103482002),…};
подчинен(γ2) = {…, (110104675801,110103482002),…, (110104444303,110103482002),
…, (1101001243005,110103482002) };
…………………………….
Сотрудничает_с(γ1) = {…};
Сотрудничает_с(γ2) = {…};
……………………………. .
Здесь для простоты мы предполпгаем, что унарные (одноместные) предикаты Работник, Менеджер и Исследователь «жесткие», т.е. каждый имеет один и тот же экстенсионал для всех γГ. Но для бинарных предикатов подчинен и сотрудничает_с нет предположения «жесткости».
В практических приложениях, как и в человеческом общении, мы используем язык для того, чтобы ссылаться на элементы концептуализации. Например, чтобы выразить факт, что работник 110104675801 сотрудничает с работником 110104444303, мы должны ввести в соответствующем формальном языке L специальное имя отношения сотрудничает_с для обозначения данного концептуального отношения. В этом случае мы говорим, что язык L используется для онтологических установок для данной концептуализации.
Предположим теперь, что L – язык логики первого порядка с сигнатурой {110104675801, 110104444303, подчинен, сотрудничает_с}. Как мы можем быть уверены, что такие имена интерпретируются в соответствии с концептуализацией, которую мы намерены установить? Но в логике допустимы произвольные интерпретации сигнатуры в данном универсуме. Другим словами, когда мы делаем онтологические установки для данной концептуализации, мы должны быть уверены, что допустимыми будут только те модели, которые соответствуют нашим намерениям.
Проблема, однако, в том, что для определения допустимых экстенсионалов мы должны явно специфицировать данную концептуализацию, тогда как обычно концептуализация неявно представляется в сознании разработчика онтологии.
Здесь выявляется роль онтологии как «явной спецификации концептуализации». В принципе мы можем явно специфицировать концептуализацию двумя путями: экстенсионально и интенсионально. В наших примерах экстенсиональная спецификация данной концептуализации потребовала бы создания списков экстенсионалов каждого отношения в каждой точки соотнесения. Но это невозможно в большинстве случаев (например, в принципе когда бесконечны универсум U или множество Г точек соотнесения) или, по крайней мере, это весьма непрактично. Все-же в некоторых случаях имеет смысл частично специфицировать концептуализацию экстенсиональным образом посредством выписывания примеров и конрпримеров экстенсионалов в отдельных выбранных точек соотнесения, ссылающихся на стереотипические состояния. В общем случае, однако, более эффективный способ спецификации – фиксировать формальный язык и записать в нем ограничения на интерпретации интенсионально посредством аксиом, называемых в [Карнап, 1959] постулатами значения (meaning postulates). Например, можно написать простые аксиомы, утверждающие, что отношение подчинен асимметрично и интранзитивно, а отношение сотрудничает_с симметрично, иррефлексивно и симметрично.
Пример 1.4. В определении Грубера онтологии как «явной спецификации концептуализации» слово «явная» означает, что речь должна идти о конкретном символическом объекте. Рассматрим пример Дженесерета и Нильссона. Они анализируют ситуацию, где имеются две составленные из блоков башни (см. рис.1.2). Возможная концептуализация этой сцены дается следующей структурой:
({a, b, c, d, e}, {на, сверху, свободно, на_столе}),
где {a, b, c, d, e} – блоки, а {на, над, свободен, на_столе} – отношения между блоками, причем на и сверху – бинарные отношения, а свободен и на_столе – унарные отношения. Универсум U состоит из 9 объектов – пяти индивидных объектов a, b, c, d и четырех отношений на, сверху, свободно, на_столе. Эти отношения связывают объекты следующим образом:
FB1 = {на(a,b), на(b,c), на(d,c), на_столе(c), на_столе(e), свободно(a), свободно(d)}.
Здесь FB1 обозначает базу фактов, которая рассматривается как состояние предметной области. Другое состояние предметной области изображено на рис.1.3. Сосответствующей базой фактов является
FB2 = {на(b,c), на(a,d), на(d,e), на_столе(c), на_столе(e), свободно(a), свободно(b)}.
a
b d
c e
Рис.1.2
a
b d
c e
Рис.1.3
В кчаестве онтологии для рассматриваемой предметной области можно взять следующие предложения, записанные в языке модальной логики первого порядка:
О = {ху(на(х,у) → над(х,у),
хуz(на(х,у) /\ на(y,z) → ﬧ на(х,z)),
хуz(над(х,у) /\ над(y,z) → над(х,z)),
ху(на(х,у) → ﬧ на(х,у)),
у (на(х,у) → над(х,у)),
ху (на(х,у) → ﬧ свободен(у))
х (на_столе(х) →ﬧу над(х,у),
х (свободен(x) → <>y на(у,х))
}.
Эта онтология формализует следующее знание, представленное неформально (в есетественном языке):
• если объект х лежит на объекте у, то х находится сверху у;
• если х лежит на у и у лежит на z, то х лежит на z;
• если х лежит на у, то у не лежит на х;
• если х лежит на у, то х находится над у;
• если х лежит на у, то у не свободен;
• если х лежит на столе, то не существует объекта у, такого, что х находится над у.
• на объект х можно положить объект у только тогда, когда х свободен.
Замечание. Последнее предложение в онтологии О содержит модальный оператор возможности <>. Предложение это можно прочитать так:
• для любых объектов х и у, если х свободен, то возможно, что существует у такой, что у лежит на х. Это показывает важность модальных предложений для языков спецификации концептуализации.
В данном примере имеются две базы знаний, соотвествующие двум базам фактов:
KB1 = O U FB1 и KB2 = O U FB2.