> Перевод даётся для удобства чтения. Нормативным является английский оригинал. # Смысловая миграция **Спецификация Мета-Вселенной** **Идентификатор документа:** MU-V2-ARCH-010 **Название:** Стандарт смысловой миграции (SMS) **Класс документа:** нормативный **Версия:** 2.0 (черновик) **Статус:** рабочий черновик **Нормативные ссылки:** [MMAS-Core](../02-architecture/MMAS-Core.md), [Versioning](../02-architecture/Versioning.md), [MMAS-Interchange](../02-architecture/MMAS-Interchange.md), [Event](../04-core-concepts/Event.md), [Traceability](../02-architecture/Traceability.md), RFC 2119 **Информативные ссылки:** [Migration from v1](../07-guides/Migration-from-v1.md), [Naming-Conventions](../02-architecture/Naming-Conventions.md) **Копирайт:** © Orkestron.AI **Лицензия:** Apache-2.0 --- # 1. Назначение Этот документ определяет **Стандарт смысловой миграции (SMS)** - нормативные правила, по которым Мета-Модель переходит от одной версии, структуры или словаря к другим, *не теряя и не меняя смысл молча*. Руководство [Migration from v1](../07-guides/Migration-from-v1.md) вводит миграцию как эволюционную деятельность на трёх уровнях и называет SMS её будущей формализацией. Этот документ воплощает понятие: он задаёт уровни миграции, фиксирует каждую миграцию как прослеживаемое [Событие](../04-core-concepts/Event.md), определяет **манифест миграции** и закрепляет инвариант: *смысл НЕ ДОЛЖЕН меняться без явного события миграции*. --- # 2. Область действия Эта спецификация применяется к: - миграции Мета-Моделей, Бандлов, Слоёв, Объектов, Свойств, Связей, Событий, Контрактов и Проекций между версиями; - переименованию, разделению, слиянию и переклассификации понятий; - структурной реорганизации репозиториев и документов; - повторной привязке мигрировавшей модели к федерации. Она не определяет технологию хранения записей о миграции и не задаёт процесс человеческого рассмотрения (см. [Migration from v1](../07-guides/Migration-from-v1.md)). Смысловой отпечаток и канонизация, на которые она опирается, определены в [MMAS-Interchange](../02-architecture/MMAS-Interchange.md). --- # 3. Три уровня миграции О миграции ОБЯЗАНО рассуждать на трёх различных уровнях, которые МОГУТ продвигаться независимо и с разной скоростью: - **Структурная миграция** - *структура репозитория и документов*: раскладка папок, организация файлов, идентификаторы и заголовки документов. Структурное изменение МОЖЕТ быть тихим: само по себе оно не меняет смысла. - **Смысловая миграция** - *терминология, понятия, связи и правила*: как понятие переименовывается, разделяется, сливается, переклассифицируется или переопределяется. Смысловое изменение НЕ ДОЛЖНО быть тихим (см. раздел 5). - **Миграция федерации** - *как мигрировавшая модель взаимодействует с другими Вселенными*: повторная привязка доверия, идентичности, смысловых сопоставлений, контрактов и синхронизации проекций, чтобы модель могла вернуться в широкую экосистему. Полная миграция ОБЯЗАНА охватить все три уровня. Структурная миграция перемещает файлы; смысловая миграция сохраняет смысл внутри них; миграция федерации восстанавливает отношения модели с другими. --- # 4. Миграция как прослеживаемая, объяснимо-обратимая операция Миграция ОБЯЗАНА фиксироваться как одно или несколько неизменяемых [Событий](../04-core-concepts/Event.md) категории *смысловое событие* (а где применимо - и *события жизненного цикла*). Каждое событие миграции ОБЯЗАНО объявлять: - свой предмет - артефакт, который мигрирует; - **версию-источник** и **версию-цель**; - ссылку на управляющий **манифест миграции** (раздел 6); - своё [происхождение](../02-architecture/Traceability.md) - кто выполнил миграцию и по какому полномочию. Миграция ОБЯЗАНА быть: - **прослеживаемой** - каждое изменение ОБЯЗАНО прослеживаться от источника к результату через событие миграции и его манифест; - **объяснимо обратимой** - предыдущее состояние, обоснование и сопоставление ОБЯЗАНЫ фиксироваться, чтобы изменение можно было понять и, где сопоставление обратимо, обратить. SMS не требует, чтобы каждая миграция была *исполнима* в обратную сторону; он требует, чтобы каждая миграция была *объяснима* в обратную сторону. Исправления миграции ОБЯЗАНЫ сами выражаться новыми событиями миграции, ссылающимися на исправляемое событие. Событие миграции НЕ ДОЛЖНО правиться или удаляться после записи. --- # 5. Правило отсутствия молчаливых смысловых изменений Смысл НЕ ДОЛЖЕН меняться без явного события миграции. В частности: - Изменение, меняющее [Смысловой отпечаток](../02-architecture/MMAS-Interchange.md) какого-либо понятия, ОБЯЗАНО сопровождаться событием миграции и записью в манифесте миграции, которая его классифицирует. - Переименование понятия ОБЯЗАНО порождать новое [каноническое смысловое имя (CSN)](../02-architecture/Naming-Conventions.md); старое CSN НЕ ДОЛЖНО молча переписываться, а сопоставление старое → новое ОБЯЗАНО фиксироваться в манифесте. - Изменение, затрагивающее только несмысловое содержимое (отображаемые имена, описания, документацию, расположение файлов), НЕ ДОЛЖНО менять отпечаток и МОЖЕТ выполняться как структурная миграция без события смысловой миграции. Асимметрия намеренна: **структурному изменению позволено быть тихим, а смысловому - нет.** --- # 6. Манифест миграции Каждая смысловая миграция ОБЯЗАНА управляться машиночитаемым **манифестом миграции**, который декларативно описывает, как смысл переносится из одной версии в следующую. Манифест ОБЯЗАН содержать: | Поле | Значение | |-------|---------| | `fromVersion` | Исходная версия Мета-Модели. | | `toVersion` | Целевая версия Мета-Модели. | | `fromFingerprint` | [Смысловой отпечаток](../02-architecture/MMAS-Interchange.md) исходной модели. | | `toFingerprint` | Смысловой отпечаток целевой модели. | | `conceptMappings` | Упорядоченный набор изменённых понятий, каждое из которых сопоставляет исходное CSN с целевым CSN или CSN-ами и с видом изменения. | | `compatibility` | Общая классификация совместимости (раздел 7). | | `events` | Ссылки на событие или события миграции, вводящие этот манифест в действие. | | `provenance` | Автор, полномочие и время создания манифеста. | Каждая запись в `conceptMappings` ОБЯЗАНА объявлять **вид изменения**: `renamed`, `split`, `merged`, `reclassified`, `redefined`, `added`, `deprecated` или `removed`, вместе с исходными и целевыми CSN, которые она связывает. Неизменившееся понятие появляться не обязано; отсутствие в `conceptMappings` ОБЯЗАНО означать *смысл сохранён без изменений*. Манифест миграции ОБЯЗАН сам быть выразим в [MUIF](../02-architecture/MMAS-Interchange.md), чтобы им можно было обмениваться, брать с него отпечаток и проверять его, как любой другой артефакт. --- # 7. Классификация совместимости Каждая миграция ОБЯЗАНА объявлять классификацию совместимости, согласованную с классификацией смысловых изменений из [Versioning](../02-architecture/Versioning.md): - **Совместимая** - ни одно понятие не меняет смысла; потребители исходной модели могут потреблять целевую без адаптации. Отпечаток модели МОЖЕТ меняться только за счёт добавляющих, неломающих понятий. - **Условно совместимая** - смысл сохранён, но меняется представление (например, переименование с зафиксированным сопоставлением CSN); потребители МОГУТ продолжать пользоваться исходной моделью через сопоставления манифеста. - **Ломающая** - как минимум одно понятие меняет смысл, удаляется или сливается так, что теряются различия; потребители ОБЯЗАНЫ адаптироваться, руководствуясь `conceptMappings` манифеста. Классификация ОБЯЗАНА выводиться из `conceptMappings` и ОБЯЗАНА быть согласованной с изменением Смысловых отпечатков. --- # 8. Сохранение канонической идентичности Миграция НЕ ДОЛЖНА ломать **каноническую идентичность**. - Устойчивая идентичность Объекта, Связи, События или Контракта ОБЯЗАНА переживать миграцию неизменной, даже когда меняются его CSN или отображаемое имя. - Там, где понятие разделяется, каждое получившееся понятие ОБЯЗАНО объявлять своё выведение из исходной идентичности; там, где понятия сливаются, получившееся понятие ОБЯЗАНО ссылаться на каждую поглощаемую им исходную идентичность. - Исторические [События](../04-core-concepts/Event.md) и предыдущие версии ОБЯЗАНЫ оставаться доступными и НЕ ДОЛЖНЫ переписываться миграцией. Именно преемственность идентичности позволяет прослеживать [смысловую родословную](../02-architecture/Traceability.md) через границу версий. --- # 9. Разобранный пример: Галактика v1 → Пространство имён v2 Каноническое развитие v1→v2 переименовывает организующее понятие v1 *Галактика* в [Пространство имён](../02-architecture/Naming-Conventions.md) v2. Смысл - *как понятия организуются и публикуются* - сохраняется; меняются только имя и его управленческий статус. Это **условно совместимая** смысловая миграция. Набросок манифеста миграции: ```text fromVersion : 1.4 toVersion : 2.0 fromFingerprint : sha256: toFingerprint : sha256: compatibility : Conditionally Compatible conceptMappings : - source: galaxy. target: namespace. kind: renamed - source: object. target: metaObject. kind: renamed - source: identity. target: canonicalIdentity. kind: renamed - source: projection. (unchanged — omitted) events : [ evt:migration/1.4→2.0/namespace ] provenance : { author: , authority: , at: