mirror of
https://github.com/bpmbpm/doc.git
synced 2026-04-28 19:42:06 +00:00
63 lines
8.3 KiB
Markdown
63 lines
8.3 KiB
Markdown
Обсуждение варианта реализации 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)
|