8.4 KiB
Обсуждение варианта реализации Semantic BPM (semantic ARIS) на Sirius Web. Как альтернативная концепция
Часть 1
https://t.me/semanticengine/1792
Sirius Web
Это опенсурсный движок. В нем есть язык ограничений (ocl/aql), есть язык преобразования модель - модель и модель - код/текст.
- Ссылки Sirius Web (eclipse):
https://eclipse.dev/sirius/sirius-web.html
Не путать с https://sirius-web.org/ - Форк Sirius Web: OpenMetamodel.org
- Форум проекта, например, Как связаны MOF и RDF ; Есть два основных подхода к моделированию
- Метамодель metamodel.dev, пример С4
- На Sirius Web собраны:
Smart ЕА
Тоже инструмент EA, как и разрабатываемый semantic ARIS - На Sirius desktop собраны: Arcadia/Capella. Капелла это моделер для mbse: https://mbse-capella.org/ https://www.archimatetool.com/
- Статьи:
- Разработка метамодели с помощью Eclipse Modeling Framework (и немного про моделирование данных)
- Объектный язык ограничений (и немного про метамодели)
- Введение в разработку предметно-ориентированных языков (DSL) с помощью EMFText
Мнение применимости к проекту 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 диаграммам
Продолжение
- MOFvsRDF.docx
- Сравнение RDF \ MOF \ LEAN

https://t.me/semanticengine/2087