Представление контента: переход от структурированных данных к модели
# «Контент как данные» (обычный CMS-подход) Допустим, есть статья. Как она выглядит в представлении *структурированных данных*: ```javascript { "id": "123", "type": "article", "title": "Как работает Pheix", "body": "Текст статьи...", "author": "konstantin", "created_at": "2026-02-10" } ``` Система: * хранит; * читает; * обновляет; * рендерит. Она работает со *структурированными данными*. Эти данные — собственно контент, a не модель контента. --- # «Контент как модель» (семантический подход) Теперь та же статья, но как модель: ```yaml Entity: KnowledgeStatement Identity: id: pheix://content/statement/123 version: 4 Semantics: intent: explain topic: "Pheix architecture" audience: "engineers" stance: neutral maturity: draft → reviewed Structure: parts: - role: thesis meaning: "Pheix is built around semantic content models" - role: explanation meaning: "It separates meaning from storage and delivery" - role: implications meaning: "This allows multi-channel projections" Relations: references: - pheix://content/model/D3 - pheix://content/model/D4 Lifecycle: state: published history: - event: created - event: reviewed - event: published ``` Здесь система работает не с `title` или `body`, а с: * намерением; * темой; * ролью частей; * отношениями; * состоянием знания. Это уже не *структурированные данные*, а *онтологическая сущность*. --- # Ключевая разница в поведении системы Теперь главное: как система действует. **В «данных»**: * обновляется поле; * рендерится шаблон; * данные фильтруются по заданному критерию. В «модели»: * проверяется смысловая целостность; * валидируется намерение и структура; * выполняется управление жизненным циклом знания; * выстраиваются проекции для разных сред. --- # Пример операций в модели Рассмотрим операцию: «подготовить контент к публикации». При работе с данными: ```sql UPDATE articles SET status = 'published' WHERE id = 123; ``` При работе с моделью: ``` transition KnowledgeStatement#123 from: reviewed to: published if: - has(Structure.parts where role=thesis) - has(Relations.references) - Semantics.intent is defined ``` Система оперирует не со статусом, а с готовностью смысла. --- # Ещё пример: один и тот же смысл — разные проекции Модель: ```yaml Semantics.intent: explain topic: "Pheix architecture" audience: "engineers" ``` Из неё можно получить: * HTML-статью * Markdown-документ * JSON-API-ответ * PDF * презентацию Но ни одна из этих форм не является контентом. Они — проекции (рендеры) модели. --- # Путь от «данных» к «модели» — это путь от хранения к смыслу. ## Где система в настоящий момент * Контент = записи / документы / структуры; * Схема описывает *форму*, но не *смысл*; * Операции работают с полями, не с идеями; * Инварианты — технические, не семантические. Это уровень: **Structured Data System** ## 1. Ввести семантические типы Не просто `type: "article"`, a: ```javascript { "kind": "Statement", "intent": "Explain", "domain": "Architecture", "claims": [...], "evidence": [...], "audience": "Engineers" } ``` То есть: 1. Контент знает *что он такое по смыслу*; 2. Типы — не технические, а концептуальные. Это превращает данные в **смысловые объекты**. ## 2. Ввести поведение модели Модель — это не только структура, но и правила: * что можно делать с этим смыслом; * как он изменяется; * какие состояния допустимы. Например: ``` Draft → Reviewed → Published → Deprecated ``` И эти переходы — не «флаги», а **логика домена**. Контент начинает жить как сущность, а не как blob. ## 3. Проекции вместо представлений Pheix уже близок к этому философски. Модель не знает про HTML/JSON/SPA, но ей известно: * какие смыслы есть; * какие связи между ними; * какие состояния допустимы. А UI — это проекции модели: ``` Model → Projection → HTML Model → Projection → API Model → Projection → Search Index ``` Представление — следствие, не причина. ## 4. Операции над смыслом Сейчас: ``` update_field("title") ``` В модели будет: ``` refine_claim(id) add_evidence(statement_id) resolve_contradiction(a, b) ``` То есть система работает не с данными, а с **идеями как объектами**. ## 5. Инварианты смысла Тут начинается настоящая «модель»: * Утверждение не может быть опубликовано без источника; * Противоречащие смыслы требуют разрешения; * Контент без контекста невалиден. Это уже не про структуру, а про **онтологию системы**. ## Для Pheix можно честно декларировать > Pheix находится в переходе от системы хранения данных к системе оперирования смыслами. Контент пока представлен как структурированные данные, но архитектура ориентирована на превращение этих данных в семантическую модель.
task