Semantic BPM. Онтологическое моделирование верхнеуровневых процессов. VAD

3fe24a08c6a656d2f257a8c97a1a2f1b.png

Введение

Представление моделей бизнес-процессов на основе онтологий (онтологическое моделирование) эквивалентно Semantic BPM. Введение в семантический BPM (Business Process Management) см. «Semantic BPM. Семантика и синтаксис бизнес-процессов» [semBPM24]. Если кратко, то можно провести аналогию: если классическая BPM система (BPMS: ARIS, бизнес-студия, fox-manager и т.п.) — это технологический аналог mediawiki (wikipedia), то Semantic BPM — это технологический аналог semantic mediaWiki (Wikidata), т.е.

IF MediaWiki --> Semantic MediaWiki then BPM (ARIS, BPMS, EA) --> Semantic BPM

Основной замысел (цель) семантического представления процессов (BPM, EA) не классическими BPM-системами, а семантическими (Linked Data) — такой же, как и у семантических wiki

Одно из ключевых дополнений к wiki-гиперссылки (html) это указание не просто что «ОбъектА связан с ОбъектомБ» (т.е. просто «связано») и соответствующий кликабельный переход (wiki-ссылки, markdown syntax), а указание, что «ОбъектА связан с ОбъектомБ» такими-то типом отношения (впрочем, как и задание других свойств объекта через отношения).

Изначально все BPMS (изначально называемые CASE-средствами) — семантические, т.к. их суть — это отношения между объектами, только в них семантика глубоко спрятана «под капотом» BPMS и нестандартная (собственная, проприетарная). Semantic BPM«поднимает» семантическую составляющую на поверхность (возможность работы с семантическим слоем) и использует стандартные сематические технологии Linked Data.

В основе RDF (Resource Description Framework) — триплеты «субъект — отношение — объект» лежит ERD: Entity Relationship (ER) diagram. RDF \ ERD — это способ формализации знаний на основе атома знания — триплета. Вообще ER, subject, predicate, типы рассуждений и другие базовые элементы для работы со знаниями в СССР содержались в школьных учебниках [Логика54].  

Ставится задача: получить RDF-представление (набор триплетов) — как однозначную интерпретацию графического представления (модели) процесса в нотации VAD. Это задача типа «diagram to script / triple»: на входе схема + онтология, на выходе обычный rdf и его «обычный» граф.

Обратная задача «script to diagram» показана в [SmartDesign24] (генерация схемы процесса по скрипту dot). Применительно к Semantic BPM нужно из таблицы сделать не сразу dot, а вначале rdf, а из него уже dot (graphviz) через таблицу соответствия объектов схемы процесса примитивам dot.

Рассмотрим технологию формализации верхнеуровневых процессов компании посредством нотации VAD: Value Added Chain (diagram) — цепочка добавленной ценности, точнее упрощенный вариант — без указания систем (инструментов) и исполнителей процесса, входов и выходов (документальных), но с различными типами процессов (подпроцессов, function): внешний (заимствованный), предваряющий \ последующий.   

Задача: По имеющейся схеме процесса в нотации VAD построить набор троек (триплетов — атомарной единицы «знания») по спецификации RDF (turtle). Схема процесса строится из шаблона (путем перетаскивания эталонных объектов — Master), сам шаблон (набор графических примитивов, трафарет) обычно описывается в Соглашении о моделировании процессов и публикуется как «корпоративный трафарет» на корпоративном портале компании, например, в случае с visio — виде vss \ vssx файла.

1 Базовые элементы используемой онтологии и легенды (нотации) VAD

Полное описание онтологии процессов — как элемента архитектуры предприятия, ЕА — требует отдельного повествования. Тут будут показаны только объекты типа «Процесс», но в связке с «VAD — оберткой» (графический синтаксис, нотация BPM), визуализирующей в графическом виде семантические концепты. На рис. 1 показаны базовые элементы VAD-легенды и визуализируемые ими семантические конструкции.

Рис. 1 Базовый трафарет VAD – диаграммы и соответствующие семантические конструкции

Рис. 1 Базовый трафарет VAD — диаграммы и соответствующие семантические конструкции

В состав рассматриваемого процесса, название которого задается перемой MainProcess, входят объекты (подпроцессы) со связями (предикатом) hasParent и isExt. Такие связи задают границы процесса.

Принцип схож с ГОСТ 2.711–82 ЕСКД Схема деления изделия на составные части (схема деления изделия \ процесса), где hasParent — это собственные процессы (изделия в 2.711), а isExt (Ext = external) — внешние (заимствованные) процессы (изделия). Это позволяет выстроить стройную иерархию идентификаторов процессов и построить единое дерево процессов на основе их идентификаторов. Обратные отношения показаны в скобках, т.е. это hasChild (имеет потомка) и hasEx (содержит внешний процесс).

