Метамоделирование

Сущность метамоделирования

Метамоделирование - создание и изменение шаблона, с помощью которого будет создаваться модель [реальности]. Более сложными словами -  выбор языка (DSL - Domain Specific Language), с помощью которого мы будем моделировать выбранный фрагмент реальности. Такой язык или такой шаблон в ИТ-индустрии часто называют "онтология" или метамодель. Почему это называют онтологией? Потому что метамодель - это совокупность взаимосвязанных классов, а каждый класс - это цифровая спецификация - способ описания понятия, за которым стоит определенный набор объектов реальности и их связи друг с другом.

Для создания шаблона моделирования СиММА обладает встроенным конструктуром мета-модели. Внешне это выглядит как создание схемы мета-данных, согласно которой будут заноситься собственно [модельные] данные. Пример метамодели для проактивного обеспечения кибербезопасности см. по ссылке >>>

В знаковой форме шаблон метамодели выглядит как диаграмма классов UML - см рисунок.

На основании одной мета-модели можно построить множество моделей. Точно также СУБД с одной и той же схемой данных можно развернуть на различных предприятиях для решения [например] учетных задач каждого конкретного предприятия. Учитываемые товары и услуги на каждом предприятии будут разными, но состав учитываемых атрибутов и взаимосвязей будет одинаковым. 


Популярно о метамоделировании.

В популярной литературе, к сожалению, не разъясняется понятие метамодели, как чуждое российскому научному дискурсу. Но в целом российские инженеры и конструкторы прекрасно понимают, о чем здесь речь. Поясним на примерах, что есть модель и мета-модель. В обычной жизни весьма много примеров, где метамодели существуют и успешно используются. Вот простейший пример: линейка-трафарет.

метамодель для описания реальности в виде линейки 

Пример мета-модели в виде трафаретной линейки.

С помощью такой линейки офицер может описать (нанести на карту) расположение войск и направление их действия. Схема войск на карте будет моделью. А линейка - метамоделью. Так как все офицеры пользуются одними и теми же линейками, то они легко понимают схемы друг друга. Здесь очевидно, что мета-модель зачастую предназначена для построения моделей определенной тематической направленности (или иными словами для построения моделей определенного типа явлений реальности). В случае с офицерской линейкой такой темой, таким типом реальности будут боевые действия или учения. 

Возьмем в качестве второго примера два фрагмента бизнес-реальности:

Реальность, фрагмент №1: сотрудник склада Белкин Сергей на основании ведомости отгрузки товаров №34 раздает упаковки с товарами курьерам для доставки заказанных товаров клиентам.

Реальность, фрагмент №2: В ЦОДе компании "ABC" установлено 3 стойки с оборудованием компании ASUS, на которых развернуто программное обеспечение "HR-Кадры+" на базе PostgreSQL, где учтены все курьеры компании и выполненные ими заказы.

На словах более-менее понятно. И слова - это уже один из примеров на тему, как может выглядеть модель реальности. Но слова - это самые неточные модели, особенно слова сумбурного непоследовательного рассказа. Поэтому хочется прибегнуть к более строгому шаблону описания. Где взять такой шаблон, что он может вообще представлять? Метамодель как раз и является таким шаблоном. 

Для описания фрагмента реальности №1 можно использовать линейку (набор лекал) для описания алгоритмов. Сегодня такую уже не найти, но можно найти ее эквивалент в виде нотации flowchart. Или взять в качестве шаблона более современную нотацию - BPMN. Для описания фрагмента реальности №2 стоит использовать шаблоны, основанные на нотации Archimate.

Таким образом мы видим, что существует проблема выбора нужной метамодели (нужного шаблона или линейки) под определенные ситуации или классы задач, наблюдаемые в реальности. Проблема становится в разы сложнее, если:

  • если требуется не описать реальность, а спроектировать ее;
  • если нет подходящего шаблона и нужно придумать сам шаблон.


Создать платье по готовой выкройке может каждая швея и даже домохозяйка. Но создание выкройки на порядок сложнее. Согласитесь, что знание на тему, что такое шлиц, ластовица, кокетка, баска и борт не позволяет любому человеку (и даже любой швее) создать выкройку. Создать выкройку или придумать нотацию крайне сложно. Здесь нет инструкций, здесь надо погружаться в моду, дизайн, онтологию, философию, традиции, научное рассуждение.

