Представление контента: переход от структурированных данных к модели
# «Контент как данные» (обычный 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