Error typology of digital Sanskrit dictionaries
What kinds of errors are corrected in the Cologne Digital Sanskrit Lexicon, where
in the entry they occur, and how the profile changes over twelve years. Each of
the 52,498 released correction events (2014–2026, 43 dictionaries) is normalized to IAST
and attributed to the dictionary microstructure component it repairs. See the
finding reports/obs_t_typology.md
and the design spec.
Correction events
Dictionaries
Correctors
Derived (not heuristic)
Two axes: location × edit-type
Each correction is described on two orthogonal axes — where in the entry it lands (the microstructure location) and what kind of change it is (the edit-type). Mixing them was a pitfall; keeping them apart is the honest typology.
Axis A — location (derived labels)
Where in the entry the correction repairs. Git layer is attributed positionally
from the source XML tags; the form layer is joined to csl-orig by headword.
Reported on derived labels (location is not guessed when the join fails).
Corrections concentrate in the sense (definition) and headword — the meaning-bearing fields.
Axis B — edit-type (all events)
What kind of change. Every category is a surface micro-edit; there is no "content rewrite" type — even corrections to definitions are small form fixes.
Twelve-year timelapse — location over time
Monthly correction volume, coloured by the location repaired. The form era and the git era meet at mid-2019 into one continuous record.
Scrub a year
Cross-dictionary error density
Corrections per 1,000 entries (<L> count), dictionaries with ≥30 events — a
size-normalized quality signal, so a small heavily-edited dictionary is not hidden
by a large one.
Character confusion — the clean Sanskrit signal
Single-character substitutions in the form layer (IAST), restricted to consonants: the genuine phoneme-confusion signal, led by the classic b ↔ v merger.
Crosswalk typologies
The same events under the OCR/digitization and textual-criticism (Katre) frames, derived from the edit-op trace.
Reference baselines
Stdlib-only, deterministic baselines that define the NLP tasks the released corpus
supports, on a temporal split. See reports/obs_t_baselines.md
and the datasheet.
Detection (char-LM, minimal pair)
pairwise accuracy (chance 0.5)
Correction (noisy-channel)
accuracy@1 —
Type classifier (Naive Bayes)
accuracy vs
Detection and correction are deliberately hard for context-free baselines — a one-character-different Sanskrit string is usually also plausible — which is the headroom a neural model is meant to fill. Error-type classification clearly beats the majority class.
How much correction work is left? (capture–recapture)
The two OBS-T layers — the form era (2014–2019 web submissions) and the git era (2019–2026 commits) — act as two capture occasions over error-prone records. The Chapman mark–recapture estimator turns their overlap into an estimate of the total error-site population, i.e. the work remaining. Full method, sensitivity checks, and honest assumption-violation discussion: reports/error_recapture.md, generated by scripts/error_recapture.py.
The two eras do not spell headwords alike, so the overlap depends on how they are joined. The join uses a record-linkage key whose false-match rate is measured against each dictionary's own headword inventory (scripts/headword_linkage.py); the obvious alternative — edit-distance matching — was measured and rejected, because 70–98% of its links join real but different Sanskrit lemmas. A second, independent design (correctors within one era as the capture occasions) cross-checks these figures in reports/corrector_recapture.md.
Dicts with estimable overlap
Estimated error-prone records
~Corrected so far
Estimated still awaiting
~How to read: For each dictionary with enough two-era overlap (≥10 recaptures), the bar is the estimated population of error-prone records: the dark segment is what has already been corrected, the light segment the estimated remainder, and the black whisker the 95% confidence interval (statistical-only — the design biases discussed in the report are not inside it). Example 1: If the dark segment is a small fraction of the bar, most of the correction work in that dictionary still lies ahead. Example 2: A bar that reaches its dictionary's full record count (cae, capped) means the analysis cannot distinguish the error population from the whole dictionary — treat it as "effectively unproofread", not as a precise count.
Conclusion: The two correction eras overlap so little that, under mark–recapture logic, the corrected record set must be a minority of the error population: roughly 5–16% of the estimated correction work is done in the four estimable dictionaries (pw, mw, bur, cae), with the heterogeneity scenario implying even less. For the other 39 dictionaries the overlap is too thin to estimate at all — itself evidence of how era-partitioned and concentrated correction effort has been. That thinness is a fact about the eras, not about the join: the measured linkage recovers real recaptures the exact-string join was dropping (bur 23 → 44, which takes it off the record-count ceiling) and still lifts only one dictionary over the estimability threshold.
Object of analysis: corrections over dictionary source text — in scope per
docs/BOUNDARY_RULES.md.
The lexicographic-structure interpretation cross-links to
csl-atlas.