В цифровом мире дела обстоят сильно сложнее, чем "создать платье по готовой выкройке". Если создать платье по выкройке может каждая швея, то в в мире ИТ и бизнеса только каждый 5-й аналитик может с использованием BPMN-шаблона описать процесс. Почему только каждый 5-й? Потому что линейка (или там нотация) не дает готовый шаблон процесса, а лишь набор абстрактных компонентов (можно сказать - лекал) для описания процесса: задача, событие, объект данных, сообщение, участник, шлюз. То есть нотация предоставляет конструктору процесса неограниченную степень свободы. В этом ее сила, в этом же и ее слабость.

Метамоделирование в СиММА

Однако вернемся в мир цифровых двойников и основ их конструирования.  

Метамодель (ММ) в СиММА создаётся из компонентов трех типов: классы, мета-атрибуты классов, мета-связи классов. Комбинация (композиция) этих компонентов за счет подбора нужных классов, мета-связей и мета-атрибутов обеспечивает решение любых модельных задач. Наиболее частно в качестве ММ выбирают готовые наборы классов известные как нотации широкого спектра применения: Архимейт, ARIS, семейство IDEFx. Но для узких задач, как например, моделирование процессов или данных, выбирают BPMN, ERD, UML. Базовые типы ММ - класс, мета-связь, мета-атрибут - это мета-мета-модель, соответствующая базовым понятиям языка OWL или MOF (М3 и M2).

Модель (MOF M1), построенная на базе ММ, образует совокупность триплетов (см. OWL), эти триплеты вы можете "скармливать" на вход GPT-движку для формирования нужного вам контекста (см. встраивание векторов или embedding). Или триплеты подают на вход "машины логического вывода". Пока это еще не очень востребовано в наблюдаемом нами сегменте российского рынка, но один из 10 клиентов, как правило, этой темой уже интересуется. К концу 2023 года нами проведены испытания на базе таких LLM, как LLaMA и GigaChat Сбербанка (см раздел НОВОСТИ >>>).

Особенности метамоделей СиММА:

  • Возможность менять ММ "на лету": добавление или удаление мета-атрибутов, добавление-удаление классов, добавление-удаление мета-связей
  • Автоматическое построение диаграммы метамодели (ММ)
  • Поддержка связей, позволяющих создавать графы типа дерево, лес, сеть, конечный автомат. Указанные типы связей лежат в основе иерархий, агрегаций, композиций, потоковых процессных диаграмм и схем сетевого типа
  • Копирование ММ для создания на её базе новых моделей
  • Опция (по запросу): возможна поддержка отката к предыдущей метамодели без потери данных.

 


СиММА (Система Многослойного Моделирования Архитектуры) в первую очередь поддерживает цифровую онтологию предметной области или ее концептуальную модель в стиле DDD. От построения онтологии к учету информации и ее взаимосвязей переход осуществляется мгновенно и бесшовно.



Направления развития СиММА в области метамоделирования:

  • копирование фрагментов ММ между моделями
  • слияние мета-моделей
  • создание формализованных межмодельных связей: мета-связи между классами различных моделей
  • расширение возможностей мета-моделирования в сторону более полной поддержки языка OWL.


Возможности настройки ММ в СиММА, а также возможности репозитория СиММА по управлению моделями, позволяют отнести СиММА к системам класса Smart-Инвентори и NoCode DataBase.

Метамоделирование - это суть философия

Мета-моделирование не является тривиальным процессом. Если есть время поломать мозг - можно обратиться к ЛФТ Витгенштейна. Прокачивает. Для понимания подхода, заложенного в СиММА, следует рассмотреть картинку ниже.

Метамоделирование и философия


Подробные разъяснения по слайду, приведенному выше, даются в ходе обучения партнеров СиММА, а также в ходе тренингов "Марк Аврелий" по теме моделирования данных.

Остались вопросы?
Оставьте свои данные и мы свяжемся с Вами в ближайшее время

Контакты

Адрес офиса:
105082, г. Москва, Спартаковский пер., 2, стр. 1, БЦ "Платформа"
Эл. почта:
Заказать звонок