Semantic BPM. Онтологическое моделирование верхнеуровневых процессов. VAD
Введение
Представление моделей бизнес-процессов на основе онтологий (онтологическое моделирование) эквивалентно 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 — диаграммы и соответствующие семантические конструкции
В состав рассматриваемого процесса, название которого задается перемой 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)
Онтологическая модель (включая таксономию) хранится в редакторе онтологий, например, 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 показана техническая реализация добавления (привязки) исполнителя (роли) и комментария через «Данные фигуры»: поле 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 год Логика Аудиокнига.