> Перевод даётся для удобства чтения. Нормативным является английский оригинал. # Язык диаграмм Мета-Вселенной (MUDL) **Спецификация Мета-Вселенной** **Идентификатор документа:** MU-V2-REFARCH-010 **Название:** Язык диаграмм Мета-Вселенной (MUDL) **Класс документа:** информативный **Версия:** 2.0 (черновик) **Статус:** рабочий черновик **Нормативные ссылки:** нет **Информативные ссылки:** [Reference-Diagrams](Reference-Diagrams.md), [MMAS-Interchange](../02-architecture/MMAS-Interchange.md), [Projection](../04-core-concepts/Projection.md), [Semantic-Mapping](../03-federation/Semantic-Mapping.md) **Копирайт:** © Orkestron.AI **Лицензия:** Apache-2.0 --- # 1. Назначение Канонические диаграммы из документа [Reference-Diagrams](Reference-Diagrams.md) стандартизируют *смысл* картинок Мета-Вселенной, но не их *машиночитаемую форму*: сегодня замысел диаграммы каноничен, а её отрисовка делается вручную. **Язык диаграмм Мета-Вселенной (MUDL)** закрывает этот разрыв, определяя структурированное машиночитаемое представление диаграммы, так что диаграмма становится **ещё одной проекцией модели**, а не отдельно поддерживаемым артефактом. MUDL для Мета-Вселенной - то же, что BPMN для процессов, UML для программ или ArchiMate для архитектуры предприятия: специальный визуальный язык, - с той разницей, что источником истины для него служит сама семантическая мета-модель. --- # 2. Область применения Этот документ определяет: - **типы узлов**, которые может содержать диаграмма MUDL; - **типы рёбер**, которые их соединяют; - **сериализацию в YAML** для написания, версионирования и сравнения диаграмм как данных; - **цели генерации** - Mermaid, PlantUML и SVG, - порождаемые детерминированно из одного и того же источника; - один разобранный пример. Документ информативен: он объясняет и показывает представление, а не налагает новых нормативных обязательств на соответствующие реализации. --- # 3. Диаграмма - это ещё одна проекция [Проекция](../04-core-concepts/Projection.md) - это то, как мета-объект выглядит в заданном контексте. Диаграмма MUDL - ровно это: проекция части мета-модели в *визуальный* контекст. Поскольку документ MUDL порождается из лежащей в основе модели [MUIF](../02-architecture/MMAS-Interchange.md) и проверяется по ней, диаграмма не может отклониться от семантики, которую изображает. Написанная как данные, проверенная на соответствие, отрисованная детерминированно: картинка - производный вид, а не параллельный источник истины. --- # 4. Типы узлов Узел MUDL представляет семантический элемент. Определены следующие типы узлов: | Тип узла | Что представляет | Каноническая фигура | |-----------|------------|-----------------| | `Universe` | Семантическую власть, границу суверенитета | Прямоугольник с двойной рамкой | | `Namespace` | Опубликованную организацию понятий | Папка, прямоугольник с ярлыком | | `Object` | Семантическую точку истины (*что существует*) | Прямоугольник | | `Projection` | Как объект выглядит в контексте | Прямоугольник (пунктирная рамка) | | `Contract` | Правила, по которым знание может использоваться | Шестиугольник | | `Event` | Что случилось, изменение во времени | Прямоугольник со скруглёнными углами | Фигуры следуют соглашениям о диаграммах из раздела 13 документа [Reference-Diagrams](Reference-Diagrams.md). --- # 5. Типы рёбер Ребро MUDL представляет семантическую связь. Определены следующие типы рёбер: | Тип ребра | Смысл | Типичные концы | |-----------|---------|-------------------| | `owns` | семантическое владение, полномочия | Universe → Namespace, Universe → Object | | `projects` | объект предстаёт в виде проекции | Object → Projection | | `binds` | каноническая идентичность связана с локальной | Object → Object (между вселенными) | | `governs` | контракт управляет объектом или проекцией | Contract → Object, Contract → Projection | | `mapsTo` | соответствие по семантическому отображению | Object → Object | | `synchronizes` | состояние удерживается согласованным между вселенными | Object → Object | | `federatesWith` | отношение федерации между Вселенными | Universe → Universe | Стили рёбер следуют соглашениям: сплошные стрелки для семантических связей, пунктирные - для ссылок. --- # 6. Сериализация в YAML Документ MUDL - это объект YAML (или, равнозначно, JSON) с тегом версии `mudl`, списком `nodes` и списком `edges`. Каждый узел объявляет `id`, `type` (раздел 4) и человеческую подпись `label`; каждое ребро объявляет `from`, `to` и `type` (раздел 5). Идентификаторы и подписи - несемантические подсказки для показа; ключами, на которые опираются генераторы и валидаторы, служат значения `id`. ```text mudl: nodes: - id: type: Universe | Namespace | Object | Projection | Contract | Event label: edges: - from: to: type: owns | projects | binds | governs | mapsTo | synchronizes | federatesWith ``` Документ MUDL СЛЕДУЕТ выводить из той модели MUIF, которую он изображает, чтобы диаграмма была порождённой проекцией, а не написанным вручную дубликатом. --- # 7. Цели генерации Соответствующий генератор детерминированно отрисовывает один источник MUDL в: - **Mermaid** - для встроенной отрисовки в Markdown и на платформах хостинга кода (эта форма используется набором диаграмм в [`assets/`](../assets/)); - **PlantUML** - для инструментальных цепочек, уже стандартизованных на нём; - **SVG** - для фиксированной графики издательского качества. Один и тот же источник ОБЯЗАН давать одну и ту же картинку во всех целях; различается лишь конкретный синтаксис. Типы узлов и рёбер отображаются на фигуры и соединители каждой цели по канонической визуальной нотации. --- # 8. Разобранный пример Небольшой документ MUDL: вселенная Acme владеет объектом `Employee`, которым управляет публичный контракт и который проецируется в публичную проекцию; Acme состоит в федерации со вселенной Gov, а два объекта Person сопоставлены отображением. ## 8.1 Источник MUDL (YAML) ```yaml mudl: 1.0 nodes: - id: u_acme type: Universe label: "Acme Corp" - id: u_gov type: Universe label: "Gov Tax" - id: emp_employee type: Object label: "Employee" - id: emp_public type: Projection label: "EmployeePublicProjection" - id: c_public type: Contract label: "Public Disclosure Contract" - id: gov_taxpayer type: Object label: "Taxpayer" edges: - from: u_acme to: emp_employee type: owns - from: emp_employee to: emp_public type: projects - from: c_public to: emp_public type: governs - from: u_acme to: u_gov type: federatesWith - from: emp_employee to: gov_taxpayer type: mapsTo ``` ## 8.2 Порождённый Mermaid ```mermaid flowchart TD u_acme["Acme Corp"] u_gov["Gov Tax"] emp_employee["Employee"] emp_public["EmployeePublicProjection"] c_public{{"Public Disclosure Contract"}} gov_taxpayer["Taxpayer"] u_acme -->|owns| emp_employee emp_employee -->|projects| emp_public c_public -->|governs| emp_public u_acme -->|federatesWith| u_gov emp_employee -.->|mapsTo| gov_taxpayer classDef universe fill:#e6f0ea,stroke:#2b6a4a,stroke-width:2px; classDef obj fill:#eef3fb,stroke:#33415c,stroke-width:1px; classDef proj fill:#eef3fb,stroke:#33415c,stroke-width:1px,stroke-dasharray:4 3; classDef contract fill:#fbf3e6,stroke:#8c6a2b,stroke-width:1px; class u_acme,u_gov universe; class emp_employee,gov_taxpayer obj; class emp_public proj; class c_public contract; ``` Поскольку Mermaid порождён из источника MUDL, а сам источник MUDL - проекция мета-модели, картинка гарантированно согласуется с моделью, которую иллюстрирует. --- # 9. Направления развития Ожидается, что **MUDL** дозреет до самостоятельной информативной спецификации, охватывающей полный словарь узлов и рёбер, каноническую визуальную нотацию (фигуры, рамки, стили стрелок), схему YAML/JSON и соответствующие генераторы в Mermaid, PlantUML и SVG. Его определяющее свойство в том, что диаграмма становится ещё одной проекцией мета-модели - написанной как данные, проверенной на соответствие и отрисованной детерминированно, - так что визуальная документация в тысячах репозиториев остаётся единообразной и всегда идёт в ногу с моделями, которые иллюстрирует. Ещё одно направление - возможность **сравнения диаграмм**, сообщающая о семантических, а не пиксельных изменениях между двумя ревизиями MUDL. --- # Заключение MUDL делает диаграмму Мета-Вселенной тем, чем всякий другой артефакт спецификации уже является: проекцией модели, выведенной из единственного источника истины. Картинка, написанная как данные, не может втихую противоречить семантике, которую изображает, - она может только её отрисовать.