Научная статья на тему 'Документное моделирование'

Документное моделирование Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
294
31
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЛОКАЛЬНО ПРОСТАЯ МОДЕЛЬ / ДОКУМЕНТНАЯ МОДЕЛЬ / СЕМАНТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ / LOCALLY SIMPLE MODEL / DOCUMENT MODEL / SEMANTIC PROGRAMMING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Малых Антон Александрович, Манцивода Андрей Валерьевич

Рассматривается концепция локально-простых моделей. Локально-простые модели это сколь угодно сложные модели, выстроенные из относительно простых компонент. Очень много практически значимых предметных областей описываются как локально-простые модели, например, бизнес-модели предприятий и компаний. До сих пор исследования в области автоматизации человеческих рассуждений в основном концентрировались вокруг наиболее интеллектуально насыщенных занятий, в частности, автоматизации доказательства математических теорем. Но, например, модель ритейлера формируется из «рабочих мест», на каждом из которых решаются намного более простые и относительно легко автоматизируемые интеллектуальные задачи. При этом сама модель ритейлера как целостная система исключительно сложна. В данной работе предлагается вариант математического определения концептуального понятия локально-простой модели. Это определение ориентировано на работу в самых разных предметных областях. Поэтому нам важно учесть и перцептивную, психологическую составляющую. Логика элитарна, и если мы хотим, чтобы максимально широкий круг людей работал с нашими моделями, необходимо спрятать эту элитарность за метафорой, привычной «обычным» людям. В качестве такой метафоры мы используем концепт документа, поэтому наши локально-простые модели называются документными моделями. Документные модели строятся в парадигме семантического программирования. Это позволяет достигнуть еще одного важного качества документные модели являются исполняемыми. Исполняемые модели это такие модели, которые могут действовать как практические информационные системы в описываемой предметной области. Таким образом, если наша модель исполняемая, то этап программирования становится ненужным. Использование модели напрямую, вместо программного кода, дает очень важные преимущества, например резкое снижение стоимости разработки информационной системы. Кроме того, поскольку модель остается нетронутой, незакодированной в программных модулях, ею непосредственно могут пользоваться средства искусственного интеллекта, в частности, машинного обучения. Это существенно расширяет возможности для автоматизации и роботизации управленческой деятельности.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Document Modeling

In this paper, the concept of locally simple models is considered. Locally simple models are arbitrarily complex models built from relatively simple components. A lot of practically important domains of discourse can be described as locally simple models, for example, business models of enterprises and companies. Up to now, research in human reasoning automation has been mainly concentrated around the most intellectually intensive activities, such as automated theorem proving. On the other hand, the retailer business model is formed from ”jobs”, and each ”job” can be modelled and automated more or less easily. At the same time, the whole retailer model as an integrated system is extremely complex. In this paper, we offer a variant of the mathematical definition of a locally simple model. This definition is intended for modelling a wide range of domains. Therefore, we also must take into account the perceptual and psychological issues. Logic is elitist, and if we want to attract to our models as many people as possible, we need to hide this elitism behind some metaphor, to which ’ordinary’ people are accustomed. As such a metaphor, we use the concept of a document, so our locally simple models are called document models. Document models are built in the paradigm of semantic programming. This allows us to achieve another important goal to make the documentary models executable. Executable models are models that can act as practical information systems in the described domain of discourse. Thus, if our model is executable, then programming becomes redundant. The direct use of a model, instead of its programming coding, brings important advantages, for example, a drastic cost reduction for development and maintenance. Moreover, since the model is well and sound, and not dissolved within programming modules, we can directly apply AI tools, in particular, machine learning. This significantly expands the possibilities for automation and robotization of management and control activities.

Текст научной работы на тему «Документное моделирование»

Онлайн-доступ к журналу: http://mathizv.isu.ru

Серия «Математика»

2017. Т. 21. С. 89-107

УДК 004.82, 510.62 МЭС 68Т27

Б01 https://doi.org/10.26516/1997-7670.2017.21.89 Документное моделирование

А. А. Малых, А. В. Манцивода*

Иркутский государственный университет