Объекты ».Master» = Процесс и ».Master» = Процесс_Внешний (заимствованный) — это составные элементы MainProcess, в отличие от Предваряющего и Последующего процессов. В состав объекта ProcessDia (схема процесса, т.е. один процесс может быть описан разными схемами) включаются кроме объектов в составе MainProcess (его составные элементы): Предваряющие, Последующие процессы, Заголовок_процесса и другие объекты, отраженные на схеме, но не входящие в границы (в состав) процесса MainProcess.

Заголовок_процесса — заголовок с названием детализируемого процесса — технически может быть представлен по разному, например, как штатный заголовок листа (схемы), т.е. специальный объект (title и т.п.) в спецификациях dot, drawio, visio и др. Тут мы используем универсальный вариант: Заголовок процесса — это обычный объект из шаблона (трафарета VAD).

Рис. 2 Схема (VAD) процесса Изготовление скрепки (лист visio)

Рис. 2 Схема (VAD) процесса Изготовление скрепки (лист visio)

Онтологическая модель (включая таксономию) хранится в редакторе онтологий, например, Protege, и позволяет глубокий анализ взаимоотношений объектов модели. Тут показано только линейное преобразование (трансляцию) схемы процесса в нотации VAD в формат RDF.    

Введение в Resource Description Framework (RDF) см.

— слайды

— описание

RDF — это синтаксис описания ресурсов, который использует элементарные конструкции «триплет» Субъект — Предикат — Объект, отношений между Субъект — Объект и оперирует URI-ссылками вместо слов для обозначения сущностей.

Онтологическое моделировании возможно и на более высоком уровне, например, Глобальная онтология Индустрии 4.0, где также используются абстракции #Process и т.п. [i4go].

2 Получение RDF — модели процесса из схемы Visio  

Обработка выполнена в VBA Visio. Шаблоны из рис. 1 хранятся в составе трафарета (левое окно), схемы процессов и обработчик (макрос), окно результата (Immediate) — все это в одном файле visio (visioOntoVAD.vsdm).

Visio — файл visioOntoVAD.vsdm выложен на https://github.com/bpmbpm/vadtordf

pdf файл показывает листы и результат в окне Immediate (у кого нет visio).

В приложении 1 показан краткий алгоритм обработки листа visio (алгоритм макроса), а в приложении 2 — результат выгрузки в RDF (упрощено для понимания, в т.ч. не использовано qname «a»).

Действия для получения модели процесса в формате RDF (turtle):

— в visio открыть файл visioOntoVAD.vsdm,

— открыть лист «vad» или «vadE» (English) со схемой процесса в нотации VAD (построенной по шаблонам из трафарета),

— запустить макрос — и в окне Immediate (VBA Immediate Window) будет выведено RDF — представление процесса VAD.

На схеме процесса (листы «vad» и «vadE» или вновь созданные) вызывается макрос Main (Alt F8), который в окне MsgBox выдаст часть RDF (в Visio 2016 и ранних отрезается 255 символов), а полный в окно отладчика.

Далее открываем Visual Basic Editor (Alt F11, Ctrl G) и окно Immediate (Debug.Print). При копировании русскоязычного текста из окна Immediate нужно включать русскую раскладку клавиатуры.

Для визуализации в виде графа из окна Immediate копируем RDF триплеты (Ctrl A, Ctrl C) и вставляем их, например, в RDF online редактор, например, RDF grapher https://www.ldf.fi/service/rdf-grapher и получаем граф.

Полученное представление более сложно для восприятия, но отражает «анатомические» (через онтологию) свойства формализуемого (моделируемого) процесса. 

Microsoft десятилетиями ленится сделать нормальную поддержку в MS Office русского языка (особенно редактора Visio VBA), поэтому при копировании текста из триплетами RDF на русском из окна Immediate — нужно включать русскую раскладку клавиатуры. Поэтому и приведен «безотказный» англоязычный пример (лист vadE). Если нужно выгрузку RDF сохранять в файл, то можно заимствовать код из exDOT SmartDesignсм. [SmartDesign24], в нем же для поддержки русского сделана перекодировка.

В приложении 2 — показан результат выгрузки в RDF (копия окна Immediate VBA-редактора) «смысла» процесса, «обернутого» в синтаксис VAD. Полученное семантическое представление процесса в RDF (turtle) обеспечивает однозначное (в рамках используемой онтологии) понимание процесса и может служить универсальным форматом представления знаний о процессах.

