doc/METAMODEL/SIRIUS/SIRIUSBPM.md
2025-02-28 19:33:13 +03:00

63 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Обсуждение варианта реализации Semantic BPM (semantic ARIS) на Sirius Web. Как [альтернативная концепция](https://github.com/bpmbpm/SemanticBPM/wiki/%D0%9A%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%8B-%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-Semantic-BPM#a2-%D0%BF%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9-openmetamodelorg)
## Часть 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
- Форум проекта, например [Как связаны MOF и RDF](https://forum.openmetamodel.org/d/56-kak-svyazany-mof-i-rdf) ; [Есть два основных подхода к моделированию](https://t.me/semanticengine/1862)
- Метамодель на [примере С4](https://metamodel.dev/metamodel/c4/dev/c4)
3. На Sirius Web собраны:
[Smart ЕА](https://www.obeosoft.com/en/products/smartea)
Тоже инструмент EA, как и разрабатываемый semantic ARIS
4. На Sirius desktop собраны:
Arcadia/Capella. Капелла это моделер для mbse: https://mbse-capella.org/
https://www.archimatetool.com/
5. Статьи:
- [Разработка метамодели с помощью Eclipse Modeling Framework (и немного про моделирование данных)](https://habr.com/ru/companies/cit/articles/266433/)
- [Объектный язык ограничений (и немного про метамодели)](https://habr.com/ru/companies/cit/articles/264963/)
- [Введение в разработку предметно-ориентированных языков (DSL) с помощью EMFText]( https://habr.com/ru/companies/cit/articles/270483/)
### Мнение применимости к проекту Semantic BPM
Предлагаемы инструменты интересные, но видимо не простые. Текущим составом на мой взгляд мы не потянем такую «махину» как Sirius. Например, мне только чтобы в нем разобраться понадобится уйма времени.
Тем не менее, хотелось бы увидеть (разобрать) какие-либо примеры практического внедрения Sirius \ OpenMetamodel.org для Semantic BPM.
Например, смотрим на
[Базовый технологический концепт на примере VAD:](https://github.com/bpmbpm/doc/blob/main/Project/SemanticBPM/method/arisLDconcept.md)
Из первых четырех пунктов чем может помочь Sirius? Насколько он облегчит программирование?
Например, допустим у нас есть пара десятков TriG файлов, загруженных в triple store как из него построить дерево процессов и их подпроцессов? Т.е. если готовый компонент treeView, в который через какие-то правила можно объяснить, что брать из triple store?
Отображение Treeview с деревом схем (дерево моделей) предусмотрено в левом верхнем углу основного экрана:
[главный экран приложения, mainGUI.md](https://github.com/bpmbpm/doc/blob/main/Project/SemanticBPM/design/mainGUI.md)
Насколько я понял, вместо TriG нам придется использовать иные MOF структуры, если так, то лучше видимо с этим пока не связываться. Возможно при развитии проекта Semantic BPM такие масштабные инструменты и понадобятся, но для нашего скромного MVP полагаю, это перебор. Во всяком случае, пока в команде проекта не появится знатока Сириуса.
Если какое-то понимание как реализовать Semantic ARIS на Linked Data (RDF \ SPARQL) вроде есть, то на MOF пока никакого нет (да и самого понимания MOF пока тоже нет, но надеюсь, что со временем появится).
Кстати, обратите внимание на [WFE систему Comindware ElasticData](https://github.com/bpmbpm/doc/blob/main/Project/SemanticBPM/FAQsemBPM.md#middle)
#### Обсуждение 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 диаграммам]( https://github.com/bpmbpm/doc/blob/main/METAMODEL/SIRIUS/Case1_VADtoTreeView.md)
## Продолжение
[MOFvsRDF.docx](https://github.com/bpmbpm/doc/blob/main/METAMODEL/SIRIUS/MOFvsRDF.docx)