Аннотация. Рассматривается концепция локально-простых моделей. Локально-простые модели — это сколь угодно сложные модели, выстроенные из относительно простых компонент. Очень много практически значимых предметных областей описываются как локально-простые модели, например, бизнес-модели предприятий и компаний. До сих пор исследования в области автоматизации человеческих рассуждений в основном концентрировались вокруг наиболее интеллектуально насыщенных занятий, в частности, автоматизации доказательства математических теорем. Но, например, модель ритейлера формируется из «рабочих мест», на каждом из которых решаются намного более простые и относительно легко автоматизируемые интеллектуальные задачи. При этом сама модель ритейлера как целостная система исключительно сложна. В данной работе предлагается вариант математического определения концептуального понятия локально-простой модели. Это определение ориентировано на работу в самых разных предметных областях. Поэтому нам важно учесть и перцептивную, психологическую составляющую. Логика элитарна, и если мы хотим, чтобы максимально широкий круг людей работал с нашими моделями, необходимо спрятать эту элитарность за метафорой, привычной «обычным» людям. В качестве такой метафоры мы используем концепт документа, поэтому наши локально-простые модели называются документными моделями. Документные модели строятся в парадигме семантического программирования. Это позволяет достигнуть еще одного важного качества — документные модели являются исполняемыми. Исполняемые модели — это такие модели, которые могут действовать как практические информационные системы в описываемой предметной области. Таким образом, если наша модель исполняемая, то этап программирования становится ненужным. Использование модели напрямую, вместо программного кода, дает очень важные преимущества, например резкое снижение стоимости разработки информационной системы. Кроме того, поскольку модель остается нетронутой, незакодированной в программных модулях, ею непосредственно могут пользоваться средства искусственного интеллекта, в частности, машинного обучения. Это существенно расширяет возможности для автоматизации и роботизации управленческой деятельности.

* Исследование выполнено за счет гранта Российского научного фонда (проект №17-11-01176).

Ключевые слова: локально простая модель, документная модель, семантическое программирование.

1. Введение

Одним из важных выводов из классических работ по семантическому программированию [6; 7] является то, что описание действий в некоторой предметной области может быть сделано не в императивном стиле (с помощью программ на языках программирования), а в декларативном - через моделирование предметной области в некоторой логической системе. Конечно, такая логическая система должна удовлетворять ряду требований, основным из которых является возможность интерпретации логических описаний как процедур. Авторы концепции семантического программирования сформулировали общий математический подход, объясняющий то, как могли бы выглядеть такие модели. Их мы будем называть исполняемыми, поскольку они не только задают декларативное описание предметной области, но и описывают набор действий, которые могут производиться в рамках предметной области. Если модель исполняемая, то она может напрямую работать в качестве информационной системы.

Моделирование предметной области в рамках семантического программирования похоже на процесс разработки проекта некоторой информационной системы. Семантическая модель является результатом такой работы. Исполняемость модели означает, что если мы описали проект некоторой 1Т-системы, то программировать эту систему уже не надо, поскольку функционал этой системы автоматически строится из семантической модели.

Такая идея выглядит несколько фантастично. Например, если подобное удалось бы сделать в строительстве, то здание появлялось бы на свет сразу после разработки архитектором его проекта (модели здания). Тем не менее, оказалось, что эта идея вполне может быть реализована на практике.

Глобальным следствием этой идеи является то, что

мы можем заменить программирование на моделирование.

Результаты такой замены оказываются весьма впечатляющими:

— Семантическое моделирование существенно менее затратное в разработке и поддержке, чем программирование.

— Моделирование в отличие от программирования доступно намного более широкому кругу специалистов, например, экспертам в моделируемой предметной области.

— В отличие от программ с моделями напрямую могут работать средства искусственного интеллекта и программные роботы.

Первый пункт говорит о том, что семантическое моделирование, там где оно применимо, имеет существенные экономические преимущества по сравнению с классическим программированием. Второй пункт позволяет при работе в некоторой предметной области освободиться от таких посредников, как программисты, поскольку специалисты в данной предметной области могут напрямую заниматься разработками. Третий пункт очень важен в свете IV промышленной революции, свидетелями которой мы сегодня являемся. Он означает, что роли (рабочие места), описываемые моделью, могут быть роботизированы.

Таким образом, если нам удается для некоторой отрасли задействовать средства семантического моделирования, это имеет прорывной эффект, а мы получаем существенные конкурентные преимущества в этой отрасли.

2. Локально-простые модели

Моделирование знаний и автоматизация человеческих рассуждений - направление математической логики и искусственного интеллекта, насчитывающего уже более чем полувековую историю. Наибольший толчок дало изобретение метода резолюций [12]. Он позволил добиться весьма значительных результатов на ниве автоматического доказательства теорем [13]. Использовать возможности моделирования знаний для управления информацией в интернете предложил Тим Бернерс-Ли [5]. Идея состояла в использовании логических средств для более эффективной организации данных в мировой сети и в создании автоматических агентов. Из этой идеи выросло новое направление исследований — семантический веб [14]. В качестве логической основы использовались разнообразные дескриптивные логики [8; 9].

К сожалению, семантический веб не привел к глобальным улучшениям интернета, как на то надеялся Бернерс-Ли. Это направление превратилось в достаточно узкую математическую дисциплину с минимальным влиянием на внешний мир и очень слабым распространением в кругах практиков. Основная проблема с семантическим вебом состояла, по нашему мнению, в том, что механизмы обработки знаний рассматриваются в нем как чисто математическая задача, тогда как на самом деле её можно решить только на междисциплинарном уровне. Ключевые проблемы носят перцептивный характер и лежат в области когнитивной психологии, а совсем не в том, чтобы найти «еще более лучший» логический формализм. Математического инструментария накоплено сегодня достаточно, но мало что дошло до широкого практического применения.

