smk-playground/docs/DIMENSIONS.md

74 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Dimension vocabulary audit
The complete DA and EN snapshots were profiled before implementing canonical geometry. The detailed
frequency/cross-tab dataset is `data/reports/dimension-vocabulary.parquet`.
## Coverage and quality
| Measure | DA | EN |
|---|---:|---:|
| Parsed dimension entries | 430,613 | 431,230 |
| Numeric text values | 430,429 | 431,044 |
| Missing values | 184 | 186 |
| Records without a dimension array | 3,587 | 3,581 |
| Missing `part` entries | 2,715 | 2,732 |
| Missing `type` entries | 265 | 265 |
| Missing `unit` entries | 292 | 310 |
| Exact duplicate measurements beyond first | 23 | 24 |
| Conflicting values for same row/part/type/unit | 413 | 413 |
No non-empty malformed numeric text was observed: every present `value` matched the strict numeric
grammar. Missing values remain missing. Conflicts and duplicate measurements still require
row-level diagnostics during canonicalization.
## Vocabulary
The language files localize type/unit more consistently than part:
| Canonical concept | DA observed | EN observed |
|---|---|---|
| width | `bredde` (208,330) | `width` (208,636) |
| height | `højde` (209,736) | `height` (210,033) |
| depth | `dybde` (11,301) | `depth` (11,306) |
| diameter | `diameter` (913) | `diameter` (914) |
| length | `længde` (22) | `length` (31) |
| millimetres | `millimeter` (396,316), `mm` (22), typo `milimeter` (520) | `mm` (397,447) |
| centimetres | `centimeter` (33,402), `cm` (2) | `cm` (33,434) |
Non-geometric types include weight (`vægt`/`weight`, 39 each), playing time
(`spilletid`/`playing time`, 5 each), and one `bruttoregisterton`. Their units include kg/kilo,
minutes and seconds; they must not enter width × height calculations.
The largest part labels are sheet (`bladmaal`, `bladmål`, `Bladmål`), plate
(`plademaal`, `plademål`, `Plademål`), `Netto`/`netto`, mounting, image and `Brutto`/`brutto`.
Both language snapshots retain Danish part labels. Case, `aa`/`å`, and `*mål` spelling variants
are source variation rather than different physical concepts.
## Proposed explicit mapping
Canonicalization should normalize Unicode, trim, case-fold and map only listed aliases:
| Source aliases | Canonical part/axis/unit |
|---|---|
| `Netto`, `netto`, `Nettomål` | `net` part |
| `Brutto`, `brutto`, `Bruttomål`, `bruttomål` | `gross` part |
| `bladmaal`, `bladmål`, `Bladmål`, `Bladmaal` | `sheet` part |
| `plademaal`, `plademål`, `Plademål`, `Plademaal` | `plate` part |
| `monteringsmaal`, `monteringsmål` | `mount` part |
| `billedmaal`, `billedmål`, `Billedmål` | `image` part |
| `papirmål` | `paper` part |
| `bredde`, `width` | `width` |
| `højde`, `height` | `height` |
| `dybde`, `depth` | `depth` |
| `diameter` | `diameter` |
| `længde`, `length` | `length` |
| `millimeter`, `milimeter`, `mm` | `mm`, factor to cm `0.1` |
| `centimeter`, `cm` | `cm`, factor to cm `1.0` |
Prefer a complete, non-conflicting `net` width/height pair. Keep plate, sheet, image, paper and
mount dimensions separately rather than silently treating them as equivalent. Gross is a fallback
only under an explicitly named policy. Diameter is not width; depth/diameter and object classes such
as sculpture, relief, installation, statue, object, audio/video and multi-part work make generic
width × height potentially misleading. Unknown parts/types/units stay raw and canonical geometry
stays null.