ключ точки — интервал одной формы, класс «эпизодных метрик» убран

Перепись по 22 метрикам с интервалами опровергла признак из первой редакции:
start всегда равен date, интервалы несёт не только сон, обе формы точки не
смешиваются внутри метрики одной доставки, а разные интервалы под одной меткой
всегда несут разное содержимое. Значит ключ единый — метрика + слой + начало +
конец, у измерения вырожденный, без ветвления по классу.
This commit is contained in:
av
2026-08-01 17:15:49 +03:00
parent 3c9d226a34
commit 3e93dd95b4
7 changed files with 119 additions and 73 deletions
@@ -121,23 +121,34 @@ double, и хеш-детектор начнёт видеть изменения
Сжатие наблюдалось около 25 раз — ~2 МБ в сутки вместо ~50 МБ.
### Эпизод адресуется интервалом, а не меткой
### Координата — интервал, у измерения вырожденный
Координата `метрика + слой + метка` верна для точки-измерения и неверна для
точки-интервала: под одной меткой лежит до трёх разных эпизодов сна. Поэтому
у точки, несущей `start` и `end`, координата — `метрика + слой + start + end`.
Ключ `метрика + слой + метка` верен для точки-измерения и неверен для
точки-интервала: под одной меткой лежит до трёх записей сна. Ключ единый:
Замер по всем 94 доставкам (1880 эпизодных точек, находка 47): метка одна даёт
170 координат и 33 столкновения **внутри одной доставки**, интервал — 174
координаты и ноль столкновений; `value` в ключе не добавляет ни одной
координаты. Из 174 координат ни одна не несёт двух разных содержимых, то есть
на эпизодном сне правило разрешения столкновений не срабатывает ни разу.
```
координата = метрика + слой + начало + конец конец = начало, если end нет
```
**Эпизодность выводится из данных, а не курируется списком** — так же, как слой
выводится из выравнивания меток, а не из заголовка. Признак: точка несёт `start`
и `end`, отличные от `date`. Список имён метрик здесь был бы вторым способом
описывать то, что уже сказано формой точки, и разошёлся бы с ней на первой же
новой метрике HAE.
Замер по 94 доставкам (находка 47): метка одна даёт 170 координат сна и 33
столкновения **внутри одной доставки**, интервал — 174 и ноль; `value` в ключе
не добавляет ни одной координаты.
Первая редакция вводила отдельный класс «эпизодных схем» с признаком «`start` и
`end`, отличные от `date`». Перепись по всем 22 метрикам с интервалами его
опровергла:
- **`start` всегда равен `date`** — признак не сработал бы ни разу;
- **интервалы несёт не только сон**, а 22 метрики, так что «эпизодная схема» —
не класс, а норма;
- **обе формы точки не смешиваются** внутри метрики одной доставки, поэтому
единый ключ не разорвёт надвое точку, приехавшую то с `end`, то без;
- **разные интервалы под одной меткой всегда несут разное содержимое**
(проверено по всем метрикам), так что ключ с интервалом не задваивает
поправленное задним числом.
Одна форма ключа вместо двух убирает из кода ветвление и понятие, которое
пришлось бы поддерживать в каталоге, Read API и импорте экспорта Apple.
Почему не «принять потерю и писать `WARN`»: в дублях внутри одной доставки
`received_at` общий, и тай-брейк по времени приёма неприменим в принципе —