Нам представляется, что здесь мы как исследователи попадаем в некоторую ловушку «интеллектуальности», пытаясь смоделировать собственное мышление вместо того, чтобы оглянуться вокруг. Мы бьем-

ся с автоматизацией доказательства теорем, разрабатываем сложные модели знаний и не обращаем внимания на то, что в основной массе решаемые людьми задачи намного проще. Например, ритейлер как бизнес-модель является исключительно сложной системой. Но эта модель устроена так, что каждая её компонента («рабочее место») вполне доступна для достаточно широкого круга людей и достаточно легко моделируется логически. Сложность модели ритейлера возникает тогда, когда эти локально-простые «рабочие места» используются в качестве кирпичиков для построения общего здания бизнес-модели. И здесь сложность может быть непомерной.

Наша гипотеза состоит в том, что огромное количество практически значимых моделей в мире являются локально-простыми, поэтому именно на них нужно обратить пристальное внимание. При этом особо внимательно нужно отнестись к обеспечению доступности логического формализма для «обычных» пользователей. Без этого нас будет ждать судьба семантического веба. Логика элитарна и труднодоступна, поэтому, в идеале, люди вообще не должны знать, что работают в рамках логической системы. Нужно найти привычную людям метафору, которая позволила бы им понимать, что происходит, без необходимости изучать логику. В качестве такой метафоры мы используем понятие документа.

Использование локально-простых моделей задает большие возможности для автоматизации управления знаниями, создания управленческих роботов и машинного обучения. Правда, популярные системы машинного обучения — нейронные сети — плохо подходят для работы в базах знаний, поскольку могут обучаться только через «натаскивание». Однако большие перспективы здесь имеют логико-вероятностные методы, например, разрабатываемые командой Е. Е. Витяева [10; 1]. Для этих методов семантические модели могут служить онтологиями.

3. Документные модели

В данной работе мы определяем понятие документной модели — версии исполняемой семантической модели, которая базируется на метафоре документа как базовом конструкте логических описаний. Документное моделирование реализует нашу концепцию управления системами знаний. Основные положения этой концепции изложены нами в работах [11; 2; 3].

Во-первых, документные модели являются исполняемыми. Это делает стадию программирования ненужной, поскольку сама модель может играть роль соответствующей информационной системы.

Во-вторых, модель использует понятие документа как метафору. Документная модель устроена как коллекция логических структур, которые могут быть интерпретированы как «обычные» документы, сохра-

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

Далее в работе дается математическое определение документной модели.

4. Система базовых типов

Пусть В = {Bi,...,Bk] О), многосортная модель, определяющая базовые типы данных, где Bi - основные множества типов. На практике это могут быть строковые данные, целые и вещественные числа, изображения, видео и т.д. Сигнатура

Q = {Qp, Qf, 7)

состоит из

— предикатных символов Qp

— функциональных символов Пр, а также

— функции 7, задающей местность предикатных и функциональных символов.

Будем считать, что все элементы всех сортов являются выделенными (могут быть представлены константами — нульместными функциональными символами из Пр). Константы будем обозначать через с, Cj. Элементы модели, соответствующие константам, обозначаются с, с Через

B = {b1,...,bfc,any}

обозначим множество имен базовых типов данных. Имя any обозначает тип всех элементов. Все предикатные и функциональные символы модели типизированы.

Типом предикатного символа р, 7(р) = п, назовем выражение

(Ьь ... ,bra),

где hi € В означает, что г-й аргумент предиката, соответствующего р, должен принадлежать основному множеству В

Аналогично, типом функционального символа /, 7( /) = п, назовем выражение

(b>i,... j Ьга, bra+i),

bi € В, где bj, 1 < г < n, определяют тип аргументов, а Ъп+\ — тип результата соответствующей функции.

Понятия терма, атомарной формулы и типа терма определяются индуктивно стандартным образом.

5. Последовательности

Последовательностью назовем выражение

(в!,..., ет),

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

(е) = е

(..., (еь ... ,ек),...) = (... ,еь ... ,ек,...)

Первое равенство говорит о том, что одноэлементная последовательность неотличима от самого элемента. Второе правило гласит, что последовательности не имеют вложенности и являются плоскими (в отличие, например, от списков).

Допускается пустая последовательность, обозначаемая (). Для управления количеством элементов в последовательности введем понятие кардинальности. Определим следующие кардинальности:

— ( ) — последовательность без элементов

— ? — последовательность, содержащая не более одного элемента

— ! — последовательность, состоящая ровно из одного элемента

— Н--последовательность из одного или более элементов

— * — последовательность, состоящая из любого количества элементов

Через С обозначим множество всех кардинальностей.

6. Документы

Документ является основным понятием в документной модели. По своей роли документы аналогичны объектам в объектно-ориентированном подходе (ООП). Основные факты о документах:

1) Документ состоит из полей, для каждого из которых задан тип и кардинальность значений.

2) Формы документов являются шаблонами, которые описывают структуру документов определенного вида (некоторый аналог классов в ООП).

