Skip to content

17. A device's own data ships with its procedure

Context

ADR 0013 sends linguistic data to separate distributions, with size and licence as the stated triggers. Harsdörffer's five rings meet neither: 2 KB of public-domain 17th-century morphology.

There is also a hard obstacle. Since ADR 0016 two packs claiming one language raise DuplicatePack, and German already registers through the entry-point group from core. A German data distribution would collide with the pack already there.

Decision

The rings ship in core at denckring/data/devices/harsdoerffer_1651.yaml, beside the catalogue. The distinction that makes this consistent rather than convenient: a lexicon describes a language, a device is a procedure. A Denckring with different rings is a different device, in the way a lipogram with a different forbidden letter is still a lipogram. The rings are the procedure's definition, not data it consults.

The procedure takes the device by parameter, defaulting to the historical one, so the mechanism is not welded to a single object.

Consequences

denckring runs, which after ten chapters is the least it owed its own name. Being constructive as well as checkable, it also exercises the round-trip property from both sides: spinning the rings must produce a word the rings accept.

The round-trip suite had to learn that not every constructive procedure is source-relative — cut_up needs the text it cut up, denckring needs nothing but its own rings.

Provenance is recorded rather than tidied. The data is Harsdörffer's, transcribed by Florian Cramer, whose digitisation appears to be the only machine-readable copy; a faithful transcription of a public-domain text carries no new copyright, and the credit is owed regardless. Where his counts depart from Harsdörffer's own — 49 prefixes against a stated 48, 60 initials against 50, 23 suffixes against 24 — both are recorded and neither is adjusted to agree with the other.

The catalogue row also records that the 97,209,600 combinations the literature repeats cannot be right: the figure is not divisible by 144, so it cannot be a product of rings of 12 and 120 at all.