open-standards/wai/research/text-dictionary/rule.json
Transaction Science 1a7c4abc88 A corpus, a rule and a script fix how a text dictionary is measured, before any measurement
The corpus is the repository's own text, copied into one archive and split before anything
is coded. The rule says what counts as a saving and what it is charged with.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 03:34:50 -05:00

19 lines
1.4 KiB
JSON

{
"format": "wai.research.text-dictionary.rule/1",
"question": "Does a Zstandard dictionary, its bytes charged to each sink, save bytes against plain Zstandard at the same level on text the repository may publish?",
"levels": [3, 9, 19],
"dictionary_bytes": [4096, 16384, 65536, 114688],
"training": "Each family's dictionary is trained on the family's train split only, one training per size, and finalised per level.",
"charges": {
"dictionary": "The dictionary's full length, once per sink, as prior-carriage 17.2 charges a set: a set's bytes are counted in full for every sink that fetches it.",
"pin": "Each object coded with the dictionary pays the bytes of a minimal SPEC 3.1 prior in its manifest, which an object coded plain does not carry.",
"fallback": "An object whose dictionary form, with its pin, is not smaller than its plain form is sent plain and saves nothing, as prior-carriage 17.2 step 1 has it."
},
"workload": "One sink fetches every held-out object of the family once.",
"go": {
"cell": "A family, a level and a dictionary size pass when the net saving is at least 10 percent of the family's plain bytes and the median object's saving, its fallback applied, is above 0.",
"family": "A family is GO when, at every level, at least one dictionary size passes.",
"item": "The dictionary capability is justified for the families that are GO. When no family is GO the record closes the item."
},
"net_fraction_min": 0.10
}