3) Документы могут ссылаться друг на друга через механизм нумерации.

4) Каждый документ обладает статусом, описывающим его текущее состояние. Переходы от статуса к статусу формируют жизненный цикл документа. Допустимые значения для статусов документов определены в их форме.

5) С помощью подмножества языка Libretto [4] (Librettino) можно определить автоматические правила перехода документа от статуса к статусу с совершением определенных операций на модели (транзакции, проводки документов).

6) Правила, которые задают допустимые переходы статусов документов, определяются в их форме.

Введем счетное множество новых констант

I = {idi, id2, ■ ■ ■}

которое будем называть множеством имен (идентификаторов). Это множество разбивается на два непересекающихся счетных подмножества имен форм и имен полей документов

lFn Dd = 0 U Dd = I

В дальнейшем имена форм будут служить для описания типов документов. Поэтому множество всех имен типов данных определим как объединение имен базовых типов и имен форм:

BUlF

Описанием поля документа назовем тройку

d = (d, g, с),

где d € Id - имя поля, g € В U Dp — его тип, и с € С - его кардинальность. Имена полей документов будем обозначать с помощью символа d, возможно с индексами. Описание поля документа, соответствующего имени d будем обозначать через d.

Для удобства при определении полей будем использовать нотацию с использованием двоеточия. Например,

возраст:Int! имена_детей:String*

вместо (возраст, Int,!) и (имена_детей, String, *), соответственно. Неформально, возраст это ровно одно целое число, а «имена детей» — произвольная последовательность строк.

Введем счетное множество новых констант, которые будем называть статусами документов:

S = {s1,s2,...}

Описанием транзакции назовем тройку

Р = (Sin,Sout,P(o))

Здесь

— Sin называется начальным статусом транзакции,

— sout называется конечным статусом, а

— Р(о) — код транзакции.

Код транзакции Р(о) представляет собой последовательность охраняемых операторов:

Р(о) = (Gi(o) Pi (о);...; Gk(o) ^ Pk(o))

Он имеет в качестве единственного параметра документ о, проводка которого определяет транзакцию. Неформальная семантика последовательности охраняемых операторов следующая: последовательность равна крайнему левому Pi{o), для которого истинен «гард» G¿(o).

Неформально, данное определение задает транзакцию документа о, имеющего статус s¿ra, которая переводит его в статус sout и выполняет набор инструкций, порожденных исполнением кода Р(о).

Пока мы не уточняем язык, на котором кодируются Р(о). Концептуально, это должен быть очень простой и слабый язык, обеспечивающий элементарность транзакций. Простота языка является важнейшим признаком локальной простоты моделей, которые мы будем строить.

Определим теперь понятие формы документа, которая описывает структуру однотипных документов. Формой документа назовем четверку

f = ( f, ídb • • •, d„}, {si,..., sm}, {pi ... pfc})

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Здесь

— / € ¡f - имя формы;

— {di,..., dra} — конечное множество описаний полей без повторения имен;

— {si,..., sm} — конечное множество допустимых статусов;

— {pi ... pfc} — конечное множество описаний транзакций. Введем основное понятие данной работы — понятие документа. Для

идентификации документов и доступа к ним используется нумерация. Источником номеров для нас будет копия множества натуральных чисел N. Чтобы отличать их от обычных целых чисел, будем записывать

их с приставкой гй, например, гс1:п\,гс1:5. Номера документов будем называть ссылками. Документ, соответствующий ссылке гсТ.п, обозначим через и:п. Если обозначить через Ю множество всех документов, то

г/ : N ->■ Ю

Теперь введем понятие поля документа, определенного как пара

с1 = (с1, ги)

где (I € — имя поля, & и) — последовательность допустимых значений. Допустимыми значениями полей являются элементы основных множеств В\,..., Вк и ссылки из N.

Будем говорить, что элемент е имеет тип § относительно нумерации V, если выполняется одно из условий:

1) % = апу

2) ё = Ы и е € Bi

3) § = /, е = гсТ.п, и / является именем формы документа 1у:п. Документом © назовем структуру

® = </, {¿1,..., <[]„}, в)

где / € — имя формы документа, {с11,..., с1га} — множество полей, а 8 € 8. Будем говорить, что документ © имеет статус б, и обозначать это через ф[в].

