Серия «Математика»
2012. Т. 5, № 4. С. 27-44
Онлайн-доступ к журналу: http://isu.ru/izvestia
УДК 510.62:004.82
Объектные теории над списочными надстройками *
А.А. Малых, А.В. Манцивода
Иркутский государственный университет
Аннотация. В работе исследуются возможности использования методов семантического программирования, основанных на теории наследственно-конечных списочных надстроек (GES), для логического моделирования объектно-ориентированного подхода в программировании. На основе GES нами строится формальная система, аналогичная объектной дескриптивной логике OODL, которая позволяет, в отличие от OODL, естественным образом моделировать такие важные понятия программирования как упорядоченные структуры данных (например, списки и массивы). Формальная система, которая определяется и исследуется в данной работе, может служить для построения логических семантик языков программирования, в частности, объектно-ориентированного языка Libretto.
Ключевые слова: дескриптивная логика, объектная теория, тип данных, объектно-ориентированное программирование, семантическое программирование, язык Libretto
В работе [1] нами рассматривается логический подход к объектноориентированному моделированию. Определяется дескриптивная логика ООЪС, которая служит логическим эквивалентом программистскому понятию объектно-ориентированных типов данных. На основе этой логики строится подход к построению логической семантики типов данных объектно-ориентированных языков программирования. Использование подобного логического формализма предоставляет большое количество возможностей. В частности, этот подход позволяет строго определять взаимодействие между объектно-ориентированным программным кодом и базами данных. Еще одной возможностью является
* Работа выполнена при финансовой поддержке Федеральной целевой программы "Научные и научно-педагогические кадры инновационной России"на 2009-2013 гг., государственные контракты 14.740.11.1001 от 23 мая 2011, 16.740.11.0137 от 01.09.2010
1. Введение
погружение типов данных языка программирования в структуры логических баз знаний, например, в рамках семантического веба. Это обеспечивает непосредственное использование информации из баз данных в процессе программирования. Имеются и другие интересные возможности. К сожалению, эксперименты с OODL показали, что дескриптивные логики не очень хорошо подходят для практического программирования. Например, в дескриптивных логиках существенно затруднено моделирование такого популярного инструмента, как упорядоченные коллекции элементов (массивы, списки и т.д.) Это резко снижает ценность дескриптивных логик как практического инструмента.
В работах [2, 3] был развит подход, который, в отличие от дескриптивных логик, использует упорядоченные структуры (списки) в качестве основных конструкторов данных. Это семантическое программирование, основанное на конструкции наследственно-конечных списочных надстроек. Использование списков вместо множеств позволяет получить более адекватный с точки зрения программирования формализм. На основе этого формализма можно строить довольно тонкие информационные модели, например, описывающие абстрактное понятие итератора.
В данной работе нами показано, что семантическое программирование может быть использовано для построения логических объектных моделей весьма естественным образом, сохраняя при этом преимущества теории GES, связанные с использованием упорядоченных структур данных. Результаты, излагаемые в работе, могут применяться как метод для описания семантики объектно-ориентированного языка Libretto [4], нацеленного на разработку приложений, работающих в распределенных информационных пространствах и включающего возможности для представления и обработки знаний в виде объектных моделей.
2. Объектные теории
Определим дескриптивную логику OODL [1]. Эта логика применяется для построения логических моделей хранилищ данных и знаний, представленных в объектно-ориентированном стиле. Язык OODL включает имена концептов Ci, имена ролей Ri, имена доменов Di, имена объектов Oi, логические константы Т и ± и квантор всеобщности УТ-F, где Т - роль или атрибут, а F - либо атомарный концепт, либо имя типа данных из D. Кроме того, в OODL включаются
- инверсные роли при кванторах всеобщности: УТ- .F, где Т - либо роль, либо атрибут, а F - либо атомарный концепт, либо имя типа данных;
- кардинальности > n.T и < n.T, где n <Е No, а Т - либо роль, либо атрибут, либо инверсия роли/атрибута.
- имена объектов о, o', ol, о2,...
Определение 1. Выражениями логики OODL являются: Концепты вида
C, Т, ±, W.F, УТ-.F, > п.Т, < п.Т
где С - имя концепта, Е - произвольный концепт, Т - свойство (роль или атрибут).
Терминологические аксиомы вида Е1 Ц Е2, где Е1,Е2 - концепты. Фактологические аксиомы (факты) С (о),Я(о,о'),Р(о^), где С, Я, Р - имена концепта, роли и атрибута, соответственно, о, о1
- имена объектов, V - элемент типа данных.
Определим интерпретацию I конструкций ООЪС. Выражения ООТ>С интерпретируются на множестве объектов А, причем имена объектов оI интерпретируются как элементы основного множества о1 € А, концепты - как подмножества Е1 С А, роли и атрибуты - как подмножества декартовых произведений Я1 С А х А и Р1 С А XV, соответственно. Интерпретация I выражений OOVС на множестве объектов А должна удовлетворять правилам, представленным на рис. 1.
Обратим внимание на то, что с помощью кардинальности можно выразить неограниченный квантор существования 3:
Данный концепт выделяет все объекты, у которых существуют значения свойства Я. Он эквивалентен выражению 3Я.Т в более богатых логиках, чем OOVС, в частности, в логике БНОТМ(О) [8].
Определим понятие объектной теории [1]. В качестве терминологических аксиом объектных теорий могут выступать только аксиомы определенных видов, а именно:
Определение 2. [1] Объектной теорией O логики OODL в словаре W = {C, R, P, O) назовем непротиворечивую теорию, ТВох которой состоит из конечного множества аксиом наследования, домена, ранга, max- и min-кардинальности, удовлетворяющую следующим условиям:
1) множество аксиом наследования в O ациклично;
C Ц > п.Т CC <п.Т
Cl Ц C2 3 Т Ц C 3 Т- Ц C
(аксиома наследования) (аксиома домена) (аксиома ранга) (аксиома шт-кардинальности) (аксиома шах-кардинальности)
Семантика концептов:
Концепт Пример Семантика
C Woman CI СА
<T.F VhasChild.Woman {x {y \{x,y)єTI}CFI}
<T -.F VhasChild- .Man {x {y \ {y, x) є TI }CFI}
> n.T > l.hasChild {x II{y \ {x, y) Є TI}||> n}
< n.T < 2.hasChild {x II{y \ {x, y) Є TI}||< n}
Т T TI = А
yhasChild.± = 0
Семантика аксиом:
Аксиома Пример Семантика
Fi С F2 Girl Ц Female FiI С F2I
C(o) Woman(Marie) oI є CI
R(o, o') hasChild(Marie, John) {oIo) є RI,RI С А x А
P(o, v) Age(Marie, 25) {oI,vI) є PI,PI С А xD
Рис. 1. Семантика конструкций логики OODL
2) каждое свойство Т е (КиТ) обладает в О ровно одной аксиомой домена и ровно одной аксиомой ранга.
Объектные теории развивают идею ОО-проекций [14] как логических эквивалентов понятия объектной (объектно-ориентированной) модели в информационных системах и языках программирования. В частности, именованные концепты моделируют классы, элементы множества О -объекты, поля которых представляются свойствами (ролями и атрибутами). Аксиомы наследования моделируют механизмы наследования в объектных моделях, аксиомы домена и ранга привязывают свойства к классам и определяют их тип, аксиомы кардинальности регулируют количество (в частности, позволяя, хотя и грубо, моделировать такие понятия, как массивы и списки). В [1] представлено подробное обсуждение этих вопросов. Там же показано, что для любой ОО-проекции можно построить эквивалентную ей объектную теорию.
3. Объектные теории в логике первого порядка
Как уже отмечалось выше дескриптивные логики обладают рядом особенностей, которые при решении многих задач превращаются в серьезные недостатки, наиболее ярким примером которых является отсутствие порядка на значениях свойств. Этот и следующие пункты работы посвящены переводу объектных теорий, определенных выше, в эквивалентные конструкции теории списочных надстроек [2] - логической системы, где возникающие в дескриптивных логиках проблемы решаются легко и естественно. Наш план состоит в переводе объектных теорий на язык логики первого порядка с последующим моделированием совокупностей значений свойств объектов элементами списочной алгебры. Сначала будет построен «наивный» вариант на основе плоских (линейных) списков, а затем более реальная версия - на основе итераторов, семантика которых может быть описана на языке GES.
Определим
п+1
З^хР (Х,у) ^ 4x1 ...УХп4Хи+1.(/\ F (хг, у ) ^ V хг = хз)
г=1 1<г<з<п+1
п
3>пх.Г(х, у) ^ 3х1... Зхп. (Л Р(хг, у) Л Д хг = х^)
г=1 l<i<j<n
Основные аксиомы объектных теорий имеют следующие эквиваленты в логике первого порядка:
Аксиома ДЛ ЛПП
наследование Сі п С2 Ух.(С1(х) ^ С2(х))
домен ЗТ п Сл УхУу.(Т(х,у) ^ Са(х))
ранг зт- п Сг УхУу.(Т (х,у) ^ С г (у))
шіп-кардинальность С а П> п.Т Ух.(Са(х) 3>пу.Т (х,у))
тах-кардинальность С а П< п.Т Ух.(Са(х) 3<пу.Т (х,у))
В данном подходе совокупность объектов, удовлетворяющих определенному свойству, формируется опосредованно - через совокупность фактов. Например, можно определить структуру книги
Ьоок(Ершов_Теория_Нумераций)
chapter(Выч_нумерации) chapter(Категория_нум_множ)
chapter(m-сводимость) chapter(Выч_функционалы)
has_chapter(Ершов_Теория_Нумераций, Выч_нумерации) has_chapter(Ершов_Теория_Нумераций, Категория_нум_множ) ^Т)
has_chapter(Ершов_Теория_Нумераций, т-сводимость) has_chapter(Ершов_Теория_Нумераций, Выч_функционалы)
Определение (NT) неявно формирует множество глав книги
{Выч_нумерации, Категория_нум_множ,
т-сводимость, Выч_функционалы}
Очевидным недостатком данного определения является то, что главы книги в данной формализации явно не упорядочены, что не соответствует сути предметной области - главы в книге всегда находятся в определенной последовательности. В информационных задачах такие упорядочения возникают сплошь и рядом, поэтому отсутствие адекватных логических инструментов является очень существенным недостатком формализмов. Конечно, в тексте определения, представленного выше, порядок существует, но он является внелогическим, поскольку математически аксиомы составляют неупорядоченное множество. Отсутствие возможности упорядочения в базовых механизмах приводит к необходимости использовать для этих целей внелогические конструкции. Например, в языке пролог порядок вхождения фактов в программу объявляется существенным с точки зрения фиксированной стратегии. В реляционных базах данных порядок вводится явно, например, через использование натурального ряда. Такой подход соответствует следующему варианту определения глав:
has_chapter(Ершов_Теория_Нумераций, Выч_нумерации, 1) has_chapter(Ершов_Теория_Нумераций, Категория_нум_множ, 2) has_chapter(Ершов_Теория_Нумераций, т-сводимость, 3) has_chapter(Ершов_Теория_Нумераций, Выч_функционалы, 4)
Очевидная ущербность такого решения состоит в том, что, во-первых, оно опирается не на общую логическую семантику, а на конкретную интерпретацию конкретного предиката, во-вторых, что порядок строится опосредовано - через имеющийся порядок в натуральных числах, и, в-третьих, что не имеется общего подхода к упорядочиванию - в каждой модели приходится придумывать самодеятельные инструменты.
Отметим, что для дескриптивных логик подобное решение вообще невозможно, поскольку превращает роли и атрибуты из двуместных в трехместные, что формально невозможно и ломает всю структуру дескриптивной логики. Данный краткий анализ, очевидно, приводит к следующему выводу: упорядочения важны в информационных моделях, и поэтому должны включаться в ядро логик, на базе которых информационные модели строятся.
4. Теория GES
Задача построения такого формализма решена в работах [2][3]. В них развита теория списочных надстроек (теория GES), которая основана на идее построения теории моделей для одного из классических типов данных - списка. Поскольку объекты в списках упорядочены, то их использование позволяет явно определять порядок на элементах. В отдельной работе, находящейся сейчас в печати, на основе списочных надстроек нами была описана теоретико-модельная семантика еще одного классического типа данных - итераторов. Именно итераторы как списки специального вида будут использоваться нами для реорганизации объектных теорий, позволяющих включить в них упорядоченные системы объектов.
Модели теории GES двусортные, состоящие из базового множества S и списочной надстройки над этим множеством Is. Сорта базового множества и списочной надстройки будем обозначать а и і, соответственно. Через іа будем обозначать сорт всех элементов. Выражение e : т означает, что объект e принадлежит сорту т. С помощью r, возможно с индексами, будем обозначать списки (то есть, r і і). Элементы сорта а обозачаем через v. Произвольные элементы (сорта іа) обозначаются с помощью e. Сигнатура GES: {nil, cons, head, tail, є, С, S} (все элементы S считаются выделенными), причем сорта данных функциональных и предикатных символов определяются следующим образом:
nil і і
cons і іа х і ^ і head і і ^ іа tail і і і Є : іа х і С : і х і
(пустой список)
(операция добавления элемента к списку) (взятие головы списка)
(взятие хвоста списка)
(принадлежность элемента списку) (подсписок)
Стандартно обозначим x = у ^ — x = у. Сформулируем аксиомы теории GES, которые выполняются для любых г, г', ri, Г2, гз : i, e, e' : ia и любой формулы F.
AE: Аксиомы пустого списка — e Е nil, nil С г
AU: Аксиомы единственности cons(e, г) = cons(e/, г') ^ г = г'Ae = е'
AO: Аксиомы списочных операций:
head(nil) = nil tail(nil) = nil
head(cons(e, г)) = e tail(cons(e, г)) = г
г = nil cons(head^), tail(^) = г e Е г A г С г' e Е г'
AN: Аксиомы равнообъемности:
г1 = г2 ^ (Угз С г1 )(гз С г2 A (гз = г2 V гз = г1) ^
^ (3e Е г1)(cons(e, гз) С г1 A cons(e, гз) С г2)
AN: Аксиомы для Е: e Е cons(e', г) ^ (e = e' V e Е г)
AS: Аксиомы для С: г С cons(e, г') ^ (г С г' V г = cons(e, г'))
AI: Аксиома S-индукции (F | %п A Vг.Ve.(F| % ^ FiXons(e,r))) ^ Уг^ I %
AF: Аксиома S-фундируемости V^(Ve Е г.F | % ^ F | %) ^ Ve.F | %
Определение 3. Пусть S и I - множества, S П I = 9, на которых определена константы nil е I, а также операции cons, head, tail, е и С таким образом, что аксиомы AE-AF выполняются. Тогда I называется списочной надстройкой над S, а двусортная модель
L = (S,I; nil, cons, head, tail, Е, С),
называется списочной алгеброй.
Определение 4. Пусть S - множество сорта а. Тогда стандартной списочной надстройкой Is (сорта i) над S назовем минимальное множество, удовлетворяющее следующим условиям:
— пустой список nil е Is;
— если г е Is и e Е S U Is, то cons(e, г) е Is.
Стандартной списочной алгеброй назовем списочную алгебру над множеством S, в качестве списочной надстройки которой выступает стандартная списочная надстройка.
В дальнейшем будем использовать для списков стандартное скобочное представление:
cons(e1, cons(e2, ... cons (em, nil)...) = (e1 , ... em)
например, cons(cons(1, cons(2, nil)), cons(3, nil)) = ((1, 2), 3).
Еще одна особенность GES, почерпнутая из теории наследственно конечных множеств [5], состоит в том, что если в теории GES индуктивно (рекурсивно) определяется некоторая функция f (с помощью S-формул), то можно построить такую S-формулу, которая определяет f без индукции. Это верно как для индукции по оператору cons (теорема 1 в [9]), так и по индукции в глубину списка (переход от подсписков к списку) [11]. Данная особенность делает GES очень мощным инструментом для описания, например, абстрактных рекурсивных типов данных, поскольку семантика неподвижной точки оказывается в GES формульно выразимой, а рекурсивные определения - консервативным расширением базового формализма. В частности, это касается операции конкатенации двух списков conc : i х i ^ i:
AC: Аксиома, определяющая conc:
conc(ri, r2) = Гз ^
(r 1 = nil ^ Г2 = Гз) Л
(r1 = cons(e, ri) ^ гз = cons(e, conc(r1, r2)))
Также легко доказывается, что conc является ассоциативной операцией, а алгебра {Is; nil, conc) является моноидом с единицей nil.
В заключение пункта введем два полезных логических сокращения:
list(x) ^ x = nil V 3e3r. x = cons(e, r) if P then Q else R ^ (P ^ Q) Л (-P ^ R)
Первое сокращение показывает, что понятие списка выразимо в GES. Второе позволяет представлять в читабельном виде формулы с условными выражениями.
б. «Наивный» вариант: линейные списки
Используя теорию GES, мы можем реализовать основную идею данной работы, связанную с явным формированием совокупности значений свойств и упорядочиванием значения внутри этих совокупностей. Это можно сделать заменой неявно определенных множеств значений свойств на явные списки с использованием ограниченной квантификации по спискам. В частности, описание (NT) может быть перестроено. Для этого определим тип предиката has_chapter как а х і и заменим факты для has_chapter на
has_chapter(Ершов_Теория_Нумераций, (Выч_нумерации,
Категория_нум_множ, m-сводимость, Выч_функционалы) )
Для представления совокупностей значений достаточно использовать линейные списки, т. е. те списки, элементы которых являются праэлементами из базового множества S. Свойство линейности списка выразимо в GES:
linear(r) ^ list(r) Л Ve.(e Є г ^ -ilist(e))
Легко показать, что операции tail и conc, возвращающие в качестве результата списки, замкнуты относительно множества линейных списков. Теория линейных списков в контексте списочных надстроек подробно рассматривается в [І0].
Определим объектные теории в списочной алгебре. Введем следующие определения:
Аксиома OODL Списочные надстройки
наследование Ci С C2 Vx.(C1(x) ^ C2(x))
домен IT С Cd VxVr.(T(x, r) ^ CD(x))
ранг IT— С Cr VxVr.(T(x, r) ^ CR(r))
min-кардинальность C С> n.T VxVr.(C(x) Л T(x, r) ^ minn(r))
шах-кардинальность C С< n.T VxVr.(C(x) Л T(x, r) ^ maxn(r))
Рис. 2. Выразимость аксиом объектных теорий формулами ЛПП
C*(r) ^ Vx.(x є r ^ C(x)) maxn(r) ^ tail(... tail(r) ...) = nil
ч ^
V
n
minn(r) ^ tail(... tail(r) ...) = nil
ч ^
V
n— 1
Отметим, что в последних двух определениях термы слева от равенства и неравенства могут содержать несколько вхождений одного и того же элемента. Это соответствует семантике не множеств, а мультимножеств, и значительно ближе к практике, поскольку и списки, и массивы могут содержать множественные вхождения одного и того же значения.
Основные аксиомы объектных теорий на языке списочной надстройки выглядят так, как это представлено на рис. 2. Пусть О -объектная теория в OODL. Обозначим через (О - теорию на языке GES, полученную следующим образом:
1) Включим в сигнатуру О сигнатуру теории GES.
2) Каждый символ объекта из О включим как константу в сигнатуру
(О.
3) Для каждого символа концепта C из О включим в сигнатуру О символ одноместного предиката C, имеющего тип а.
4) Для каждой роли и атрибута T из О включим в сигнатуру О символ двуместного предиката T, имеющего тип а х і.
5) Для каждой объектной аксиомы A є О включим в О аксиому A, полученную из A по соответствующему правилу из рис. 2.
Теорема 1. OODL Ь F тогда и только тогда, когда GES + О Ь F.
Доказательство. Утверждение доказывается рутинной проверкой эквивалентности теоретико-множественной семантики аксиомы OODL и семантики соответствующего варианта из логики первого порядка. OODL, очевидно, является разрешимой логикой (с табличным алгоритмом в качестве разрешающей процедуры [12]). Упорядочение значений свойств в виде линейных списков задает стратегию доказательства (последовательность перебора элементов) при проверке выводимости формулы из объектной теории.
6. «Реальный» вариант: итераторы
Семантика, основанная на линейных списках, прозрачна и понятна для понимания. К сожалению, эта семантика не соответствует механизмам, действующим в реальной работе, например, в программах на языке Libretto. Реальная модель работы списков в рамках вычислений значительно сложнее элементарной схемы, основанной на линейных списках. Дело в том, что в реальной обстановке в дело вмешиваются следующие процедурные особенности исполнения программ: ленивые вычисления, возможность параллельной обработки и возможность совместного доступа к объектам. В процессе последовательной обработки элементов списка, сам этот список может меняться. Это резко усложняет процедурную семантику, делая линейные списки неадекватным методом построения соответствующих моделей. Значительно более точным инструментом для построения этих моделей являются объекты абстрактного типа данных «итератор», семантика которых как списков, обладающих специальным поведением, хорошо описывается средствами теории GES (этому посвящена отдельная работа авторов, находящаяся сейчас в печати).
Вместо линейных списков используются элементы итераторной алгебры
Им = (Mcj,ItM; nil, ♦, get, next, hasNext, abv, abn) (6.1)
которая строится на базе списочной алгебры введением выделенного элемента ♦, обозначающего «останов» итератора и определение функций get, next, abv, abn и отношения hasNext, которые мы называем итераторными функциями и отношением:
get(r) - функция, получающая текущий элемент итератора г; next(r) - функция перехода к следующему элементу г; hasNext (г) - истинно, если можно у r получить значение; abn(r, r') - (add-by-name) добавление к r итератора r' по имени; abv(r, r') - (add-by-value) добавление r' к r по значению.
В отличие от стандартных функций head и tail функции get и next работают с элементами базового множества праэлементов, например,
get((((1, 2), 3), 4)) = 1 head((((1, 2), 3), 4)) = ((1, 2), 3)
next((((1, 2), 3), 4)) = (((2), 3), 4) tail((((1, 2), 3), 4)) = (4)
и кроме того, специальным образом обрабатывают символ останова ♦. Функции abn и abv добавляют новые элементы к итератору. Все эти функции и отношение индуктивно определимы в GES, а значит в силу S-определимости представляют собой консервативное расширение базового формализма. Например, функция get определяется следующим образом:
IG Аксиома для get:
get(cons(e, r)) = e ^ if list(e) then (
if (♦ = get(e)) then e' = get(r) else e' = get(e) ) else e' = e
Здесь void определяется так: void(r) ^ Vvv G r.
7. Итераторные объектные модели
Выше были представлены два формализма:
1) теории в OODL - задают логические структуры, ведущие себя как объектные модели;
2) итераторные алгебры - описывают в терминах семантического программирования понятие и поведение итераторов.
Поведение Libretto описывается как сочетание этих двух формализмов
- это итераторный язык, действующий на объектных моделях с множественным наследованием. В данном пункте будет показано, как эти формализмы взаимодействуют друг с другом. Для этого мы построим понятие итераторных объектных моделей, воспользовавшись тем, что описание предметных областей оо-проекциями изоморфно системе типов данных языка программирования с множественным наследованием
[14].
Строительство итераторных объектных моделей будем проводить последовательным расширением итераторных алгебр конструкциями, взятыми из оо-проекций.
Как отмечалось в пункте 2, базовым материалом для построения объектов и модели в целом является некоторая фиксированная область данных:
D = (Vl,..., Dk; ^)
С помощью этого материала строятся объекты - основные обитатели итераторных объектных моделей. Каждый объект может принадлежать одному или нескольким классам. Классы могут определяться с помощью одноместных предикатов, выделяющих их элементы. Кроме того, объекты обладают свойствами. Свойства бывают двух типов
- о-свойства (роли), образующие связи объектов с другими объектами, и т-свойства (атрибуты), привязывающие к объектам некоторые значения типов данных, рассматриваемые как характеристики этих объектов. В соответствии с определением оо-проекций в общем случае свойство объекта может принимать произвольное конечное число значений. Особенность языка Libretto состоит в том, что он интерпретирует эти последовательности значений как итераторы. Таким образом, в качестве значений объектов служат итераторы, и поскольку свойства бывают двух типов, то и итераторы также должны быть двух типов -генерирующие последовательности объектов (для о-свойств), и генерирующие последовательности данных (для т-свойств). В первом случае мы говорим об о-итераторах, а во втором - о т-итераторах. Смешение этих двух типов в Libretto запрещено. Это означает, в частности, что невозможно применить к итераторам разных типов операцию cons.
Напомним также, что области определения и области значений свойств в оо-проекциях типизированы (с помощью оператора типизации в). Типизация подчиняется иерархиям по наследованию. В частности, для т-свойств используется простая двухуровневая иерархия:
V
п
где
V = VI и... иvk
Одноместные предикатные символы ..., Вк интерпретируются как
предикаты, выделяющие соответствующий тип данных. Если же т-свой-ство типизируется с помощью В, то это означает, что в качестве его значений могут выступать любые данные из V (но не объекты!).
В то время, как иерархия типов данных фиксирована, иерархия классов полностью зависит от описываемой предметной области. В оо-проекциях иерархия классов строится с помощью оо-определений
вида
С Ц С1 П ...П С/ П УК1.Б1 П ...П УБд .Ед П УР1.Б'1 П ... П УРь.В'н
где С - определяемый класс (концепт), С1,...,С/ - надклассы С, а
В,..., е {Б1,..., Бк}. Исходя из правил перехода, представленных в таблице на рис. 1, данное определение будет эквивалентно следующей формуле логики первого порядка:
АМ: Классовые аксиомы
С(х) ^ С1(х) Л ... Л С/(х)Л
д ь
Д Уу.(Щ(х, у) ^ Бг(у)) Л Д Уу.(рг(х, у) ^ Вг(у))
г=1 г=1
Каждому концепту Сг в дескриптивной логике соответствует одноместный предикат Сг(-), а каждому о-свойству Кг и т-свойству Рг соответствуют двуместные предикаты Кг(-, •) и Рг(•, •), соответственно.
Будем говорить, что С определен классовой аксиомой АМ. Так же, как и в определении оо-проекции, будем говорить, что в данной аксиоме С непосредственно наследует от С1,...,С/. Пусть А = {Л-\^,. ..,Л8} - множество классовых аксиом вида АМ. Понятие наследования в А определяется как транзитивное замыкание непосредственного наследования. Система аксиом А называется ацикличной, если ни один определяемый этой системой класс С не наследует сам от себя. А называется замкнутой, если каждый класс, имя которого встречается в А, определен ровно одной классовой аксиомой.
Определение 5. Система классовых аксиом А = {Л]_, . ..,Л3} называется корректной, если выполняются следующие условия:
- А - ацикличная;
- А - замкнутая;
- имя каждого о- и т-свойства входит в систему А ровно один 'раз.
Словарем системы А назовем четверку (С, Я, V, V), где С = {С]_,...,Сг}, Я = {К1,...,Кт}, V = {Р1,...,Рп} - множества имен классов, о- и т-свойств, встречающихся в системе А, соответственно, а предикатные символы V = {В1,...,В} предназначены для предикатов, выделяющих соответствующие типы данных.
Определение 6. Пусть А - корректная система классовых аксиом со словарем № = (С, Я, V), О - некоторое конечное множество, называемое множеством объектов. Тогда объектной моделью над А назовем четырехсортную модель вида:
М = (V, Тх>, 0,1о; пП, ♦, сопс, get, пех'Ь, №)
такую, что
1) D = Di U ... UVk U {♦};
2) Id и Io - множества итераторов над D и O, соответственно;
3) O = {oi, ...,on, ♦} - конечное множество такое, что O = {0};
4) Символы C Е C, R Е R и Ре P имеют типы ш, ш х ш и ш х i5, соответственно, где ш - сорт основного множества O, 5 - сорт объединенного основного множества D, а i5 и 1ш - сорта итератов для сортов 5 и ш, соответственно.
5) M |= A.
6) (D,Id; conc, get, next) и (O,Io; conc, get, next) являются итераторными алгебрами.
Пункт 4 определения говорит о том, что для любого символа C Е C, его интерпретация C M в модели M должна удовлетворять CM С O. Аналогично для символов R Е R и P Е P: PM С O х Id и RM С O х Io . Таким образом, Ci выделяют в множестве объектов классы, а Pi и Ri привязывают к объектам итераторы, содержащие значения свойств.
Замечание 1. Обратите внимание на то, что, как это и требовалось нами выше, в объектной модели M отсутствуют итераторы, в которых смешаны объекты и элементы типов данных. В частности, отсутствуют конкатенации вида conc(ri, r2), если ri Е Id и r2 Е Io.
Пример 1. Построим пример объектной итераторной модели, описывающий некоторые отношения между людьми. Словарь модели:
C = {Mammal, Female, Male, Person, Man, Woman},
R = {has-child}
P = {age, name}
O = {Ann, Marie, Tom}
D = Dstring}
Система объектных аксиом A:
Mammal(x) ^ Vy.(age(x, y) ^ Dint(y)) Л Vy.(has-child(x, y) ^ Mammal(y)) Female(x) Mammal(x)
Male(x) ^ Mammal(x)
Person(x) ^ Vy.(name(x,y) ^ Dstring(y))
Woman(x) Person(x) Л Female(x)
Man(x) ^ Person(x) Л Male(x)
Конкретная информация об объектах - следующие атомарные формулы истинны в модели:
Woman(Ann)
Woman(Marie)
Man(Tom) age(Ann, (23)) age(Tom, (3)) has-child(Ann, (Marie, Tom))
Легко проверяется, что данная модель удовлетворяет условиям определения 6. Итераторы, определяющие значения свойств, даны в скобочном синтаксисе. Из модели следует, что у Анны двое детей, поскольку в качестве значения свойства has-child указан двухэлементный итератор. Заметим, что классы Man и Woman определяются через множественное наследование от двух классов каждый. □
Замечание 2. Строгая типизация предикатов позволяет нам опускать угловые скобки итераторов, когда в них находится один элемент. Например, вместо age(Ann, (23)) будем писать age(Ann, 23) понимая второй аргумент как одноэлементный итератор. В Libretto также работает это соглашение.
Пусть K = TBox U ABox - некоторая оо-проекция. Определим на K отображение T(■), переводящее множества формул дескриптивной логики в множества формул первого порядка того же словаря в соответствии с правилами из таблицы на рис. 1, плюс следующее правило, объединяющее в один итератор все значения, относящиеся к свойству объекта:
Правило Q. Если для некоторого объекта o множество {e1,..., em} содержит все значения такие, что prop(o, ei) Е ABox для некорого свойства prop, то
T ({prop(o, ei),.. . , prop(o, em)}) = prop(o, (ei,..., em)).
Теорема 2. Если K = TBox U ABox - оо-проекция, то существует модель M, M |= T(K), являющаяся итераторной объектной моделью.
Доказательство. Доказательство леммы проводится построением M из материала, предоставляемого K. То, что M является объектной моделью в соответствии с определением 6, следует из следующих наблюдений:
1) TBox оо-проекции переводится в набор аксиом вида АМ, которые являются корректной системой аксиом A для модели M.
2) Элементы АВох, переводимые в атомарные формулы с помощью правила Q, не могут содержать итераторов, в которых смешиваются объекты и типы данных. Это обеспечивается строгим разделением свойств на о-свойства и т-свойства. Поэтому любой сгенерированный итератор попадает либо в множество Іо, либо в множество Ір модели М.
Следующее утверждение обосновывает существенное для нас качество итераторных объектных моделей, а именно, эквивалентность их поведения поведению оо-проекций.
Теорема 3. Пусть К = ТВох и АВох - некоторая оо-проекция, тогда существует итераторная объектная модель М теории Т(К) такая, что для любой БНОХМ(Б)-формулы Е
К = Е тогда и только тогда, когда М = Т(Е)
Доказательство. На основе теоремы 2 строится свободная объектная модель, соответствующая оо-проекции К. И необходимость, и достаточность утверждения доказывается индукцией по определению семантики дескриптивных формул. Сначала рассматривается случай, когда длина всех итераторов в определениях объектов не больше 1. В этом случае результат получается без использования теории GES - только на основании базового описания семантики формул дескриптивной логики через формулы логики первого порядка. Это описание представлено в таблице на рис. 1 (см также пп. 2.2.1.3 и 4.2 книги [12])). Случай произвольных итераторов рассматривается индукцией по их длине с применением аксиомы индукции АІ.
Список литературы
1. Малых А. А. Объектно-ориентированная дескриптивная логика / А. А. Малых, А. В. Манцивода // Изв. Иркут. гос. ун-та. Сер. Математика. - № 1. -2011. - С. 57-72.
2. Гончаров С. С. ^-программирование / С. С. Гончаров, Д. И. Свириденко // Логико-математические проблемы МОЗ. - Новосибирск, 1985. - С. 3-29. -(Вычислительные системы ; вып. 107).
3. Ershov Yu. L. Semantic Programming / Yu. L. Ershov, S. S. Goncharov, D. I. Sviridenko // Information processing, Proc. IFIP 10th World Comput. Congress, Dublin. - 1986. - Vol. 10. - P. 1093-1100.
4. Object-oriented Programming Language Libretto [Electronic resource]. - URL: http://librettolang.org.
5. Барвайс Дж. Справочная книга по математической логике. Ч. 1 / Дж. Бар-вайс. - М. : Наука, 1982. - 392 с.
6. Кокорин А. И. Линейно упорядоченные группы / А. И. Кокорин, В. М. Ко-пытов. - M. : Наука, 1972. - 200 с.
7. Malykh A. A Query Language for Logic Architectures / A. Malykh, A. Mantsivoda // Proceedings of 7th International Conference "Perspectives of System Informatics". - Springer-Verlag Berlin Heidelberg, Lecture Notes in Computer Science. - 2010. - Vol. 5947. - P. 294-305.
8. Horrocks I. Reducing OWL entailment to description logic satisfiability / I. Horrocks, P. F. Patel-Schneider // Fensel D., Sycara K. and Mylopoulos J. (eds.). Proc. of the 2003 International Semantic Web Conference (ISWC 2003), number 2870 in Lecture Notes in Computer Science, 17-29. Springer.
9. Гончаров С. С. Замечание об аксиомах списочной надстройки GES / С. С. Гончаров // Логические вопросы теории типов данных. - Новосибирск, 1986. -С. 11-15. - (Вычислительные системы ; вып. 114).
10. Гончаров С. С. Теория списков и ее модели / С. С. Гончаров // Логические вопросы теории типов данных. - Новосибирск, 1986. - С. 84-95. -(Вычислительные системы ; вып. 114).
11. Гаврюшкина А. А. Теория списков и E-определимость / А. А. Гаврюшкина // Изв. Иркут. гос. ун-та. Сер. Математика. - 2011. - № 4. С. 27-38.
12. The Description Logic Handbook: Theory, Implementation, Applications / F. Baader, D. Calvanese , D. L. McGuinness, D. Nardi, P. F. Patel-Schneider. - Cambridge, 2003. - 574 р.
13. Schmidt-Schauss M. Attributive concept descriptions with complements / M. Schmidt-Schauss, G. Smolka // Artificial Intelligence. - 1991. - Vol. 48. -P. 1-26.
14. Малых А. А. Логические архитектуры и объектно-ориентированный подход / А. А. Малых, А. В. Манцивода, В. С. Ульянов // Вестн. НГУ. Сер. Математика, механика, информатика. - 2009. - Т. 9, № 3. - С. 64-85.
15. The Semantic Web [Electronic resource]. - URL: http://www.w3.org/2001/sw.
16. The NCBI Entrez Taxonomy [Electronic resource]. - URL: http://www.ncbi.nlm.nih.gov/sites/entrez?db=taxonomy.
17. Web Ontology Language (OWL) [Electronic resource]. - URL: www.w3.org/2004/0WL.
18. Berners-Lee T. The Semantic Web / T. Berners-Lee, J. Hendler , O. Lassila // Scientific American. - 2001. - Vol. 5. - P. 34-43.
A. Malykh, A. Mantsivoda
Object Theories over List Superstructures
Abstract. In this paper the potential of semantic programming methods based on the theory of hereditarily finite list superstructures (GES) for the logical simulation of the object-oriented approach is considered and estimated. Based on GES, we develop a formal system, which is analogous to the description logic OODL, but in contrast with OODL, it allows the natural simulation of ordered data structures (e.g. lists and arrays). The formal system, which is introduced and investigated in this paper, can help for the development of the logical semantics of programming languages, in particular, the object-oriented programming language Libretto.
Keywords: description logic, object theory, datatype, object-oriented programming, semantic programming, Libretto
Малых Антон Александрович, Институт математики, экономики и информатики, Иркутский государственный университет, 664003, Иркутск, ул. К. Маркса, 1 тел.: (3952)242210 ([email protected])
Манцивода Андрей Валерьевич, Институт математики, экономики и информатики, Иркутский государственный университет, 664003, Иркутск, ул. К. Маркса, 1 тел.: (3952)242210 ([email protected])
Anton Malykh, Irkutsk State University, 1, K. Marks St., Irkutsk, 664003 Phone: (3952)242210 ([email protected])
Andrei Mantsivoda, Irkutsk State University, 1, K. Marks St., Irkutsk, 664003 Phone: (3952)242210 ([email protected])