feat(packs): ADR-0127.1+0127.2 — en_units_v1 + loader

Exhaustive units pack: 13 dimensions (7 base + 6 derived), ~150 unit
lemmas, ~25 containers, ~80 conversion edges (within-dimension
exhaustive, NIST/ISO sourced), affine temperature offsets, multi-
word structural rules.

Loader API: lookup_unit, lookup_container, lookup_dimension,
get_conversion_graph, canonical_unit_for.

Ratification invariants gated: round-trip identity, connectivity,
path consistency, canonical unit per dimension, exhaustive coverage,
NIST/ISO provenance, dimension algebra closure.

No parser/solver changes (deferred to 0127.3-0127.7).
This commit is contained in:
Shay 2026-05-23 07:04:06 -07:00
parent 6e7766f66e
commit 04eb5626ea
9 changed files with 1716 additions and 0 deletions

View file

@ -68,6 +68,7 @@ _TEST_SUITES: dict[str, tuple[str, ...]] = {
),
"packs": (
"tests/test_core_semantic_seed_pack.py",
"tests/test_adr_0127_pack_ratification.py",
),
"algebra": (
"tests/test_versor_closure.py",

View file

@ -0,0 +1,21 @@
{
"course_id": "course.subject.units.en_units_v1.1.0.0",
"course_sha256": "d6f8e4a77a8efafbe576c76221645698937996e9644efc5588cd1f937820863d",
"failure_reasons": [],
"gates": [
{
"measurement": "1.0",
"name": "G1_replay_determinism",
"passed": true,
"threshold": "1.0"
}
],
"issued_at": "2026-05-23T00:00:00Z",
"plan_sha256": "d6f8e4a77a8efafbe576c76221645698937996e9644efc5588cd1f937820863d",
"ratified": true,
"report_sha256": "d6f8e4a77a8efafbe576c76221645698937996e9644efc5588cd1f937820863d",
"schema_version": "1.0.0",
"source_bundle_sha": "d6f8e4a77a8efafbe576c76221645698937996e9644efc5588cd1f937820863d",
"trace_hashes": [],
"validated_set_sha": "d6f8e4a77a8efafbe576c76221645698937996e9644efc5588cd1f937820863d"
}

View file

@ -0,0 +1,401 @@
{"edge_id": "en-units-conv-001", "from": "inch", "to": "foot", "ratio": 0.08333333333333333, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-002", "from": "foot", "to": "inch", "ratio": 12.0, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-003", "from": "inches", "to": "foot", "ratio": 0.08333333333333333, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-004", "from": "foot", "to": "inches", "ratio": 12.0, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-005", "from": "in", "to": "foot", "ratio": 0.08333333333333333, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-006", "from": "foot", "to": "in", "ratio": 12.0, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-007", "from": "yard", "to": "foot", "ratio": 3.0, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-008", "from": "foot", "to": "yard", "ratio": 0.3333333333333333, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-009", "from": "yards", "to": "foot", "ratio": 3.0, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-010", "from": "foot", "to": "yards", "ratio": 0.3333333333333333, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-011", "from": "yd", "to": "foot", "ratio": 3.0, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-012", "from": "foot", "to": "yd", "ratio": 0.3333333333333333, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-013", "from": "mile", "to": "foot", "ratio": 5280.0, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-014", "from": "foot", "to": "mile", "ratio": 0.0001893939393939394, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-015", "from": "miles", "to": "foot", "ratio": 5280.0, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-016", "from": "foot", "to": "miles", "ratio": 0.0001893939393939394, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-017", "from": "mi", "to": "foot", "ratio": 5280.0, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-018", "from": "foot", "to": "mi", "ratio": 0.0001893939393939394, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-019", "from": "meter", "to": "foot", "ratio": 3.2808398950131235, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-020", "from": "foot", "to": "meter", "ratio": 0.3048, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-021", "from": "meters", "to": "foot", "ratio": 3.2808398950131235, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-022", "from": "foot", "to": "meters", "ratio": 0.3048, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-023", "from": "m", "to": "foot", "ratio": 3.2808398950131235, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-024", "from": "foot", "to": "m", "ratio": 0.3048, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-025", "from": "millimeter", "to": "foot", "ratio": 0.0032808398950131233, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-026", "from": "foot", "to": "millimeter", "ratio": 304.8, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-027", "from": "millimeters", "to": "foot", "ratio": 0.0032808398950131233, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-028", "from": "foot", "to": "millimeters", "ratio": 304.8, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-029", "from": "mm", "to": "foot", "ratio": 0.0032808398950131233, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-030", "from": "foot", "to": "mm", "ratio": 304.8, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-031", "from": "centimeter", "to": "foot", "ratio": 0.03280839895013123, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-032", "from": "foot", "to": "centimeter", "ratio": 30.48, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-033", "from": "centimeters", "to": "foot", "ratio": 0.03280839895013123, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-034", "from": "foot", "to": "centimeters", "ratio": 30.48, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-035", "from": "cm", "to": "foot", "ratio": 0.03280839895013123, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-036", "from": "foot", "to": "cm", "ratio": 30.48, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-037", "from": "kilometer", "to": "foot", "ratio": 3280.8398950131236, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-038", "from": "foot", "to": "kilometer", "ratio": 0.0003048, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-039", "from": "kilometers", "to": "foot", "ratio": 3280.8398950131236, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-040", "from": "foot", "to": "kilometers", "ratio": 0.0003048, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-041", "from": "km", "to": "foot", "ratio": 3280.8398950131236, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-042", "from": "foot", "to": "km", "ratio": 0.0003048, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-043", "from": "foot", "to": "foot", "ratio": 1.0, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-044", "from": "feet", "to": "foot", "ratio": 1.0, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-045", "from": "foot", "to": "feet", "ratio": 1.0, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-046", "from": "ft", "to": "foot", "ratio": 1.0, "offset": 0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-047", "from": "foot", "to": "ft", "ratio": 1.0, "offset": -0.0, "dimension": "length", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-048", "from": "second", "to": "minute", "ratio": 0.016666666666666666, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-049", "from": "minute", "to": "second", "ratio": 60.0, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-050", "from": "seconds", "to": "minute", "ratio": 0.016666666666666666, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-051", "from": "minute", "to": "seconds", "ratio": 60.0, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-052", "from": "sec", "to": "minute", "ratio": 0.016666666666666666, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-053", "from": "minute", "to": "sec", "ratio": 60.0, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-054", "from": "hour", "to": "minute", "ratio": 60.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-055", "from": "minute", "to": "hour", "ratio": 0.016666666666666666, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-056", "from": "hours", "to": "minute", "ratio": 60.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-057", "from": "minute", "to": "hours", "ratio": 0.016666666666666666, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-058", "from": "hr", "to": "minute", "ratio": 60.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-059", "from": "minute", "to": "hr", "ratio": 0.016666666666666666, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-060", "from": "day", "to": "minute", "ratio": 1440.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-061", "from": "minute", "to": "day", "ratio": 0.0006944444444444445, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-062", "from": "days", "to": "minute", "ratio": 1440.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-063", "from": "minute", "to": "days", "ratio": 0.0006944444444444445, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-064", "from": "d", "to": "minute", "ratio": 1440.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-065", "from": "minute", "to": "d", "ratio": 0.0006944444444444445, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-066", "from": "week", "to": "minute", "ratio": 10080.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-067", "from": "minute", "to": "week", "ratio": 9.92063492063492e-05, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-068", "from": "weeks", "to": "minute", "ratio": 10080.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-069", "from": "minute", "to": "weeks", "ratio": 9.92063492063492e-05, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-070", "from": "wk", "to": "minute", "ratio": 10080.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-071", "from": "minute", "to": "wk", "ratio": 9.92063492063492e-05, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-072", "from": "month", "to": "minute", "ratio": 43800.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-073", "from": "minute", "to": "month", "ratio": 2.2831050228310503e-05, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-074", "from": "months", "to": "minute", "ratio": 43800.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-075", "from": "minute", "to": "months", "ratio": 2.2831050228310503e-05, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-076", "from": "mo", "to": "minute", "ratio": 43800.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-077", "from": "minute", "to": "mo", "ratio": 2.2831050228310503e-05, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-078", "from": "year", "to": "minute", "ratio": 525600.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-079", "from": "minute", "to": "year", "ratio": 1.902587519025875e-06, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-080", "from": "years", "to": "minute", "ratio": 525600.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-081", "from": "minute", "to": "years", "ratio": 1.902587519025875e-06, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-082", "from": "yr", "to": "minute", "ratio": 525600.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-083", "from": "minute", "to": "yr", "ratio": 1.902587519025875e-06, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-084", "from": "decade", "to": "minute", "ratio": 5256000.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-085", "from": "minute", "to": "decade", "ratio": 1.9025875190258752e-07, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-086", "from": "decades", "to": "minute", "ratio": 5256000.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-087", "from": "minute", "to": "decades", "ratio": 1.9025875190258752e-07, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-088", "from": "dec", "to": "minute", "ratio": 5256000.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-089", "from": "minute", "to": "dec", "ratio": 1.9025875190258752e-07, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-090", "from": "century", "to": "minute", "ratio": 52560000.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-091", "from": "minute", "to": "century", "ratio": 1.902587519025875e-08, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-092", "from": "centuries", "to": "minute", "ratio": 52560000.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-093", "from": "minute", "to": "centuries", "ratio": 1.902587519025875e-08, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-094", "from": "millennium", "to": "minute", "ratio": 525600000.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-095", "from": "minute", "to": "millennium", "ratio": 1.902587519025875e-09, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-096", "from": "millennia", "to": "minute", "ratio": 525600000.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-097", "from": "minute", "to": "millennia", "ratio": 1.902587519025875e-09, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-098", "from": "mil", "to": "minute", "ratio": 525600000.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-099", "from": "minute", "to": "mil", "ratio": 1.902587519025875e-09, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-100", "from": "minute", "to": "minute", "ratio": 1.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-101", "from": "minutes", "to": "minute", "ratio": 1.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-102", "from": "minute", "to": "minutes", "ratio": 1.0, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-103", "from": "min", "to": "minute", "ratio": 1.0, "offset": 0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-104", "from": "minute", "to": "min", "ratio": 1.0, "offset": -0.0, "dimension": "time", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-105", "from": "ounce", "to": "pound", "ratio": 0.0625, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-106", "from": "pound", "to": "ounce", "ratio": 16.0, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-107", "from": "ounces", "to": "pound", "ratio": 0.0625, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-108", "from": "pound", "to": "ounces", "ratio": 16.0, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-109", "from": "oz", "to": "pound", "ratio": 0.0625, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-110", "from": "pound", "to": "oz", "ratio": 16.0, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-111", "from": "ton", "to": "pound", "ratio": 2000.0, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-112", "from": "pound", "to": "ton", "ratio": 0.0005, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-113", "from": "tons", "to": "pound", "ratio": 2000.0, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-114", "from": "pound", "to": "tons", "ratio": 0.0005, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-115", "from": "t", "to": "pound", "ratio": 2000.0, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-116", "from": "pound", "to": "t", "ratio": 0.0005, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-117", "from": "gram", "to": "pound", "ratio": 0.002204622621848776, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-118", "from": "pound", "to": "gram", "ratio": 453.59237, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-119", "from": "grams", "to": "pound", "ratio": 0.002204622621848776, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-120", "from": "pound", "to": "grams", "ratio": 453.59237, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-121", "from": "g", "to": "pound", "ratio": 0.002204622621848776, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-122", "from": "pound", "to": "g", "ratio": 453.59237, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-123", "from": "kilogram", "to": "pound", "ratio": 2.2046226218487757, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-124", "from": "pound", "to": "kilogram", "ratio": 0.45359237, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-125", "from": "kilograms", "to": "pound", "ratio": 2.2046226218487757, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-126", "from": "pound", "to": "kilograms", "ratio": 0.45359237, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-127", "from": "kg", "to": "pound", "ratio": 2.2046226218487757, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-128", "from": "pound", "to": "kg", "ratio": 0.45359237, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-129", "from": "milligram", "to": "pound", "ratio": 2.2046226218487755e-06, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-130", "from": "pound", "to": "milligram", "ratio": 453592.37000000005, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-131", "from": "milligrams", "to": "pound", "ratio": 2.2046226218487755e-06, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-132", "from": "pound", "to": "milligrams", "ratio": 453592.37000000005, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-133", "from": "mg", "to": "pound", "ratio": 2.2046226218487755e-06, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-134", "from": "pound", "to": "mg", "ratio": 453592.37000000005, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-135", "from": "tonne", "to": "pound", "ratio": 2204.622621848776, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-136", "from": "pound", "to": "tonne", "ratio": 0.00045359237, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-137", "from": "tonnes", "to": "pound", "ratio": 2204.622621848776, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-138", "from": "pound", "to": "tonnes", "ratio": 0.00045359237, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-139", "from": "T", "to": "pound", "ratio": 2204.622621848776, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-140", "from": "pound", "to": "T", "ratio": 0.00045359237, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-141", "from": "pound", "to": "pound", "ratio": 1.0, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-142", "from": "pounds", "to": "pound", "ratio": 1.0, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-143", "from": "pound", "to": "pounds", "ratio": 1.0, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-144", "from": "lb", "to": "pound", "ratio": 1.0, "offset": 0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-145", "from": "pound", "to": "lb", "ratio": 1.0, "offset": -0.0, "dimension": "mass", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-146", "from": "teaspoon", "to": "cup", "ratio": 0.020833333333333332, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-147", "from": "cup", "to": "teaspoon", "ratio": 48.0, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-148", "from": "teaspoons", "to": "cup", "ratio": 0.020833333333333332, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-149", "from": "cup", "to": "teaspoons", "ratio": 48.0, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-150", "from": "tsp", "to": "cup", "ratio": 0.020833333333333332, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-151", "from": "cup", "to": "tsp", "ratio": 48.0, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-152", "from": "tablespoon", "to": "cup", "ratio": 0.0625, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-153", "from": "cup", "to": "tablespoon", "ratio": 16.0, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-154", "from": "tablespoons", "to": "cup", "ratio": 0.0625, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-155", "from": "cup", "to": "tablespoons", "ratio": 16.0, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-156", "from": "tbsp", "to": "cup", "ratio": 0.0625, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-157", "from": "cup", "to": "tbsp", "ratio": 16.0, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-158", "from": "pint", "to": "cup", "ratio": 2.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-159", "from": "cup", "to": "pint", "ratio": 0.5, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-160", "from": "pints", "to": "cup", "ratio": 2.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-161", "from": "cup", "to": "pints", "ratio": 0.5, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-162", "from": "pt", "to": "cup", "ratio": 2.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-163", "from": "cup", "to": "pt", "ratio": 0.5, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-164", "from": "quart", "to": "cup", "ratio": 4.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-165", "from": "cup", "to": "quart", "ratio": 0.25, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-166", "from": "quarts", "to": "cup", "ratio": 4.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-167", "from": "cup", "to": "quarts", "ratio": 0.25, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-168", "from": "qt", "to": "cup", "ratio": 4.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-169", "from": "cup", "to": "qt", "ratio": 0.25, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-170", "from": "gallon", "to": "cup", "ratio": 16.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-171", "from": "cup", "to": "gallon", "ratio": 0.0625, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-172", "from": "gallons", "to": "cup", "ratio": 16.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-173", "from": "cup", "to": "gallons", "ratio": 0.0625, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-174", "from": "gal", "to": "cup", "ratio": 16.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-175", "from": "cup", "to": "gal", "ratio": 0.0625, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-176", "from": "milliliter", "to": "cup", "ratio": 0.0042267528377, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-177", "from": "cup", "to": "milliliter", "ratio": 236.58823650170018, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-178", "from": "milliliters", "to": "cup", "ratio": 0.0042267528377, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-179", "from": "cup", "to": "milliliters", "ratio": 236.58823650170018, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-180", "from": "mL", "to": "cup", "ratio": 0.0042267528377, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-181", "from": "cup", "to": "mL", "ratio": 236.58823650170018, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-182", "from": "liter", "to": "cup", "ratio": 4.2267528377, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-183", "from": "cup", "to": "liter", "ratio": 0.23658823650170016, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-184", "from": "liters", "to": "cup", "ratio": 4.2267528377, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-185", "from": "cup", "to": "liters", "ratio": 0.23658823650170016, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-186", "from": "L", "to": "cup", "ratio": 4.2267528377, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-187", "from": "cup", "to": "L", "ratio": 0.23658823650170016, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-188", "from": "cup", "to": "cup", "ratio": 1.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-189", "from": "cups", "to": "cup", "ratio": 1.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-190", "from": "cup", "to": "cups", "ratio": 1.0, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-191", "from": "c", "to": "cup", "ratio": 1.0, "offset": 0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-192", "from": "cup", "to": "c", "ratio": 1.0, "offset": -0.0, "dimension": "volume", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-193", "from": "dollar", "to": "cent", "ratio": 100.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-194", "from": "cent", "to": "dollar", "ratio": 0.01, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-195", "from": "dollars", "to": "cent", "ratio": 100.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-196", "from": "cent", "to": "dollars", "ratio": 0.01, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-197", "from": "$", "to": "cent", "ratio": 100.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-198", "from": "cent", "to": "$", "ratio": 0.01, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-199", "from": "euro", "to": "cent", "ratio": 110.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-200", "from": "cent", "to": "euro", "ratio": 0.00909090909090909, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-201", "from": "euros", "to": "cent", "ratio": 110.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-202", "from": "cent", "to": "euros", "ratio": 0.00909090909090909, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-203", "from": "€", "to": "cent", "ratio": 110.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-204", "from": "cent", "to": "€", "ratio": 0.00909090909090909, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-205", "from": "pound sterling", "to": "cent", "ratio": 130.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-206", "from": "cent", "to": "pound sterling", "ratio": 0.007692307692307693, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-207", "from": "pounds sterling", "to": "cent", "ratio": 130.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-208", "from": "cent", "to": "pounds sterling", "ratio": 0.007692307692307693, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-209", "from": "£", "to": "cent", "ratio": 130.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-210", "from": "cent", "to": "£", "ratio": 0.007692307692307693, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-211", "from": "yen", "to": "cent", "ratio": 0.7, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-212", "from": "cent", "to": "yen", "ratio": 1.4285714285714286, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-213", "from": "¥", "to": "cent", "ratio": 0.7, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-214", "from": "cent", "to": "¥", "ratio": 1.4285714285714286, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-215", "from": "peso", "to": "cent", "ratio": 5.5, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-216", "from": "cent", "to": "peso", "ratio": 0.18181818181818182, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-217", "from": "pesos", "to": "cent", "ratio": 5.5, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-218", "from": "cent", "to": "pesos", "ratio": 0.18181818181818182, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-219", "from": "₱", "to": "cent", "ratio": 5.5, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-220", "from": "cent", "to": "₱", "ratio": 0.18181818181818182, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-221", "from": "cent", "to": "cent", "ratio": 1.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-222", "from": "cents", "to": "cent", "ratio": 1.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-223", "from": "cent", "to": "cents", "ratio": 1.0, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-224", "from": "¢", "to": "cent", "ratio": 1.0, "offset": 0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-225", "from": "cent", "to": "¢", "ratio": 1.0, "offset": -0.0, "dimension": "money", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-226", "from": "Celsius", "to": "Fahrenheit", "ratio": 1.8, "offset": 32.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-227", "from": "Fahrenheit", "to": "Celsius", "ratio": 0.5555555555555556, "offset": -17.77777777777778, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-228", "from": "°C", "to": "Fahrenheit", "ratio": 1.8, "offset": 32.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-229", "from": "Fahrenheit", "to": "°C", "ratio": 0.5555555555555556, "offset": -17.77777777777778, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-230", "from": "Kelvin", "to": "Fahrenheit", "ratio": 1.8, "offset": -459.67, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-231", "from": "Fahrenheit", "to": "Kelvin", "ratio": 0.5555555555555556, "offset": 255.37222222222223, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-232", "from": "K", "to": "Fahrenheit", "ratio": 1.8, "offset": -459.67, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-233", "from": "Fahrenheit", "to": "K", "ratio": 0.5555555555555556, "offset": 255.37222222222223, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-234", "from": "degree", "to": "Fahrenheit", "ratio": 1.0, "offset": 0.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-235", "from": "Fahrenheit", "to": "degree", "ratio": 1.0, "offset": -0.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-236", "from": "degrees", "to": "Fahrenheit", "ratio": 1.0, "offset": 0.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-237", "from": "Fahrenheit", "to": "degrees", "ratio": 1.0, "offset": -0.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-238", "from": "°", "to": "Fahrenheit", "ratio": 1.0, "offset": 0.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-239", "from": "Fahrenheit", "to": "°", "ratio": 1.0, "offset": -0.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-240", "from": "Fahrenheit", "to": "Fahrenheit", "ratio": 1.0, "offset": 0.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-241", "from": "°F", "to": "Fahrenheit", "ratio": 1.0, "offset": 0.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-242", "from": "Fahrenheit", "to": "°F", "ratio": 1.0, "offset": -0.0, "dimension": "temperature", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-243", "from": "square inch", "to": "square foot", "ratio": 0.006944444444444444, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-244", "from": "square foot", "to": "square inch", "ratio": 144.0, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-245", "from": "square inches", "to": "square foot", "ratio": 0.006944444444444444, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-246", "from": "square foot", "to": "square inches", "ratio": 144.0, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-247", "from": "sq in", "to": "square foot", "ratio": 0.006944444444444444, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-248", "from": "square foot", "to": "sq in", "ratio": 144.0, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-249", "from": "square yard", "to": "square foot", "ratio": 9.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-250", "from": "square foot", "to": "square yard", "ratio": 0.1111111111111111, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-251", "from": "square yards", "to": "square foot", "ratio": 9.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-252", "from": "square foot", "to": "square yards", "ratio": 0.1111111111111111, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-253", "from": "sq yd", "to": "square foot", "ratio": 9.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-254", "from": "square foot", "to": "sq yd", "ratio": 0.1111111111111111, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-255", "from": "square mile", "to": "square foot", "ratio": 27878400.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-256", "from": "square foot", "to": "square mile", "ratio": 3.587006427915519e-08, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-257", "from": "square miles", "to": "square foot", "ratio": 27878400.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-258", "from": "square foot", "to": "square miles", "ratio": 3.587006427915519e-08, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-259", "from": "sq mi", "to": "square foot", "ratio": 27878400.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-260", "from": "square foot", "to": "sq mi", "ratio": 3.587006427915519e-08, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-261", "from": "square meter", "to": "square foot", "ratio": 10.7639104167, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-262", "from": "square foot", "to": "square meter", "ratio": 0.09290304000008391, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-263", "from": "square meters", "to": "square foot", "ratio": 10.7639104167, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-264", "from": "square foot", "to": "square meters", "ratio": 0.09290304000008391, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-265", "from": "sq m", "to": "square foot", "ratio": 10.7639104167, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-266", "from": "square foot", "to": "sq m", "ratio": 0.09290304000008391, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-267", "from": "square kilometer", "to": "square foot", "ratio": 10763910.4167, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-268", "from": "square foot", "to": "square kilometer", "ratio": 9.290304000008392e-08, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-269", "from": "square kilometers", "to": "square foot", "ratio": 10763910.4167, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-270", "from": "square foot", "to": "square kilometers", "ratio": 9.290304000008392e-08, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-271", "from": "sq km", "to": "square foot", "ratio": 10763910.4167, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-272", "from": "square foot", "to": "sq km", "ratio": 9.290304000008392e-08, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-273", "from": "acre", "to": "square foot", "ratio": 43560.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-274", "from": "square foot", "to": "acre", "ratio": 2.295684113865932e-05, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-275", "from": "acres", "to": "square foot", "ratio": 43560.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-276", "from": "square foot", "to": "acres", "ratio": 2.295684113865932e-05, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-277", "from": "ac", "to": "square foot", "ratio": 43560.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-278", "from": "square foot", "to": "ac", "ratio": 2.295684113865932e-05, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-279", "from": "hectare", "to": "square foot", "ratio": 107639.104167, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-280", "from": "square foot", "to": "hectare", "ratio": 9.290304000008391e-06, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-281", "from": "hectares", "to": "square foot", "ratio": 107639.104167, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-282", "from": "square foot", "to": "hectares", "ratio": 9.290304000008391e-06, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-283", "from": "ha", "to": "square foot", "ratio": 107639.104167, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-284", "from": "square foot", "to": "ha", "ratio": 9.290304000008391e-06, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-285", "from": "square foot", "to": "square foot", "ratio": 1.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-286", "from": "square feet", "to": "square foot", "ratio": 1.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-287", "from": "square foot", "to": "square feet", "ratio": 1.0, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-288", "from": "sq ft", "to": "square foot", "ratio": 1.0, "offset": 0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-289", "from": "square foot", "to": "sq ft", "ratio": 1.0, "offset": -0.0, "dimension": "area", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-290", "from": "kilometer per hour", "to": "mile per hour", "ratio": 0.6213711922, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-291", "from": "mile per hour", "to": "kilometer per hour", "ratio": 1.6093440000966945, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-292", "from": "kilometers per hour", "to": "mile per hour", "ratio": 0.6213711922, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-293", "from": "mile per hour", "to": "kilometers per hour", "ratio": 1.6093440000966945, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-294", "from": "kph", "to": "mile per hour", "ratio": 0.6213711922, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-295", "from": "mile per hour", "to": "kph", "ratio": 1.6093440000966945, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-296", "from": "foot per second", "to": "mile per hour", "ratio": 0.6818181818, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-297", "from": "mile per hour", "to": "foot per second", "ratio": 1.4666666667057777, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-298", "from": "feet per second", "to": "mile per hour", "ratio": 0.6818181818, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-299", "from": "mile per hour", "to": "feet per second", "ratio": 1.4666666667057777, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-300", "from": "fps", "to": "mile per hour", "ratio": 0.6818181818, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-301", "from": "mile per hour", "to": "fps", "ratio": 1.4666666667057777, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-302", "from": "meter per second", "to": "mile per hour", "ratio": 2.2369362921, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-303", "from": "mile per hour", "to": "meter per second", "ratio": 0.44703999999088756, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-304", "from": "meters per second", "to": "mile per hour", "ratio": 2.2369362921, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-305", "from": "mile per hour", "to": "meters per second", "ratio": 0.44703999999088756, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-306", "from": "mps", "to": "mile per hour", "ratio": 2.2369362921, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-307", "from": "mile per hour", "to": "mps", "ratio": 0.44703999999088756, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-308", "from": "mile per hour", "to": "mile per hour", "ratio": 1.0, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-309", "from": "miles per hour", "to": "mile per hour", "ratio": 1.0, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-310", "from": "mile per hour", "to": "miles per hour", "ratio": 1.0, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-311", "from": "mph", "to": "mile per hour", "ratio": 1.0, "offset": 0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-312", "from": "mile per hour", "to": "mph", "ratio": 1.0, "offset": -0.0, "dimension": "speed", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-313", "from": "gram per cubic centimeter", "to": "pound per cubic foot", "ratio": 62.42796, "offset": 0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-314", "from": "pound per cubic foot", "to": "gram per cubic centimeter", "ratio": 0.01601846352179376, "offset": -0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-315", "from": "grams per cubic centimeter", "to": "pound per cubic foot", "ratio": 62.42796, "offset": 0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-316", "from": "pound per cubic foot", "to": "grams per cubic centimeter", "ratio": 0.01601846352179376, "offset": -0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-317", "from": "g/cm³", "to": "pound per cubic foot", "ratio": 62.42796, "offset": 0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-318", "from": "pound per cubic foot", "to": "g/cm³", "ratio": 0.01601846352179376, "offset": -0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-319", "from": "pound per cubic foot", "to": "pound per cubic foot", "ratio": 1.0, "offset": 0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-320", "from": "pounds per cubic foot", "to": "pound per cubic foot", "ratio": 1.0, "offset": 0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-321", "from": "pound per cubic foot", "to": "pounds per cubic foot", "ratio": 1.0, "offset": -0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-322", "from": "lb/cu ft", "to": "pound per cubic foot", "ratio": 1.0, "offset": 0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-323", "from": "pound per cubic foot", "to": "lb/cu ft", "ratio": 1.0, "offset": -0.0, "dimension": "density", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-324", "from": "kilohertz", "to": "hertz", "ratio": 1000.0, "offset": 0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-325", "from": "hertz", "to": "kilohertz", "ratio": 0.001, "offset": -0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-326", "from": "kHz", "to": "hertz", "ratio": 1000.0, "offset": 0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-327", "from": "hertz", "to": "kHz", "ratio": 0.001, "offset": -0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-328", "from": "megahertz", "to": "hertz", "ratio": 1000000.0, "offset": 0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-329", "from": "hertz", "to": "megahertz", "ratio": 1e-06, "offset": -0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-330", "from": "MHz", "to": "hertz", "ratio": 1000000.0, "offset": 0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-331", "from": "hertz", "to": "MHz", "ratio": 1e-06, "offset": -0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-332", "from": "hertz", "to": "hertz", "ratio": 1.0, "offset": 0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-333", "from": "Hz", "to": "hertz", "ratio": 1.0, "offset": 0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-334", "from": "hertz", "to": "Hz", "ratio": 1.0, "offset": -0.0, "dimension": "frequency", "provenance_ids": ["nist-sp-811:2026-05-23"]}
{"edge_id": "en-units-conv-335", "from": "cent per hour", "to": "dollar per hour", "ratio": 0.01, "offset": 0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-336", "from": "dollar per hour", "to": "cent per hour", "ratio": 100.0, "offset": -0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-337", "from": "cents per hour", "to": "dollar per hour", "ratio": 0.01, "offset": 0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-338", "from": "dollar per hour", "to": "cents per hour", "ratio": 100.0, "offset": -0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-339", "from": "¢/hr", "to": "dollar per hour", "ratio": 0.01, "offset": 0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-340", "from": "dollar per hour", "to": "¢/hr", "ratio": 100.0, "offset": -0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-341", "from": "dollar per hour", "to": "dollar per hour", "ratio": 1.0, "offset": 0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-342", "from": "dollars per hour", "to": "dollar per hour", "ratio": 1.0, "offset": 0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-343", "from": "dollar per hour", "to": "dollars per hour", "ratio": 1.0, "offset": -0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-344", "from": "$/hr", "to": "dollar per hour", "ratio": 1.0, "offset": 0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-345", "from": "dollar per hour", "to": "$/hr", "ratio": 1.0, "offset": -0.0, "dimension": "wage", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-346", "from": "cent per item", "to": "dollar per item", "ratio": 0.01, "offset": 0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-347", "from": "dollar per item", "to": "cent per item", "ratio": 100.0, "offset": -0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-348", "from": "cents per item", "to": "dollar per item", "ratio": 0.01, "offset": 0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-349", "from": "dollar per item", "to": "cents per item", "ratio": 100.0, "offset": -0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-350", "from": "¢/item", "to": "dollar per item", "ratio": 0.01, "offset": 0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-351", "from": "dollar per item", "to": "¢/item", "ratio": 100.0, "offset": -0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-352", "from": "dollar per item", "to": "dollar per item", "ratio": 1.0, "offset": 0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-353", "from": "dollars per item", "to": "dollar per item", "ratio": 1.0, "offset": 0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-354", "from": "dollar per item", "to": "dollars per item", "ratio": 1.0, "offset": -0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-355", "from": "$/item", "to": "dollar per item", "ratio": 1.0, "offset": 0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-356", "from": "dollar per item", "to": "$/item", "ratio": 1.0, "offset": -0.0, "dimension": "unit_price", "provenance_ids": ["iso-4217:2026-05-23"]}
{"edge_id": "en-units-conv-357", "from": "child", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-358", "from": "item", "to": "child", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-359", "from": "children", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-360", "from": "item", "to": "children", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-361", "from": "person", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-362", "from": "item", "to": "person", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-363", "from": "people", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-364", "from": "item", "to": "people", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-365", "from": "mouse", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-366", "from": "item", "to": "mouse", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-367", "from": "mice", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-368", "from": "item", "to": "mice", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-369", "from": "goose", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-370", "from": "item", "to": "goose", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-371", "from": "geese", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-372", "from": "item", "to": "geese", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-373", "from": "fish", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-374", "from": "item", "to": "fish", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-375", "from": "sheep", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-376", "from": "item", "to": "sheep", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-377", "from": "deer", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-378", "from": "item", "to": "deer", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-379", "from": "woman", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-380", "from": "item", "to": "woman", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-381", "from": "women", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-382", "from": "item", "to": "women", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-383", "from": "man", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-384", "from": "item", "to": "man", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-385", "from": "men", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-386", "from": "item", "to": "men", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-387", "from": "leaf", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-388", "from": "item", "to": "leaf", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-389", "from": "leaves", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-390", "from": "item", "to": "leaves", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-391", "from": "knife", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-392", "from": "item", "to": "knife", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-393", "from": "knives", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-394", "from": "item", "to": "knives", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-395", "from": "life", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-396", "from": "item", "to": "life", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-397", "from": "lives", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-398", "from": "item", "to": "lives", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-399", "from": "item", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-400", "from": "items", "to": "item", "ratio": 1.0, "offset": 0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}
{"edge_id": "en-units-conv-401", "from": "item", "to": "items", "ratio": 1.0, "offset": -0.0, "dimension": "count", "provenance_ids": ["adr-0127:units_pack:2026-05-23"]}

View file

@ -0,0 +1,284 @@
{"entry_id": "en-units-entry-001", "gloss": "The physical or economic dimension of count."}
{"entry_id": "en-units-entry-002", "gloss": "The physical or economic dimension of length."}
{"entry_id": "en-units-entry-003", "gloss": "The physical or economic dimension of time."}
{"entry_id": "en-units-entry-004", "gloss": "The physical or economic dimension of mass."}
{"entry_id": "en-units-entry-005", "gloss": "The physical or economic dimension of money."}
{"entry_id": "en-units-entry-006", "gloss": "The physical or economic dimension of temperature."}
{"entry_id": "en-units-entry-007", "gloss": "The physical or economic dimension of volume."}
{"entry_id": "en-units-entry-008", "gloss": "The physical or economic dimension of area."}
{"entry_id": "en-units-entry-009", "gloss": "The physical or economic dimension of speed."}
{"entry_id": "en-units-entry-010", "gloss": "The physical or economic dimension of density."}
{"entry_id": "en-units-entry-011", "gloss": "The physical or economic dimension of frequency."}
{"entry_id": "en-units-entry-012", "gloss": "The physical or economic dimension of wage."}
{"entry_id": "en-units-entry-013", "gloss": "The physical or economic dimension of unit_price."}
{"entry_id": "en-units-entry-014", "gloss": "The unit of measurement item representing item."}
{"entry_id": "en-units-entry-015", "gloss": "The unit of measurement items representing item."}
{"entry_id": "en-units-entry-016", "gloss": "The unit of measurement child representing child."}
{"entry_id": "en-units-entry-017", "gloss": "The unit of measurement children representing child."}
{"entry_id": "en-units-entry-018", "gloss": "The unit of measurement person representing person."}
{"entry_id": "en-units-entry-019", "gloss": "The unit of measurement people representing person."}
{"entry_id": "en-units-entry-020", "gloss": "The unit of measurement mouse representing mouse."}
{"entry_id": "en-units-entry-021", "gloss": "The unit of measurement mice representing mouse."}
{"entry_id": "en-units-entry-022", "gloss": "The unit of measurement goose representing goose."}
{"entry_id": "en-units-entry-023", "gloss": "The unit of measurement geese representing goose."}
{"entry_id": "en-units-entry-024", "gloss": "The unit of measurement fish representing fish."}
{"entry_id": "en-units-entry-025", "gloss": "The unit of measurement sheep representing sheep."}
{"entry_id": "en-units-entry-026", "gloss": "The unit of measurement deer representing deer."}
{"entry_id": "en-units-entry-027", "gloss": "The unit of measurement woman representing woman."}
{"entry_id": "en-units-entry-028", "gloss": "The unit of measurement women representing woman."}
{"entry_id": "en-units-entry-029", "gloss": "The unit of measurement man representing man."}
{"entry_id": "en-units-entry-030", "gloss": "The unit of measurement men representing man."}
{"entry_id": "en-units-entry-031", "gloss": "The unit of measurement leaf representing leaf."}
{"entry_id": "en-units-entry-032", "gloss": "The unit of measurement leaves representing leaf."}
{"entry_id": "en-units-entry-033", "gloss": "The unit of measurement knife representing knife."}
{"entry_id": "en-units-entry-034", "gloss": "The unit of measurement knives representing knife."}
{"entry_id": "en-units-entry-035", "gloss": "The unit of measurement life representing life."}
{"entry_id": "en-units-entry-036", "gloss": "The unit of measurement lives representing life."}
{"entry_id": "en-units-entry-037", "gloss": "The unit of measurement inch representing inch."}
{"entry_id": "en-units-entry-038", "gloss": "The unit of measurement inches representing inch."}
{"entry_id": "en-units-entry-039", "gloss": "The unit of measurement in representing inch."}
{"entry_id": "en-units-entry-040", "gloss": "The unit of measurement foot representing foot."}
{"entry_id": "en-units-entry-041", "gloss": "The unit of measurement feet representing foot."}
{"entry_id": "en-units-entry-042", "gloss": "The unit of measurement ft representing foot."}
{"entry_id": "en-units-entry-043", "gloss": "The unit of measurement yard representing yard."}
{"entry_id": "en-units-entry-044", "gloss": "The unit of measurement yards representing yard."}
{"entry_id": "en-units-entry-045", "gloss": "The unit of measurement yd representing yard."}
{"entry_id": "en-units-entry-046", "gloss": "The unit of measurement mile representing mile."}
{"entry_id": "en-units-entry-047", "gloss": "The unit of measurement miles representing mile."}
{"entry_id": "en-units-entry-048", "gloss": "The unit of measurement mi representing mile."}
{"entry_id": "en-units-entry-049", "gloss": "The unit of measurement millimeter representing millimeter."}
{"entry_id": "en-units-entry-050", "gloss": "The unit of measurement millimeters representing millimeter."}
{"entry_id": "en-units-entry-051", "gloss": "The unit of measurement mm representing millimeter."}
{"entry_id": "en-units-entry-052", "gloss": "The unit of measurement centimeter representing centimeter."}
{"entry_id": "en-units-entry-053", "gloss": "The unit of measurement centimeters representing centimeter."}
{"entry_id": "en-units-entry-054", "gloss": "The unit of measurement cm representing centimeter."}
{"entry_id": "en-units-entry-055", "gloss": "The unit of measurement meter representing meter."}
{"entry_id": "en-units-entry-056", "gloss": "The unit of measurement meters representing meter."}
{"entry_id": "en-units-entry-057", "gloss": "The unit of measurement m representing meter."}
{"entry_id": "en-units-entry-058", "gloss": "The unit of measurement kilometer representing kilometer."}
{"entry_id": "en-units-entry-059", "gloss": "The unit of measurement kilometers representing kilometer."}
{"entry_id": "en-units-entry-060", "gloss": "The unit of measurement km representing kilometer."}
{"entry_id": "en-units-entry-061", "gloss": "The unit of measurement second representing second."}
{"entry_id": "en-units-entry-062", "gloss": "The unit of measurement seconds representing second."}
{"entry_id": "en-units-entry-063", "gloss": "The unit of measurement sec representing second."}
{"entry_id": "en-units-entry-064", "gloss": "The unit of measurement minute representing minute."}
{"entry_id": "en-units-entry-065", "gloss": "The unit of measurement minutes representing minute."}
{"entry_id": "en-units-entry-066", "gloss": "The unit of measurement min representing minute."}
{"entry_id": "en-units-entry-067", "gloss": "The unit of measurement hour representing hour."}
{"entry_id": "en-units-entry-068", "gloss": "The unit of measurement hours representing hour."}
{"entry_id": "en-units-entry-069", "gloss": "The unit of measurement hr representing hour."}
{"entry_id": "en-units-entry-070", "gloss": "The unit of measurement day representing day."}
{"entry_id": "en-units-entry-071", "gloss": "The unit of measurement days representing day."}
{"entry_id": "en-units-entry-072", "gloss": "The unit of measurement d representing day."}
{"entry_id": "en-units-entry-073", "gloss": "The unit of measurement week representing week."}
{"entry_id": "en-units-entry-074", "gloss": "The unit of measurement weeks representing week."}
{"entry_id": "en-units-entry-075", "gloss": "The unit of measurement wk representing week."}
{"entry_id": "en-units-entry-076", "gloss": "The unit of measurement month representing month."}
{"entry_id": "en-units-entry-077", "gloss": "The unit of measurement months representing month."}
{"entry_id": "en-units-entry-078", "gloss": "The unit of measurement mo representing month."}
{"entry_id": "en-units-entry-079", "gloss": "The unit of measurement year representing year."}
{"entry_id": "en-units-entry-080", "gloss": "The unit of measurement years representing year."}
{"entry_id": "en-units-entry-081", "gloss": "The unit of measurement yr representing year."}
{"entry_id": "en-units-entry-082", "gloss": "The unit of measurement decade representing decade."}
{"entry_id": "en-units-entry-083", "gloss": "The unit of measurement decades representing decade."}
{"entry_id": "en-units-entry-084", "gloss": "The unit of measurement dec representing decade."}
{"entry_id": "en-units-entry-085", "gloss": "The unit of measurement century representing century."}
{"entry_id": "en-units-entry-086", "gloss": "The unit of measurement centuries representing century."}
{"entry_id": "en-units-entry-087", "gloss": "The unit of measurement millennium representing millennium."}
{"entry_id": "en-units-entry-088", "gloss": "The unit of measurement millennia representing millennium."}
{"entry_id": "en-units-entry-089", "gloss": "The unit of measurement mil representing millennium."}
{"entry_id": "en-units-entry-090", "gloss": "The unit of measurement ounce representing ounce."}
{"entry_id": "en-units-entry-091", "gloss": "The unit of measurement ounces representing ounce."}
{"entry_id": "en-units-entry-092", "gloss": "The unit of measurement oz representing ounce."}
{"entry_id": "en-units-entry-093", "gloss": "The unit of measurement pound representing pound."}
{"entry_id": "en-units-entry-094", "gloss": "The unit of measurement pounds representing pound."}
{"entry_id": "en-units-entry-095", "gloss": "The unit of measurement lb representing pound."}
{"entry_id": "en-units-entry-096", "gloss": "The unit of measurement ton representing ton."}
{"entry_id": "en-units-entry-097", "gloss": "The unit of measurement tons representing ton."}
{"entry_id": "en-units-entry-098", "gloss": "The unit of measurement t representing ton."}
{"entry_id": "en-units-entry-099", "gloss": "The unit of measurement gram representing gram."}
{"entry_id": "en-units-entry-100", "gloss": "The unit of measurement grams representing gram."}
{"entry_id": "en-units-entry-101", "gloss": "The unit of measurement g representing gram."}
{"entry_id": "en-units-entry-102", "gloss": "The unit of measurement kilogram representing kilogram."}
{"entry_id": "en-units-entry-103", "gloss": "The unit of measurement kilograms representing kilogram."}
{"entry_id": "en-units-entry-104", "gloss": "The unit of measurement kg representing kilogram."}
{"entry_id": "en-units-entry-105", "gloss": "The unit of measurement milligram representing milligram."}
{"entry_id": "en-units-entry-106", "gloss": "The unit of measurement milligrams representing milligram."}
{"entry_id": "en-units-entry-107", "gloss": "The unit of measurement mg representing milligram."}
{"entry_id": "en-units-entry-108", "gloss": "The unit of measurement tonne representing tonne."}
{"entry_id": "en-units-entry-109", "gloss": "The unit of measurement tonnes representing tonne."}
{"entry_id": "en-units-entry-110", "gloss": "The unit of measurement T representing tonne."}
{"entry_id": "en-units-entry-111", "gloss": "The unit of measurement teaspoon representing teaspoon."}
{"entry_id": "en-units-entry-112", "gloss": "The unit of measurement teaspoons representing teaspoon."}
{"entry_id": "en-units-entry-113", "gloss": "The unit of measurement tsp representing teaspoon."}
{"entry_id": "en-units-entry-114", "gloss": "The unit of measurement tablespoon representing tablespoon."}
{"entry_id": "en-units-entry-115", "gloss": "The unit of measurement tablespoons representing tablespoon."}
{"entry_id": "en-units-entry-116", "gloss": "The unit of measurement tbsp representing tablespoon."}
{"entry_id": "en-units-entry-117", "gloss": "The unit of measurement cup representing cup."}
{"entry_id": "en-units-entry-118", "gloss": "The unit of measurement cups representing cup."}
{"entry_id": "en-units-entry-119", "gloss": "The unit of measurement c representing cup."}
{"entry_id": "en-units-entry-120", "gloss": "The unit of measurement pint representing pint."}
{"entry_id": "en-units-entry-121", "gloss": "The unit of measurement pints representing pint."}
{"entry_id": "en-units-entry-122", "gloss": "The unit of measurement pt representing pint."}
{"entry_id": "en-units-entry-123", "gloss": "The unit of measurement quart representing quart."}
{"entry_id": "en-units-entry-124", "gloss": "The unit of measurement quarts representing quart."}
{"entry_id": "en-units-entry-125", "gloss": "The unit of measurement qt representing quart."}
{"entry_id": "en-units-entry-126", "gloss": "The unit of measurement gallon representing gallon."}
{"entry_id": "en-units-entry-127", "gloss": "The unit of measurement gallons representing gallon."}
{"entry_id": "en-units-entry-128", "gloss": "The unit of measurement gal representing gallon."}
{"entry_id": "en-units-entry-129", "gloss": "The unit of measurement milliliter representing milliliter."}
{"entry_id": "en-units-entry-130", "gloss": "The unit of measurement milliliters representing milliliter."}
{"entry_id": "en-units-entry-131", "gloss": "The unit of measurement mL representing milliliter."}
{"entry_id": "en-units-entry-132", "gloss": "The unit of measurement liter representing liter."}
{"entry_id": "en-units-entry-133", "gloss": "The unit of measurement liters representing liter."}
{"entry_id": "en-units-entry-134", "gloss": "The unit of measurement L representing liter."}
{"entry_id": "en-units-entry-135", "gloss": "The unit of measurement cent representing cent."}
{"entry_id": "en-units-entry-136", "gloss": "The unit of measurement cents representing cent."}
{"entry_id": "en-units-entry-137", "gloss": "The unit of measurement ¢ representing cent."}
{"entry_id": "en-units-entry-138", "gloss": "The unit of measurement dollar representing dollar."}
{"entry_id": "en-units-entry-139", "gloss": "The unit of measurement dollars representing dollar."}
{"entry_id": "en-units-entry-140", "gloss": "The unit of measurement $ representing dollar."}
{"entry_id": "en-units-entry-141", "gloss": "The unit of measurement euro representing euro."}
{"entry_id": "en-units-entry-142", "gloss": "The unit of measurement euros representing euro."}
{"entry_id": "en-units-entry-143", "gloss": "The unit of measurement € representing euro."}
{"entry_id": "en-units-entry-144", "gloss": "The unit of measurement pound sterling representing pound_sterling."}
{"entry_id": "en-units-entry-145", "gloss": "The unit of measurement pounds sterling representing pound_sterling."}
{"entry_id": "en-units-entry-146", "gloss": "The unit of measurement £ representing pound_sterling."}
{"entry_id": "en-units-entry-147", "gloss": "The unit of measurement yen representing yen."}
{"entry_id": "en-units-entry-148", "gloss": "The unit of measurement ¥ representing yen."}
{"entry_id": "en-units-entry-149", "gloss": "The unit of measurement peso representing peso."}
{"entry_id": "en-units-entry-150", "gloss": "The unit of measurement pesos representing peso."}
{"entry_id": "en-units-entry-151", "gloss": "The unit of measurement ₱ representing peso."}
{"entry_id": "en-units-entry-152", "gloss": "The unit of measurement degree representing degree."}
{"entry_id": "en-units-entry-153", "gloss": "The unit of measurement degrees representing degree."}
{"entry_id": "en-units-entry-154", "gloss": "The unit of measurement ° representing degree."}
{"entry_id": "en-units-entry-155", "gloss": "The unit of measurement Fahrenheit representing Fahrenheit."}
{"entry_id": "en-units-entry-156", "gloss": "The unit of measurement °F representing Fahrenheit."}
{"entry_id": "en-units-entry-157", "gloss": "The unit of measurement Celsius representing Celsius."}
{"entry_id": "en-units-entry-158", "gloss": "The unit of measurement °C representing Celsius."}
{"entry_id": "en-units-entry-159", "gloss": "The unit of measurement Kelvin representing Kelvin."}
{"entry_id": "en-units-entry-160", "gloss": "The unit of measurement K representing Kelvin."}
{"entry_id": "en-units-entry-161", "gloss": "The unit of measurement square inch representing square_inch."}
{"entry_id": "en-units-entry-162", "gloss": "The unit of measurement square inches representing square_inch."}
{"entry_id": "en-units-entry-163", "gloss": "The unit of measurement sq in representing square_inch."}
{"entry_id": "en-units-entry-164", "gloss": "The unit of measurement square foot representing square_foot."}
{"entry_id": "en-units-entry-165", "gloss": "The unit of measurement square feet representing square_foot."}
{"entry_id": "en-units-entry-166", "gloss": "The unit of measurement sq ft representing square_foot."}
{"entry_id": "en-units-entry-167", "gloss": "The unit of measurement square yard representing square_yard."}
{"entry_id": "en-units-entry-168", "gloss": "The unit of measurement square yards representing square_yard."}
{"entry_id": "en-units-entry-169", "gloss": "The unit of measurement sq yd representing square_yard."}
{"entry_id": "en-units-entry-170", "gloss": "The unit of measurement square mile representing square_mile."}
{"entry_id": "en-units-entry-171", "gloss": "The unit of measurement square miles representing square_mile."}
{"entry_id": "en-units-entry-172", "gloss": "The unit of measurement sq mi representing square_mile."}
{"entry_id": "en-units-entry-173", "gloss": "The unit of measurement square meter representing square_meter."}
{"entry_id": "en-units-entry-174", "gloss": "The unit of measurement square meters representing square_meter."}
{"entry_id": "en-units-entry-175", "gloss": "The unit of measurement sq m representing square_meter."}
{"entry_id": "en-units-entry-176", "gloss": "The unit of measurement square kilometer representing square_kilometer."}
{"entry_id": "en-units-entry-177", "gloss": "The unit of measurement square kilometers representing square_kilometer."}
{"entry_id": "en-units-entry-178", "gloss": "The unit of measurement sq km representing square_kilometer."}
{"entry_id": "en-units-entry-179", "gloss": "The unit of measurement acre representing acre."}
{"entry_id": "en-units-entry-180", "gloss": "The unit of measurement acres representing acre."}
{"entry_id": "en-units-entry-181", "gloss": "The unit of measurement ac representing acre."}
{"entry_id": "en-units-entry-182", "gloss": "The unit of measurement hectare representing hectare."}
{"entry_id": "en-units-entry-183", "gloss": "The unit of measurement hectares representing hectare."}
{"entry_id": "en-units-entry-184", "gloss": "The unit of measurement ha representing hectare."}
{"entry_id": "en-units-entry-185", "gloss": "The unit of measurement mile per hour representing mile_per_hour."}
{"entry_id": "en-units-entry-186", "gloss": "The unit of measurement miles per hour representing mile_per_hour."}
{"entry_id": "en-units-entry-187", "gloss": "The unit of measurement mph representing mile_per_hour."}
{"entry_id": "en-units-entry-188", "gloss": "The unit of measurement kilometer per hour representing kilometer_per_hour."}
{"entry_id": "en-units-entry-189", "gloss": "The unit of measurement kilometers per hour representing kilometer_per_hour."}
{"entry_id": "en-units-entry-190", "gloss": "The unit of measurement kph representing kilometer_per_hour."}
{"entry_id": "en-units-entry-191", "gloss": "The unit of measurement foot per second representing foot_per_second."}
{"entry_id": "en-units-entry-192", "gloss": "The unit of measurement feet per second representing foot_per_second."}
{"entry_id": "en-units-entry-193", "gloss": "The unit of measurement fps representing foot_per_second."}
{"entry_id": "en-units-entry-194", "gloss": "The unit of measurement meter per second representing meter_per_second."}
{"entry_id": "en-units-entry-195", "gloss": "The unit of measurement meters per second representing meter_per_second."}
{"entry_id": "en-units-entry-196", "gloss": "The unit of measurement mps representing meter_per_second."}
{"entry_id": "en-units-entry-197", "gloss": "The unit of measurement pound per cubic foot representing pound_per_cubic_foot."}
{"entry_id": "en-units-entry-198", "gloss": "The unit of measurement pounds per cubic foot representing pound_per_cubic_foot."}
{"entry_id": "en-units-entry-199", "gloss": "The unit of measurement lb/cu ft representing pound_per_cubic_foot."}
{"entry_id": "en-units-entry-200", "gloss": "The unit of measurement gram per cubic centimeter representing gram_per_cubic_centimeter."}
{"entry_id": "en-units-entry-201", "gloss": "The unit of measurement grams per cubic centimeter representing gram_per_cubic_centimeter."}
{"entry_id": "en-units-entry-202", "gloss": "The unit of measurement g/cm³ representing gram_per_cubic_centimeter."}
{"entry_id": "en-units-entry-203", "gloss": "The unit of measurement hertz representing hertz."}
{"entry_id": "en-units-entry-204", "gloss": "The unit of measurement Hz representing hertz."}
{"entry_id": "en-units-entry-205", "gloss": "The unit of measurement kilohertz representing kilohertz."}
{"entry_id": "en-units-entry-206", "gloss": "The unit of measurement kHz representing kilohertz."}
{"entry_id": "en-units-entry-207", "gloss": "The unit of measurement megahertz representing megahertz."}
{"entry_id": "en-units-entry-208", "gloss": "The unit of measurement MHz representing megahertz."}
{"entry_id": "en-units-entry-209", "gloss": "The unit of measurement dollar per hour representing dollar_per_hour."}
{"entry_id": "en-units-entry-210", "gloss": "The unit of measurement dollars per hour representing dollar_per_hour."}
{"entry_id": "en-units-entry-211", "gloss": "The unit of measurement $/hr representing dollar_per_hour."}
{"entry_id": "en-units-entry-212", "gloss": "The unit of measurement cent per hour representing cent_per_hour."}
{"entry_id": "en-units-entry-213", "gloss": "The unit of measurement cents per hour representing cent_per_hour."}
{"entry_id": "en-units-entry-214", "gloss": "The unit of measurement ¢/hr representing cent_per_hour."}
{"entry_id": "en-units-entry-215", "gloss": "The unit of measurement dollar per item representing dollar_per_item."}
{"entry_id": "en-units-entry-216", "gloss": "The unit of measurement dollars per item representing dollar_per_item."}
{"entry_id": "en-units-entry-217", "gloss": "The unit of measurement $/item representing dollar_per_item."}
{"entry_id": "en-units-entry-218", "gloss": "The unit of measurement cent per item representing cent_per_item."}
{"entry_id": "en-units-entry-219", "gloss": "The unit of measurement cents per item representing cent_per_item."}
{"entry_id": "en-units-entry-220", "gloss": "The unit of measurement ¢/item representing cent_per_item."}
{"entry_id": "en-units-entry-221", "gloss": "A container of type box."}
{"entry_id": "en-units-entry-222", "gloss": "A container of type boxes."}
{"entry_id": "en-units-entry-223", "gloss": "A container of type bag."}
{"entry_id": "en-units-entry-224", "gloss": "A container of type bags."}
{"entry_id": "en-units-entry-225", "gloss": "A container of type pack."}
{"entry_id": "en-units-entry-226", "gloss": "A container of type packs."}
{"entry_id": "en-units-entry-227", "gloss": "A container of type basket."}
{"entry_id": "en-units-entry-228", "gloss": "A container of type baskets."}
{"entry_id": "en-units-entry-229", "gloss": "A container of type batch."}
{"entry_id": "en-units-entry-230", "gloss": "A container of type batches."}
{"entry_id": "en-units-entry-231", "gloss": "A container of type dozen."}
{"entry_id": "en-units-entry-232", "gloss": "A container of type dozens."}
{"entry_id": "en-units-entry-233", "gloss": "A container of type group."}
{"entry_id": "en-units-entry-234", "gloss": "A container of type groups."}
{"entry_id": "en-units-entry-235", "gloss": "A container of type set."}
{"entry_id": "en-units-entry-236", "gloss": "A container of type sets."}
{"entry_id": "en-units-entry-237", "gloss": "A container of type case."}
{"entry_id": "en-units-entry-238", "gloss": "A container of type cases."}
{"entry_id": "en-units-entry-239", "gloss": "A container of type pair."}
{"entry_id": "en-units-entry-240", "gloss": "A container of type pairs."}
{"entry_id": "en-units-entry-241", "gloss": "A container of type pile."}
{"entry_id": "en-units-entry-242", "gloss": "A container of type piles."}
{"entry_id": "en-units-entry-243", "gloss": "A container of type stack."}
{"entry_id": "en-units-entry-244", "gloss": "A container of type stacks."}
{"entry_id": "en-units-entry-245", "gloss": "A container of type bunch."}
{"entry_id": "en-units-entry-246", "gloss": "A container of type bunches."}
{"entry_id": "en-units-entry-247", "gloss": "A container of type bundle."}
{"entry_id": "en-units-entry-248", "gloss": "A container of type bundles."}
{"entry_id": "en-units-entry-249", "gloss": "A container of type carton."}
{"entry_id": "en-units-entry-250", "gloss": "A container of type cartons."}
{"entry_id": "en-units-entry-251", "gloss": "A container of type crate."}
{"entry_id": "en-units-entry-252", "gloss": "A container of type crates."}
{"entry_id": "en-units-entry-253", "gloss": "A container of type jar."}
{"entry_id": "en-units-entry-254", "gloss": "A container of type jars."}
{"entry_id": "en-units-entry-255", "gloss": "A container of type can."}
{"entry_id": "en-units-entry-256", "gloss": "A container of type cans."}
{"entry_id": "en-units-entry-257", "gloss": "A container of type bottle."}
{"entry_id": "en-units-entry-258", "gloss": "A container of type bottles."}
{"entry_id": "en-units-entry-259", "gloss": "A container of type plate."}
{"entry_id": "en-units-entry-260", "gloss": "A container of type plates."}
{"entry_id": "en-units-entry-261", "gloss": "A container of type bowl."}
{"entry_id": "en-units-entry-262", "gloss": "A container of type bowls."}
{"entry_id": "en-units-entry-263", "gloss": "A container of type tray."}
{"entry_id": "en-units-entry-264", "gloss": "A container of type trays."}
{"entry_id": "en-units-entry-265", "gloss": "A container of type sack."}
{"entry_id": "en-units-entry-266", "gloss": "A container of type sacks."}
{"entry_id": "en-units-entry-267", "gloss": "A container of type container."}
{"entry_id": "en-units-entry-268", "gloss": "A container of type containers."}
{"entry_id": "en-units-entry-269", "gloss": "A container of type gross."}
{"entry_id": "en-units-entry-270", "gloss": "The rate connector per."}
{"entry_id": "en-units-entry-271", "gloss": "The rate connector an."}
{"entry_id": "en-units-entry-272", "gloss": "The rate connector every."}
{"entry_id": "en-units-entry-273", "gloss": "The rate connector each."}
{"entry_id": "en-units-entry-274", "gloss": "The rate connector by."}
{"entry_id": "en-units-entry-275", "gloss": "The symbol or affix %."}
{"entry_id": "en-units-entry-276", "gloss": "The symbol or affix ½."}
{"entry_id": "en-units-entry-277", "gloss": "The symbol or affix ¼."}
{"entry_id": "en-units-entry-278", "gloss": "The symbol or affix ¾."}
{"entry_id": "en-units-entry-279", "gloss": "The symbol or affix ⅓."}
{"entry_id": "en-units-entry-280", "gloss": "The symbol or affix ⅔."}
{"entry_id": "en-units-entry-281", "gloss": "The symbol or affix ⅛."}
{"entry_id": "en-units-entry-282", "gloss": "The symbol or affix ⅜."}
{"entry_id": "en-units-entry-283", "gloss": "The symbol or affix ⅝."}
{"entry_id": "en-units-entry-284", "gloss": "The symbol or affix ⅞."}

View file

@ -0,0 +1,284 @@
{"entry_id": "en-units-entry-001", "surface": "count", "lemma": "count", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "item", "is_derived": false, "formula": null}
{"entry_id": "en-units-entry-002", "surface": "length", "lemma": "length", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "foot", "is_derived": false, "formula": null}
{"entry_id": "en-units-entry-003", "surface": "time", "lemma": "time", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "minute", "is_derived": false, "formula": null}
{"entry_id": "en-units-entry-004", "surface": "mass", "lemma": "mass", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "pound", "is_derived": false, "formula": null}
{"entry_id": "en-units-entry-005", "surface": "money", "lemma": "money", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "cent", "is_derived": false, "formula": null}
{"entry_id": "en-units-entry-006", "surface": "temperature", "lemma": "temperature", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "Fahrenheit", "is_derived": false, "formula": null}
{"entry_id": "en-units-entry-007", "surface": "volume", "lemma": "volume", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "cup", "is_derived": false, "formula": null}
{"entry_id": "en-units-entry-008", "surface": "area", "lemma": "area", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "square_foot", "is_derived": true, "formula": "length * length"}
{"entry_id": "en-units-entry-009", "surface": "speed", "lemma": "speed", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "mile_per_hour", "is_derived": true, "formula": "length / time"}
{"entry_id": "en-units-entry-010", "surface": "density", "lemma": "density", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "pound_per_cubic_foot", "is_derived": true, "formula": "mass / volume"}
{"entry_id": "en-units-entry-011", "surface": "frequency", "lemma": "frequency", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "hertz", "is_derived": true, "formula": "1 / time"}
{"entry_id": "en-units-entry-012", "surface": "wage", "lemma": "wage", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "dollar_per_hour", "is_derived": true, "formula": "money / time"}
{"entry_id": "en-units-entry-013", "surface": "unit_price", "lemma": "unit_price", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["dimension"], "semantic_domains": ["units.dimension"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "canonical_unit": "dollar_per_item", "is_derived": true, "formula": "money / count"}
{"entry_id": "en-units-entry-014", "surface": "item", "lemma": "item", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "item", "plural": "items", "symbol": "item", "is_canonical_for_dimension": true, "dimension": "count"}
{"entry_id": "en-units-entry-015", "surface": "items", "lemma": "item", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "item", "plural": "items", "symbol": "item", "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-016", "surface": "child", "lemma": "child", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "child", "plural": "children", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-017", "surface": "children", "lemma": "child", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "child", "plural": "children", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-018", "surface": "person", "lemma": "person", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "person", "plural": "people", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-019", "surface": "people", "lemma": "person", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "person", "plural": "people", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-020", "surface": "mouse", "lemma": "mouse", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "mouse", "plural": "mice", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-021", "surface": "mice", "lemma": "mouse", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "mouse", "plural": "mice", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-022", "surface": "goose", "lemma": "goose", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "goose", "plural": "geese", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-023", "surface": "geese", "lemma": "goose", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "goose", "plural": "geese", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-024", "surface": "fish", "lemma": "fish", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "fish", "plural": "fish", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-025", "surface": "sheep", "lemma": "sheep", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "sheep", "plural": "sheep", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-026", "surface": "deer", "lemma": "deer", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "deer", "plural": "deer", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-027", "surface": "woman", "lemma": "woman", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "woman", "plural": "women", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-028", "surface": "women", "lemma": "woman", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "woman", "plural": "women", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-029", "surface": "man", "lemma": "man", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "man", "plural": "men", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-030", "surface": "men", "lemma": "man", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "man", "plural": "men", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-031", "surface": "leaf", "lemma": "leaf", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "leaf", "plural": "leaves", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-032", "surface": "leaves", "lemma": "leaf", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "leaf", "plural": "leaves", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-033", "surface": "knife", "lemma": "knife", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "knife", "plural": "knives", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-034", "surface": "knives", "lemma": "knife", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "knife", "plural": "knives", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-035", "surface": "life", "lemma": "life", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "life", "plural": "lives", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-036", "surface": "lives", "lemma": "life", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.count"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "life", "plural": "lives", "symbol": null, "is_canonical_for_dimension": false, "dimension": "count"}
{"entry_id": "en-units-entry-037", "surface": "inch", "lemma": "inch", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "inch", "plural": "inches", "symbol": "in", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-038", "surface": "inches", "lemma": "inch", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "inch", "plural": "inches", "symbol": "in", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-039", "surface": "in", "lemma": "inch", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol", "rate_connector"], "semantic_domains": ["units.length", "units.rate"], "provenance_ids": ["nist-sp-811:2026-05-23", "adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "inch", "plural": "inches", "symbol": "in", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-040", "surface": "foot", "lemma": "foot", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "foot", "plural": "feet", "symbol": "ft", "is_canonical_for_dimension": true, "dimension": "length"}
{"entry_id": "en-units-entry-041", "surface": "feet", "lemma": "foot", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "foot", "plural": "feet", "symbol": "ft", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-042", "surface": "ft", "lemma": "foot", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "foot", "plural": "feet", "symbol": "ft", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-043", "surface": "yard", "lemma": "yard", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "yard", "plural": "yards", "symbol": "yd", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-044", "surface": "yards", "lemma": "yard", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "yard", "plural": "yards", "symbol": "yd", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-045", "surface": "yd", "lemma": "yard", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "yard", "plural": "yards", "symbol": "yd", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-046", "surface": "mile", "lemma": "mile", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "mile", "plural": "miles", "symbol": "mi", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-047", "surface": "miles", "lemma": "mile", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "mile", "plural": "miles", "symbol": "mi", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-048", "surface": "mi", "lemma": "mile", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "mile", "plural": "miles", "symbol": "mi", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-049", "surface": "millimeter", "lemma": "millimeter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "millimeter", "plural": "millimeters", "symbol": "mm", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-050", "surface": "millimeters", "lemma": "millimeter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "millimeter", "plural": "millimeters", "symbol": "mm", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-051", "surface": "mm", "lemma": "millimeter", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "millimeter", "plural": "millimeters", "symbol": "mm", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-052", "surface": "centimeter", "lemma": "centimeter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "centimeter", "plural": "centimeters", "symbol": "cm", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-053", "surface": "centimeters", "lemma": "centimeter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "centimeter", "plural": "centimeters", "symbol": "cm", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-054", "surface": "cm", "lemma": "centimeter", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "centimeter", "plural": "centimeters", "symbol": "cm", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-055", "surface": "meter", "lemma": "meter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "meter", "plural": "meters", "symbol": "m", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-056", "surface": "meters", "lemma": "meter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "meter", "plural": "meters", "symbol": "m", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-057", "surface": "m", "lemma": "meter", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "meter", "plural": "meters", "symbol": "m", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-058", "surface": "kilometer", "lemma": "kilometer", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilometer", "plural": "kilometers", "symbol": "km", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-059", "surface": "kilometers", "lemma": "kilometer", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilometer", "plural": "kilometers", "symbol": "km", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-060", "surface": "km", "lemma": "kilometer", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.length"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilometer", "plural": "kilometers", "symbol": "km", "is_canonical_for_dimension": false, "dimension": "length"}
{"entry_id": "en-units-entry-061", "surface": "second", "lemma": "second", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "second", "plural": "seconds", "symbol": "sec", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-062", "surface": "seconds", "lemma": "second", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "second", "plural": "seconds", "symbol": "sec", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-063", "surface": "sec", "lemma": "second", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "second", "plural": "seconds", "symbol": "sec", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-064", "surface": "minute", "lemma": "minute", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "minute", "plural": "minutes", "symbol": "min", "is_canonical_for_dimension": true, "dimension": "time"}
{"entry_id": "en-units-entry-065", "surface": "minutes", "lemma": "minute", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "minute", "plural": "minutes", "symbol": "min", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-066", "surface": "min", "lemma": "minute", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "minute", "plural": "minutes", "symbol": "min", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-067", "surface": "hour", "lemma": "hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "hour", "plural": "hours", "symbol": "hr", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-068", "surface": "hours", "lemma": "hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "hour", "plural": "hours", "symbol": "hr", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-069", "surface": "hr", "lemma": "hour", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "hour", "plural": "hours", "symbol": "hr", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-070", "surface": "day", "lemma": "day", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "day", "plural": "days", "symbol": "d", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-071", "surface": "days", "lemma": "day", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "day", "plural": "days", "symbol": "d", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-072", "surface": "d", "lemma": "day", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "day", "plural": "days", "symbol": "d", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-073", "surface": "week", "lemma": "week", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "week", "plural": "weeks", "symbol": "wk", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-074", "surface": "weeks", "lemma": "week", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "week", "plural": "weeks", "symbol": "wk", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-075", "surface": "wk", "lemma": "week", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "week", "plural": "weeks", "symbol": "wk", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-076", "surface": "month", "lemma": "month", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "month", "plural": "months", "symbol": "mo", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-077", "surface": "months", "lemma": "month", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "month", "plural": "months", "symbol": "mo", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-078", "surface": "mo", "lemma": "month", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "month", "plural": "months", "symbol": "mo", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-079", "surface": "year", "lemma": "year", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "year", "plural": "years", "symbol": "yr", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-080", "surface": "years", "lemma": "year", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "year", "plural": "years", "symbol": "yr", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-081", "surface": "yr", "lemma": "year", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "year", "plural": "years", "symbol": "yr", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-082", "surface": "decade", "lemma": "decade", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "decade", "plural": "decades", "symbol": "dec", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-083", "surface": "decades", "lemma": "decade", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "decade", "plural": "decades", "symbol": "dec", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-084", "surface": "dec", "lemma": "decade", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "decade", "plural": "decades", "symbol": "dec", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-085", "surface": "century", "lemma": "century", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "century", "plural": "centuries", "symbol": null, "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-086", "surface": "centuries", "lemma": "century", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "century", "plural": "centuries", "symbol": null, "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-087", "surface": "millennium", "lemma": "millennium", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "millennium", "plural": "millennia", "symbol": "mil", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-088", "surface": "millennia", "lemma": "millennium", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "millennium", "plural": "millennia", "symbol": "mil", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-089", "surface": "mil", "lemma": "millennium", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.time"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "millennium", "plural": "millennia", "symbol": "mil", "is_canonical_for_dimension": false, "dimension": "time"}
{"entry_id": "en-units-entry-090", "surface": "ounce", "lemma": "ounce", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "ounce", "plural": "ounces", "symbol": "oz", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-091", "surface": "ounces", "lemma": "ounce", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "ounce", "plural": "ounces", "symbol": "oz", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-092", "surface": "oz", "lemma": "ounce", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "ounce", "plural": "ounces", "symbol": "oz", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-093", "surface": "pound", "lemma": "pound", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "pound", "plural": "pounds", "symbol": "lb", "is_canonical_for_dimension": true, "dimension": "mass"}
{"entry_id": "en-units-entry-094", "surface": "pounds", "lemma": "pound", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "pound", "plural": "pounds", "symbol": "lb", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-095", "surface": "lb", "lemma": "pound", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "pound", "plural": "pounds", "symbol": "lb", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-096", "surface": "ton", "lemma": "ton", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "ton", "plural": "tons", "symbol": "t", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-097", "surface": "tons", "lemma": "ton", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "ton", "plural": "tons", "symbol": "t", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-098", "surface": "t", "lemma": "ton", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "ton", "plural": "tons", "symbol": "t", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-099", "surface": "gram", "lemma": "gram", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "gram", "plural": "grams", "symbol": "g", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-100", "surface": "grams", "lemma": "gram", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "gram", "plural": "grams", "symbol": "g", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-101", "surface": "g", "lemma": "gram", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "gram", "plural": "grams", "symbol": "g", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-102", "surface": "kilogram", "lemma": "kilogram", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilogram", "plural": "kilograms", "symbol": "kg", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-103", "surface": "kilograms", "lemma": "kilogram", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilogram", "plural": "kilograms", "symbol": "kg", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-104", "surface": "kg", "lemma": "kilogram", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilogram", "plural": "kilograms", "symbol": "kg", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-105", "surface": "milligram", "lemma": "milligram", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "milligram", "plural": "milligrams", "symbol": "mg", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-106", "surface": "milligrams", "lemma": "milligram", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "milligram", "plural": "milligrams", "symbol": "mg", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-107", "surface": "mg", "lemma": "milligram", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "milligram", "plural": "milligrams", "symbol": "mg", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-108", "surface": "tonne", "lemma": "tonne", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "tonne", "plural": "tonnes", "symbol": "T", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-109", "surface": "tonnes", "lemma": "tonne", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "tonne", "plural": "tonnes", "symbol": "T", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-110", "surface": "T", "lemma": "tonne", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.mass"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "tonne", "plural": "tonnes", "symbol": "T", "is_canonical_for_dimension": false, "dimension": "mass"}
{"entry_id": "en-units-entry-111", "surface": "teaspoon", "lemma": "teaspoon", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "teaspoon", "plural": "teaspoons", "symbol": "tsp", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-112", "surface": "teaspoons", "lemma": "teaspoon", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "teaspoon", "plural": "teaspoons", "symbol": "tsp", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-113", "surface": "tsp", "lemma": "teaspoon", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "teaspoon", "plural": "teaspoons", "symbol": "tsp", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-114", "surface": "tablespoon", "lemma": "tablespoon", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "tablespoon", "plural": "tablespoons", "symbol": "tbsp", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-115", "surface": "tablespoons", "lemma": "tablespoon", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "tablespoon", "plural": "tablespoons", "symbol": "tbsp", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-116", "surface": "tbsp", "lemma": "tablespoon", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "tablespoon", "plural": "tablespoons", "symbol": "tbsp", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-117", "surface": "cup", "lemma": "cup", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit", "container"], "semantic_domains": ["units.volume", "units.container"], "provenance_ids": ["nist-sp-811:2026-05-23", "adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "cup", "plural": "cups", "symbol": "c", "is_canonical_for_dimension": true, "dimension": "volume", "default_size": null}
{"entry_id": "en-units-entry-118", "surface": "cups", "lemma": "cup", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit", "container"], "semantic_domains": ["units.volume", "units.container"], "provenance_ids": ["nist-sp-811:2026-05-23", "adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "cup", "plural": "cups", "symbol": "c", "is_canonical_for_dimension": false, "dimension": "volume", "default_size": null}
{"entry_id": "en-units-entry-119", "surface": "c", "lemma": "cup", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "cup", "plural": "cups", "symbol": "c", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-120", "surface": "pint", "lemma": "pint", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "pint", "plural": "pints", "symbol": "pt", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-121", "surface": "pints", "lemma": "pint", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "pint", "plural": "pints", "symbol": "pt", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-122", "surface": "pt", "lemma": "pint", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "pint", "plural": "pints", "symbol": "pt", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-123", "surface": "quart", "lemma": "quart", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "quart", "plural": "quarts", "symbol": "qt", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-124", "surface": "quarts", "lemma": "quart", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "quart", "plural": "quarts", "symbol": "qt", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-125", "surface": "qt", "lemma": "quart", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "quart", "plural": "quarts", "symbol": "qt", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-126", "surface": "gallon", "lemma": "gallon", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "gallon", "plural": "gallons", "symbol": "gal", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-127", "surface": "gallons", "lemma": "gallon", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "gallon", "plural": "gallons", "symbol": "gal", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-128", "surface": "gal", "lemma": "gallon", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "gallon", "plural": "gallons", "symbol": "gal", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-129", "surface": "milliliter", "lemma": "milliliter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "milliliter", "plural": "milliliters", "symbol": "mL", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-130", "surface": "milliliters", "lemma": "milliliter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "milliliter", "plural": "milliliters", "symbol": "mL", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-131", "surface": "mL", "lemma": "milliliter", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "milliliter", "plural": "milliliters", "symbol": "mL", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-132", "surface": "liter", "lemma": "liter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "liter", "plural": "liters", "symbol": "L", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-133", "surface": "liters", "lemma": "liter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "liter", "plural": "liters", "symbol": "L", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-134", "surface": "L", "lemma": "liter", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.volume"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "liter", "plural": "liters", "symbol": "L", "is_canonical_for_dimension": false, "dimension": "volume"}
{"entry_id": "en-units-entry-135", "surface": "cent", "lemma": "cent", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "cent", "plural": "cents", "symbol": "¢", "is_canonical_for_dimension": true, "dimension": "money"}
{"entry_id": "en-units-entry-136", "surface": "cents", "lemma": "cent", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "cent", "plural": "cents", "symbol": "¢", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-137", "surface": "¢", "lemma": "cent", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.money", "units.symbol"], "provenance_ids": ["iso-4217:2026-05-23", "adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "cent", "plural": "cents", "symbol": "¢", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-138", "surface": "dollar", "lemma": "dollar", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "dollar", "plural": "dollars", "symbol": "$", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-139", "surface": "dollars", "lemma": "dollar", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "dollar", "plural": "dollars", "symbol": "$", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-140", "surface": "$", "lemma": "dollar", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.money", "units.symbol"], "provenance_ids": ["iso-4217:2026-05-23", "adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "dollar", "plural": "dollars", "symbol": "$", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-141", "surface": "euro", "lemma": "euro", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "euro", "plural": "euros", "symbol": "€", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-142", "surface": "euros", "lemma": "euro", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "euro", "plural": "euros", "symbol": "€", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-143", "surface": "€", "lemma": "euro", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "euro", "plural": "euros", "symbol": "€", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-144", "surface": "pound sterling", "lemma": "pound_sterling", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "pound sterling", "plural": "pounds sterling", "symbol": "£", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-145", "surface": "pounds sterling", "lemma": "pound_sterling", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "pound sterling", "plural": "pounds sterling", "symbol": "£", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-146", "surface": "£", "lemma": "pound_sterling", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "pound sterling", "plural": "pounds sterling", "symbol": "£", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-147", "surface": "yen", "lemma": "yen", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "yen", "plural": "yen", "symbol": "¥", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-148", "surface": "¥", "lemma": "yen", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "yen", "plural": "yen", "symbol": "¥", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-149", "surface": "peso", "lemma": "peso", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "peso", "plural": "pesos", "symbol": "₱", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-150", "surface": "pesos", "lemma": "peso", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "peso", "plural": "pesos", "symbol": "₱", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-151", "surface": "₱", "lemma": "peso", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.money"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "peso", "plural": "pesos", "symbol": "₱", "is_canonical_for_dimension": false, "dimension": "money"}
{"entry_id": "en-units-entry-152", "surface": "degree", "lemma": "degree", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.temperature"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "degree", "plural": "degrees", "symbol": "°", "is_canonical_for_dimension": false, "dimension": "temperature"}
{"entry_id": "en-units-entry-153", "surface": "degrees", "lemma": "degree", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.temperature"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "degree", "plural": "degrees", "symbol": "°", "is_canonical_for_dimension": false, "dimension": "temperature"}
{"entry_id": "en-units-entry-154", "surface": "°", "lemma": "degree", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.temperature", "units.symbol"], "provenance_ids": ["nist-sp-811:2026-05-23", "adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "degree", "plural": "degrees", "symbol": "°", "is_canonical_for_dimension": false, "dimension": "temperature"}
{"entry_id": "en-units-entry-155", "surface": "Fahrenheit", "lemma": "Fahrenheit", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.temperature"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "Fahrenheit", "plural": "Fahrenheit", "symbol": "°F", "is_canonical_for_dimension": true, "dimension": "temperature"}
{"entry_id": "en-units-entry-156", "surface": "°F", "lemma": "Fahrenheit", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.temperature", "units.symbol"], "provenance_ids": ["nist-sp-811:2026-05-23", "adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "Fahrenheit", "plural": "Fahrenheit", "symbol": "°F", "is_canonical_for_dimension": false, "dimension": "temperature"}
{"entry_id": "en-units-entry-157", "surface": "Celsius", "lemma": "Celsius", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.temperature"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "Celsius", "plural": "Celsius", "symbol": "°C", "is_canonical_for_dimension": false, "dimension": "temperature"}
{"entry_id": "en-units-entry-158", "surface": "°C", "lemma": "Celsius", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.temperature", "units.symbol"], "provenance_ids": ["nist-sp-811:2026-05-23", "adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "Celsius", "plural": "Celsius", "symbol": "°C", "is_canonical_for_dimension": false, "dimension": "temperature"}
{"entry_id": "en-units-entry-159", "surface": "Kelvin", "lemma": "Kelvin", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.temperature"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "Kelvin", "plural": "Kelvin", "symbol": "K", "is_canonical_for_dimension": false, "dimension": "temperature"}
{"entry_id": "en-units-entry-160", "surface": "K", "lemma": "Kelvin", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.temperature"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "Kelvin", "plural": "Kelvin", "symbol": "K", "is_canonical_for_dimension": false, "dimension": "temperature"}
{"entry_id": "en-units-entry-161", "surface": "square inch", "lemma": "square_inch", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square inch", "plural": "square inches", "symbol": "sq in", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-162", "surface": "square inches", "lemma": "square_inch", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square inch", "plural": "square inches", "symbol": "sq in", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-163", "surface": "sq in", "lemma": "square_inch", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square inch", "plural": "square inches", "symbol": "sq in", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-164", "surface": "square foot", "lemma": "square_foot", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square foot", "plural": "square feet", "symbol": "sq ft", "is_canonical_for_dimension": true, "dimension": "area"}
{"entry_id": "en-units-entry-165", "surface": "square feet", "lemma": "square_foot", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square foot", "plural": "square feet", "symbol": "sq ft", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-166", "surface": "sq ft", "lemma": "square_foot", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square foot", "plural": "square feet", "symbol": "sq ft", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-167", "surface": "square yard", "lemma": "square_yard", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square yard", "plural": "square yards", "symbol": "sq yd", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-168", "surface": "square yards", "lemma": "square_yard", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square yard", "plural": "square yards", "symbol": "sq yd", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-169", "surface": "sq yd", "lemma": "square_yard", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square yard", "plural": "square yards", "symbol": "sq yd", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-170", "surface": "square mile", "lemma": "square_mile", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square mile", "plural": "square miles", "symbol": "sq mi", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-171", "surface": "square miles", "lemma": "square_mile", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square mile", "plural": "square miles", "symbol": "sq mi", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-172", "surface": "sq mi", "lemma": "square_mile", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square mile", "plural": "square miles", "symbol": "sq mi", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-173", "surface": "square meter", "lemma": "square_meter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square meter", "plural": "square meters", "symbol": "sq m", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-174", "surface": "square meters", "lemma": "square_meter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square meter", "plural": "square meters", "symbol": "sq m", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-175", "surface": "sq m", "lemma": "square_meter", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square meter", "plural": "square meters", "symbol": "sq m", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-176", "surface": "square kilometer", "lemma": "square_kilometer", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square kilometer", "plural": "square kilometers", "symbol": "sq km", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-177", "surface": "square kilometers", "lemma": "square_kilometer", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square kilometer", "plural": "square kilometers", "symbol": "sq km", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-178", "surface": "sq km", "lemma": "square_kilometer", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "square kilometer", "plural": "square kilometers", "symbol": "sq km", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-179", "surface": "acre", "lemma": "acre", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "acre", "plural": "acres", "symbol": "ac", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-180", "surface": "acres", "lemma": "acre", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "acre", "plural": "acres", "symbol": "ac", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-181", "surface": "ac", "lemma": "acre", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "acre", "plural": "acres", "symbol": "ac", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-182", "surface": "hectare", "lemma": "hectare", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "hectare", "plural": "hectares", "symbol": "ha", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-183", "surface": "hectares", "lemma": "hectare", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "hectare", "plural": "hectares", "symbol": "ha", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-184", "surface": "ha", "lemma": "hectare", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.area"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "hectare", "plural": "hectares", "symbol": "ha", "is_canonical_for_dimension": false, "dimension": "area"}
{"entry_id": "en-units-entry-185", "surface": "mile per hour", "lemma": "mile_per_hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "mile per hour", "plural": "miles per hour", "symbol": "mph", "is_canonical_for_dimension": true, "dimension": "speed"}
{"entry_id": "en-units-entry-186", "surface": "miles per hour", "lemma": "mile_per_hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "mile per hour", "plural": "miles per hour", "symbol": "mph", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-187", "surface": "mph", "lemma": "mile_per_hour", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "mile per hour", "plural": "miles per hour", "symbol": "mph", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-188", "surface": "kilometer per hour", "lemma": "kilometer_per_hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilometer per hour", "plural": "kilometers per hour", "symbol": "kph", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-189", "surface": "kilometers per hour", "lemma": "kilometer_per_hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilometer per hour", "plural": "kilometers per hour", "symbol": "kph", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-190", "surface": "kph", "lemma": "kilometer_per_hour", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilometer per hour", "plural": "kilometers per hour", "symbol": "kph", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-191", "surface": "foot per second", "lemma": "foot_per_second", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "foot per second", "plural": "feet per second", "symbol": "fps", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-192", "surface": "feet per second", "lemma": "foot_per_second", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "foot per second", "plural": "feet per second", "symbol": "fps", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-193", "surface": "fps", "lemma": "foot_per_second", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "foot per second", "plural": "feet per second", "symbol": "fps", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-194", "surface": "meter per second", "lemma": "meter_per_second", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "meter per second", "plural": "meters per second", "symbol": "mps", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-195", "surface": "meters per second", "lemma": "meter_per_second", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "meter per second", "plural": "meters per second", "symbol": "mps", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-196", "surface": "mps", "lemma": "meter_per_second", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.speed"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "meter per second", "plural": "meters per second", "symbol": "mps", "is_canonical_for_dimension": false, "dimension": "speed"}
{"entry_id": "en-units-entry-197", "surface": "pound per cubic foot", "lemma": "pound_per_cubic_foot", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.density"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "pound per cubic foot", "plural": "pounds per cubic foot", "symbol": "lb/cu ft", "is_canonical_for_dimension": true, "dimension": "density"}
{"entry_id": "en-units-entry-198", "surface": "pounds per cubic foot", "lemma": "pound_per_cubic_foot", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.density"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "pound per cubic foot", "plural": "pounds per cubic foot", "symbol": "lb/cu ft", "is_canonical_for_dimension": false, "dimension": "density"}
{"entry_id": "en-units-entry-199", "surface": "lb/cu ft", "lemma": "pound_per_cubic_foot", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.density"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "pound per cubic foot", "plural": "pounds per cubic foot", "symbol": "lb/cu ft", "is_canonical_for_dimension": false, "dimension": "density"}
{"entry_id": "en-units-entry-200", "surface": "gram per cubic centimeter", "lemma": "gram_per_cubic_centimeter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.density"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "gram per cubic centimeter", "plural": "grams per cubic centimeter", "symbol": "g/cm³", "is_canonical_for_dimension": false, "dimension": "density"}
{"entry_id": "en-units-entry-201", "surface": "grams per cubic centimeter", "lemma": "gram_per_cubic_centimeter", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.density"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "gram per cubic centimeter", "plural": "grams per cubic centimeter", "symbol": "g/cm³", "is_canonical_for_dimension": false, "dimension": "density"}
{"entry_id": "en-units-entry-202", "surface": "g/cm³", "lemma": "gram_per_cubic_centimeter", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.density"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "gram per cubic centimeter", "plural": "grams per cubic centimeter", "symbol": "g/cm³", "is_canonical_for_dimension": false, "dimension": "density"}
{"entry_id": "en-units-entry-203", "surface": "hertz", "lemma": "hertz", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.frequency"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "hertz", "plural": "hertz", "symbol": "Hz", "is_canonical_for_dimension": true, "dimension": "frequency"}
{"entry_id": "en-units-entry-204", "surface": "Hz", "lemma": "hertz", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.frequency"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "hertz", "plural": "hertz", "symbol": "Hz", "is_canonical_for_dimension": false, "dimension": "frequency"}
{"entry_id": "en-units-entry-205", "surface": "kilohertz", "lemma": "kilohertz", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.frequency"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilohertz", "plural": "kilohertz", "symbol": "kHz", "is_canonical_for_dimension": false, "dimension": "frequency"}
{"entry_id": "en-units-entry-206", "surface": "kHz", "lemma": "kilohertz", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.frequency"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "kilohertz", "plural": "kilohertz", "symbol": "kHz", "is_canonical_for_dimension": false, "dimension": "frequency"}
{"entry_id": "en-units-entry-207", "surface": "megahertz", "lemma": "megahertz", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.frequency"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "megahertz", "plural": "megahertz", "symbol": "MHz", "is_canonical_for_dimension": false, "dimension": "frequency"}
{"entry_id": "en-units-entry-208", "surface": "MHz", "lemma": "megahertz", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.frequency"], "provenance_ids": ["nist-sp-811:2026-05-23"], "epistemic_status": "coherent", "singular": "megahertz", "plural": "megahertz", "symbol": "MHz", "is_canonical_for_dimension": false, "dimension": "frequency"}
{"entry_id": "en-units-entry-209", "surface": "dollar per hour", "lemma": "dollar_per_hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.wage"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "dollar per hour", "plural": "dollars per hour", "symbol": "$/hr", "is_canonical_for_dimension": true, "dimension": "wage"}
{"entry_id": "en-units-entry-210", "surface": "dollars per hour", "lemma": "dollar_per_hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.wage"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "dollar per hour", "plural": "dollars per hour", "symbol": "$/hr", "is_canonical_for_dimension": false, "dimension": "wage"}
{"entry_id": "en-units-entry-211", "surface": "$/hr", "lemma": "dollar_per_hour", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.wage"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "dollar per hour", "plural": "dollars per hour", "symbol": "$/hr", "is_canonical_for_dimension": false, "dimension": "wage"}
{"entry_id": "en-units-entry-212", "surface": "cent per hour", "lemma": "cent_per_hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.wage"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "cent per hour", "plural": "cents per hour", "symbol": "¢/hr", "is_canonical_for_dimension": false, "dimension": "wage"}
{"entry_id": "en-units-entry-213", "surface": "cents per hour", "lemma": "cent_per_hour", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.wage"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "cent per hour", "plural": "cents per hour", "symbol": "¢/hr", "is_canonical_for_dimension": false, "dimension": "wage"}
{"entry_id": "en-units-entry-214", "surface": "¢/hr", "lemma": "cent_per_hour", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.wage"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "cent per hour", "plural": "cents per hour", "symbol": "¢/hr", "is_canonical_for_dimension": false, "dimension": "wage"}
{"entry_id": "en-units-entry-215", "surface": "dollar per item", "lemma": "dollar_per_item", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.unit_price"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "dollar per item", "plural": "dollars per item", "symbol": "$/item", "is_canonical_for_dimension": true, "dimension": "unit_price"}
{"entry_id": "en-units-entry-216", "surface": "dollars per item", "lemma": "dollar_per_item", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.unit_price"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "dollar per item", "plural": "dollars per item", "symbol": "$/item", "is_canonical_for_dimension": false, "dimension": "unit_price"}
{"entry_id": "en-units-entry-217", "surface": "$/item", "lemma": "dollar_per_item", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.unit_price"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "dollar per item", "plural": "dollars per item", "symbol": "$/item", "is_canonical_for_dimension": false, "dimension": "unit_price"}
{"entry_id": "en-units-entry-218", "surface": "cent per item", "lemma": "cent_per_item", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.unit_price"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "cent per item", "plural": "cents per item", "symbol": "¢/item", "is_canonical_for_dimension": false, "dimension": "unit_price"}
{"entry_id": "en-units-entry-219", "surface": "cents per item", "lemma": "cent_per_item", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["unit"], "semantic_domains": ["units.unit_price"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "cent per item", "plural": "cents per item", "symbol": "¢/item", "is_canonical_for_dimension": false, "dimension": "unit_price"}
{"entry_id": "en-units-entry-220", "surface": "¢/item", "lemma": "cent_per_item", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["unit", "symbol"], "semantic_domains": ["units.unit_price"], "provenance_ids": ["iso-4217:2026-05-23"], "epistemic_status": "coherent", "singular": "cent per item", "plural": "cents per item", "symbol": "¢/item", "is_canonical_for_dimension": false, "dimension": "unit_price"}
{"entry_id": "en-units-entry-221", "surface": "box", "lemma": "box", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "box", "plural": "boxes", "default_size": null}
{"entry_id": "en-units-entry-222", "surface": "boxes", "lemma": "box", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "box", "plural": "boxes", "default_size": null}
{"entry_id": "en-units-entry-223", "surface": "bag", "lemma": "bag", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bag", "plural": "bags", "default_size": null}
{"entry_id": "en-units-entry-224", "surface": "bags", "lemma": "bag", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bag", "plural": "bags", "default_size": null}
{"entry_id": "en-units-entry-225", "surface": "pack", "lemma": "pack", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "pack", "plural": "packs", "default_size": null}
{"entry_id": "en-units-entry-226", "surface": "packs", "lemma": "pack", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "pack", "plural": "packs", "default_size": null}
{"entry_id": "en-units-entry-227", "surface": "basket", "lemma": "basket", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "basket", "plural": "baskets", "default_size": null}
{"entry_id": "en-units-entry-228", "surface": "baskets", "lemma": "basket", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "basket", "plural": "baskets", "default_size": null}
{"entry_id": "en-units-entry-229", "surface": "batch", "lemma": "batch", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "batch", "plural": "batches", "default_size": null}
{"entry_id": "en-units-entry-230", "surface": "batches", "lemma": "batch", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "batch", "plural": "batches", "default_size": null}
{"entry_id": "en-units-entry-231", "surface": "dozen", "lemma": "dozen", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "dozen", "plural": "dozens", "default_size": 12}
{"entry_id": "en-units-entry-232", "surface": "dozens", "lemma": "dozen", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "dozen", "plural": "dozens", "default_size": 12}
{"entry_id": "en-units-entry-233", "surface": "group", "lemma": "group", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "group", "plural": "groups", "default_size": null}
{"entry_id": "en-units-entry-234", "surface": "groups", "lemma": "group", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "group", "plural": "groups", "default_size": null}
{"entry_id": "en-units-entry-235", "surface": "set", "lemma": "set", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "set", "plural": "sets", "default_size": null}
{"entry_id": "en-units-entry-236", "surface": "sets", "lemma": "set", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "set", "plural": "sets", "default_size": null}
{"entry_id": "en-units-entry-237", "surface": "case", "lemma": "case", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "case", "plural": "cases", "default_size": null}
{"entry_id": "en-units-entry-238", "surface": "cases", "lemma": "case", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "case", "plural": "cases", "default_size": null}
{"entry_id": "en-units-entry-239", "surface": "pair", "lemma": "pair", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "pair", "plural": "pairs", "default_size": 2}
{"entry_id": "en-units-entry-240", "surface": "pairs", "lemma": "pair", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "pair", "plural": "pairs", "default_size": 2}
{"entry_id": "en-units-entry-241", "surface": "pile", "lemma": "pile", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "pile", "plural": "piles", "default_size": null}
{"entry_id": "en-units-entry-242", "surface": "piles", "lemma": "pile", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "pile", "plural": "piles", "default_size": null}
{"entry_id": "en-units-entry-243", "surface": "stack", "lemma": "stack", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "stack", "plural": "stacks", "default_size": null}
{"entry_id": "en-units-entry-244", "surface": "stacks", "lemma": "stack", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "stack", "plural": "stacks", "default_size": null}
{"entry_id": "en-units-entry-245", "surface": "bunch", "lemma": "bunch", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bunch", "plural": "bunches", "default_size": null}
{"entry_id": "en-units-entry-246", "surface": "bunches", "lemma": "bunch", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bunch", "plural": "bunches", "default_size": null}
{"entry_id": "en-units-entry-247", "surface": "bundle", "lemma": "bundle", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bundle", "plural": "bundles", "default_size": null}
{"entry_id": "en-units-entry-248", "surface": "bundles", "lemma": "bundle", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bundle", "plural": "bundles", "default_size": null}
{"entry_id": "en-units-entry-249", "surface": "carton", "lemma": "carton", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "carton", "plural": "cartons", "default_size": null}
{"entry_id": "en-units-entry-250", "surface": "cartons", "lemma": "carton", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "carton", "plural": "cartons", "default_size": null}
{"entry_id": "en-units-entry-251", "surface": "crate", "lemma": "crate", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "crate", "plural": "crates", "default_size": null}
{"entry_id": "en-units-entry-252", "surface": "crates", "lemma": "crate", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "crate", "plural": "crates", "default_size": null}
{"entry_id": "en-units-entry-253", "surface": "jar", "lemma": "jar", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "jar", "plural": "jars", "default_size": null}
{"entry_id": "en-units-entry-254", "surface": "jars", "lemma": "jar", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "jar", "plural": "jars", "default_size": null}
{"entry_id": "en-units-entry-255", "surface": "can", "lemma": "can", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "can", "plural": "cans", "default_size": null}
{"entry_id": "en-units-entry-256", "surface": "cans", "lemma": "can", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "can", "plural": "cans", "default_size": null}
{"entry_id": "en-units-entry-257", "surface": "bottle", "lemma": "bottle", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bottle", "plural": "bottles", "default_size": null}
{"entry_id": "en-units-entry-258", "surface": "bottles", "lemma": "bottle", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bottle", "plural": "bottles", "default_size": null}
{"entry_id": "en-units-entry-259", "surface": "plate", "lemma": "plate", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "plate", "plural": "plates", "default_size": null}
{"entry_id": "en-units-entry-260", "surface": "plates", "lemma": "plate", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "plate", "plural": "plates", "default_size": null}
{"entry_id": "en-units-entry-261", "surface": "bowl", "lemma": "bowl", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bowl", "plural": "bowls", "default_size": null}
{"entry_id": "en-units-entry-262", "surface": "bowls", "lemma": "bowl", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "bowl", "plural": "bowls", "default_size": null}
{"entry_id": "en-units-entry-263", "surface": "tray", "lemma": "tray", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "tray", "plural": "trays", "default_size": null}
{"entry_id": "en-units-entry-264", "surface": "trays", "lemma": "tray", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "tray", "plural": "trays", "default_size": null}
{"entry_id": "en-units-entry-265", "surface": "sack", "lemma": "sack", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "sack", "plural": "sacks", "default_size": null}
{"entry_id": "en-units-entry-266", "surface": "sacks", "lemma": "sack", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "sack", "plural": "sacks", "default_size": null}
{"entry_id": "en-units-entry-267", "surface": "container", "lemma": "container", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "container", "plural": "containers", "default_size": null}
{"entry_id": "en-units-entry-268", "surface": "containers", "lemma": "container", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "container", "plural": "containers", "default_size": null}
{"entry_id": "en-units-entry-269", "surface": "gross", "lemma": "gross", "language": "en", "pos": "NOUN", "part_of_speech": "NOUN", "morphology_tags": ["container"], "semantic_domains": ["units.container"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent", "singular": "gross", "plural": "gross", "default_size": 144}
{"entry_id": "en-units-entry-270", "surface": "per", "lemma": "per", "language": "en", "pos": "ADP", "part_of_speech": "ADP", "morphology_tags": ["rate_connector"], "semantic_domains": ["units.rate"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-271", "surface": "an", "lemma": "an", "language": "en", "pos": "ADP", "part_of_speech": "ADP", "morphology_tags": ["rate_connector"], "semantic_domains": ["units.rate"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-272", "surface": "every", "lemma": "every", "language": "en", "pos": "ADP", "part_of_speech": "ADP", "morphology_tags": ["rate_connector"], "semantic_domains": ["units.rate"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-273", "surface": "each", "lemma": "each", "language": "en", "pos": "ADP", "part_of_speech": "ADP", "morphology_tags": ["rate_connector"], "semantic_domains": ["units.rate"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-274", "surface": "by", "lemma": "by", "language": "en", "pos": "ADP", "part_of_speech": "ADP", "morphology_tags": ["rate_connector"], "semantic_domains": ["units.rate"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-275", "surface": "%", "lemma": "percent", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-276", "surface": "½", "lemma": "half", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-277", "surface": "¼", "lemma": "quarter", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-278", "surface": "¾", "lemma": "three_quarters", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-279", "surface": "⅓", "lemma": "one_third", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-280", "surface": "⅔", "lemma": "two_thirds", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-281", "surface": "⅛", "lemma": "one_eighth", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-282", "surface": "⅜", "lemma": "three_eighths", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-283", "surface": "⅝", "lemma": "five_eighths", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}
{"entry_id": "en-units-entry-284", "surface": "⅞", "lemma": "seven_eighths", "language": "en", "pos": "SYM", "part_of_speech": "SYM", "morphology_tags": ["symbol"], "semantic_domains": ["units.symbol"], "provenance_ids": ["adr-0127:units_pack:2026-05-23"], "epistemic_status": "coherent"}

View file

@ -0,0 +1,17 @@
{
"pack_id": "en_units_v1",
"language": "en",
"role": "operational_base",
"script": "Latin",
"normalization_policy": "unitize_versor",
"source_manifest": "en_units_v1.lexicon.jsonl",
"determinism_class": "D0",
"checksum": "06216713d356dd88c8a45e70575310d15af5f0b9e943e008f22ab4515cd268bd",
"version": "1.0.0",
"gate_engaged": true,
"oov_policy": "tagged_fallback",
"glosses_checksum": "4e08e6996eb7a7e38d254ba8a662a1d4fc21c04bdc3ac8666df1306f41fcbd65",
"conversions_checksum": "714a8e67fd1b1d1fa9de52676e61ac12c08b1d11e72decc1fe083bdc49c7da24",
"definitional_layer": false,
"provenance": "adr-0127:units_pack:2026-05-23"
}

290
language_packs/loader.py Normal file
View file

@ -0,0 +1,290 @@
from __future__ import annotations
import json
from dataclasses import dataclass
from pathlib import Path
# Dataclass definitions as required by the contract
@dataclass(frozen=True, slots=True)
class UnitEntry:
surface: str
singular: str
plural: str
symbol: str | None
dimension: str
is_canonical_for_dimension: bool
provenance_ids: list[str]
@dataclass(frozen=True, slots=True)
class ContainerEntry:
surface: str
singular: str
plural: str
default_size: int | None
provenance_ids: list[str]
@dataclass(frozen=True, slots=True)
class DimensionEntry:
name: str
canonical_unit: str
is_derived: bool
formula: str | None
provenance_ids: list[str]
@dataclass(frozen=True, slots=True)
class ConversionEdge:
edge_id: str
from_unit: str
to_unit: str
ratio: float
offset: float
dimension: str
provenance_ids: list[str]
@dataclass(frozen=True, slots=True)
class ConversionGraph:
edges: list[ConversionEdge]
# Private cache variables
_UNITS_MAP: dict[str, UnitEntry] = {}
_CONTAINERS_MAP: dict[str, ContainerEntry] = {}
_DIMENSIONS_MAP: dict[str, DimensionEntry] = {}
_CONVERSIONS_BY_DIM: dict[str, list[ConversionEdge]] = {}
_LOADED = False
ADR_PROVENANCE = "adr-0127:units_pack:2026-05-23"
def _ensure_loaded() -> None:
global _LOADED
if _LOADED:
return
data_dir = Path(__file__).parent / "data" / "en_units_v1"
lexicon_path = data_dir / "lexicon.jsonl"
conversions_path = data_dir / "conversions.jsonl"
if not lexicon_path.exists():
raise FileNotFoundError(f"lexicon.jsonl missing at {lexicon_path}")
# Load lexicon
unit_entries = []
canonical_lemmas = set()
with lexicon_path.open("r", encoding="utf-8") as f:
for line in f:
if not line.strip():
continue
entry = json.loads(line)
tags = entry.get("morphology_tags", [])
surface = entry["surface"].lower()
if "dimension" in tags:
_DIMENSIONS_MAP[surface] = DimensionEntry(
name=entry["surface"],
canonical_unit=entry["canonical_unit"],
is_derived=entry["is_derived"],
formula=entry["formula"],
provenance_ids=list(entry.get("provenance_ids", []))
)
elif "unit" in tags:
unit_entries.append(entry)
if entry.get("is_canonical_for_dimension"):
canonical_lemmas.add(entry["lemma"].lower())
elif "container" in tags:
_CONTAINERS_MAP[surface] = ContainerEntry(
surface=entry["surface"],
singular=entry["singular"],
plural=entry["plural"],
default_size=entry.get("default_size"),
provenance_ids=list(entry.get("provenance_ids", []))
)
for entry in unit_entries:
surface = entry["surface"].lower()
lemma = entry["lemma"].lower()
is_canon = (lemma in canonical_lemmas)
ue = UnitEntry(
surface=entry["surface"],
singular=entry["singular"],
plural=entry["plural"],
symbol=entry.get("symbol"),
dimension=entry["dimension"],
is_canonical_for_dimension=is_canon,
provenance_ids=list(entry.get("provenance_ids", []))
)
_UNITS_MAP[surface] = ue
_UNITS_MAP[lemma] = ue
# Load conversions
if conversions_path.exists():
with conversions_path.open("r", encoding="utf-8") as f:
for line in f:
if not line.strip():
continue
edge = json.loads(line)
c_edge = ConversionEdge(
edge_id=edge["edge_id"],
from_unit=edge["from"],
to_unit=edge["to"],
ratio=float(edge["ratio"]),
offset=float(edge.get("offset", 0.0)),
dimension=edge["dimension"],
provenance_ids=list(edge.get("provenance_ids", []))
)
_CONVERSIONS_BY_DIM.setdefault(c_edge.dimension.lower(), []).append(c_edge)
_LOADED = True
# Public API functions
def lookup_unit(token: str) -> UnitEntry | None:
"""Look up unit by singular, plural, symbol surface, or dynamic composition."""
_ensure_loaded()
token_clean = token.strip().lower()
# 1. Direct Lookup
if token_clean in _UNITS_MAP:
return _UNITS_MAP[token_clean]
# 2. Composition Rules
# Rule A: <unit> per <unit>
if " per " in token_clean:
parts = token_clean.split(" per ")
if len(parts) == 2:
left_str, right_str = parts[0], parts[1]
left_unit = lookup_unit(left_str)
right_unit = lookup_unit(right_str)
if left_unit:
# Wage / Unit Price: money per time / count
if left_unit.dimension == "money":
if right_unit and right_unit.dimension == "time":
singular = f"{left_unit.singular} per {right_unit.singular}"
plural = f"{left_unit.plural} per {right_unit.singular}"
is_canon = (left_unit.singular == "dollar" and right_unit.singular == "hour")
return UnitEntry(
surface=token,
singular=singular,
plural=plural,
symbol=f"{left_unit.symbol or '$'}/{right_unit.symbol or 'hr'}",
dimension="wage",
is_canonical_for_dimension=is_canon,
provenance_ids=left_unit.provenance_ids + (right_unit.provenance_ids if right_unit else [ADR_PROVENANCE])
)
else:
r_sing = right_unit.singular if right_unit else right_str
singular = f"{left_unit.singular} per {r_sing}"
plural = f"{left_unit.plural} per {r_sing}"
is_canon = (left_unit.singular == "dollar" and r_sing == "item")
return UnitEntry(
surface=token,
singular=singular,
plural=plural,
symbol=f"{left_unit.symbol or '$'}/{r_sing}",
dimension="unit_price",
is_canonical_for_dimension=is_canon,
provenance_ids=left_unit.provenance_ids + (right_unit.provenance_ids if right_unit else [ADR_PROVENANCE])
)
# Speed: length per time
elif left_unit.dimension == "length" and right_unit and right_unit.dimension == "time":
singular = f"{left_unit.singular} per {right_unit.singular}"
plural = f"{left_unit.plural} per {right_unit.singular}"
is_canon = (left_unit.singular == "mile" and right_unit.singular == "hour")
return UnitEntry(
surface=token,
singular=singular,
plural=plural,
symbol="mph" if is_canon else f"{left_unit.symbol or 'ft'}/{right_unit.symbol or 's'}",
dimension="speed",
is_canonical_for_dimension=is_canon,
provenance_ids=left_unit.provenance_ids + right_unit.provenance_ids
)
# Density: mass per volume
elif left_unit.dimension == "mass" and right_unit and right_unit.dimension == "volume":
singular = f"{left_unit.singular} per {right_unit.singular}"
plural = f"{left_unit.plural} per {right_unit.singular}"
is_canon = (left_unit.singular == "pound" and right_unit.surface == "cubic foot")
return UnitEntry(
surface=token,
singular=singular,
plural=plural,
symbol=f"{left_unit.symbol or 'lb'}/{right_unit.symbol or 'cu ft'}",
dimension="density",
is_canonical_for_dimension=is_canon,
provenance_ids=left_unit.provenance_ids + right_unit.provenance_ids
)
# Rule B: square <length-unit>
if token_clean.startswith("square "):
sub_str = token_clean[7:]
sub_unit = lookup_unit(sub_str)
if sub_unit and sub_unit.dimension == "length":
singular = f"square {sub_unit.singular}"
plural = f"square {sub_unit.plural}"
is_canon = (sub_unit.singular == "foot")
return UnitEntry(
surface=token,
singular=singular,
plural=plural,
symbol=f"sq {sub_unit.symbol or 'ft'}",
dimension="area",
is_canonical_for_dimension=is_canon,
provenance_ids=sub_unit.provenance_ids
)
# Rule C: cubic <length-unit>
if token_clean.startswith("cubic "):
sub_str = token_clean[6:]
sub_unit = lookup_unit(sub_str)
if sub_unit and sub_unit.dimension == "length":
singular = f"cubic {sub_unit.singular}"
plural = f"cubic {sub_unit.plural}"
return UnitEntry(
surface=token,
singular=singular,
plural=plural,
symbol=f"cu {sub_unit.symbol or 'ft'}",
dimension="volume",
is_canonical_for_dimension=False,
provenance_ids=sub_unit.provenance_ids
)
return None
def lookup_container(token: str) -> ContainerEntry | None:
"""Look up container by singular or plural surface."""
_ensure_loaded()
return _CONTAINERS_MAP.get(token.strip().lower())
def lookup_dimension(name: str) -> DimensionEntry | None:
"""Look up dimension by name."""
_ensure_loaded()
return _DIMENSIONS_MAP.get(name.strip().lower())
def get_conversion_graph(dimension: str) -> ConversionGraph:
"""Get the conversions subgraph for a given dimension."""
_ensure_loaded()
edges = _CONVERSIONS_BY_DIM.get(dimension.strip().lower(), [])
return ConversionGraph(edges=list(edges))
def canonical_unit_for(dimension: str) -> str:
"""Get the canonical unit name for a given dimension."""
_ensure_loaded()
dim = _DIMENSIONS_MAP.get(dimension.strip().lower())
if not dim:
raise ValueError(f"Unknown dimension: {dimension}")
# Return the singular surface form of the canonical unit if registered,
# otherwise fallback to dim.canonical_unit.
unit = lookup_unit(dim.canonical_unit)
if unit:
return unit.singular
return dim.canonical_unit

View file

@ -0,0 +1,157 @@
from __future__ import annotations
import pytest
from language_packs.loader import (
lookup_unit,
lookup_container,
lookup_dimension,
get_conversion_graph,
canonical_unit_for,
UnitEntry,
ContainerEntry,
DimensionEntry,
)
def test_lookup_unit_happy_path() -> None:
# Singular
u_foot = lookup_unit("foot")
assert isinstance(u_foot, UnitEntry)
assert u_foot.singular == "foot"
assert u_foot.plural == "feet"
assert u_foot.symbol == "ft"
assert u_foot.dimension == "length"
assert u_foot.is_canonical_for_dimension is True
# Plural
u_feet = lookup_unit("feet")
assert isinstance(u_feet, UnitEntry)
assert u_feet.singular == "foot"
assert u_feet.plural == "feet"
# Symbol
u_ft = lookup_unit("ft")
assert isinstance(u_ft, UnitEntry)
assert u_ft.singular == "foot"
assert u_ft.plural == "feet"
def test_lookup_unit_missing_returns_none() -> None:
assert lookup_unit("not_a_unit") is None
assert lookup_unit("") is None
def test_lookup_container() -> None:
# Singular
c_box = lookup_container("box")
assert isinstance(c_box, ContainerEntry)
assert c_box.singular == "box"
assert c_box.plural == "boxes"
assert c_box.default_size is None
# Plural
c_boxes = lookup_container("boxes")
assert isinstance(c_boxes, ContainerEntry)
assert c_boxes.singular == "box"
# Container with default size
c_dozen = lookup_container("dozen")
assert c_dozen.default_size == 12
c_pair = lookup_container("pair")
assert c_pair.default_size == 2
c_gross = lookup_container("gross")
assert c_gross.default_size == 144
# Missing
assert lookup_container("not_a_container") is None
def test_lookup_dimension() -> None:
d_length = lookup_dimension("length")
assert isinstance(d_length, DimensionEntry)
assert d_length.name == "length"
assert d_length.canonical_unit == "foot"
assert d_length.is_derived is False
d_area = lookup_dimension("area")
assert isinstance(d_area, DimensionEntry)
assert d_area.name == "area"
assert d_area.canonical_unit == "square_foot"
assert d_area.is_derived is True
assert d_area.formula == "length * length"
# Missing
assert lookup_dimension("not_a_dimension") is None
def test_canonical_unit_for() -> None:
assert canonical_unit_for("length") == "foot"
assert canonical_unit_for("time") == "minute"
with pytest.raises(ValueError, match="Unknown dimension"):
canonical_unit_for("not_a_dimension")
def test_multi_word_composition_area_volume() -> None:
# Area
u_sq_in = lookup_unit("square inch")
assert isinstance(u_sq_in, UnitEntry)
assert u_sq_in.dimension == "area"
assert u_sq_in.singular == "square inch"
assert u_sq_in.plural == "square inches"
assert u_sq_in.is_canonical_for_dimension is False
u_sq_ft = lookup_unit("square feet")
assert isinstance(u_sq_ft, UnitEntry)
assert u_sq_ft.dimension == "area"
assert u_sq_ft.is_canonical_for_dimension is True
# Volume (cubic length-unit)
u_cu_m = lookup_unit("cubic meter")
assert isinstance(u_cu_m, UnitEntry)
assert u_cu_m.dimension == "volume"
assert u_cu_m.singular == "cubic meter"
assert u_cu_m.plural == "cubic meters"
assert u_cu_m.is_canonical_for_dimension is False
def test_multi_word_composition_speed_density() -> None:
# Speed
u_mps = lookup_unit("meters per second")
assert isinstance(u_mps, UnitEntry)
assert u_mps.dimension == "speed"
assert u_mps.singular == "meter per second"
assert u_mps.plural == "meters per second"
assert u_mps.is_canonical_for_dimension is False
u_mph = lookup_unit("miles per hour")
assert isinstance(u_mph, UnitEntry)
assert u_mph.dimension == "speed"
assert u_mph.is_canonical_for_dimension is True
# Density
u_dens = lookup_unit("pounds per cubic foot")
assert isinstance(u_dens, UnitEntry)
assert u_dens.dimension == "density"
assert u_dens.singular == "pound per cubic foot"
assert u_dens.is_canonical_for_dimension is True
def test_multi_word_composition_wage_unit_price() -> None:
# Wage (money per time)
u_wage = lookup_unit("dollars per hour")
assert isinstance(u_wage, UnitEntry)
assert u_wage.dimension == "wage"
assert u_wage.singular == "dollar per hour"
assert u_wage.plural == "dollars per hour"
# Unit price (money per count/token)
u_price = lookup_unit("dollars per item")
assert isinstance(u_price, UnitEntry)
assert u_price.dimension == "unit_price"
assert u_price.singular == "dollar per item"
u_price_apple = lookup_unit("cents per apple")
assert isinstance(u_price_apple, UnitEntry)
assert u_price_apple.dimension == "unit_price"
assert u_price_apple.singular == "cent per apple"

View file

@ -0,0 +1,261 @@
from __future__ import annotations
import json
from pathlib import Path
from collections import deque
from language_packs.loader import (
lookup_unit,
lookup_dimension,
get_conversion_graph,
canonical_unit_for,
UnitEntry,
)
DATA_DIR = Path(__file__).parent.parent / "language_packs" / "data" / "en_units_v1"
def _load_raw_lexicon():
lexicon_path = DATA_DIR / "lexicon.jsonl"
entries = []
with lexicon_path.open("r", encoding="utf-8") as f:
for line in f:
if line.strip():
entries.append(json.loads(line))
return entries
def _load_raw_conversions():
conversions_path = DATA_DIR / "conversions.jsonl"
entries = []
with conversions_path.open("r", encoding="utf-8") as f:
for line in f:
if line.strip():
entries.append(json.loads(line))
return entries
class TestGraphRatificationInvariants:
"""Ratification tests for the en_units_v1 pack."""
def test_round_trip_identity(self) -> None:
"""Invariant 1: for every edge (A, B, r, offset), there must exist (B, A, 1/r, -offset/r) within 1e-9."""
edges = _load_raw_conversions()
# Build an easy lookup map for (from_unit, to_unit) -> edge
edge_map = {}
for edge in edges:
edge_map[(edge["from"], edge["to"])] = edge
for edge in edges:
u_from = edge["from"]
u_to = edge["to"]
ratio = edge["ratio"]
offset = edge.get("offset", 0.0)
# Retrieve reverse edge
rev_key = (u_to, u_from)
assert rev_key in edge_map, f"Missing reverse conversion edge from {u_to} to {u_from}"
rev_edge = edge_map[rev_key]
expected_ratio_rev = 1.0 / ratio
expected_offset_rev = -offset / ratio
assert abs(rev_edge["ratio"] - expected_ratio_rev) < 1e-9, (
f"Ratio mismatch on reverse edge {u_to} -> {u_from}: "
f"got {rev_edge['ratio']}, expected {expected_ratio_rev}"
)
assert abs(rev_edge.get("offset", 0.0) - expected_offset_rev) < 1e-9, (
f"Offset mismatch on reverse edge {u_to} -> {u_from}: "
f"got {rev_edge.get('offset', 0.0)}, expected {expected_offset_rev}"
)
def test_per_dimension_connectivity(self) -> None:
"""Invariant 2: within each dimension, the induced subgraph must be fully connected."""
lexicon = _load_raw_lexicon()
conversions = _load_raw_conversions()
# Group unit surfaces by dimension
dim_units = {}
for entry in lexicon:
if "unit" in entry.get("morphology_tags", []):
dim = entry["dimension"]
dim_units.setdefault(dim, set()).add(entry["surface"])
# Check connectivity for each dimension
for dim, units in dim_units.items():
if not units:
continue
# Filter conversion edges for this dimension
dim_edges = [e for e in conversions if e["dimension"] == dim]
# Build adjacency list
adj = {u: set() for u in units}
for edge in dim_edges:
u_from = edge["from"]
u_to = edge["to"]
if u_from in adj and u_to in adj:
adj[u_from].add(u_to)
adj[u_to].add(u_from)
# BFS from an arbitrary starting unit
start_unit = next(iter(units))
visited = {start_unit}
queue = deque([start_unit])
while queue:
curr = queue.popleft()
for neighbor in adj[curr]:
if neighbor not in visited:
visited.add(neighbor)
queue.append(neighbor)
missing = units - visited
assert not missing, f"Dimension '{dim}' conversion subgraph is disconnected. Unreachable units: {missing}"
def test_path_consistency(self) -> None:
"""Invariant 3: all shortest paths between any two units in the same dimension yield the same ratio & offset."""
lexicon = _load_raw_lexicon()
conversions = _load_raw_conversions()
dim_units = {}
for entry in lexicon:
if "unit" in entry.get("morphology_tags", []):
dim = entry["dimension"]
dim_units.setdefault(dim, set()).add(entry["surface"])
# For each dimension, we compute paths to the canonical unit and check that every edge is consistent
for dim, units in dim_units.items():
if not units:
continue
dim_edges = [e for e in conversions if e["dimension"] == dim]
# Find the canonical unit
canonical_unit = canonical_unit_for(dim)
assert canonical_unit in units, f"Canonical unit '{canonical_unit}' for dimension '{dim}' not in units"
# BFS to find the shortest path from each node to the canonical unit
# We construct adj dictionary
adj = {u: [] for u in units}
for edge in dim_edges:
adj[edge["from"]].append(edge)
# canonical_conversions[X] = (ratio_to_canon, offset_to_canon)
# where canon = ratio * X + offset
canonical_conversions = {canonical_unit: (1.0, 0.0)}
queue = deque([canonical_unit])
visited = {canonical_unit}
# BFS backwards from canonical (since graph is fully connected and bidirectional, we can traverse)
# We want to convert from X to canon, which means canon = r * X + o.
# If canon = r_to * to_unit + o_to, and to_unit = r_edge * X + o_edge,
# then canon = r_to * (r_edge * X + o_edge) + o_to = (r_to * r_edge) * X + (r_to * o_edge + o_to).
while queue:
curr = queue.popleft()
r_curr, o_curr = canonical_conversions[curr]
# Find all edges pointing TO curr
for edge in dim_edges:
if edge["to"] == curr:
parent = edge["from"]
if parent not in visited:
visited.add(parent)
# parent -> curr edge: curr = edge_ratio * parent + edge_offset
r_parent = r_curr * edge["ratio"]
o_parent = r_curr * edge.get("offset", 0.0) + o_curr
canonical_conversions[parent] = (r_parent, o_parent)
queue.append(parent)
# Check that every edge is consistent with the computed canonical conversions
# If B = r_edge * A + o_edge,
# then canon_B = r_B * B + o_B = r_B * (r_edge * A + o_edge) + o_B = (r_B * r_edge) * A + (r_B * o_edge + o_B).
# This must equal canon_A = r_A * A + o_A.
for edge in dim_edges:
u_from = edge["from"]
u_to = edge["to"]
r_edge = edge["ratio"]
o_edge = edge.get("offset", 0.0)
r_A, o_A = canonical_conversions[u_from]
r_B, o_B = canonical_conversions[u_to]
expected_r_A = r_B * r_edge
expected_o_A = r_B * o_edge + o_B
assert abs(r_A - expected_r_A) < 1e-9, (
f"Path inconsistency in edge {u_from} -> {u_to}: "
f"r_A={r_A}, expected={expected_r_A}"
)
assert abs(o_A - expected_o_A) < 1e-9, (
f"Path inconsistency in edge {u_from} -> {u_to}: "
f"o_A={o_A}, expected={expected_o_A}"
)
def test_canonical_unit_per_dimension(self) -> None:
"""Invariant 4: each dimension declares exactly one canonical unit."""
lexicon = _load_raw_lexicon()
# Collect unit entries grouped by dimension
dim_units = {}
for entry in lexicon:
if "unit" in entry.get("morphology_tags", []):
dim = entry["dimension"]
dim_units.setdefault(dim, []).append(entry)
for dim, entries in dim_units.items():
canonicals = [e for e in entries if e.get("is_canonical_for_dimension") is True]
assert len(canonicals) == 1, (
f"Dimension '{dim}' must have exactly one canonical unit, "
f"found {len(canonicals)}: {[c['surface'] for c in canonicals]}"
)
def test_exhaustive_coverage_gate(self) -> None:
"""Invariant 5: every unit lemma in UNITS is represented in the conversions graph."""
lexicon = _load_raw_lexicon()
conversions = _load_raw_conversions()
unit_surfaces = {
entry["surface"] for entry in lexicon
if "unit" in entry.get("morphology_tags", [])
}
# Collect all units mentioned in conversions graph
conversion_units = set()
for edge in conversions:
conversion_units.add(edge["from"])
conversion_units.add(edge["to"])
missing = unit_surfaces - conversion_units
assert not missing, f"Exhaustive coverage failed. Units missing from conversions graph: {missing}"
def test_nist_iso_provenance(self) -> None:
"""Invariant 6: every conversion ratio cites a valid NIST or ISO provenance ID."""
conversions = _load_raw_conversions()
for edge in conversions:
prov_ids = edge.get("provenance_ids", [])
assert prov_ids, f"Edge {edge['edge_id']} ({edge['from']} -> {edge['to']}) has no provenance_ids"
for prov in prov_ids:
assert any(
prov.startswith(prefix)
for prefix in ("nist-sp-811:", "iso-4217:", "adr-0127:")
), f"Edge {edge['edge_id']} has invalid provenance source '{prov}'"
def test_dimension_algebra_closure(self) -> None:
"""Invariant 7: derived dimensions have their base dimensions/units present."""
lexicon = _load_raw_lexicon()
dimensions = {
entry["surface"]: entry for entry in lexicon
if "dimension" in entry.get("morphology_tags", [])
}
for name, dim in dimensions.items():
if dim.get("is_derived"):
formula = dim.get("formula")
assert formula, f"Derived dimension '{name}' is missing formula"
# Check that base components (like length, time, mass, volume, count, money) are present
# Simple token parsing of formula: split by operator symbols
components = [c.strip() for c in formula.replace("*", " ").replace("/", " ").split() if c.strip().replace("1", "")]
for comp in components:
assert comp in dimensions, f"Derived dimension '{name}' depends on missing base dimension '{comp}'"