Пусть а — некоторая синтаксическая структура (например, форма или документ). Определим операции %(1р(а) и г(1г,(а), которые равны множеству всех имен форм и всех имен полей, встречающихся в а, соответственно. Также определим

... ,ат}) = гйр{(т{) и ... и гйР{ат) гйв{{а1,...,ат}) = гй0{(Т1) и ... и гйв{ат)

Сигнатурой документной модели назовем конечное множество форм документов

П = {{1,...,{1}

замкнутое относительно имен: ¿(¿р(М) С ..., /¿}, где — имя формы

Документной моделью назовем конечное множество документов

М = ({©1, . . .От},и)

вместе с функцией и, определяющей нумерацию на документах.

Будем говорить, что Л4 является моделью сигнатуры М, если для каждого документа © € Л4, имеющего форму с именем /, выполняется:

1) f G И, т. е. форма с именем / определена в сигнатуре М;

2) Для любого поля <d = (d, w) документа © в форме f имеется описание d = {d, g, с), причем размер последовательности w соответствует кардинальности с, и каждый элемент из w имеет тип g;

3) Статус s документа © является допустимым статусом формы f.

Предложение 1. Следующие соотношения верны:

- idF(M) с idF(м)

- idD(M) с idD(М).

7. Транзакции

Через механизм транзакций (проводок документов) модель Л4 развивается и модифицируется во времени. Транзакции выполняются последовательно. Каждая новая транзакция определяет следующий момент времени жизненного цикла модели. Для формализации данного механизма введем упорядоченное счетное множество

Т = {t0,ti,t2,...}

которое будем называть множеством моментов, to будем называть первоначальным моментом модели (моментом её «рождения»). Состояние модели на момент времени t¿ будем обозначать через A4bi. Общая схема применения транзакции с определением (s, s',P(o)) при проводке документа © выглядит следующим образом:

Правило 1. Проводка документа

®m]] (®mj ®o-uí) P(©)>

A^+iHw]]

Состояние модели _A/Íti+1 получается из состояния A4tl выполнением инструкций, сгенерированных кодом -Р(®).

Правило 2 формализует возможность внешнего воздействия на модель. Документная модель, как правило, не является изолированной. Она погружена в некоторый контекст, например, реальный мир. Из контекста в модель может приходить разнообразная информация - в виде новых документов или измененных значений полей документов.

На практике это может быть, например, ввод пользователем данных через веб-интерфейс, публикация в модели результатов работы системы машинного обучения и т.д.

Источники информации, подобным образом влияющие на модель, называются оракулами. Взаимодействие с оракулом также осуществляется через механизм транзакций. Каждый акт взаимодействия — это отдельная транзакция, выполняющая код, предоставленный оракулом. Правило взаимодействия с оракулом выглядит так:

Правило 2. Воздействие оракула

•М- г P<yracle

Здесь Parade — К°Д> предоставленный оракулом для выполнения. Состояние модели Mti+1 получается из состояния A4tl применением инструкций, порождаемых Porade-

Правила 1 и 2 выполняются следующим образом:

1) Код С выполняется в контексте модели A4tl

2) Код С генерирует конечный набор инструкций ins..., insk-

3) Инструкции последовательно применяются к модели модифицируя её до состояния M.ti+1.

4) Если все инструкции применены успешно, то правило применено, и модель переходит в состояние ftAti+1.

5) Если выполненение некоторой инструкции закончилось неудачей, то правило неприменимо, и модель остаётся в состоянии

Таким образом, код Р{о) не оказывает непосредственного влияния на модель. Он генерирует конечную последовательность инструкций. Затем в рамках транзакции эти инструкции последовательно применяются к модели, переводя её в новое состояние. Транзакция, очевидно, должна обладать свойством атомарности — будут выполнены либо все инструкции, либо ни одной (например, если в процессе выполнения инструкции произошла ошибка, необходимо «откатить» вычисления к первоначальному состоянию).

Разделение выполнения транзакции на два этапа - порождения инструкций и применения инструкций - позволяет нам задать альтернативное монотонно расширяющееся определение модели. Представим транзакцию как тройку

Рг = (U, {Sin,Sout,P{0)), [iilSi, . . . ,inSk])

для первого правила, и

Pí = (t¿, Parade, [ÍTIS1, . . . , mSfc]}

для второго. Здесь t¿ — момент времени, генерируемый транзакцией, © — проводимый документ для первого правила, a ins1,..., insk — инструкции, исполненные в рамках транзакции.

Теперь состояние модели в момент tn может быть неявно представлено как пара

где Mto - первоначальное состояние модели (как, правило, пустая модель).

Предложение 2. Явное состояние модели Л4Ь" в момент tn можно получить последовательным применением всех инструкций из транзакций pi,..., рга.

8. Инструкции

Для успешной работы с моделью достаточно иметь очень простой набор, состоящий из трех типов инструкций:

1) newdoc (f ormname) — создание пустого документа соответствующей формы.

2) set(doc, field, value) — задание значения value полю field документа doc.

3) state (doc, s) — задание документу doc статуса s.

На практике полезно иметь более широкий спектр инструкций, но теоретически при достаточной выразительности языка порождения инструкций, этих трех достаточно.

Качества языка порождения инструкций, на котором разрабатывается код транзакций Р(о), играют ключевую роль. Мы можем задействовать в этом месте языки с самым разным уровнем выразительности, вплоть до полных по Тьюрингу языков. Однако мы намеренно выбираем достаточно простой язык, обеспечивающий разрешимость основных проблем и допускающий эффективный автоматический анализ кода. Это является одним из основных признаков локальной простоты модели.

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

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