3 Процессная ARIS-онтология

Как было уже сказано: ведущие BPMS — системы, например, ARIS, основаны на семантике, но нестандартной. Процессная ARIS-онтология изложена на 5000 страницах [ARISMR17].

Покажем это на пример ARIS Method Reference Version 10.0 — Service Release 3. December 2017 [ARISMR17]:

П.3.2.128 Value-added chain diagram (стр. 2091) вводит триплет:

Source object type = Function

Relationship type (active) = is predecessor of (является предшественником)

Relationship type (passive) = follows (следует, т.е. обратная связь)

Target object type = Function

Таким образом, арисовкий триплет:

Function1 «является предшественником» (is predecessor of) Function2

эквивалентен показанному ранее:

Function1 «имеет следующий за ним элемент» Function2

или в формате RDF

:Function1 :hasNext :Function2 .

Аналогично можно построить триплет (атом знания) через обратные (в ARIS это «passive») предикаты: follows (ARIS) и hasPrev (previous — предшествующий).

Выше было упомянуто про добавление на схему VAD дополнительных элементов, включая входы и выходы в процесс (элемент Function). Для этого в п.3.2.128 [ARISMR17] указаны отношения is input for \ has as output. Пять тысяч страниц [ARISMR17] — это описание «скрытой» семантической части ARIS.

4 VAD — элемент и его представление в Visio

Для RDF — описания процесса был приведен упрощенный подход к VAD — элементу. Более полный включает указание исполнителей процесса (роли в процессе или подразделения \ должности). В ARIS объекты Organizational unit связаны с Function разнообразными типами связи [ARISMR17]: carries out (is carried out by), accepts (is accepted by), contributes to (is worked on by collaboration of), что, видимо, является перебором применительно к VAD.

Рис. 3 VAD – элемент с исполнителями, заданными как данные фигуры

Рис. 3 VAD — элемент с исполнителями, заданными как данные фигуры

На рис. 3 показана техническая реализация добавления (привязки) исполнителя (роли) и комментария через «Данные фигуры»: поле org (Organizational unit) и com (Comment).

Через штатную связку visio с excel можно вести репозитарий объектов процесса в excel: excel — repo, визуализируемое через visio. Пример использования штатной связки в BPM-проекте показано на Рис. Инструмент связывания данных visio + excel [easyEA23].

На VAD — схему добавляются и иные элементы, например, входы и выходы (материалы, документы), как показано на рис. 1.1в «Схема VAD» [SmartDesign24].

Заключение

Рассмотрено «прямое» преобразование: «схема → RDF», обратное преобразование «RDF → схема» может быть построена по технологии SmartDesign BPM, рассмотренной в [SmartDesign24] на примерах excel + dot (exDOT SmartDesign) и js + dot (jsDOT SmartDesign).

Semantic + Repository = Semantic Repository

Однако в случае с классическим BPMS остается вопрос, как и в каком формате хранить данные (логику) моделей? Данные о всех моделях компании и связях между моделями, атрибуты самих моделей и атрибуты объектов моделей. Модели процессов, структуры и иерархии процессов, организационных единиц, данных, документов и т.п. Да еще так, чтобы эти форматы были открытыми и «прозрачными».

Понятно, что речь не про формат Graphviz DOT (Mermaid, PlantUML и т.п.), т.к. это лишь промежуточное представление: синтаксические инструменты «обертывания смысла» через нотации в «цветные картинки» (графическая визуализация сущностей, их свойств, их связей, смыслов). Использовать реляционное (связанные таблички) представление данных модели, как это сделано во всех CASE\ BPMS системах, — это вариант постоянных экспортов \ импортов (ARIS XML) в закрытые проприетарные форматы каждой системы (ARIS Document format, ADF).

Логичным решением становится формат RDF. При этом реализация подхода «Semantic SmartDesign» (совмещение идей [semBPM24] и [SmartDesign24]) предполагает формирование из таблички кроме текстового DOT еще и семантическое описание в RDF \ OWL.

Похожий промер семантической формализации процесса, но в нотации ЕРС, см. https://habr.com/ru/articles/708026/comments/#comment_25053928

Алогичный пример планируется повторить на drawio, кому интересно — присоединяйтесь. Вообще, через выгрузку в RDF можно собирать единый Semantic Repository процессов из схем, сделанных в любых редакторах (visio, drawio) и в разных нотациях (VAD, EPC).

