doc/METAMODEL/SIRIUS/SIRIUSBPM.md
2025-03-12 20:55:54 +03:00

8.4 KiB
Raw Blame History

Обсуждение варианта реализации Semantic BPM (semantic ARIS) на Sirius Web. Как альтернативная концепция

Часть 1

https://t.me/semanticengine/1792

Sirius Web

Это опенсурсный движок. В нем есть язык ограничений (ocl/aql), есть язык преобразования модель - модель и модель - код/текст.

  1. Ссылки Sirius Web (eclipse): https://eclipse.dev/sirius/sirius-web.html
    Не путать с https://sirius-web.org/
  2. Форк Sirius Web: OpenMetamodel.org
  1. На Sirius Web собраны: Smart ЕА
    Тоже инструмент EA, как и разрабатываемый semantic ARIS
  2. На Sirius desktop собраны: Arcadia/Capella. Капелла это моделер для mbse: https://mbse-capella.org/ https://www.archimatetool.com/
  3. Статьи:

Мнение применимости к проекту Semantic BPM

Предлагаемы инструменты интересные, но видимо не простые. Текущим составом на мой взгляд мы не потянем такую «махину» как Sirius. Например, мне только чтобы в нем разобраться понадобится уйма времени.
Тем не менее, хотелось бы увидеть (разобрать) какие-либо примеры практического внедрения Sirius \ OpenMetamodel.org для Semantic BPM. Например, смотрим на Базовый технологический концепт на примере VAD:
Из первых четырех пунктов чем может помочь Sirius? Насколько он облегчит программирование?
Например, допустим у нас есть пара десятков TriG файлов, загруженных в triple store как из него построить дерево процессов и их подпроцессов? Т.е. если готовый компонент treeView, в который через какие-то правила можно объяснить, что брать из triple store?
Отображение Treeview с деревом схем (дерево моделей) предусмотрено в левом верхнем углу основного экрана: главный экран приложения, mainGUI.md
Насколько я понял, вместо TriG нам придется использовать иные MOF структуры, если так, то лучше видимо с этим пока не связываться. Возможно при развитии проекта Semantic BPM такие масштабные инструменты и понадобятся, но для нашего скромного MVP полагаю, это перебор. Во всяком случае, пока в команде проекта не появится знатока Сириуса.
Если какое-то понимание как реализовать Semantic ARIS на Linked Data (RDF \ SPARQL) вроде есть, то на MOF пока никакого нет (да и самого понимания MOF пока тоже нет, но надеюсь, что со временем появится).
Кстати, обратите внимание на WFE систему Comindware ElasticData

Обсуждение Sirius \ OpenMetamodel.org для Semantic BPM

https://t.me/semanticengine/1867
MOF - это не обязательно диаграммы. Там есть четкая граница между моделью (смысловым, содержательным описанием объекта) и представлениями этой модели. Модель может быть сериализована разными способами: XML, JSON, произвольный DSL. У модели может быть много разных представлений: диаграмма, таблица, дерево, текст

Да, я не спорю, что можно всё сделать через триплеты. Просто для MOF много готовых инструментов Например, есть язык запросов к моделям https://www.omg.org/spec/OCL/2.4/PDF (аналог SPARQL) Язык преобразования моделей https://www.omg.org/spec/QVT/1.3/PDF
(например, на нём можно описать преобразование логической модели классов в физическую реляционную модель данных)
Язык преобразования моделей в текст https://www.omg.org/spec/QVT/1.3/PDF
Инструмент для создания графических редакторов моделей https://eclipse.dev/sirius/
Инструмент для описания текстовой нотации для моделей https://eclipse.dev/Xtext/
И много всего другого

Тот же Xtext позволяет достаточно легко описать грамматику языка и замапить её на MOF-метамодель. И мы почти даром получаем парсер для этого языка в AST. Только в случае Xtext AST будет представлена не в виде RDF графа, а в виде MOF-модели. И так же мы получаем кодогенератор для этого языка, который преобразует MOF-модель в текст. Я описывал это более детально в этих статьях (только вместо Xtext на EMFText, что по смыслу то же самое):

https://habr.com/ru/companies/cit/articles/270483/
https://habr.com/ru/companies/cit/articles/271945/

Тут несколько статей (кроме последних трех) про метамодели, MOF и т.д.:
https://habr.com/ru/users/Ares_ekb/articles/

Всё то же самое можно делать и для RDF просто это параллельное пространство моделирования https://www.sfu.ca/~dgasevic/papers/The_Tao_of_Modeling_Spaces.pdf со своим подходом, инструментарием

CASE

Case1 VADtoTreeView

Упражнение по формированию TreeView по VAD диаграммам

Продолжение