В bSystem - нашей системе управления документными моделями, основанной на формализме, представленном в данной работе - в качестве языка генерирования инструкций выбрано простое декларативное подмножество языка Libretto [4]. Ниже мы разберем пример его использования.

9. Бизнес-процессы

Модель бизнес-процесса - тройка

( /) Sbegi Sfin)

где Sbeg,Sfin € S — допустимые статусы формы с именем /, называемые, соответственно, начальным и конечным статусами бизнес-процесса.

Бизнес-процесс, реализующий модель ( /, Sbeg, Sfin), - это последовательность транзакций документа © формы f (называемого основным документом бизнес-процесса)

стартующая когда © имеет начальный статус Sbeg и переводящая © в конечный статус, причем для любого г, 1 < г < п, выполняется Si ф Sfin.

10. Пример: управление книжной библиотекой

В качестве примера построим простую модель управления книжной библиотекой, которая описывает два вида объектов — книги и читателей, а также операции выдачи и возвращения книг. Сначала опишем сигнатуру модели. Математическая нотация не очень удобна для читабельного представления описаний. Так, например, будет выглядеть определение формы «Книга»:

(Книга, {(, String, !), (, String, !), (,, *)}{, }, 0) Поэтому будем использовать более структурированный синтаксис:

Form Книга { автор: String! название: String!

выдачи: Выдача*

STATES: вколлекции, наруках

>

Так определяются библиографические карточки, содержащие информацию о книге, а также список выдач книги (поле выдачи). В зависимости от того, где находится книга, библиокарточка может иметь один из двух статусов. Определим теперь формы документов для читателя и выдачи.

Form Читатель { фамилия: String! имя: String!

STATES: нормальный, задолжник

Form Выдача { книга: Книга! чит ат ель: Чит ат ель!

STATES: подготовка, выдана, возвращена

Процесс выдачи книги состоит из трех этапов (подготовка к выдаче, книга выдана, книга возвращена), которые отражены в статусах документа. Переход от статуса к статусу реализуется через транзакции документа Выдача, определенные следующим образом

Выдача: подготовка -> выдана {

case (книга.state == вколлекции) => {

set(книга, выдана, (книга.выдана, this)) state(книга, наруках)

>

case _ => error(''Повторная выдача!'')

>

Выдача: выдана -> возвращена {

case (книга.state == наруках) => state(книга, вколлекции)

case _ => еггог(''Уже в коллекции'')

>

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

Эксплуатацию начнем с пустой модели. Сначала в рамках первой транзакции добавим в модель книгу и читателя (это правило воздействия оракула, поскольку информация приходит извне):

t-1 { // оракул

newdoc(Книга, вколлекции) // id:l

set(doc:l, автор, ''Пушкин'')

set(doc:1, название, ''Евгений Онегин'')

newdoc(Читатель, нормальный) // id:2 set(doc:2, фамилия, ''Иванов'') set(doc:2, имя, ''Иван'') state(doc:2, нормальный)

>

Через doc:i обозначается документ — значение v{i). В рамках второй транзакции формируем документ выдачи Пушкина Иванову (это правило оракула - работа библиотекаря):

t-2 { // оракул

newdoc(Выдача, оформление) // id:3 set(doc:3, книга, doc:l) set(doc:3, читатель, doc:2) state(doc:3, оформление)

>

На практике эти две транзакции могут проводиться библиотекарем, например, через веб-интерфейс. Факт выдачи книги фиксируется правилом проводки документа для doc: 3:

t-3 { // проводка doc:3 оформление -> выдана state(doc:3, выдана) set(doc:1, выдана, (( ), doc:3)) state(doc:l, наруках)

>

Этот набор инструкций порожден кодом транзакции. Поскольку doc:3 имеет статус оформление, то сработает первое определение транзакции, которое порождает инструкции, прицепляющие документ выдачи к книге и меняющие статусы документов выдачи и книги. Когда книга возвращена документ doc: 3 проводится снова:

t-4 { // проводка doc:3 выдана -> возвращена state(doc:3, возвращена) state(doc:l, вколлекции)

>

Поскольку в этом случае статус doc: 3 равен выдана, то на сей раз срабатывает второе правило для транзакции. Документ выдачи переходит в статус возвращена, а сама книжка - в статус вколлекции. Бизнес-процесс выдачи книжки Пушкина завершен.

11. Умные контракты

Модель вместе с определениями транзакций содержит все инструменты для формирования умных контрактов (smart contracts). Умные контракты реализуют автоматическое управление взаимодействием контрагентов с обеспечением децентрализованных средств доверия между ними на основе криптографических технологий.

По сути, модель библиотеки выше является примером умного контракта между библиотекой и читателем. Чтобы сделать его полноценным, нужно обеспечить механизм доверия. Это можно сделать, сопрягая документную модель с блокчейн-платформой, на которой будут сохраняться все транзакции, связанные с проводками документов Выдача. Библиотекарь и читатель могут скреплять проводки своими криптопод-писями.

В рамках представленного нами формализма можно дать следующее определение умного контракта:

Определение 1. Умный контракт - бизнес-процесс, инструкции которого сохраняются в блокчейне.

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

документное моделирование 12. Заключение

Сейчас основные наши усилия направлены на апробирование документных моделей на практических задачах реальной сложности. Мы научились эффективно работать с моделями, содержащими десятки миллионов документов и более. В частности, мы применяем документные модели в сервисах управления бизнес-процессами — там, где царят системы SAP R3, Oracle ERP, Microsoft Dynamic Ax, 1С, Qlik, Salesforce и др. В сотрудничестве с нашими бизнес-партнерами мы внедряем такие проекты как система бюджетирования и управления движением товара в ритейлере, CRM-модель, коммерческую отчетность и управление персоналом в торговле, управление производством продуктов, ERP-модель и др.

Список литературы

1. Витяев Е. Е. Семантический вероятностный вывод предсказаний / Е. Е. Витяев // Изв. Иркут. гос. ун-та. Сер. Математика. — 2017. - Т. 21.

2. Малых А. А. Логические архитектуры и объектно-ориентированный подход / А. А. Малых, А. В. Мандивода, В. С. Ульянов // Вестн. ИГУ. Сер. Математика, механика, информатика. - 2009. - Т.9, вып. 3. - С. 64-85.

3. Малых А. А. Объектные теории над списочными надстройками / А. А. Малых, А. В. Мандивода // Изв. Иркут. гос. ун-та. Сер. Математика. - 2012. - № 4. - С. 27-44.

4. Малых А. А. Система Libretto: разработка веб-ресурсов в единой модели данных и знаний / А. А. Малых, А. В. Мандивода // 6-я Всерос. конф. по проблемам управления (МКПУ-2013). Геленджик, 30 сент. - 5 окт. 2013 г.- С. 73-75.

5. Berners-Lee Т. The Semantic Web / Lee Т. Berners, J. Hendler, O. Lassila// Scientific American. - May, 2001. https://doi.org/10.1038/scientificamerican0501-34

6. Goncharov S. S. Semantic foundations of programming / S. S. Goncharov, Yu.L. Ershov, D.I. Sviridenko // Lecture Notes in Computer Science, 1987. - Vol. 278. - P. 116-122. https://doi.org/10.1007/3-540-18740-5_28

7. Goncharov S. S. Semantic programming / S. S. Goncharov, Yu. L. Ershov, D. I. Sviridenko // Information processing, Proc. IFIP 10-th World Comput. Congress. -Dublin, v. 10, 1986. - P. 1093-1100.

8. Horrocks I. From SHIQ and RDF to OWL: The making of a Web Ontology Language / I. Horrocks, P. Patel-Schneider, F. Van Harmelen // Journal of Web Semantics.-Vol. 1, Issue 1,- P. 7-26. https://doi.Org/10.1016/j.websem.2003.07.001

9. Horrocks I. Practical reasoning for expressive description logics / I. Horrocks, U. Sattler, U. Tobies // Proceedings of the 6th International Conference on Logic for Programming and Automated Reasoning (LPAR'99), number 1705 in Lecture Notes in Artificial Intelligence / eds.: H. Ganzinger, D. McAllester, A. Voronkov. - SpringerVerlag, 1999. - P. 161-180. https://doi.org/10.1007/3-540-48242-3_ll

10. Kovalerchuk B. Data Mining in finance: Advances in Relational and Hybrid Methods / B. Kovalerchuk, E. Vityaev. - 2000. - Kluwer Academic Publishers, 456 p.

11. Malykh A. Query Language for Logic Architectures / A. Malykh, A. Mantsivoda // Lecture Notes in Computer Science 5947. - Springer-Verlag, Berlin Heidelberg. -2010. - P. 294-305. https://doi.org/10.1007/978-3-642-11486-l_25

12. Robinson J. A. A Machine Oriented Logic Based on the Resolution Principle //J ACM. - 1965. - Vol. 12. - P. 23-41. https://doi.org/10.1145/321250.321253

13. Riazanov A. The design and implementation of VAMPIRE / Riazanov A., Voronkov A. // Journal AI Communications. - 2002. - Vol. 15, Issue 2,3. - P. 91-110.

14. Semantic Web activity [Electronic resource]. - URL: http://www.w3.org/2001/sw/.

Манцивода Андрей Валерьевич, доктор физико-математических наук, профессор, Иркутский государственный университет, 664003, г. Иркутск, ул. К. Маркса, 1 (e-mail: andreibaikal.ru)

Малых Антон Александрович, кандидат физико-математических наук, Иркутский государственный университет, 664003, г. Иркутск, ул. К. Маркса, 1 (e-mail: malykhbaikal.ru)

A.A. Malykh, A.V. Mantsivoda Document Models

Abstract. In this paper, the concept of locally simple models is considered. Locally simple models are arbitrarily complex models built from relatively simple components. A lot of practically important domains of discourse can be described as locally simple models, for example, business models of enterprises and companies. Up to now, research in human reasoning automation has been mainly concentrated around the most intellectually intensive activities, such as automated theorem proving. On the other hand, the retailer business model is formed from "jobs", and each "job" can be modelled and automated more or less easily. At the same time, the whole retailer model as an integrated system is extremely complex. In this paper, we offer a variant of the mathematical definition of a locally simple model. This definition is intended for modelling a wide range of domains. Therefore, we also must take into account the perceptual and psychological issues. Logic is elitist, and if we want to attract to our models as many people as possible, we need to hide this elitism behind some metaphor, to which 'ordinary' people are accustomed. As such a metaphor, we use the concept of a document, so our locally simple models are called document models. Document models are built in the paradigm of semantic programming. This allows us to achieve another important goal - to make the documentary models executable. Executable models are models that can act as practical information systems in the described domain of discourse. Thus, if our model is executable, then programming becomes redundant. The direct use of a model, instead of its programming coding, brings important advantages, for example, a drastic cost reduction for development and maintenance. Moreover, since the model is well and sound, and not dissolved within programming modules, we can directly apply AI tools, in particular, machine learning. This significantly expands the possibilities for automation and robotization of management and control activities.

Keywords: locally simple model, document model, semantic programming.

References

1. Vityev E. Semantic Probablistic Inference of Predictions. Izv. Irkutsk. Gos. Univ.

Ser. Mat., 2017, vol. 21. (in Russian)

2. Malykh A., Mantsivoda A., V.S.Ulyanov. Logical Architectures and Object Oriented Approach. Vestnik NGU. Series: Mathematics, Mechanics, Informatics., 2009, vol.9, issue 3, pp. 64-85. (In Russian)

3. Malykh A., Mantsivoda A. Object Theories over List Superstructures. Izv. Irkutsk. Gos. Univ. Ser. Mat., 2012, no 4, pp. 27-44. (in Russian)

4. Malykh A., Mantsivoda A. Sistema Libretto: razrabotka web-resursov v edinoi modeli dannykh i znanii [Libretto System: Web Resources Development Based On a Holistic Data and Knowledge Model]. In: Proceedings of The 6th All-Russian Conference on Control Problems, Gelendzhik, September, pp.73-75.

5. Berners-Lee T., Hendler J., Lassila O. The Semantic Web. Scientific American, May 2001. https://doi.org/10.1038/scientificamerican0501-34

6. Goncharov S.S., Ershov Yu.L., Sviridenko, D.I. Semantic foundations of programming. Lecture Notes in Computer Science, 1987, vol. 278, pp. 116-122. https://doi.org/10.1007/3-540-18740-5_28

7. Goncharov S.S., Ershov Yu.L., Sviridenko D.I. Semantic programming. In: Information processing, Proc. IFIP 10th World Comput. Congress, Dublin, 1986, vol.10, pp.1093-1100.

8. Horrocks I., Patel-Schneider P., Van Harmelen F. From SHIQ and RDF to OWL: The making of a Web Ontology Language. Journal of Web Semantics, v.l, no 1, pp.7-26. https://doi.Org/10.1016/j.websem.2003.07.001

9. Horrocks I., Sattler U., Tobies U. Practical reasoning for expressive description logics. In: H. Ganzinger, D. McAllester, and A. Voronkov, editors, Proceedings of the 6th International Conference on Logic for Programming and Automated Reasoning (LPAR'99), no 1705 in Lecture Notes in Artificial Intelligence, SpringerVerlag, 1999, pp. 161-180. https://doi.org/10.1007/3-540-48242-3_ll

10. Kovalerchuk B., Vityaev E. Data Mining in finance: Advances in Relational and Hybrid Methods. Kluwer Academic Publishers, 2001. 456 p.

11. Malykh A., Mantsivoda A.A. Query Language for Logic Architectures. Lecture Notes in Computer Science, no 5947, Springer-Verlag, Berlin Heidelberg, 2010, pp.294-305. https://doi.org/10.1007/978-3-642-11486-l_25

12. Robinson J.A. A Machine Oriented Logic Based on the Resolution Principle. J ACM, 1965, no 12, pp.23-41. https://doi.org/10.1145/321250.321253

13. Riazanov A., Voronkov A. The Design and Implementation of VAMPIRE. Journal AI Communications, 2002, vol. 15, issue 2,3, pp.91-110.

14. Semantic Web activity, http://www.w3.org/2001/sw/.

Mantsivoda Andrei Valerievich, Doctor of Sciences (Physics and Mathematics), Professor, Irkutsk State University, 1, K. Marx, Irkutsk, 664003, (e-mail: andrei@baikal.ru)

Malykh Anton Alexandrovich, Candidate of Sciences (Physics and Mathematics), Irkutsk State University, 1, K. Marx, Irkutsk, 664003, (e-mail: malykh@baikal. ru)

i Надоели баннеры? Вы всегда можете отключить рекламу.