Вопрос: Путь от BPM к Semantic BPM — это встраивание технологий Linked Data в классический BPM (BPMS, т.е. ARIS и т.п.). Однако возможен путь от Semantic к Semantic BPM: для этого нужно найти инструменты Linked Data, которые помимо классического «графа знаний» смогли бы задавать нужные BPM — нотации (VAD, EPC и т.п.) для визуализации через них знаний.

Есть ли такие инструменты Linked Data? Есть попытки типа data explorer forneo4j(yworks), , но построить на нем VAD диаграмму (другую BPM нотацию) проблематично (только прямоугольник, эллипс, картинка, нет задания направления и т.п.), кроме того привязка к neo4j и отсутствие загрузки файлов rdf.

Приложение 1. Анализ объектов схемы процесса в нотации VAD. Алгоритм обработки листа схемы visio

Запись @prefix 

Первый проход: все объекты схемы. Все проходы (перебор объектов схемы) осуществляется через For Each DC In ActivePage.Shapes

Поиск ключевых элементов, которые потом будут использоваться для присвоения значений. В данном случае — это корневой элемент — родительский процесс (Parent для остальных) .Master = Заголовок_процесса. Находим и присваиваем значение переменной: MainProcess = .Text объекта «заголовок в схеме типа VAD». Если такого не находим, то:

MsgBox «На схеме не указан Заголовок_процесса (MainProcess). Перенесите из трафарета шаблон (Master) Заголовок_процесса»

Запись триплетов к MainProcess.

Второй проход: все объекты схемы.

Если это конектор (1D) и его тип Динамический_соединитель_VAD (ShpHasNext), то через функции Function Connect_in и Function Connect_out находим начало и конец.

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

: Subject .Text = Название процесса, но пробелы в названии процесса преобразуем в »_».

Далее вставляем предикат : hasNext (следующий элемент)

: Object .Text — end преобразуем в »_»

Формируем строку триплета:

Ss = ss & Chr (13) : Subject : hasNext : Object »_.»

Третий проход: все объекты схемы.

Поиск VAD — объектов. В зависимости от типа VAD — объекта формируем строку составного триплета, например:  

: Нарезка_проволки

    rdfs: label «Нарезка проволки» ;

    rdf: type: Process;

    : hasParent: Изготовление_скрепки .

rdfs: label оправляет название процесса (подпроцесса), rdf: type — тип объекта (все VAD-кораблики это процессы, Function), предикат : hasParent определяет родительский элемент.

Приложение 2. RDF (turtle) процесса «Изготовление скрепки», построенный по схеме VAD

@prefix: .

@prefix rdfs: .

@prefix rdf: .

: Изготовление_скрепки

    rdf: type: Process;

    rdfs: label «Изготовление скрепки» ;

    : hasDia: VADscheme_Изготовление_скрепки .

: VADscheme_Изготовление_скрепки rdf: type: Diagram .

: Закупка_материалов : hasNext: Нарезка_проволки .

: Нарезка_проволки : hasNext: Сгибание_проволки .

: Сгибание_проволки : hasNext: Фасовка_изделий .

: Фасовка_изделий : hasNext: Складское_хранение .

: Закупка_материалов

    rdfs: label «Закупка материалов» ;

    rdf: type: Process;

    : isBegin: VADscheme_Изготовление_скрепки .

: Нарезка_проволки

    rdfs: label «Нарезка проволки» ;

    rdf: type: Process;

    : hasParent: Изготовление_скрепки .

: Фасовка_изделий

    rdfs: label «Фасовка изделий» ;

    rdf: type: Process;

    : hasParent: Изготовление_скрепки .

: Сгибание_проволки

    rdfs: label » Сгибание проволки» ;

    rdf: type: Process;

    : isExt: Изготовление_скрепки .

Некоторые ссылки:

[semBPM24] Semantic BPM. Семантика и синтаксис бизнес-процессов

[SmartDesign24] ВРМ. Смарт-инструменты «Таблица → Схема» для формализации бизнес-процессов. Рестайлинг ARIS SmartDesign

[ARISMR17] ARIS Method Reference Version 10.0 — Service Release 3  December 2017

[easyEA23] Простая Enterprise Architecture. Архитектура компании садоводов

[i4go] I40GO: Industry 4.0 Global Ontology. File: variant-domain/manufacturingprocess/1.0/manufacture.owl

https://innoweb.mondragon.edu/ontologies/i4go

Среда Описания Ресурса (RDF): Понятия и Абстрактный Синтаксис

RDF 1.1 Turtle

Как представлять библиографические данные в RDF

[Логика54] С.Н. Виноградов А.Ф. Кузьмин 1954 год Логика Аудиокнига.

PS1

© Habrahabr.ru