doc/METAMODEL/SIRIUS/Case1_VADtoTreeView.md
2025-02-25 13:43:40 +03:00

5.5 KiB
Raw Blame History

Case1 VADtoTreeView

Упражнение по формированию TreeView по VAD диаграммам
Раз разговор о генераторе кода (вспоминается Rational Rose), то предлагается Технологический практикум «VAD -> исполняемый код -> TreeView». Состав:

  1. Набор схем процессов в VAD
  2. TreeView дерево процессов и подпроцессов
  3. Метамодель VAD
  4. Код для формирования элемента TreeView. Если не генерация кода, то хотя бы некую к нему конструкцию, которую можно просто перевести в код (в идеале node.js)

Подробнее:

  1. Пример VAD:
     VAD Более полный набор элементов (такой использую на практике) см. рис. 3 на Repo MetaModel, TriG. Общая папка проекта по VAD
  2. TreeView типовой элемент управления (Control) в разных библиотеках и frameworks.
    В ARIS подобных системах он расположен в левом верхнем углу основного экрана, см. mainGUI.md В него (TreeView) нам нужно упаковать иерархию процессов, т.е. получить иерархический контейнер процессов. Именно иерархия контейнеров, а не иерархическая матрёшка (единственный вложенный элемент). В этой иерархии: иерархия процессов (ветки) и их конечные (не декомпозируемые) подпроцессы (листья).
  3. Метамодель VAD разобрана в Repo MetaModel, TriG, включая алгоритм преобразования в RDF \ TriG.
    Парсинг в TriG (ранее и в RDF turtle) из yED формата показан в Парсер graphml диаграмм Как это будет подобное выглядеть в MOF \ Sirius? Полагаю, что там нет готового компонента для подобного.
  4. В настоящее время нам в рамках проекта Semantic BPM нужно создать программу генерации TreeView из набора (например, 20 шт.) TriG файлов. Возможны варианты:
  • Вариант 1: Кодом, например, js, анализировать TriG и через найденный предикат :hasParent строить дерево TreeView (не рассматриваем);
  • Вариант 2: Делать подобное через SPARQL запросы к triple store. Кто-нибудь может примеры набросать, желательно прямо под реальный компонент TreeView (желательно какой-либо js-библиотеки)?

В этом простейшем примере мы рассмотрели мылый кусочек VAD (без ролей и т.п.), достаточный для формирования дерева процессов и подпроцессов. Как иллюстрация, но реальной задачи обработки схем процессов.
Мы говорим о MOF \ Sirius как генераторе кода. Как это хотя бы в общих чертах будет в конечном итоге сделано в коде? На js (node.js) получится? Или приведите аналогичный простой пример типа hello world, но где конечная точка это исполняемый код.
В целом задача сделать конвейер: на входе набор файлов с VAD в каком-либо формате векторной графики (XML), а на выходе дерево процессов с подпроцессами как собранный TreeView.
Фактически аналог WFE-engine типа Camunda, ELMA, Runa WFE, только на входе не BPMN, а VAD, а на выходе не исполнение процесса, а собранный TreeView. Как бы: через визуальное программирование и мета-моделирование генерация компонентов (TreeView) исполняемой программы (ARIS-подобной системы).

В начало / реализация Semantic BPM на Sirius
Форум openmetamodel.org