← OverviewCode and results (zip)
In sum, although the Voynich text has properties unlike any natural-language text, most of its statistical properties can be reproduced by a fairly simple combination of writing habits: “build words glyph by glyph following strong habits of glyph continuation, and often write slightly altered versions of words visible in the previous few lines” (Chapters 24–25). This does not settle whether the text has meaning, but it supports both the idea behind the self-citation hypothesis (Timm and Schinner) and a peculiar way of assembling words glyph by glyph.
At positions where the same word appears twice in a row, we measured how much the glyph distribution, spelling sequences and glyph variability differ between the windows before and after, and compared this with non-run positions on the same page (2,000 permutations).
| Subset | Window (words) | Runs | p (larger change) | p (smaller change) |
|---|---|---|---|---|
| All | 5 | 295 | 0.816 | 0.185 |
| All | 15 | 254 | 0.993 | 0.008 |
| All | 30 | 187 | 0.967 | 0.034 |
| Language A | 5 | 91 | 0.996 | 0.004 |
| Language A | 15 | 70 | 0.997 | 0.004 |
| Language A | 30 | 35 | 0.865 | 0.135 |
| Language B | 5 | 190 | 0.187 | 0.814 |
| Language B | 15 | 172 | 0.853 | 0.148 |
| Language B | 30 | 145 | 0.963 | 0.037 |
A small “p (larger change)” would support the hypothesis. All are 0.19 or above, so no condition supports it. Conditions where “p (smaller change)” is below 0.05 (bold) indicate that text before and after runs is more similar. Nine tests were run, so discount each individual p accordingly.
Each word was compared with the words 1–30 positions earlier, and counted as “similar” if the spellings differ by at most one glyph (words of 3+ glyphs). The baseline is a random reshuffle of the words within the same page.
The dotted line (1.0) is the chance level. The difference is at the left edge. English clearly avoids similar neighbours (0.26× at one word back), whereas the Voynich exceeds 1.2× from one word back. Beyond three words back, English and the Voynich behave similarly at 1.0–1.2×. The self-citation model is too high at the left edge and falls back to 1.0 on the right. The shuffle stays near 1.0 throughout. Latin has few similar-word pairs and its line fluctuates strongly, so it is omitted from the figure; its numbers are in the table of Chapter 4.
| Group | Words | Ratio |
|---|---|---|
| Language B | 23,055 | 1.20 |
| Language A | 11,255 | 1.16 |
| Unknown | 549 | 1.29 |
| Scribe 3 | 11,706 | 1.20 |
| Scribe 2 | 10,811 | 1.20 |
| Scribe 1 | 10,504 | 1.16 |
| Scribe 5 | 873 | 1.22 |
| Scribe 4 | 504 | 1.31 |
| Scribe unknown | 461 | 1.19 |
| Stars/recipes | 11,588 | 1.21 |
| Herbal (plants) | 11,495 | 1.16 |
| Balneological (biological) | 6,241 | 1.20 |
| Pharmaceutical (jars) | 2,313 | 1.16 |
| Text only | 2,285 | 1.24 |
| Cosmological | 658 | 1.40 |
Groups with fewer than 400 words are omitted. Every group is at 1.16× or above, so this is not a quirk of a particular scribe or section (smaller groups scatter more).
The self-citation hypothesis assumes the scribe wrote while looking at the line above. We therefore checked which positions in the line above are most likely to hold a similar word. Line-initial and line-final words were excluded because position itself has strong effects there. Values are ratios to chance.
| -4 | -3 | -2 | -1 | 0 | +1 | +2 | +3 | +4 | |
|---|---|---|---|---|---|---|---|---|---|
| 1 line up | 1.17 | 1.23 | 1.17 | 1.21 | 1.28 | 1.19 | 1.12 | 1.06 | 1.06 |
| 2 lines up | 1.02 | 1.05 | 1.13 | 1.11 | 1.20 | 1.15 | 1.09 | 1.11 | 1.11 |
| 3 lines up | 1.03 | 1.11 | 1.05 | 1.07 | 1.12 | 1.12 | 1.05 | 1.00 | 1.11 |
| 5 lines up | 1.14 | 1.00 | 1.04 | 1.04 | 1.04 | 1.08 | 1.04 | 0.96 | 1.04 |
| 8 lines up | 0.89 | 1.04 | 0.95 | 1.07 | 1.07 | 1.00 | 0.98 | 0.94 | 0.98 |
| 12 lines up | 1.09 | 0.92 | 0.93 | 0.96 | 1.06 | 0.95 | 1.04 | 0.97 | 0.88 |
The horizontal axis is the difference in position within the line (0 = directly above). One line up, directly above is highest (1.28×), but the difference from the neighbouring positions (about 1.20×) is still statistically weak (z ≈ 1.7). What is clear is that similarity fades with distance in lines and is about at chance level five lines up.
To see what kind of generating process can reproduce the Voynich statistics, texts of different kinds were measured with the same yardstick, all with the same number of words and the same page division.
| Voynich | Self-citation model | Independent generation (table look-up) | Global shuffle | English (Moby-Dick) | Latin (Caesar) | Verbose cipher (Latin) | |
|---|---|---|---|---|---|---|---|
| Similar words adjacent (1–2 back) | 1.24 | 1.50○ | 1.01○ | 0.99○ | 0.48○ | 0.38○ | 0.37○ |
| Similar words nearby (3–10 back) | 1.18 | 1.11○ | 0.99○ | 1.02○ | 1.14● | 1.06○ | 1.09○ |
| Similar words far (11–30 back) | 1.08 | 0.99○ | 0.99○ | 1.01○ | 1.07● | 1.15○ | 1.11● |
| Identical neighbours (3+ glyphs) | 0.93% | 1.04%● | 0.40%○ | 0.30%○ | 0.12%○ | 0.00%○ | 0.00%○ |
| Next-glyph unpredictability (h2, bits) | 2.24 | 2.28● | 2.24● | 2.24● | 3.32○ | 3.30○ | 2.51○ |
| Mean word length (glyphs/letters) | 4.4 | 4.4● | 4.4● | 4.4● | 4.3● | 6.1○ | 9.4○ |
| Distinct words per 10k | 2,889 | 2,799● | 3,037● | 2,953● | 2,470○ | 3,388○ | 3,388○ |
| Share of once-only words | 68% | 49%○ | 72%● | 68%● | 59%○ | 59%○ | 59%○ |
| Zipf slope | -1.04 | -1.00● | -1.08● | -1.03● | -1.04● | -0.85○ | -0.85○ |
● = close to the Voynich (ratios within ±0.04, mean word length within ±8%, others within ±6–30%). The self-citation model and the independent generator use the manuscript’s words and glyphs as raw material, so h2 and the Zipf slope are automatically close. To compare models, look at the top two rows and the share of once-only words.
What this shows:
Ciphers of the period sometimes mixed meaningless symbols or words (nulls) into the text to hinder decipherment. If repetitions like qokedy qokedy were filler, removing them should leave text that behaves like an ordinary language: neighbours should avoid similar words, and h2 should rise to around 3.3 bits.
We split the pages into two halves, used one half to select the word types that tend to sit next to similar words, and removed all of those words from the other half before measuring. Selecting and measuring on separate data avoids results that look good only because they were tuned on the same data. The split was done both ways and averaged. The comparison is removing the same number of random word types with matched frequencies (mean of 20 runs).
| Share removed | Adjacent (candidates removed) | Adjacent (random removal) | h2 (candidates removed) | h2 (random removal) |
|---|---|---|---|---|
| 0% (unchanged) | 1.24 | — | 2.23 | — |
| 5% | 1.19 | 1.31 | 2.27 | 2.27 |
| 10% | 1.15 | 1.34 | 2.30 | 2.31 |
| 20% | 1.10 | 1.36 | 2.33 | 2.32 |
| 27% | 1.07 | 1.36 | 2.34 | 2.33 |
| Ref.: English (Moby-Dick) | 0.46 | — | 3.32 | — |
| Ref.: Latin (Caesar) | 0.46 | — | 3.29 | — |
Words most often selected as candidates: chol, qokeedy, qokedy, shol, qokeey, okaiin, shor, qokey. “Adjacent” is the ratio to chance of having a similar word 1–2 positions back; h2 is next-glyph unpredictability (bits).
In conclusion, the simple combination “ordinary text plus specific filler words” is not supported. Both neighbour similarity and glyph predictability are spread across the whole vocabulary rather than confined to a few words. If the filler were at the glyph level (meaningless glyphs added inside words) rather than the word level, this test would not detect it; that case is examined in Chapter 9.
We checked with the same yardstick whether any natural language has the tendency for similar words to sit next to each other. The material is a parallel Bible corpus (the Gospel of Matthew onwards, cut to the Voynich’s 34,859 words and page division). It includes languages that use word repetition grammatically (Indonesian, Tagalog, etc.) and scripts that do not write vowels (Hebrew, Arabic, Syriac).
| Language | Adjacent similarity | z | of which identical | of which 1-glyph | Hyphen-joined |
|---|---|---|---|---|---|
| Voynich | 1.24 | +11.3 | 1.34 | 1.21 | — |
| Indonesian | 1.53 | +16.4 | 1.62 | 0.63 | 0.39 |
| Hebrew | 1.25 | +4.9 | 0.81 | 1.58 | — |
| Amharic | 1.12 | +2.0 | 0.87 | 1.41 | — |
| Zarma | 1.07 | +2.0 | 0.83 | 1.40 | 0.83 |
| Serbian | 1.02 | -0.5 | 0.91 | 1.20 | — |
| Median of 93 languages | 0.53 | — | 0.39 | 0.80 | — |
z is the deviation from chance (200 within-page shuffles). “Hyphen-joined” recounts hyphenated words such as anak-anak (children) as one word.
anak-anak were counted as two words. Counted as one word it drops to 0.39×: the property disappears depending on spelling convention.Horizontal axis: identical neighbours; vertical axis: one-glyph-different neighbours (ratios to chance). Right of / above the dotted 1.0 lines means more likely than chance to be adjacent. Every language has at least one of the two at or below 1.0 (left or below). Only the Voynich (whole, Language A, Language B) sits in the upper-right region.
In the Voynich, both identical neighbours (1.34×, z ≈ 7) and one-glyph-different neighbours (1.21×, z ≈ 8.5) exceed chance, in both Language A and B. Moreover, the raw rate of one-glyph-different neighbours is 3.7%, about twice that of Haitian Creole (1.8%), the highest among the 93 languages.
In conclusion, “neighbours are similar” on its own occurs in languages written without vowels, among others, so this point alone does not show that the text is not language. But the combination of identical repeats and one-glyph variants both gathering next to each other was found in none of the 93 languages. At the least, it is hard to reconcile with ordinary prose copied as it is.
Limitations: the material is a single genre (Bible translations), mostly modern. Repetitive genres are examined in Chapter 7. Ten languages written in Indic scripts were excluded because our word segmentation could not handle them.
Judging from the illustrations, the Voynich is organised like a medieval medical book: herbs, pharmaceutical jars, bathing, astrology. Recipe collections repeat more than ordinary prose, so “neighbours are similar” might be a matter of genre. We therefore measured Latin medical, herbal and culinary texts and a highly repetitive prayer text (the Psalms) with the same yardstick. Other books by the same authors (general prose) are listed alongside so that author habits and genre can be separated.
| Text | Adjacent | Same word | One-glyph diff. | z |
|---|---|---|---|---|
| Voynich34,859 words | 1.24 | 1.34 | 1.21 | +11.3 |
| Celsus, De medicina 5–6 (recipes)Recipes · 28,517 words | 0.86 | 0.95 | 0.51 | -2.6 |
| Celsus, De medicina 1–4 (regimen, diseases)General prose · 34,859 words | 1.00 | 1.15 | 0.49 | -0.0 |
| Pliny, Naturalis historia 20–27 (herbal virtues)Herbal/medical · 34,859 words | 0.47 | 0.46 | 0.51 | -6.3 |
| Pliny, Naturalis historia 3–6 (geography)General prose · 34,859 words | 0.58 | 0.47 | 0.74 | -4.7 |
| Apicius, De re coquinaria (recipes)Recipes · 7,630 words | 0.60 | 0.51 | 0.92 | -4.2 |
| Cato, De agri cultura (instructions, recipes)Recipes · 15,523 words | 0.52 | 0.45 | 0.65 | -6.6 |
| Isidore, Etymologiae 17 (plants)Herbal/medical · 9,980 words | 0.51 | 0.53 | 0.45 | -5.3 |
| Isidore, Etymologiae 4 (medicine)Herbal/medical · 3,359 words | 0.44 | 0.37 | 0.65 | -3.4 |
| Psalms (Vulgate; repetitive prayers)Prayers · 30,210 words | 0.81 | 0.75 | 0.90 | -4.3 |
All values are ratios to chance (adjacent = 1–2 words back, broken down into “identical” and “one-glyph different”). Each text up to 34,859 words. Latin spelling normalised j→i, v→u. z is the deviation from chance (200 within-page shuffles).
deus/meus (God/my).In conclusion, matching the genre to the illustrations did not reproduce the Voynich property that identical and one-glyph-different words both gather next to each other. The texts used here are ancient to early-medieval Latin; vernacular recipe collections closer in time to the Voynich were checked in Chapter 8 with a Middle English recipe collection and an Italian cookbook (both 14th century).
Texts from around the date of the vellum (1404–1438) were collected regardless of genre and measured with the same yardstick. The last two rows of the table are 14th-century vernacular recipe collections, close to the Voynich in content. Besides Latin, the set includes vernacular texts of the period (Italian, French, Russian, Middle High German). The Nibelungenlied is transcribed in its manuscript spelling (not normalised).
| Text | Adjacent | Same word | One-glyph diff. | z |
|---|---|---|---|---|
| VoynichVellum 1404–1438 · 34,859 words | 1.24 | 1.34 | 1.21 | +11.3 |
| Thomas à Kempis, Imitatio ChristiLatin · c. 1418–27 · 34,859 words | 0.91 | 0.87 | 0.97 | -1.7 |
| Petrarch (Invective contra medicum etc.)Latin · 1350s · 25,446 words | 0.87 | 1.03 | 0.63 | -1.8 |
| Pico della MirandolaLatin · c. 1486 · 10,158 words | 1.13 | 1.38 | 0.77 | +1.0 |
| Jacobus de Voragine, Legenda aureaLatin · 1260s · 23,318 words | 0.43 | 0.30 | 0.60 | -7.4 |
| Thomas Aquinas et al. (Index Thomisticus)Latin · 13th c. · 34,859 words | 0.29 | 0.26 | 0.42 | -19.8 |
| Dante, Divina CommediaItalian · 1306–21 · 34,859 words | 0.57 | 0.54 | 0.61 | -8.1 |
| Middle French documents (PROFITEROLE)French · 14th–16th c. · 34,859 words | 0.35 | 0.25 | 0.51 | -12.4 |
| Old French documents (PROFITEROLE)French · 9th–13th c. · 34,859 words | 0.56 | 0.39 | 0.68 | -8.6 |
| Middle Russian (RNC)East Slavic · 1300–1700 · 34,859 words | 0.29 | 0.24 | 0.44 | -15.2 |
| Old East Slavic chronicles etc. (TOROT)East Slavic · 11th–15th c. · 34,859 words | 0.75 | 0.81 | 0.68 | -3.6 |
| Nibelungenlied, MS C (manuscript spelling)Middle High German · 13th-c. MS · 14,786 words | 0.53 | 0.33 | 0.67 | -8.0 |
| Henslow (ed.), Medical Works of the 14th Century (recipes)Middle English · 14th-c. MS · 33,072 words | 0.35 | 0.29 | 0.74 | -22.7 |
| Libro della cucina del sec. XIV (recipes, ed. Zambrini)Italian · 14th c. · 11,361 words | 0.61 | 0.54 | 0.74 | -4.7 |
Ratios to chance. Accents removed; Latin normalised j→i, v→u. Each text up to 34,859 words. z is the deviation from chance (200 within-page shuffles).
In conclusion, matching the period did not turn up any text with the Voynich property. Taken together with the earlier comparisons (93 languages, recipe collections and herbals, contemporary texts), the Voynich text is hard to regard as ordinary text in a major European language of the time copied as it is.
Voynich words tend to begin with q or o and end with y or n (-aiin etc.), and two or three e or i in a row are common. If such fixed-position glyphs were meaningless decoration, removing them should leave something more language-like: neighbours should avoid similar words (natural-language median 0.53×) and next-glyph unpredictability h2 should rise to about 3.1–3.3 bits.
We removed decoration candidates one at a time or in combination and measured with the same yardstick, comparing with removing the same number of glyphs from random positions (mean of 10 runs).
| Removed | Adjacent | Same word | One-glyph diff. | h2 |
|---|---|---|---|---|
| Unchanged0% of glyphs removed · mean length 4.5 | 1.24 | 1.34 | 1.21 | 2.24 |
| Remove initial q3% of glyphs removed · mean length 4.3 | 1.26(1.23) | 1.37(1.31) | 1.23(1.22) | 2.23(2.33) |
| Remove initial qo / o10% of glyphs removed · mean length 4.0 | 1.23(1.20) | 1.36(1.29) | 1.20(1.19) | 2.24(2.50) |
| Remove final y8% of glyphs removed · mean length 4.1 | 1.26(1.22) | 1.33(1.34) | 1.24(1.20) | 2.33(2.46) |
| Remove final dy7% of glyphs removed · mean length 4.1 | 1.30(1.22) | 1.40(1.29) | 1.27(1.21) | 2.33(2.44) |
| Remove final n/in/iin/aiin12% of glyphs removed · mean length 3.9 | 1.29(1.21) | 1.47(1.27) | 1.25(1.20) | 2.38(2.54) |
| Collapse runs of e3% of glyphs removed · mean length 4.3 | 1.24(1.23) | 1.37(1.32) | 1.21(1.22) | 2.21(2.32) |
| Collapse runs of i3% of glyphs removed · mean length 4.3 | 1.22(1.23) | 1.30(1.31) | 1.20(1.21) | 2.23(2.32) |
| Remove tall glyphs k t p f10% of glyphs removed · mean length 4.0 | 1.19(1.21) | 1.36(1.27) | 1.15(1.21) | 2.13(2.50) |
| Initial qo, final y, runs of e and i together23% of glyphs removed · mean length 3.3 | 1.20(1.19) | 1.31(1.23) | 1.17(1.18) | 2.31(2.72) |
| Above + final n-series + k t p f removed44% of glyphs removed · mean length 2.6 | 1.17(1.14) | 1.38(1.13) | 1.12(1.14) | 2.27(2.92) |
Ratios to chance and h2 (bits). In parentheses: the same number of glyphs removed at random positions. Reference: the 93-language median is adjacent 0.53, identical 0.39, one-glyph 0.80.
In conclusion, the Voynich’s neighbour similarity and glyph predictability do not reside in peripheral glyphs like initial or final decorations; they permeate the whole word, including its core. An explanation of the form “ordinary text with decorative glyphs added” does not hold either.
We tried to reproduce the properties that the simple model of Chapter 4 (copy and alter one of the last few words) could not, by widening how the source word is chosen. Each page is written word by word: either a new word is chosen, or an already-written word is chosen as the “source” and written with 0–2 alterations, using the one-glyph change patterns actually seen in the manuscript. The ways of choosing the source compared were:
For a fair comparison, the metrics used for fitting were kept separate from those used for checking. The first three types were tuned only on vocabulary richness, the share of once-only words and adjacent similarity. The carry-over type was tuned on all metrics marked “Fitted” in the table (random search over 220 settings). Checking used the mean of three generations with the same settings for every type.
| Voynich | From preceding word | From same position, line above | Mixed | Carry-over from previous page | |
|---|---|---|---|---|---|
| Adjacent (1–2 back) | 1.24 | 1.42○Fitted | 1.15○Fitted | 1.28●Fitted | 1.28●Fitted |
| of which identical | 1.34 | 1.72○ | 1.26○ | 1.45○ | 1.28○Fitted |
| of which 1-glyph | 1.21 | 1.36○ | 1.12○ | 1.25● | 1.28○Fitted |
| 3–10 words back | 1.18 | 1.03○ | 1.46○ | 1.08○ | 1.12○Fitted |
| 11–30 words back | 1.08 | 0.98○ | 1.08● | 1.00○ | 1.03●Fitted |
| Directly above | 1.28 | 0.97○ | 3.21○ | 1.28● | 1.31● |
| 1 line up, adjacent | 1.20 | 0.95○ | 3.18○ | 1.32○ | 1.24● |
| Page families | 1.60 | 1.01○ | 1.06○ | 1.04○ | 1.21○ |
| Once-only words | 68% | 49%○Fitted | 58%○Fitted | 54%○Fitted | 45%○Fitted |
| Distinct words per 10k | 2,889 | 2,845●Fitted | 3,267○Fitted | 3,065●Fitted | 3,003●Fitted |
| Share of 1-glyph neighbours | 3.7% | 2.6%○ | 2.0%○ | 2.3%○ | 1.7%○ |
| h2 (bits) | 2.24 | 2.27● | 2.41● | 2.33● | 2.60○Fitted |
Ratios to chance, or shares/bits. ● = close to the Voynich (ratios within ±0.06, others within ±10%). “Page families” is the rate at which two words on the same page are at most one glyph apart, divided by the rate for two words drawn from the whole manuscript (English 1.16, Latin 1.21).
Related to the last point, we also measured vocabulary density. In the manuscript, 89% of word types have at least one one-glyph-different relative, with 9.0 on average (English: 49%, 1.5 on average). The models’ vocabularies were about as dense, so the difference lies not in how word types are made but in the rules of alteration.
In conclusion, the skeleton of the self-citation hypothesis (look at already-written words and write slightly altered versions; the range looked at being the preceding words, the line above and the previous page) explains the similarity of neighbours and of lines above and below well. But if the scribe altered words, he did so not by changing one glyph at random but within a strict “word grammar” — rules such as qokedy → qokeedy → qokeey, swapping only specific glyphs in specific places. Identifying and incorporating those rules is the next stage for this model.
The Chapter 10 model altered words by swapping one glyph at random. This disturbed the glyph sequences and made it impossible to combine many once-only words with predictable glyph sequences. We therefore added a “word grammar” to the alterations and repeated the same procedure (fit on the same nine metrics, check on the rest).
| Voynich | Random-edit type (Ch. 10) | Glyph-grammar type | Real-word type | Base-form copy type | |
|---|---|---|---|---|---|
| Once-only words | 68% | 45%○Fitted | 49%○Fitted | 41%○Fitted | 48%○Fitted |
| h2 (bits) | 2.24 | 2.60○Fitted | 2.37●Fitted | 2.24●Fitted | 2.29●Fitted |
| Adjacent (1–2 back) | 1.24 | 1.28●Fitted | 1.27●Fitted | 1.08○Fitted | 1.22●Fitted |
| of which identical | 1.34 | 1.28○Fitted | 1.51○Fitted | 1.17○Fitted | 1.65○Fitted |
| of which 1-glyph | 1.21 | 1.28○Fitted | 1.20●Fitted | 1.06○Fitted | 1.14○Fitted |
| 3–10 words back | 1.18 | 1.12○Fitted | 1.26○Fitted | 1.05○Fitted | 1.18●Fitted |
| 11–30 words back | 1.08 | 1.03●Fitted | 1.03●Fitted | 1.01○Fitted | 1.01○Fitted |
| Directly above | 1.28 | 1.31● | 1.78○ | 1.15○ | 1.52○ |
| Page families | 1.60 | 1.21○ | 1.18○ | 1.01○ | 1.03○ |
| Share of 1-glyph neighbours | 3.7% | 1.7%○ | 2.5%○ | 2.2%○ | 2.3%○ |
| 9-metric loss | 0 | 0.16 | 0.11 | 0.24 | 0.16 |
Best setting from each random search (220–300 settings), mean of three generations. ● = close to the Voynich (ratios within ±0.06, others within ±10%). “9-metric loss” is the sum of squared relative errors over the nine fitted metrics; smaller is closer to the manuscript.
To identify this barrier, we examined the manuscript directly. If self-citation created rare words, rarer words should more often have a one-glyph-different “source” shortly before them. For each frequency class, we compared the share of words with a one-glyph-different word within the previous 10 words against within-page shuffles.
| Frequency | Voynich | English (Moby-Dick) | Latin (Caesar) | Glyph-grammar type | Random-edit type (Ch. 10) |
|---|---|---|---|---|---|
| Words occurring once | 1.30(4.0%) | 1.45(0.5%) | 1.42(0.3%) | 1.84(7.0%) | 2.52(15.3%) |
| Words occurring 2–4× | 1.25(10.3%) | 1.15(0.7%) | 0.93(0.4%) | 1.48(8.4%) | 1.54(7.7%) |
| Words occurring 5–29× | 1.15(19.2%) | 1.12(2.3%) | 0.76(0.8%) | 1.19(15.7%) | 1.05(8.6%) |
| Words occurring 30+× | 1.11(37.2%) | 0.97(7.3%) | 0.82(2.6%) | 1.07(29.1%) | 1.01(21.5%) |
Ratio to chance of “having a one-glyph-different word within the previous 10 words”; actual shares in parentheses. Words of 3+ glyphs only.
In conclusion, it is natural to think of the text in two layers. One is a weak local layer of slight similarity to the immediately adjacent words and the line above, well explained by self-citation (writing slightly altered versions of visible words). The other is a context-independent word-building layer that produces most of the vocabulary’s diversity; it seems to create new forms according to a strict word grammar, independently of location, rather than copying nearby words. The strong self-citation hypothesis — “the scribe produced the whole text by continually remixing the preceding words” — is not supported, at least in this form.
Chapter 11 showed that rare words are made independently of context, not as variants of nearby words. To study the rules of this word-building layer, words were mechanically split into three slots. For words of 4+ glyphs, the first two glyphs are the head, the last two the tail, and the rest the body (ch, sh etc. count as one glyph in the manuscript; the same rule is applied to English and Latin). Common heads in the manuscript are qo, che, ok, ot, da; common tails dy, in, ey, ol, ar.
| Slot pair | Voynich | English (Moby-Dick) | Latin (Caesar) |
|---|---|---|---|
| Head–tail | 0.09 | 0.31 | 0.23 |
| Head–body | 0.20 | 0.24 | 0.39 |
| Body–tail | 0.23 | 0.23 | 0.33 |
Strength of association between two slots (normalised mutual information, corrected for chance; 0 = unrelated).
Adjacent slots (head–body, body–tail) are about as strongly associated in the manuscript as in English and Latin. But the association between the separated head and tail is 0.09 — less than a third of English (0.31) and less than half of Latin (0.23). In natural languages a word’s beginning and end are fixed together for each word; in the manuscript the beginning and end appear to be chosen almost separately and combined.
| Slot | Voynich (vs whole text) | Voynich (within section) | English (Moby-Dick) | Latin (Caesar) |
|---|---|---|---|---|
| Head | 1.44 | 1.20 | 1.06 | 1.12 |
| Body | 1.25 | 1.13 | 1.02 | 1.01 |
| Tail | 1.89 | 1.37 | 1.08 | 1.17 |
| Whole word | 1.09 | 1.03 | 1.02 | 1.01 |
How much each page’s slot distribution differs from the overall (or same section/language) distribution, as a ratio to the case where words are shuffled across pages. 1 = chance.
In the manuscript, which heads and tails are preferred varies strongly from page to page. The bias is especially strong for tails (1.89× relative to the whole text, and 1.37× even within the same section). English and Latin are around 1.1×. The bias for whole words is small (1.09×): page character shows up as preferences for parts — heads and tails — rather than for particular words.
These two properties suggest a simple mechanism: “build words by combining a head, body and tail according to the page’s preferences” (linking only adjacent slots, not head and tail directly). For fairness, a page’s preferences were estimated not from the page itself but from neighbouring pages of the same section. A version adding the self-citation layer of Chapter 11 on top (writing grammatically altered versions of already-written words) was fitted on the same nine metrics and compared (random search over 170 settings, mean of three generations).
| Voynich | Self-citation, glyph-grammar type (Ch. 11) | Slot combination only (page preferences) | Slot combination + self-citation | |
|---|---|---|---|---|
| Once-only words | 68% | 49%○Fitted | 71%● | 64%●Fitted |
| Page families | 1.60 | 1.18○ | 1.37○ | 1.52○ |
| Adjacent (1–2 back) | 1.24 | 1.27●Fitted | 0.97○ | 1.24●Fitted |
| of which identical | 1.34 | 1.51○Fitted | 0.98○ | 1.46○Fitted |
| of which 1-glyph | 1.21 | 1.20●Fitted | 0.96○ | 1.17●Fitted |
| 3–10 words back | 1.18 | 1.26○Fitted | 1.01○ | 1.24●Fitted |
| 11–30 words back | 1.08 | 1.03●Fitted | 1.00○ | 1.05●Fitted |
| Directly above | 1.28 | 1.78○ | 1.05○ | 1.81○ |
| 1 line up, adjacent | 1.20 | 1.84○ | 0.99○ | 1.85○ |
| Share of 1-glyph neighbours | 3.7% | 2.5%○ | 1.9%○ | 2.8%○ |
| Distinct words per 10k | 2,889 | 2,886●Fitted | 3,525○ | 3,194○Fitted |
| h2 (bits) | 2.24 | 2.37●Fitted | 2.43● | 2.42●Fitted |
| 9-metric loss | 0 | 0.11 | — | 0.035 |
● = close to the Voynich (ratios within ±0.06, others within ±10%). “Slot combination only” was not fitted. Unmarked rows are check metrics for all types.
In conclusion, much of the manuscript text can be reproduced in two stages: (1) build new words by combining heads, bodies and tails according to the page’s preferences; (2) occasionally write slightly altered versions of words already written. Stage 1 produces vocabulary diversity and page character; stage 2 produces neighbour similarity. This does not prove the text is meaningless: a symbol system in which head and tail carry separate information (say, the head a category and the tail a number or case) could produce similar statistics. But ordinary words do not have heads and tails this independent, so if there is meaning, it is more like a code assembled from parts than ordinary words.
The two-stage model of Chapter 12 made the correspondence with the line above too strong (directly above 1.81×; manuscript 1.28×). We added knobs for how strongly the word directly above is preferred and how far along the line above sources are taken (directly above only up to 4 words offset), included the correspondence with the line above (directly above and adjacent) in the fitting, and repeated the search (200 settings). Page families and the rate of one-glyph neighbours were kept as check metrics.
| Voynich | Ch. 12 model | Fitted incl. line above | |
|---|---|---|---|
| Directly above | 1.28 | 1.81○ | 1.16○Fitted |
| 1 line up, adjacent | 1.20 | 1.85○ | 1.11○Fitted |
| Page families | 1.60 | 1.52○ | 1.35○ |
| Share of 1-glyph neighbours | 3.7% | 2.8%○ | 2.3%○ |
| Once-only words | 68% | 64%●Fitted | 68%●Fitted |
| Adjacent (1–2 back) | 1.24 | 1.24●Fitted | 1.23●Fitted |
| of which identical | 1.34 | 1.46○Fitted | 1.58○Fitted |
| of which 1-glyph | 1.21 | 1.17●Fitted | 1.14○Fitted |
| 3–10 words back | 1.18 | 1.24●Fitted | 1.11○Fitted |
| h2 (bits) | 2.24 | 2.42●Fitted | 2.41●Fitted |
| 9-metric loss | 0 | 0.035 | 0.072 |
● = close to the Voynich (ratios within ±0.06, others within ±10%). Mean of three generations.
The correspondence with the line above came close to the manuscript (now slightly weak). In exchange, page families dropped from 1.52× to 1.35×, and the 9-metric loss roughly doubled from 0.035 to 0.072. We also tried 230 settings of a mechanism borrowing only heads or tails (not whole words) from recent words; none improved anything.
Across all 374 settings explored, 23 had a correspondence with the line above within ±6% of the manuscript, but all of them had a 9-metric loss of 0.105 or more — over three times worse than the overall best (0.028). Mechanisms that “copy” words or parts cannot satisfy the correspondence with the line above together with the other properties.
We therefore re-examined the manuscript. If each position in a line favours certain word types (say, the second word is often of a certain type), words at the same position in successive lines will be similar without any copying. We re-measured with the baseline changed to “shuffle among words at the same position within the line”.
| Baseline | Directly above | 1 line up, adjacent | 1 line up, 2–4 words offset | Directly above, 3–5 lines up |
|---|---|---|---|---|
| Shuffle within page (usual baseline) | 1.28 | 1.20 | 1.13 | 1.07 |
| Shuffle within same line position | 1.22 | 1.19 | 1.15 | 1.01 |
Ratio to chance of being at most one glyph different from a word 1 line up (or 3–5 lines up). Line-initial and line-final words excluded.
Subtracting position preferences, the special status of directly above drops from 1.28× to 1.22×, hardly different from adjacent (1.19×) or 2–4 words offset (1.15×). Three to five lines up it is 1.01×, about chance. So the manuscript’s “correspondence with the line above” is not the trace of copying the word directly above, but a broad, faint property: nearby lines are similar overall, regardless of position.
In conclusion, the remaining mismatch is attributable to the model creating closeness by copying specific words. The data fit better if the word preferences themselves drift slowly over a few lines in the manuscript, making nearby lines similar as a result. How to produce preference drift at the scale of a few lines — finer than the page-level preferences of Chapter 12 — is the next task. Simply borrowing parts from recent words was not enough; the preference distribution itself must change slightly from line to line.
The manuscript is built from folded sheets (each giving four pages) nested into quires, which were then bound. The current foliation was added later, and the order of sheets is thought to have been changed when the book was rebound. But even if the order changed, the two leaves on one folded sheet stay together: in the first quire, for example, f1 and f8 are the two leaves of the same sheet.
Of the results so far, those measured within a page (adjacent similarity, correspondence with the line above, slot independence, etc.) are unaffected by page order. Only the parts using “the next page” or “the previous page” are affected. Using the quire, leaf and sheet positions recorded in the transcription file, we grouped page pairs by their physical relation and compared word similarity, using only pairs with the same section, language and scribe (205 pages).
| Page pair | Pairs | One-glyph-diff. rate | Tail-preference difference |
|---|---|---|---|
| Recto/verso of same leaf | 108 | 3.46% | 0.096 |
| Opposite leaf of same sheet | 189 | 3.56% | 0.097 |
| Adjacent in current numbering (different sheet) | 48 | 3.57% | 0.105 |
| Other pages of same quire | 721 | 3.42% | 0.109 |
| Different quire | 4,151 | 3.33% | 0.155 |
“One-glyph-diff. rate” is the share of word pairs (one word from each page) at most one glyph apart (words of 3+ glyphs). “Tail-preference difference” is the difference between the two pages’ tail distributions (JSD; smaller = more similar).
Since being in the same quire matters a lot (tail-preference difference about 0.155 between different quires, 0.109 within a quire), we repeated the comparison within quires only. For each page, we ranked how similar the partner page is among the other pages of the same quire, from 0 (most similar) to 1 (least similar). Chance gives a mean of 0.5.
| Page pair (within a quire) | Pairs | Rank: 1-glyph rate | p | Rank: tail preference | p |
|---|---|---|---|---|---|
| Recto/verso of same leaf | 95 | 0.37 | < 0.0001 | 0.34 | < 0.0001 |
| Opposite leaf of same sheet | 140 | 0.37 | < 0.0001 | 0.34 | < 0.0001 |
| Adjacent in current numbering (different sheet) | 44 | 0.45 | 0.060 | 0.43 | 0.014 |
Each pair counted once, using the mean of the ranks in both directions. p is the probability of a mean this low or lower if ranks were uniform (20,000 simulations).
In conclusion, the unit at which word preferences cohere is not the current page order but one folded sheet. This fits well with a scribe writing one (opened-out) sheet at a time, making words with the same preferences meanwhile. The manuscript scholar Lisa Fagin Davis also writes that in the herbal section the scribes’ work is “organized by bifolium, not by quire or sequential folios” (e.g. in quire D the outer sheet is by Scribe 1, the next by Scribe 2, and the remaining two by Scribe 1; Manuscript Road Trip, “Voynich Codicology”). The unit of word preference coincides with the unit of scribal work.
This also changes how to read the “neighbouring pages are more similar” effect of Chapter 12: much of it probably came from being on the same sheet or in the same quire rather than from adjacency in the current numbering. It also suggests that the original order might be estimated by chaining similar sheets using their word preferences.
Chapter 14 showed that word preferences cohere at the level of one folded sheet. We therefore applied approach B of the original script (estimate the order by chaining similar items) at the level of sheets rather than pages. For the 50 sheets with 60+ words, the distance between sheets is the difference in head and tail preferences (JSD), compared among sheets of the same language (A or B).
| Sheet pair | Pairs | Mean rank |
|---|---|---|
| Same quire | 55 | 0.26 |
| Different quire | — | 0.53 |
| Same quire, bifolio no. ±1 | 24 | 0.21 |
| Same quire, bifolio no. ±2+ | 31 | 0.31 |
Rank of the partner among the sheets of the same language group, seen from a given sheet (0 = closest, 1 = farthest; 0.5 by chance), averaged over both directions. p is the probability of a difference this large or larger when sheet numbers are shuffled within quires (5,000 times).
We looked for sheets that are unlike the other sheets of their own quire but like those of another quire. Only one exceeded the 95th percentile of random quire assignments (rank 0.78): quire G, sheet 1 (f49/f56). Its closest sheet is quire D, sheet 3 (f27/f30). In addition, quire A sheet 3 (f3/f6) and quire C sheet 1 (f17/f24) are each other’s closest sheets — a notable cross-quire pair, but not beyond chance.
We searched for the arrangement that chains close sheets with the smallest total path length (the travelling-salesman idea).
| Scope | Sheets | Estimated-order length | Current-order length | Random mean | p | Correlation |
|---|---|---|---|---|---|---|
| Herbal A | 24 | 3.72 | 5.25 | 5.79 | 0.019 | +0.15 |
| Herbal B | 7 | 0.69 | 0.87 | 0.95 | 0.180 | -0.68 |
| All Language A | 28 | 4.35 | 6.14 | 7.20 | < 0.001 | +0.50 |
| All Language B | 20 | 1.82 | 2.53 | 3.43 | < 0.001 | -0.52 |
“Current-order length” is the total length when following the current quire/sheet numbering. p is the share of 2,000 random orders that are at least as short as the current order. Correlation is the rank correlation between estimated and current order (direction is arbitrary, so the sign is meaningless).
In conclusion, word preferences tell us which sheets belong together and that the current order broadly preserves the original arrangement, but not with enough precision to rebuild the original order sheet by sheet. The strong candidate for a misplaced sheet is f49/f56; the next subsection compares this with physical clues pointed out by other researchers.
We compared the word-preference results with clues from codicological studies (same ranks as above, 0 = closest).
All chapters so far used the ZL transcription (Zandbergen–Landini). Transcribers of the Voynich differ in where they divide words and how they distinguish similar glyphs. We therefore re-measured the main metrics using other transcribers’ readings in the Landini–Stolfi interlinear file (text16e6.evt): Takahashi covers almost all pages, the Friedman group most, and Currier about two-thirds. For ZL we also tried treating uncertain spaces (“,” in the transcription) as non-breaks.
| Transcription | Pages | Words | Adjacent | of which identical | of which 1-glyph | Once-only words | h2 | Head–tail association | Opposite leaf |
|---|---|---|---|---|---|---|---|---|---|
| ZL | 206 | 34,859 | 1.24 | 1.34 | 1.21 | 68% | 2.24 | 0.088 | 0.34 |
| ZL (uncertain spaces joined) | 206 | 32,402 | 1.25 | 1.36 | 1.22 | 71% | 2.25 | 0.073 | 0.34 |
| Takahashi | 201 | 32,695 | 1.24 | 1.30 | 1.23 | 67% | 2.24 | 0.088 | 0.33 |
| Friedman group | 198 | 31,554 | 1.23 | 1.26 | 1.22 | 67% | 2.22 | 0.091 | 0.33 |
| Currier | 139 | 16,455 | 1.20 | 1.25 | 1.18 | 68% | 2.25 | 0.095 | 0.32 |
| ZL (same pages as Currier) | 138 | 17,534 | 1.21 | 1.22 | 1.21 | 68% | 2.24 | — | 0.33 |
Paragraph text only (pages with 20+ words). “Adjacent” is the ratio to chance of a similar word (up to one glyph different) 1–2 positions back, also split into identical and one-glyph-different words. “Opposite leaf” is the Chapter 14 rank (tail preference; 0 = most similar, 0.5 by chance). “Head–tail association” is the Chapter 12 value (English 0.306, Latin 0.226). Currier has fewer pages, so ZL on the same pages is also shown.
At one point the Takahashi “identical word” ratio came out low (0.94). This turned out to be an error in our loader, which read the illustration annotations in the interlinear file (such as {plant}) as words. The numbers in the table are after the fix.
In conclusion, the main results of this report do not stem from quirks of word division or readings in the ZL transcription; the same properties are confirmed in at least four major transcriptions.
In the astronomical, biological and pharmaceutical sections, one or two words are written next to stars and figures in the drawings, plant parts and jars (labels). If labels name the things drawn, they could be a clue to meaning. We examined 849 label words (3+ glyphs) on the 45 pages that have both labels and running text.
9.9% of labels have an identical word in the text of the same page (8.8% when paired with the text of other pages of the same section; p = 0.08), and 40.0% have a word within one glyph (37.4% by chance; p = 0.03). The same page is slightly favoured, but text words also slightly favour their own page (62.0% vs 57.1%), so this is within what page-level word preferences (Chapter 12) explain. No label-specific link of the kind “this label refers to that word in the text” is visible. Label words also appear in the text far less often than text words do among themselves (25.1%): labels draw on a different vocabulary.
| q | o | ch | sh | d | y | |
|---|---|---|---|---|---|---|
| Labels | 1.1% | 52.6% | 6.8% | 2.2% | 9.4% | 8.6% |
| Text: mid-line | 16.6% | 21.2% | 18.4% | 10.1% | 7.4% | 3.7% |
| Text: line start | 12.9% | 13.7% | 3.3% | 4.6% | 15.6% | 14.7% |
| Text: line end | 8.6% | 23.1% | 13.5% | 4.1% | 16.7% | 3.9% |
Share of the first glyph of words (ch, sh counted as one glyph). Text is paragraph text, split by position in the line. Restricted to the text of pages with labels, 17.1% of words start with q and 21.6% with o, the same as overall.
Words starting with q in the text depend strongly on the last glyph of the preceding word. After a word ending in y, the next word starts with q 27.5% of the time, about 3.8 times the 7.2% after other glyphs. Shuffling words within the page reduces this ratio to about 1.11 (maximum 1.18 over 50 runs). So while a word’s head is chosen independently of its tail within the word (Chapter 12), it is firmly tied to how the previous word ends. The generator of Chapter 12 lacks this link.
In conclusion, label words are a different kind of word from the text and look like names in the drawings, but no correspondence with specific text words was found. Forms beginning with q belong to the flow of the text, especially after words ending in y. In natural languages this recalls word forms used only within sentences (inflected forms, forms with attached articles or conjunctions) or sound changes conditioned by the previous sound (like French liaison). A compositional rule of the scribe (“after a word ending in y, start with q”) would give the same shapes, so this alone does not settle whether there is meaning. But systematic variation of word shape by “label vs text” and by “previous word” is something required both of a meaningful symbol system and of rule-governed composition, and is a clue for narrowing things down next.
Chapter 17 showed that a word’s head depends on how the previous word ends (after y, q is likely). Line starts and line ends also have their own biases: line-initial words often begin with d, y, p or t, and 15% of line-final words end in m (0.9% mid-line). We added these mechanisms to the Chapter 12 generator (combine heads, bodies and tails by page preference and occasionally write altered copies of nearby words) to see how much they reproduce.
| Model | Adjacent: 1-glyph | Adjacent: same word | y→q | Line start | Line end | Once-only words | h2 | Page character |
|---|---|---|---|---|---|---|---|---|
| Manuscript | 1.21 | 1.34 | 3.81 | 0.201 | 0.081 | 68% | 2.24 | 1.60 |
| Ch. 12 model | 1.16 | 1.43 | 1.11 | 0.002 | 0.001 | 65% | 2.43 | 1.53 |
| + linkage + line end (same settings) | 1.19 | 1.49 | 2.47 | 0.099 | 0.030 | 65% | 2.52 | 1.62 |
| + linkage + line end (refit) | 1.05 | 1.29 | 3.47 | 0.188 | 0.051 | 69% | 2.45 | 1.29 |
| No copying, with linkage | 1.00 | 0.92 | 3.58 | 0.196 | 0.051 | 69% | 2.45 | 1.30 |
Mean of three runs per model. “y→q” is the share of q-initial words after a y-final word relative to that after other glyphs. “Line start” and “line end” measure how far the distributions of the first glyph of line-initial words and the last glyph of line-final words differ from mid-line words (JSD). “Adjacent: 1-glyph” and “Adjacent: same word” are ratios to chance at 1–2 words back. “Page character” is how much more similar words on the same page are than random pairs from the whole manuscript (Chapter 12).
In conclusion, the scribe apparently respected the linkage rule even when writing altered copies of nearby words — for example, by adjusting the head of the source word to how the previous word ends. The next model must build the linkage rule into copying. In other words, the manuscript’s words satisfy at least four rules at once — internal word structure, page preferences, linkage to the previous word and copying from nearby words — and these rules interlock.
Chapter 18 showed that copying nearby words clashes with the linkage rule. We therefore changed how copies are chosen: pick several candidate source words nearby (each altered in 0–2 places) and favour those that fit how the previous word ends. Fit is measured as “frequency of that head after the previous glyph ÷ its usual frequency”. Replacing the head of the copied word would also be possible, but it changes the copy by two or more glyphs and destroys neighbour similarity, so it was not used.
| Model | Adjacent: 1-glyph | Adjacent: same word | y→q | Line start | Line end | Once-only words | h2 | Page character | Line above |
|---|---|---|---|---|---|---|---|---|---|
| Manuscript | 1.21 | 1.34 | 3.81 | 0.201 | 0.081 | 68% | 2.24 | 1.60 | 1.28 |
| 1 candidate (as Ch. 18) | 1.19 | 1.49 | 2.47 | 0.104 | 0.050 | 66% | 2.53 | 1.56 | 1.84 |
| Choose from 4 | 1.22 | 1.49 | 3.26 | 0.128 | 0.053 | 66% | 2.57 | 1.59 | 1.88 |
| Choose from 8 | 1.19 | 1.45 | 3.46 | 0.132 | 0.051 | 66% | 2.59 | 1.57 | 1.85 |
| Choose from 8, strongly | 1.20 | 1.43 | 3.87 | 0.137 | 0.051 | 66% | 2.64 | 1.65 | 1.85 |
| Full refit | 1.33 | 1.71 | 3.66 | 0.184 | 0.056 | 69% | 2.45 | 1.31 | 1.04 |
Mean of three runs per model. The top four models keep the best Chapter 12 settings and vary only the number of candidates and the strength of selection (line-final preferences used in all). “Full refit” searches all settings, including number of candidates and selection strength, against the nine manuscript metrics plus four linkage metrics. “Line above” is the ratio to chance of similarity with the word directly above.
In conclusion, the single device of “choosing, even when copying, a word that fits how the previous word ends” resolves the contradiction of Chapter 18. The text can now be largely reproduced by satisfying four rules at once: (1) internal structure (head, body, tail), (2) page preferences, (3) linkage to the previous word, and (4) writing while looking at nearby words. The remaining large differences are the overall similarity of nearby lines (Chapter 13) and glyph predictability; both might be explained by word preferences drifting slowly over a few lines.
Two large differences remained in the Chapter 19 model: the overall similarity of nearby lines (Chapter 13) and glyph predictability (h2). We first measured in the manuscript how similar words are as a function of how many lines apart they are (up to one glyph different; ratio to within-page shuffles).
| Model | 1 line | 2 lines | 3 lines | 4–6 lines | 7–12 lines | Directly above | 9-metric loss |
|---|---|---|---|---|---|---|---|
| Manuscript | 1.18 | 1.06 | 1.06 | 1.02 | 1.00 | 1.28 | — |
| Ch. 19 model | 1.33 | 1.01 | 0.99 | 0.97 | 0.97 | 1.91 | 0.143 |
| No copying from line above | 1.09 | 1.03 | 1.02 | 0.99 | 0.98 | 1.11 | 0.144 |
| + drifting preferences | 1.13 | 1.06 | 1.04 | 1.00 | 0.98 | 1.14 | 0.161 |
| + drift + head–tail link | 1.11 | 1.05 | 1.03 | 1.00 | 0.98 | 1.08 | 0.105 |
“1 line” = words one line apart (any column); “directly above” = the word at the same position one line up. Mean of six runs per model. “9-metric loss” is the difference from the manuscript used since Chapter 12 (smaller = closer).
In the manuscript, similarity fades slowly over several lines: 1.18× at one line, 1.06× at two, 1.06× at three. The Chapter 19 model is strong only at one line (1.33×) and about chance from two lines on. This is because the “copy from the line above” mechanism concentrates on the word directly above; removing it alone drops directly-above similarity from 1.91× to 1.11×.
We then added slowly drifting word preferences: on each page, the head and the tail each carry a “current preference weight”, which changes randomly from line to line while partly carrying over the previous line’s weight. New words choose heads and tails with these weights applied. Copying from the line above is not used.
In conclusion, slowly drifting word preferences partly explain the broad, faint similarity of nearby lines without breaking other properties. But the two differences were not closed at the same time. To explain the similarity of nearby lines fully, preferences at a finer glyph level, not whole heads and tails, must drift. Glyph predictability is a separate problem from line drift: the rules of how glyphs are assembled within words (especially in short words and at part junctions) must be captured more finely than in the current model.
Voynich words are built by combining head, body and tail parts (Chapter 12), with strict rules for how parts combine. This resembles Hangul, where an initial, a medial and a final combine into one syllable block, and Chinese, where a syllable consists of an initial and a final (pinyin). Jorge Stolfi also argued, from the distribution of word lengths, that the Voynich may be a “one word = one syllable” language like Chinese, Vietnamese or Tibetan (Stolfi, “Chinese redux”). We therefore converted the Korean, Chinese and Vietnamese Bibles into sequences of parts (letters) and applied the same yardstick under several segmentations.
| Text (segmentation) | Mean length | Distinct | h2 | Same word | One-glyph diff. | Head–tail | Linkage |
|---|---|---|---|---|---|---|---|
| Voynich | 4.46 | 2,889 | 2.24 | 1.31 | 1.22 | 0.088 | 0.070 |
| English (Moby-Dick) | 4.27 | 2,470 | 3.32 | 0.36 | 0.87 | 0.306 | 0.016 |
| Latin (Caesar) | 6.12 | 3,388 | 3.30 | 0.33 | 0.54 | 0.225 | 0.012 |
| Korean (1 syllable = 1 word) | 2.34 | 495 | 2.32 | 0.43 | 0.98 | — | 0.079 |
| Korean (2-syllable chunks) | 4.69 | 3,977 | 3.02 | 0.27 | 0.68 | 0.203 | 0.085 |
| Korean (eojeol as jamo) | 6.78 | 4,284 | 3.02 | 0.52 | 0.58 | 0.166 | 0.032 |
| Chinese (pinyin, 1 syllable = 1 word) | 2.61 | 316 | 2.35 | 0.42 | 0.94 | 0.307 | 0.020 |
| Chinese (2-syllable chunks) | 5.20 | 5,196 | 3.01 | 0.79 | 0.80 | 0.100 | 0.019 |
| Chinese (words in pinyin) | 4.03 | 2,538 | 2.85 | 0.33 | 0.90 | 0.183 | 0.021 |
| Vietnamese (1 syllable = 1 word) | 2.76 | 1,066 | 2.96 | 0.25 | 0.94 | 0.725 | 0.046 |
| Vietnamese (2-syllable chunks) | 5.53 | 6,343 | 3.63 | 0.66 | 1.30 | 0.177 | 0.052 |
34,859 words each. Korean Hangul decomposed into initial, medial and final; Chinese as toneless pinyin (zh, ch, sh, ng counted as one letter); Vietnamese in its standard spelling with spaces between syllables (vowels with tone marks counted as one letter). For Korean, Chinese and Vietnamese the second half of the Bible is used, to avoid the genealogy at the start (repeated personal names). “Same” and “1-glyph” are ratios to chance at 1–2 words back (words of 2+ letters). “Head–tail” is the association between the first two and last two letters of words of 4+ letters (as in Chapter 12; closer to 0 = more independent). “Linkage” is the association between the last letter of a word and the first letter of the next. “Distinct” is distinct words per 10,000.
In conclusion, Voynich words have the “parts placed into fixed slots” construction of Hangul syllable blocks and Chinese syllables. Glyph predictability and the strength of word-to-word linkage in particular fit syllable-level writing well. But taking “one Voynich word = one syllable” gives too many word types, and “one word = two syllables” makes glyph sequences too unpredictable. Neither view explains the tendency of similar words to gather next to each other. The Voynich seems to be a system slightly different from any natural writing: around two strictly assembled, syllable-like parts combined independently, with the joins continuing across word boundaries.
Chapter 20 showed that in the manuscript, identical and one-glyph-different words contribute equally to the similarity of nearby lines (both 1.18× at one line apart), while drifting preferences in the model mainly increase identical words. We therefore tried several finer-grained mechanisms.
| Model | 1 line, same | 1 line, 1-glyph | 2–3 lines, same | 2–3 lines, 1-glyph | 4–6 lines, same | 4–6 lines, 1-glyph | Directly above | Adjacent, same | Adjacent, 1-glyph | 9-metric loss |
|---|---|---|---|---|---|---|---|---|---|---|
| Manuscript | 1.18 | 1.18 | 1.09 | 1.05 | 1.04 | 1.02 | 1.28 | 1.34 | 1.21 | — |
| Ch. 20 (drifting head/tail preferences) | 1.22 | 1.09 | 1.08 | 1.03 | 1.00 | 1.00 | 1.12 | 1.51 | 1.22 | 0.176 |
| Drifting edit fashion | 1.22 | 1.10 | 1.07 | 1.03 | 1.00 | 0.99 | 1.14 | 1.47 | 1.22 | 0.171 |
| Drift tails only | 1.23 | 1.10 | 1.08 | 1.04 | 0.99 | 1.00 | 1.13 | 1.52 | 1.27 | 0.220 |
| Copy from previous 3 lines (almost always altered) | 1.22 | 1.14 | 1.18 | 1.12 | 0.95 | 0.97 | 1.16 | 1.17 | 1.16 | 0.191 |
| Copy from previous 5 lines + drifting preferences | 1.26 | 1.15 | 1.16 | 1.08 | 1.04 | 1.03 | 1.17 | 1.31 | 1.24 | 0.182 |
Mean of six runs per model. Values by line distance are ratios to chance (within-page shuffle) of word pairs at that distance being identical (or one glyph different). “Adjacent” = 1–2 words back. “9-metric loss” is the difference from the manuscript used since Chapter 12.
In conclusion, the similarity of nearby lines fits “the scribe based words on those visible in the previous few lines and altered them slightly almost every time” better than “the scribe’s preferences drifted slowly at the glyph level”. Chapter 13 failed because the source was limited to the single word directly above; allowing sources anywhere in the previous few lines brings both identical and one-glyph similarity between nearby lines much closer to the manuscript without spoiling other properties. At one line apart identical words are still a little too frequent, so the reproduction is not complete. This supports the idea behind Timm and Schinner’s self-citation hypothesis (copying and slightly altering visible, already-written words), with the range of sources being the previous few lines.
Starting from the Chapter 22 model, we repeated “measure in the manuscript → pick the largest discrepancy → investigate the cause and fix it” five times. The table shows where each round ended.
| Model | 9-metric loss | Line-distance loss | 1 line, same | 1 line, 1-glyph | Directly above | Adjacent, same | Adjacent, 1-glyph | Once-only words | h2 | Line end | Page character |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Manuscript | — | — | 1.18 | 1.18 | 1.28 | 1.34 | 1.21 | 68% | 2.24 | 0.081 | 1.60 |
| Start (Ch. 22) | 0.182 | 0.187 | 1.29 | 1.16 | 1.15 | 1.41 | 1.21 | 70% | 2.58 | 0.053 | 1.44 |
| Round 1: sources from previous 4 lines (nearer lines favoured) | 0.189 | 0.218 | 1.26 | 1.15 | 1.12 | 1.23 | 1.15 | 70% | 2.56 | 0.053 | 1.45 |
| Round 2: sometimes copy the preceding word verbatim | 0.160 | 0.100 | 1.25 | 1.15 | 1.18 | 1.35 | 1.15 | 70% | 2.56 | 0.055 | 1.44 |
| Round 3: separate preferences for line start / middle / end | 0.112 | 0.166 | 1.19 | 1.13 | 1.15 | 1.29 | 1.14 | 67% | 2.50 | 0.075 | 1.44 |
| Round 4: pick candidates with natural glyph sequences | 0.054 | 0.284 | 1.13 | 1.10 | 1.11 | 1.22 | 1.07 | 63% | 2.30 | 0.074 | 1.45 |
| Round 5a: judge only the junctions | 0.054 | 0.316 | 1.14 | 1.10 | 1.10 | 1.18 | 1.08 | 63% | 2.30 | 0.070 | 1.45 |
| Round 5b: write past the head glyph by glyph | 0.100 | 0.148 | 1.29 | 1.13 | 1.16 | 1.29 | 1.12 | 70% | 2.42 | 0.057 | 1.21 |
Mean of six runs per model. “1 line, same / 1-glyph” are ratios to chance of words one line apart being identical / one glyph different; “Adjacent” = 1–2 words back. “Line end” is the bias of the last glyph of line-final words (JSD). “Page character” as in Chapter 12. “9-metric loss” is the difference from the manuscript used since Chapter 12.
We counted, in the manuscript, where the possible “sources” of similar words (up to one glyph different) are located. With the usual baseline, sources appeared strongly concentrated at roughly the same column (±3 words). But with a baseline shuffling only among words at the same position in the line, the column effect almost vanished (1.1–1.2× at any column one line up): the apparent column effect was due to line-start and line-end word shapes. The real remaining effect is distance in lines: the excess of similar words is concentrated one line back, about a third remains two to three lines back, and almost none from four lines back. We therefore took sources from the previous four lines, favouring nearer lines (halving for each line further back). Though based on the manuscript measurement, this change alone did not reduce the line-distance loss (0.187 → 0.218; it appeared to with three-run averages, but with six runs this was within random fluctuation), and identical adjacent words dropped to 1.23× (manuscript 1.34×).
In the manuscript, between a word and earlier words on the same line, identical words are enriched more (1.37×) than one-glyph-different words (1.19×): adjacent copies are often verbatim. Adding occasional verbatim copying of an earlier word on the same line (about 0.2% of all words) gave adjacent identical 1.35× and one-glyph 1.15× (manuscript 1.34×, 1.21×). Verbatim copying of just 0.6% of words shoots this up to 1.7×, so this property is determined by a very small amount. The line-distance loss also dropped to 0.100, the smallest of the five rounds.
Round 1 suggested that the remaining shortfall in similarity with the word directly above comes from line-start and line-end word shapes. Investigating, the model had the same share of m-final words at line ends as the manuscript, but three times as many m-final words mid-line, because word preferences were taken from a distribution mixing all line positions. Building mid-line words from preferences estimated on mid-line words only, and favouring position-typical words at line starts and ends, brought the line-final bias to 0.075 (manuscript 0.081) and the 9-metric loss down to 0.112.
Decomposing the h2 gap (2.50 vs 2.24) gave about 0.15 bits at part junctions (head→body, body→tail, head→tail) and about 0.06 bits inside short words; the latter comes from altering copies in one or two places, producing short words with shapes absent from the manuscript. Making four candidates for each new word and favouring those with manuscript-like glyph sequences lowered h2 to 2.30 and the 9-metric loss to 0.054, the best so far. But once-only words fell to 63% (manuscript 68%) and adjacent one-glyph similarity weakened to 1.07×.
The dilemma of round 4 is exactly the manuscript property found in Chapter 21: “predictable glyph sequences, yet many distinct words”. Two methods were tried: a) judge candidates only by the glyph sequence at part junctions, not the whole word; b) choose only the head and write the rest glyph by glyph following the manuscript’s glyph-continuation statistics (three-glyph units). a) lowered h2 to 2.30 but once-only words stayed low at 63%; b) restored once-only words to 70% and fitted the line-distance profile well (loss 0.148), but h2 stayed at 2.42, and because the page-specific tail preferences were weakened, page character fell to 1.21.
In conclusion, five iterations largely explained three things as mechanisms of the manuscript: where copy sources are (the previous few lines, any column), occasional verbatim copying of the immediately preceding word, and the shape of line-final words. But similarity with the word directly above stayed at 1.10–1.18× in every round, short of the manuscript’s 1.28×. What remained to the end was satisfying “glyph predictability”, “many distinct words” and “page-specific preferences” simultaneously: with the current part-combination or glyph-continuation statistics, fixing one breaks another. The scribe must have had more precise word-building rules satisfying all three, and identifying them is the next major task.
To solve the problems left in Chapter 23 (glyph predictability h2, the number of distinct words, page-specific preferences, and the 1.28× similarity with the word directly above), an improvement loop was run autonomously from 21:00 on 16 October until the next morning. The procedure:
220 candidates were evaluated in total. The settings and results of every candidate are in the attached full history (history.csv), the final model’s settings in final_params.json, and the record of the automatic search (including diagnoses and changes of approach, in Japanese) in search_log.txt. The progress was as follows.
| Stage | What was tried | Evaluations | Best J | h2 | Once-only | Page char. | Above | Reached |
|---|---|---|---|---|---|---|---|---|
| Manuscript | — | 2.24 | 67.9% | 1.60 | 1.28 | |||
| Baseline | Where Ch. 23 ended | 3 | 0.931 | 2.30 | 63.0% | 1.44 | 1.11 | — |
| Round 1 | Glyph-by-glyph words + family attraction | 6 | 0.564 | 2.29 | 64.9% | 1.50 | 1.40 | — |
| Round 2 | Column closeness of sources; copies from same line | 6 | 0.319 | 2.29 | 65.5% | 1.49 | 1.24 | above |
| Round 3 | Stronger selection of copies (no improvement) | 6 | 0.430 | 2.37 | 64.7% | 1.58 | 1.21 | page |
| Round 4 | Line-final statistics; no copying at line edges | 6 | 0.098 | 2.25 | 67.1% | 1.62 | 1.29 | h2, once-only, page, above |
| Auto search 1 | Automatic search around round 4 | 34 | 0.095 | 2.25 | 68.4% | 1.58 | 1.29 | h2, once-only, page, above |
| Round 5 | Retrace the previous word and diverge | 4 | 0.094 | 2.25 | 67.5% | 1.59 | 1.29 | h2, once-only, page, above |
| Auto search 2 | Automatic search around round 5 | 50 | 0.088 | 2.25 | 67.6% | 1.63 | 1.28 | h2, once-only, page, above |
| Round 6 | Choose copy sources by glyph-continuation statistics | 4 | 0.377 | 2.15 | 68.2% | 1.82 | 1.22 | once-only |
| Round 7 | Weaker family attraction | 4 | 0.084 | 2.21 | 69.5% | 1.63 | 1.27 | h2, once-only, page, above |
| Auto search 3 | Automatic search around round 7 (2 diagnoses) | 80 | 0.058 | 2.22 | 68.9% | 1.61 | 1.29 | h2, once-only, page, above |
The candidate with the smallest J at each stage. “Reached” lists the key targets within range (h2, once-only words, page character, directly above).
To check the cause of the Chapter 23 dilemma (lowering h2 reduces once-only words), words were generated independently from the manuscript’s glyph-continuation statistics alone. h2 matched the manuscript exactly (2.235), and once-only words were 72% with two-glyph context and 65% with three-glyph context, bracketing the manuscript’s 68%; the number of distinct words was also at the manuscript level. The property described in Chapter 21 as unique to the Voynich arises naturally when words are written glyph by glyph; the failure to combine the two came from combining parts. New words were therefore switched to glyph-by-glyph writing, with the last two glyphs of the previous word included in the context. Word-to-word linkage such as y→q then appears without any special mechanism.
With glyph-by-glyph writing, page character dropped to about 1.3. Investigating, the manuscript’s 1.60 turned out to be the product of a “same section” effect of 1.42× and a further “same page” effect of 1.14×. The models up to Chapter 23 reproduced only the section effect and had no page effect (1.03×). A mechanism making words with larger families of similar words on the page more likely to be chosen as copy sources (“family attraction”) restored the page effect.
Round 3 brought no improvement and triggered a diagnosis. Stronger selection of copies did not move the linkage metrics and worsened h2, so the cause was probably not the copies; new words alone were re-measured. Glyph-by-glyph writing alone matched the manuscript in linkage, y→q and line-initial bias; what broke them was the mechanism replacing line-initial and line-final words after the fact. Dropping the replacements, writing line-final words from the start with “line-final glyph-continuation statistics”, and not copying at line edges (round 4) brought all four key targets within range for the first time.
Adjacent one-glyph-different words (manuscript 1.21×) were too few, so a mechanism was added that “retraces the first few glyphs of the previous word and continues with glyph-continuation statistics (rewriting if the result is identical)”. Doing this for about 2% of words brought adjacent one-glyph similarity to the manuscript level (round 5). Adjacent pairs like qokedy qokeedy fit this way of writing well.
The automatic search twice repeated a diagnosis of the same component (word-to-word linkage) without progress, so the diagnostic rule was changed to “move on to the next component if the previous focus failed”, and the cause of the weak linkage was investigated. Copy selection still used the part-based “head frequency ratio”, which favours rare heads. Choosing instead by the probability that the word’s first two glyphs follow the previous word (glyph-by-glyph statistics) (round 6) lowered the 9-metric loss to 0.007. Weakening family attraction to fix the now too strong page effect (round 7) brought all metrics into line.
The model reached overnight writes each page word by word according to the following rules (numbers are the final settings).
| Setting | Name | Value |
|---|---|---|
| Share of copied words (non-edge) | p_cite | 0.35 |
| of which from earlier words on the same line | w_local | 0.10 |
| of which copied verbatim | loc_keep | 0.15 |
| of which from the previous few lines | w_win | 0.30 |
| lines looked back | win_lines | 3 |
| weight per extra line back | win_q | 0.50 |
| column closeness (larger = weaker) | col_tau | 2.50 |
| Family attraction (copies from anywhere on page) | fam_a | 1.00 |
| Copies altered in one place | p_mut1 | 0.75 |
| Copies altered in two places | p_mut2 | 0.20 |
| Strength of glyph-grammar constraint on alterations | beta | 2.02 |
| Copy candidates | K | 12 |
| Strength of linkage-based selection | gamma | 2.00 |
| Share of retraced words | pref_p | 0.03 |
| Weight of 3-glyph context (rest: 2-glyph) | mk_lam3 | 0.45 |
| Mixing of nearby-page vs section statistics (smaller = more local) | mk_mu | 5.0 |
| Nearby pages (each side) | kpages | 3 |
| Glyph-choice temperature (1 = as in manuscript) | mk_T | 1.08 |
| Line-final statistics (smaller = stronger) | mk_mend | 1.0 |
Main settings of the final model (all values in final_params.json).
The search kept using the same six seeds, so it risked selecting settings that happen to suit them. The top candidates were therefore re-evaluated on six seeds not used in the search.
| Candidate | J (search seeds) | J (fresh seeds) | h2 | Once-only | Page char. | Above | Reached (fresh) |
|---|---|---|---|---|---|---|---|
| Final model (round 7, R7-2) | 0.084 | 0.083 | 2.22 | 69.5% | 1.60 | 1.26 | h2, once-only, page, above |
| Best of auto search 3 | 0.058 | 0.086 | 2.22 | 69.7% | 1.61 | 1.30 | h2, once-only, page, above |
| Best of auto search 2 | 0.088 | 0.092 | 2.25 | 67.7% | 1.61 | 1.28 | h2, once-only, page, above |
| Round 4 (R4-5) | 0.098 | 0.100 | 2.26 | 67.0% | 1.58 | 1.28 | h2, once-only, page, above |
| Start (Ch. 23, round 3) | 1.117 | 1.064 | 2.49 | 67.2% | 1.43 | 1.16 | once-only |
“J (search seeds)” uses seeds 101–106; “J (fresh seeds)” uses seeds 201–206.
The final model (R7-2 from round 7) has J = 0.083 on the fresh seeds, with all four key targets within range (h2 2.22, once-only words 69.5%, page character 1.60, directly above 1.26). The best of automatic search 3 looked far better on the search seeds (J = 0.058), but on fresh seeds it is 0.086, no different from R7-2. Discounting seed tuning, the level reached by the mechanism changes up to round 7 is the night’s result. The starting point (Ch. 23, round 3) has J = 1.064 on fresh seeds, so J fell to about 1/13.
The final model was compared with the manuscript on every yardstick used in this report, including metrics not used for fitting (mean of the six fresh seeds).
| Metric | Fitted | Manuscript | Ch. 19 model | Ch. 23 (round 3) | Final model |
|---|---|---|---|---|---|
| Next-glyph unpredictability h2 | ○ | 2.24 | 2.59 | 2.50 | 2.21 |
| Once-only words | ○ | 67.9% | 65.8% | 67.7% | 69.4% |
| Distinct words per 10k | ○ | 2,889 | 3,754 | 3,740 | 2,826 |
| Mean word length | ○ | 4.42 | 4.25 | 4.35 | 4.40 |
| Word-length distribution difference | 0.0000 | 0.0043 | 0.0010 | 0.0082 | |
| Adjacent: same word | ○ | 1.34 | 1.45 | 1.26 | 1.37 |
| Adjacent: one glyph | ○ | 1.21 | 1.22 | 1.15 | 1.24 |
| 3–10 words back | ○ | 1.18 | 1.27 | 1.11 | 1.12 |
| 11–30 words back | ○ | 1.08 | 1.06 | 1.05 | 1.05 |
| 1 line apart: same | 1.19 | 1.67 | 1.21 | 1.22 | |
| 1 line apart: one glyph | 1.17 | 1.26 | 1.11 | 1.11 | |
| 2 lines apart | ○ | 1.06 | 1.03 | 1.06 | 1.06 |
| 4–6 lines apart | ○ | 1.03 | 0.98 | 0.99 | 0.98 |
| Directly above | ○ | 1.29 | 1.88 | 1.13 | 1.27 |
| One line up, adjacent | 1.22 | 1.84 | 1.14 | 1.22 | |
| Page character | ○ | 1.60 | 1.56 | 1.43 | 1.62 |
| of which page effect | 1.14 | 1.19 | 1.04 | 1.15 | |
| of which section effect | 1.38 | 1.32 | 1.37 | 1.43 | |
| Head–tail association | 0.088 | 0.029 | 0.033 | 0.076 | |
| y→q | ○ | 3.81 | 3.42 | 3.37 | 3.13 |
| Word-to-word linkage | ○ | 0.192 | 0.123 | 0.129 | 0.197 |
| Line-start bias | ○ | 0.201 | 0.137 | 0.178 | 0.218 |
| Line-end bias | ○ | 0.081 | 0.049 | 0.075 | 0.075 |
| Origin of rare words (Ch. 11) | 1.32 | 1.73 | 1.59 | 1.87 |
Metrics without a mark in the “Fitted” column were not part of the search objective and serve as checks. “Origin of rare words” is the Chapter 11 test (ratio to chance of once-only words having a one-glyph-different word within the previous 10 words). “Word-length distribution difference” is the JSD from the manuscript (smaller = closer). The page and section effects are estimated from sampled word pairs and fluctuate by about ±0.04 (the difference from the manuscript values 1.14 and 1.42 in Chapter 24 is within this range).
Most metrics not used for fitting are also close to the manuscript. In particular, the head–tail association (0.076; manuscript 0.088) is closer to the manuscript than in the earlier models that combined parts independently (about 0.03), showing that the “nearly independent head and tail” property of Chapter 12 also arises naturally from glyph-by-glyph writing. The split between page and section effects (1.15, 1.43; manuscript 1.14, 1.38) and similarity one line up, adjacent (1.22; manuscript 1.22) also match.
Most statistical properties of the manuscript text can now be reproduced by a combination of fairly simple writing rules. In summary, the manuscript fits a way of writing like this:
Three caveats. First, the model is built from the manuscript’s own statistics (glyph continuation, section and nearby-page biases, line-final shapes, etc.), so it shows not that the manuscript was written this way, but that assuming so is statistically consistent. Second, it does not prove the text is meaningless: meaningful content written in a peculiar system assembling syllable-like parts, by a scribe who wrote while looking at nearby words, could give similar statistics — although such a way of writing differs from every natural-language text examined (Chapters 6–8, 21). Third, evaluations fluctuate with the random seeds, and small differences (up to about 0.05 in J; Chapter 31) are meaningless.
Remaining differences. (1) Origin of rare words: in the model, once-only words have a one-glyph-different word within the previous 10 words at 1.87× chance, higher than the manuscript (1.32×). In the model, too many new forms arise as altered copies of nearby words; the scribe may have more often altered copies into forms used elsewhere (the direction of the “real-word type” of Chapter 11). (2) y→q is 3.13×, short of the manuscript’s 3.81× (overall word-to-word linkage is 0.197, the same as the manuscript’s 0.192, so only the specific y-then-q combination is weak). (3) One-glyph similarity one line apart (1.11; manuscript 1.17) and similarity 3–10 words back (1.12; manuscript 1.18) are slightly weak. These are the next tasks.
The contemporary vernacular recipe collections compared in Chapter 8 were only two (Middle English and Italian). On GitHub we found a dataset of medieval and early-modern recipe collections, mainly from the German-speaking area, transcribed in their original spelling (neongrau/fyndling-tei; transcriptions based on Monumenta culinaria, the Graz Corpus of Recipes of the Middle Ages (CoReMA), and others). We measured the 23 collections dated before 1560 with at least 3,000 words using the same yardstick. Only the original text of each recipe was used, not the modern German translations included in the dataset.
| Collection | Date | Language | Words | Adjacent | z | Same | 1-glyph | h2 |
|---|---|---|---|---|---|---|---|---|
| Le Viandier de Guillaume Tirel, dit Taillevent | c. 1300 | Old French | 3,712 | 0.31 | -7.2 | 0.25 | 0.65 | 3.00 |
| Daz buoch von guoter spîse | c. 1350 | Middle High German | 7,557 | 0.38 | -14.0 | 0.22 | 0.89 | 2.98 |
| The Forme of Cury* | c. 1390 | Middle English | 15,523 | 0.59 | -9.0 | 0.41 | 1.92 | 3.23 |
| Le Ménagier de Paris | c. 1393 | Old French | 31,590 | 0.33 | -12.1 | 0.21 | 0.62 | 3.09 |
| Libro della cocina (Anonimo Toscano) | late 14th c. | Medieval Italian | 3,603 | 0.27 | -4.5 | 0.21 | 0.39 | 3.02 |
| Registrum Coquine quomodo et qualiter prepar… | c. 1431–1435 | Medieval Latin | 3,914 | 0.23 | -6.0 | 0.13 | 0.85 | 3.08 |
| Rheinfränkisches Kochbuch (ohne Originaltite… | c. 1445 | Middle High German | 3,417 | 0.37 | -9.8 | 0.24 | 0.64 | 2.95 |
| Maister Hannsen des von Wirtenberg Koch | 1460 | Early New High German | 24,022 | 0.29 | -22.2 | 0.22 | 0.53 | 2.99 |
| München, Bayerische Staatsbibliothek, Clm 15… | 1458–1464 | Early New High German | 3,170 | 0.41 | -9.2 | 0.25 | 1.06 | 2.91 |
| Libro de arte coquinaria | c. 1465 | Medieval Italian | 24,022 | 0.40 | -10.0 | 0.37 | 0.45 | 3.05 |
| Wel ende edelike spijse | c. 1475 | Middle Dutch | 3,170 | 0.47 | -7.4 | 0.43 | 0.58 | 2.91 |
| Berlin, Staatsbibliothek zu Berlin – Preußis… | mid-15th c. | Early New High German | 19,120 | 0.40 | -17.2 | 0.27 | 0.84 | 3.00 |
| Karlsruhe, Badische Landesbibliothek, Cod. A… | 15th c. | Early New High German | 6,214 | 0.57 | -9.2 | 0.49 | 0.89 | 2.97 |
| München, Bayerische Staatsbibliothek, Cgm 384 | 2nd half 15th c. | Early New High German | 4,834 | 0.51 | -7.7 | 0.50 | 0.58 | 2.94 |
| Graz, Universitätsbibliothek, Ms. 1609 (CoRe… | 2nd half 15th c. | Early New High German | 25,446 | 0.44 | -19.5 | 0.32 | 0.73 | 3.04 |
| Wien, Österr. Nationalbibl., Cod. 2897 | mid-15th c. | Early New High German | 18,666 | 0.40 | -16.2 | 0.27 | 0.81 | 3.03 |
| München, Bayerische Staatsbibliothek, Cgm 5919 | c. 1500 | Early New High German | 8,248 | 0.35 | -12.9 | 0.24 | 0.66 | 2.98 |
| Kuchařství o rozličných krměch, kterak se už… | 1535 | Early Czech | 11,865 | 0.37 | -6.3 | 0.20 | 0.72 | 3.42 |
| Das Kochbuch der Philippine Welser | 1543–44 | Early New High German | 24,998 | 0.47 | -19.7 | 0.27 | 0.69 | 2.92 |
| Wolfenbüttel, Herzog-August-Bibliothek, Cod.… | 1543 | Early New High German | 10,158 | 0.34 | -15.5 | 0.32 | 0.38 | 3.02 |
| Ein künstlichs vnd nutzlichs Kochbuch, vorma… | 1545 | Early New High German | 30,775 | 0.40 | -14.9 | 0.29 | 0.51 | 3.17 |
| Das kochbúch der sabina welserin | 1553 | Early New High German | 16,334 | 0.35 | -17.2 | 0.27 | 0.56 | 3.02 |
| Augspurger Kochbuoch, worinnen enthalten für… | 1554 | Early New High German | 8,550 | 0.16 | -14.3 | 0.10 | 0.26 | 3.01 |
Recipes of each collection in manuscript order, up to 34,859 words. Values are ratios to chance (words shuffled within the page). z is the deviation from chance (200 shuffles). *The transcription of The Forme of Cury contains an 18th-century editor’s glosses pairing old and modern spellings (e.g. “morter. Mortar.”), which inflates the one-glyph value; indicative only.
In conclusion, the explanation “neighbours are similar because recipe texts repeat stock phrases” does not hold even for handwritten recipe collections of the same period and region as the Voynich, in unstandardised spelling. Together with the results up to Chapter 8 (93 languages, Latin recipe collections and herbals, contemporary texts), the neighbour similarity of the Voynich is a property distinct from texts of this kind in Europe at the time.
After the recipe collections of Chapter 26, we measured medical and herbal texts. The source is the Reference Corpus of Middle High German (ReM: Referenzkorpus Mittelhochdeutsch 1050–1350, Version 2.1), which transcribes manuscripts of 1050–1350 in their original spelling, including abbreviation marks and long s (ſ). From it we extracted the medical, herbal and lapidary texts. For comparison we added, from the same corpus, the Physiologus (a book on the natures of animals), the encyclopaedic dialogue Lucidarius, and the cookbook Daz buoch von guoter spîse, which was also measured in Chapter 26.
| Text | Words | Adjacent | z | Same | 1-glyph | h2 | Normalised: adjacent | Normalised: h2 |
|---|---|---|---|---|---|---|---|---|
| Bartholomäus (medical) | 11,865 | 0.44 | -9.1 | 0.27 | 0.63 | 3.19 | 0.48 | 3.08 |
| Zürich medical book | 2,642 | 0.47 | -4.4 | 0.31 | 0.60 | 3.29 | 0.46 | 3.25 |
| Small medical texts (10, pooled) | 4,509 | 0.51 | -6.6 | 0.38 | 0.70 | 3.33 | 0.52 | 3.28 |
| Physiologus (control) | 7,406 | 0.57 | -6.0 | 0.47 | 0.67 | 3.22 | 0.58 | 3.12 |
| Lucidarius (control) | 6,482 | 0.56 | -7.0 | 0.49 | 0.63 | 3.06 | 0.55 | 3.04 |
| Daz buoch von guoter spîse (cookbook) | 8,064 | 0.59 | -6.8 | 0.35 | 0.82 | 3.04 | 0.63 | 2.98 |
Values are ratios to chance (words shuffled within each page); z is the deviation from chance (200 shuffles). Values measured on the manuscript spelling (a word with abbreviation marks counted as one spelling) are shown next to values after changing ſ to s and removing abbreviation marks. “Small medical texts” pools ten short texts (a few hundred words each): the Prüll and Innsbruck medical books, herbal, lapidary and recipe texts.
In conclusion, beyond the recipe collections (Chapter 26), medical and herbal texts close in content to the Voynich, in their original manuscript spelling, also avoid similar words next to each other. The Voynich property that both identical and one-glyph-different words cluster next to each other cannot be explained by the genre or the spelling variability of such texts of the period.
Source: Roussel, Klein, Dipper, Wegera, Wich-Reif (2024), Referenzkorpus Mittelhochdeutsch (1050–1350), Version 2.1 (CC BY-SA 4.0).
Following the Middle High German texts (up to 1350) of Chapter 27, we measured texts from around the 15th century, the period of the Voynich. The source is the Reference Corpus of Early New High German (ReF: Referenzkorpus Frühneuhochdeutsch 1350–1650, Version 1.0.2), which transcribes manuscripts and prints in their original spelling, including abbreviation marks and long s (ſ). From it we chose 10 medical, herbal, natural-history and divination texts. The core ones are the German herbal Gart der Gesundheit (Mainz, 1485), which gives an illustration and the virtues of each plant and was printed by Schöffer’s press, which had published the Latin Herbarius measured in Chapter 7 the year before, and a handwritten herbal and recipe collection of 1511. As counterparts to the Voynich’s star charts and astrological drawings we also added a moon divination book, Hartlieb’s Book of all forbidden arts and an astrological annual forecast.
| Text | Date | Type | Words | Adjacent | z | Same | 1-glyph | h2 | Normalised: adjacent |
|---|---|---|---|---|---|---|---|---|---|
| Buch der Natur (Megenberg) | c. 1350–75 | manuscript | 16,796 | 0.45 | -13.7 | 0.34 | 0.57 | 3.20 | 0.46 |
| Mainau natural philosophy | late 14th c. | manuscript | 6,125 | 0.52 | -7.2 | 0.49 | 0.57 | 3.15 | 0.55 |
| Moon divination book | c. 1400 | manuscript | 8,664 | 0.54 | -7.7 | 0.33 | 0.67 | 3.02 | 0.54 |
| Book of all forbidden arts (Hartlieb) | 1465 | manuscript | 21,118 | 0.49 | -14.3 | 0.35 | 0.70 | 3.13 | 0.52 |
| Ulm surgery book | late 15th c. | manuscript | 20,324 | 0.38 | -18.0 | 0.33 | 0.49 | 3.28 | 0.38 |
| Gart der Gesundheit (herbal) | 1485 | 24,998 | 0.51 | -15.1 | 0.38 | 0.65 | 3.16 | 0.56 | |
| Practica (astrological forecast) | 1496 | 4,193 | 0.23 | -11.9 | 0.09 | 0.38 | 3.03 | 0.24 | |
| Buch der Cirurgia (Brunschwig) | 1497 | 20,782 | 0.52 | -13.2 | 0.33 | 0.69 | 3.15 | 0.55 | |
| Surgery book (Pfalzpaint) | 1495–1505 | manuscript | 24,998 | 0.35 | -21.1 | 0.24 | 0.57 | 3.06 | 0.35 |
| Herbal and recipe collection | 1511 | manuscript | 20,651 | 0.41 | -15.1 | 0.26 | 0.55 | 3.21 | 0.43 |
Values are ratios to chance (words shuffled within each page); z is the deviation from chance (200 shuffles). Words are the space-separated units of the manuscript or print, with words split at line ends rejoined. “Normalised” changes ſ to s and removes abbreviation marks. Each text is measured over the portion transcribed in the corpus (up to 25,000 words).
In conclusion, even in the genres closest to the Voynich’s drawings and from its own period (plant-by-plant herbals, recipe collections, surgery books, moon divination), texts in their original spelling avoid similar words next to each other. Across Chapters 26–28 we measured about 40 texts — 23 recipe collections, 13th–14th-century medical books and 15th-century herbals and medical books — and none has the Voynich property that both identical and one-glyph-different words cluster next to each other.
Source: Wegera, Solms, Demske, Dipper (2021), Referenzkorpus Frühneuhochdeutsch (1350–1650), Version 1.0.2 (CC BY-SA 4.0).
Chapters 26–28 centred on the German-speaking area, so we measured texts from northern Italy, a region that has also been linked to the Voynich. The first is a 15th-century Venetian medical recipe book in manuscript MA 400 of the Biblioteca Civica in Bergamo (first complete edition by Lemme 2024, CC BY), with 112 recipes of the kind “take …, grind it to powder, knead it with honey”. The edition fills in the manuscript’s abbreviations in round brackets, so we measured both “abbreviations kept” (the bracketed letters removed, close to how the manuscript looks) and “expanded”. Footnotes, page and folio numbers were removed. The second is the Italian herbal Herbolario volgare, printed in Venice in 1522.
| Text | Date | Type | Words | Adjacent | z | Same | 1-glyph | h2 |
|---|---|---|---|---|---|---|---|---|
| Venetian medical recipe book (abbreviations kept) | 15th c. | manuscript | 7,138 | 0.62 | -3.8 | 0.24 | 1.22 | 3.12 |
| Same (abbreviations expanded) | 15th c. | manuscript | 7,253 | 0.51 | -4.1 | 0.18 | 1.12 | 3.10 |
| Herbolario volgare (herbal)* | 1522 | 34,859 | 0.54 | -7.2 | 0.42 | 0.75 | 3.42 |
Values are ratios to chance (words shuffled within each page); z is the deviation from chance (200 shuffles). *The Herbolario volgare text is the machine transcription from page images on the Internet Archive; it has reading errors (e.g. long s read as f) and includes the table of contents, so it is indicative only (first 34,859 words).
In conclusion, the Voynich combination does not appear in a 15th-century northern Italian recipe book or an early 16th-century herbal either. A formulaic recipe book can place rhyme-like one-glyph pairs next to each other, but it avoids repeating the same word — the opposite of the Voynich pattern.
Sources: Lemme, C. (2024). «Il ricettario veneziano del ms MA 400 della Biblioteca Civica “A. Mai” di Bergamo (cc. 66r-98v)». Quaderni Veneti 13, 31–70 (CC BY). Herbolario volgare (Venice, 1522), Wellcome Collection copy, Internet Archive.
Head and tail preferences differ between sections (Chapters 12 and 14). But when the section changes, the hand and Language A/B often change too, so it was not clear whether the differences come from the content of the drawings (plants, baths, jars, etc.) or from the hand and the time of writing. If tail preferences were tied to the type of drawing, that would be a clue that tails carry meaning.
We therefore compared pages with different types of drawing within the same hand and language. Two such groups exist: Hand 1 / Language A has herbal and pharmaceutical (jar) pages, and Hand 2 / Language B has herbal, bath, text-only and cosmological pages. Pages were grouped into cells of “drawing type × quire” (a quire is a gathering of folded sheets bound together), and we measured how much the distributions of heads, tails and whole words differ between cells (JSD; 0 means identical). To remove the effect of different word counts, we drew 350 words at random from each cell and averaged over 200 draws.
| Group | Part | Halves of the same cell (baseline) | Same drawing, other quire | Different drawing | p |
|---|---|---|---|---|---|
| Hand 1, Language A (herbal, pharma) | Head | 0.151 | 0.209 | 0.245 | 0.03 |
| Hand 1, Language A (herbal, pharma) | Tail | 0.088 | 0.154 | 0.161 | 0.34 |
| Hand 1, Language A (herbal, pharma) | Whole word | 0.548 | 0.634 | 0.677 | 0.10 |
| Hand 2, Language B (herbal, bath, text-only, cosmological) | Head | 0.125 | 0.186 | 0.210 | 0.10 |
| Hand 2, Language B (herbal, bath, text-only, cosmological) | Tail | 0.059 | 0.116 | 0.107 | 0.82 |
| Hand 2, Language B (herbal, bath, text-only, cosmological) | Whole word | 0.502 | 0.622 | 0.636 | 0.26 |
“Halves of the same cell” is the difference when one cell is split at random into two, i.e. the size of chance fluctuation. p is the share of 2,000 permutations of drawing-type labels among cells in which the gap between “different drawing” and “same drawing, other quire” is at least as large as observed.
In conclusion, the differences in head and tail preferences are determined not by the content of the drawings but by which quire the text was written in (probably the time of writing or a continuous stretch of work). This fits “the sheet is the unit” of Chapter 14. At least with this measure, there is no evidence that word tails represent the type of drawing — plants, baths, jars. Quire differences are clearly visible with this yardstick (the same drawing type in another quire gives a larger value), so an effect of drawing type of similar size would have been detected.
One of the differences left in the final model of Chapter 25 (R7-2) was how rare words arise. Among the model’s once-only words, too many had a one-glyph-different word within the previous 10 words: too many new forms arose from altered copies of nearby words. We therefore added a mechanism: when a copied word is altered, the alteration is retried until the result is a form already written earlier (at most 20 tries; if none is found, the last attempt is used). The assumption is that the scribe, even when altering a nearby word, often changed it into a form used elsewhere.
| Model | Origin of rare words | h2 | Once-only words | Word types per 10k | Adjacent: same | Adjacent: 1-glyph | Directly above | J |
|---|---|---|---|---|---|---|---|---|
| Manuscript | 1.32 | 2.24 | 0.679 | 2,889 | 1.34 | 1.21 | 1.28 | — |
| R7-2 (search seeds, mean of 3 orderings) | 1.77 | 2.22 | 0.694 | 2,850 | 1.34 | 1.23 | 1.25 | 0.106 |
| Steered (same) | 1.40 | 2.21 | 0.685 | 2,728 | 1.29 | 1.27 | 1.27 | 0.085 |
| R7-2 (hold-out seeds) | 1.86 | 2.22 | 0.697 | 2,845 | 1.39 | 1.25 | 1.29 | 0.088 |
| Steered (hold-out seeds) | 1.29 | 2.22 | 0.686 | 2,733 | 1.26 | 1.28 | 1.26 | 0.091 |
“Origin of rare words” is the share of once-only words with a one-glyph-different word within the previous 10 words (ratio to chance). Values for the search seeds (101–106) are means over three different “orderings” (see below). The hold-out seeds (201–206) were not used in the search.
A correction on evaluation noise. While checking this chapter we found that the generated text also changes with Python’s set ordering (PYTHONHASHSEED). For the same R7-2, J on the search seeds ranges from 0.070 to 0.154 across orderings, and similarity to the word directly above is 1.21, 1.25, 1.28 (just outside the target range for some orderings). This ordering was not fixed in the autonomous loop of Chapter 24, so differences in J between candidates of up to about 0.05 should be read as meaningless. The steered version fluctuates less (J 0.081–0.088) and meets all four key targets under all three orderings.
In conclusion, the mechanism “when altering a copied nearby word, change it into a form used elsewhere” almost removes the remaining difference in how rare words arise (Chapter 25). The statistics fit well if the scribe, while taking cues from nearby words, mostly chose forms from among words already in use. This version (R7-2 plus att_p = 1.0, att_T = 20) is the model closest to the manuscript so far.
So far we have compared the manuscript and the model on measures we chose ourselves, which cannot reveal differences in properties we did not choose. We therefore mixed manuscript pages with generated pages (same word count and line shape per page) and asked a classifier (logistic regression) to tell them apart. It uses about 300 features per page: glyph frequencies, glyph pairs, word lengths, word-initial and word-final glyphs, line-initial and line-final glyphs, junctions between words, and repetition and vocabulary measures. We used the 193 pages with at least 50 words and 5-fold cross-validation, always keeping a real page and its generated version on the same side. The score is AUC: 0.5 means indistinguishable, 1.0 means perfectly distinguishable. Generation used seeds not used in the search (201–203).
| Compared with | All | Single glyphs | Glyph pairs | Word length | Word start/end | Line start/end | Word junctions | Repetition, vocabulary |
|---|---|---|---|---|---|---|---|---|
| Manuscript shuffled within pages (control) | 1.00 | 0.50 | 0.50 | 0.50 | 0.50 | 0.98 | 0.99 | 0.66 |
| Starting point (Chapter 23) | 1.00 | 0.72 | 1.00 | 0.65 | 0.68 | 0.45 | 0.72 | 0.78 |
| R7-2 (Chapter 25) | 0.90 | 0.74 | 0.74 | 0.88 | 0.79 | 0.47 | 0.74 | 0.76 |
| Steered (Chapter 31) | 0.90 | 0.74 | 0.72 | 0.90 | 0.77 | 0.51 | 0.73 | 0.67 |
| + word-length habit | 0.82 | 0.78 | 0.78 | 0.50 | 0.79 | 0.49 | 0.78 | 0.67 |
| Chapter 32 version (+ choice of linkage etc.) | 0.71 | 0.65 | 0.67 | 0.57 | 0.69 | 0.47 | 0.67 | 0.65 |
“All” uses all features; the other columns use only that kind of feature (AUC, mean of 3 runs). The control, “manuscript shuffled within pages”, only breaks word order and is perfectly distinguished through line edges and junctions (confirming that the classifier is powerful enough).
| h2 | Once-only | Page character | Directly above | Adj.: same | Adj.: 1-glyph | y→q | Rare-word origin | J | |
|---|---|---|---|---|---|---|---|---|---|
| Manuscript | 2.24 | 0.679 | 1.60 | 1.28 | 1.34 | 1.21 | 3.81 | 1.32 | — |
| Ch. 32 version, search seeds | 2.21 | 0.663 | 1.65 | 1.28 | 1.34 | 1.24 | 3.70 | 1.33 | 0.081 |
| Ch. 32 version, hold-out seeds | 2.21 | 0.664 | 1.68 | 1.25 | 1.32 | 1.24 | 3.66 | 1.33 | 0.106 |
Main measures of the Chapter 32 version (search seeds 101–106 and hold-out seeds 201–206, 6-run means). With the hold-out seeds, page character is 1.68, slightly above the target range (1.60 ± 0.08).
In conclusion, the discrimination test found two differences invisible to the measures we had chosen: a “word-length habit” and a “bias towards common word starts”. Fixing both brought the model closer to the manuscript while keeping the other measures, and also removed the long-standing y→q gap. It is natural to think that the scribe, even when building words glyph by glyph, had an approximate length in mind (or fitted glyphs into slots of fixed length).
Greshko (2025) proposed the “Naibbe cipher”, which turns Latin or Italian into Voynich-like strings using only tools available in the 15th century (playing cards and dice). The plaintext is cut into pieces of one or two letters, and each is replaced, using one of six tables chosen at random, by a form resembling manuscript words (in EVA). It is a decipherable, “meaningful” ciphertext. With the published implementation (github.com/greshko/naibbe-cipher) we encrypted about 35,000 words each of Pliny’s Natural History book 16 and Caesar’s Gallic War (Latin) and Dante’s Divine Comedy (Italian), and measured them with the same yardstick as the manuscript. The ciphertext was laid out with the same word counts and line shapes as the manuscript pages.
| h2 | Once-only | Adjacent | Adj.: same | Adj.: 1-glyph | y→q | Directly above | Page character | Distinguishability (AUC) | |
|---|---|---|---|---|---|---|---|---|---|
| Manuscript | 2.24 | 0.68 | 1.24 | 1.34 | 1.21 | 3.81 | 1.28 | 1.60 | — |
| Chapter 32 model | 2.21 | 0.66 | 1.26 | 1.34 | 1.24 | 3.70 | 1.28 | 1.65 | 0.71 |
| Naibbe: Pliny, Natural History 16 (Latin) | 2.17 | 0.44 | 0.86 | 0.64 | 0.91 | 0.94 | 1.00 | 1.00 | 1.00 |
| Naibbe: Caesar, Gallic War (Latin) | 2.16 | 0.42 | 0.88 | 0.65 | 0.94 | 0.93 | 0.99 | 1.02 | 1.00 |
| Naibbe: Dante, Divine Comedy (Italian) | 2.19 | 0.39 | 0.90 | 0.76 | 0.94 | 1.00 | 1.05 | 1.01 | 1.00 |
Ratios to chance (words shuffled within each page) etc., defined as in earlier chapters. Distinguishability is the AUC of the classifier of Chapter 32 (0.5 means indistinguishable). The Naibbe cipher has no mechanism for line or page structure (as its author states), so we also checked discrimination without line-start and line-end features.
Note that this is not a fair comparison. The Chapter 32 model is built from the manuscript’s own statistics (glyph continuations, section biases, etc.), whereas the Naibbe cipher uses its own tables and carries a meaningful plaintext, and its author states that line and page properties are outside its scope. Still, one thing follows: a cipher of the kind “replace each word independently” does not produce the manuscript’s most distinctive features — identical and one-glyph-different words clustering next to each other, the next word’s start depending on how the previous word ends, and nearby lines and the same page being similar. If the manuscript is a ciphertext, something beyond the substitution must have been added: a procedure of writing while looking at nearby words (copying with alterations), or of choosing the substitution to fit the previous word.
Source: Greshko, M. A. (2025). The Naibbe cipher: a substitution cipher that encrypts Latin and Italian as Voynich Manuscript-like ciphertext. Cryptologia. doi:10.1080/01611194.2025.2566408. Implementation and data: github.com/greshko/naibbe-cipher (modified MIT licence). Encryption used the default settings (52-card deck, standard respacing).
The Naibbe cipher of Chapter 33 had none of the context properties. But it has freedom: for the same one or two plaintext letters there are 6 to 36 possible substitutions, and any of them decrypts to the same plaintext. We therefore chose among these candidates with scribal habits. Whatever is chosen, the decryption is unchanged, so the meaning is kept. There are three habits:
We varied the strength of the habits for the three works by Pliny, Caesar and Dante (means over the three).
| h2 | Once-only | Adjacent | Adj.: same | Adj.: 1-glyph | y→q | Directly above | Page character | AUC | |
|---|---|---|---|---|---|---|---|---|---|
| Manuscript | 2.24 | 0.68 | 1.24 | 1.34 | 1.21 | 3.81 | 1.28 | 1.60 | — |
| No habit (standard choice) | 2.09 | 0.37 | 0.87 | 0.69 | 0.95 | 0.95 | 1.00 | 0.98 | 1.00 |
| Moderate habit | 1.96 | 0.41 | 0.96 | 0.76 | 1.06 | 1.85 | 1.11 | 1.06 | 1.00 |
| Strong habit | 1.90 | 0.42 | 1.09 | 0.79 | 1.21 | 1.56 | 1.26 | 1.17 | 1.00 |
“No habit” chooses according to the card weights (almost the same as the ciphertext of Chapter 33, but values differ slightly because we choose by weight rather than drawing from a deck). Decrypting the strong-habit ciphertext with the author’s decryption program returned the original plaintext for 97.9% of tokens, and the remaining 2.1% included the correct plaintext as one of two candidates (the no-habit version has the same kind of ambiguity for 1.1%). No token decrypted wrongly.
In conclusion, even a meaning-preserving cipher can, with a habit of choosing forms similar to nearby words, produce one-glyph-different neighbours and similarity to the line above. But the manuscript’s most conspicuous feature — repetition of the same word (sequences like daiin daiin, qokedy qokedy) — does not arise in this kind of cipher unless the plaintext repeats in the same places. If the manuscript is a ciphertext, either the plaintext itself was highly repetitive, or some of the repeats are meaningless words (skipped in decryption). This differs from the simple form rejected in Chapter 5 (“specific filler words were mixed in”): here the fillers would enter as a habit of copying nearby words.
Chapter 34 showed that the manuscript’s “same word next to itself” is hard to produce with a meaning-preserving substitution cipher. So what does this repetition resemble? We examined the 287 places where the same word follows itself on a line (1.31× chance) and compared them with Indonesian, which has grammatical reduplication (repeating a word to mark plurality, as in orang-orang “people”), and with the Chapter 32 model (a mechanism of copying nearby words).
| Text | Repeat ratio | Per 1,000 words | Top 20 words | Ranks 21–200 | Others | Line-start pair | Mid-line | Line-end pair | Next word also similar | Triples |
|---|---|---|---|---|---|---|---|---|---|---|
| Manuscript | 1.31 | 9.3 | 0.98 | 1.80 | 3.06 | 0.44 | 1.59 | 0.77 | 3.31 | 4.5 |
| Chapter 32 model | 1.42 | 14.0 | 1.19 | 1.43 | 4.19 | 1.01 | 1.69 | 0.33 | 2.52 | 3.4 |
| Indonesian (Bible) | 2.55 | 29.5 | 1.41 | 4.54 | 7.87 | 2.46 | 2.63 | 2.25 | 0.00 | 0.0 |
| Hebrew (Bible) | 0.19 | 1.1 | 0.03 | 0.39 | 0.74 | 0.13 | 0.18 | 0.30 | — | — |
| Latin (Bible) | 0.09 | 1.2 | 0.01 | 0.11 | 1.41 | 0.07 | 0.10 | 0.05 | — | — |
| English (Bible) | 0.02 | 0.4 | 0.00 | 0.04 | 0.42 | 0.06 | 0.02 | 0.03 | — | — |
“Repeat ratio” is the rate of the same word following itself on a line, relative to chance (words shuffled within each page, 30 times); the frequency and position columns are likewise ratios to chance. “Next word also similar” compares how often the word right after a repeat is identical to or one glyph different from the repeated word, against non-repeat positions. “Triples” compares how often a third copy follows two, against the overall repeat rate. The Bibles were laid out with the manuscript’s page and line shapes, so their line-position values are meaningless. Texts with fewer than 50 repeats are shown as “—”. Indonesian reduplication is split at the hyphen and counted as two words.
In conclusion, the manuscript’s repetition of identical words is quite unlike grammatical reduplication and fits well the trace of a way of writing: “looking at nearby words and writing the same word, or a slightly altered one, in succession”. Together with Chapter 34, this makes it likely that the repetition does not carry the meaning of a plaintext but arises as a writing habit (or as meaningless words). The Chapter 32 model differs at line starts (line-start pair 1.01×, i.e. at chance; line-end pair 0.33×). The scribe seems to have avoided repeating a word right at the start of a line — the next improvement for the model.
The Chapter 32 model could still be told apart by the classifier (AUC 0.71). So we ran the autonomous improvement loop for another night under the same rules as Chapter 24. The goal was to bring the classifier’s distinguishability (AUC) towards 0.5, with a penalty added whenever a key measure tuned so far (h2, once-only words, page character, directly above, y→q, identical and one-glyph neighbours, rare-word origin) left its target range.
From 17:09 until 6:30 the next morning, 107 candidates were evaluated and 12 adopted. The full history is in disc_history.csv, the search log in disc_search.log, and the final settings in final_params_ch36.json.
| Change | Earlier classifier | Strong classifiers (mean) | Gradient boosting alone |
|---|---|---|---|
| Start (Chapter 32 version) | 0.75 | — | — |
| Shape habit (length, first and last glyph) | 0.62 | — | — |
| Shape habit with glyph pairs | 0.56 | — | — |
| Fine tuning (best of first half) | 0.50 | 0.81 | 0.87 |
| Habit for frequent words | 0.49 | 0.65 | 0.79 |
| Fine tuning (final) | 0.48 | 0.64 | 0.80 |
The main adopted changes and the distinguishability at that point (search seeds). “Earlier classifier” is the one from Chapter 32 (logistic regression on about 300 features). “Strong classifiers” use about 800 features (adding glyph triples and the frequencies of the 200 most common words) and average two methods, logistic regression and gradient boosting (stacked decision trees). The judge was switched to these partway through.
The cues the classifier relied on showed mismatches in word starts and ends, such as too many words starting with q and ending in o. We therefore added weights that favour shapes matching the manuscript’s distributions of word length, first glyph, last glyph and glyph pairs (a shape habit). New words are built as several candidates and chosen by this weight, and the weight is also applied when choosing a word to copy. With this, the earlier classifier’s AUC fell from 0.75 to 0.50: no better than chance.
We then checked with stronger classifiers. Their AUC was 0.81 (gradient boosting 0.87), still clearly distinguishable. The model had only been fitted to what one particular classifier looks at; it could not be said to have come closer to the manuscript. So partway through the search the judge was switched to the strong classifiers.
The strong classifiers’ cues showed mismatched frequencies of common words (the one-glyph words s and r too rare, o, dain and ain too common, etc.). Adding a weight matching the frequencies of the manuscript’s 300 most common words lowered the strong classifiers’ mean AUC from 0.81 to 0.65. Logistic regression can no longer tell them apart, but gradient boosting still can (0.79).
| Earlier classifier | Strong: regression | Strong: boosting | h2 | Once-only | Page character | Directly above | y→q | Adj.: same | Adj.: 1-glyph | Rare-word origin | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Target (manuscript) | 0.5 | 0.5 | 0.5 | 2.24 | 0.68 | 1.60 | 1.28 | 3.81 | 1.34 | 1.21 | 1.32 |
| Chapter 32 version | 0.76 | 0.85 | 0.90 | 2.21 | 0.662 | 1.67 | 1.25 | 3.71 | 1.32 | 1.24 | 1.36 |
| Chapter 36 version | 0.50 | 0.50 | 0.80 | 2.24 | 0.664 | 1.63 | 1.25 | 4.06 | 1.30 | 1.27 | 1.34 |
Six-run means for the Chapter 32 and 36 versions with seeds 201–206 (and orderings different from the search).
What gradient boosting sees. Feature importances show that the share of one-glyph words matters most. Its overall mean is almost the same as the manuscript’s, but its spread across pages differs: in the manuscript one-glyph words appear moderately on every page, while in the model pages split into those with none and those with many (standard deviation of the per-page share: manuscript 0.026, model 0.045). The share of adjacent one-glyph pairs and the variety of words within a page show the same tendency. Because the model copies nearby words, the same forms tend to clump within a page, whereas the manuscript’s words are spread more evenly over the page.
Caution. The shape habit and the frequent-word weights added in this chapter are built from the manuscript’s own distributions. This amounts to giving the model the scribe’s preferences for words and shapes, and part of the reduced distinguishability is the effect of that fitting. It moves somewhat away from the Chapter 24 goal of “simple rules that could be carried out by hand”.
In conclusion, on statistics taken one at a time, such as glyph sequences and word frequencies, the model and the manuscript can no longer be told apart. The remaining difference lies in combined statistics of how words are spread over a page, showing that the model’s central mechanism, copying nearby words, clumps words more than the manuscript does. A natural next step is a different way of writing that keeps adjacent similarity while copying less (for example, choosing a set of candidate words before starting a page).
We handed the continuation of Chapter 36 to two Claudes at the same time, under the same conditions: Opus 5.5, which has been writing this research note, and Sonnet 5.5 (reasoning effort set to "medium").
In the morning we graded both with a final exam that neither had seen. It uses seeds 401–406, which were never used in the search, and five classifiers. Two of them, marked *, were never used in the search: a random forest, and gradient boosting with added features for how words are spread within a page. The exam was written before the search began and was not changed afterwards. Note, however, that the Opus side wrote it.
In the afternoon both work environments were restarted midway, and the search processes stopped.
Because the search times differ, we also put Opus's best as of 17:26 through the same exam, to compare equal amounts of time.
| Search time, candidates | Gradient boosting | Random forest* | With dispersion features* | Strong: regression | Chapter 32 classifier | |
|---|---|---|---|---|---|---|
| Start (Chapter 36 version) | — | 0.80 | 0.78 | 0.80 | 0.52 | 0.51 |
| Sonnet 5.5 (stopped at 17:26) | about 8 h, 19 | 0.65 | 0.61 | 0.66 | 0.42 | 0.51 |
| Opus 5.5 (best as of 17:26) | about 8 h, 33 | 0.70 | 0.68 | 0.70 | 0.45 | 0.49 |
| Opus 5.5 (final at 6:30) | about 21 h, 97 | 0.59 | 0.50 | 0.61 | 0.39 | 0.46 |
Mean AUC over six runs in the final exam (seeds 401–406); 0.5 means the classifier cannot tell them apart. * marks classifiers never used in the search. Candidates are settings evaluated, not counting re-checks.
| h2 | Once-only | Page character | Directly above | y→q | Adj.: same | Adj.: 1-glyph | Rare-word origin | |
|---|---|---|---|---|---|---|---|---|
| Target (manuscript) | 2.24 | 0.68 | 1.60 | 1.28 | 3.81 | 1.34 | 1.21 | 1.32 |
| Start (Chapter 36 version) | 2.24 | 0.663 | 1.59 | 1.28 | 4.10 | 1.30 | 1.27 | 1.30 |
| Sonnet 5.5 (stopped at 17:26) | 2.24 | 0.657 | 1.60 | 1.25 | 3.95 | 1.24 | 1.23 | 1.25 |
| Opus 5.5 (best as of 17:26) | 2.25 | 0.658 | 1.61 | 1.28 | 4.01 | 1.34 | 1.25 | 1.47 |
| Opus 5.5 (final at 6:30) | 2.24 | 0.654 | 1.58 | 1.26 | 3.98 | 1.22 | 1.22 | 1.37 |
Key statistics in the same exam. Bold marks values outside the target range.
The key statistics stayed mostly within range. In both searches, however, the share of once-only words fell slightly from the starting point (0.663) to just outside the range. Identical neighbours also fell just below the range for Sonnet (1.24) and for the final Opus model (1.22). At 17:26, Opus's rare-word origin (1.47) was slightly outside.
In conclusion, at equal time Sonnet had built the better model. The final difference came down to whether, when the long run stopped midway, each noticed and restarted it by itself. Gradient boosting is still at 0.59, short of 0.5. The two searches reached the same wall — combinations of features — by different mechanisms, so the next step is worth trying both mechanisms together.
After Chapter 37 we gave the same two Claudes (Opus 5.5 and Sonnet 5.5) another night under identical conditions. There were three changes from Chapter 37:
This time neither run stopped, and both sent hourly reports until morning. Sonnet stopped its own search a little before the deadline, re-measured its top candidates on other seeds, and re-chose its final setting. The final exam was the same as in Chapter 37: seeds 401–406 and five classifiers, where * marks those never used in the search.
| Search time, candidates | Gradient boosting | Random forest* | With dispersion features* | Strong: regression | Chapter 32 classifier | |
|---|---|---|---|---|---|---|
| Start (final Opus model of Chapter 37) | — | 0.59 | 0.50 | 0.61 | 0.39 | 0.46 |
| Sonnet 5.5 (final, second round) | about 17 h, 51 | 0.56 | 0.48 | 0.55 | 0.44 | 0.53 |
| Opus 5.5 (final, second round) | about 19 h, 80 | 0.58 | 0.56 | 0.59 | 0.51 | 0.55 |
| Opus 5.5, leak-free version | (same settings, profiles drawn at random) | 0.61 | 0.59 | 0.61 | 0.47 | 0.53 |
Mean AUC over six runs in the final exam; 0.5 means the classifier cannot tell them apart. Candidates are settings evaluated.
On this table alone Sonnet improved most, with gradient boosting at 0.56 and the random forest at 0.48. Opus's gradient boosting (0.58) is about the same as the start (0.59), and its random forest got worse (0.50 → 0.56). However, these numbers include a leak in the evaluation.
Both searches adopted the mechanism Sonnet built in Chapter 37, borrowing another page's profile: each model page borrows a little of the glyph, first-glyph, last-glyph and length proportions of another manuscript page in the same section.
| Gradient boosting: normal | Leak removed | Change | Regression: normal | Leak removed | |
|---|---|---|---|---|---|
| Start (Chapter 37 Opus final, no borrowing) | 0.596 | 0.606 | +0.010 | 0.390 | 0.417 |
| Sonnet, second round (borrows) | 0.561 | 0.609 | +0.048 | 0.441 | 0.477 |
| Opus, second round (borrows) | 0.610 | 0.642 | +0.032 | 0.509 | 0.536 |
| Opus, leak-free version | 0.596 | 0.595 | -0.002 | 0.480 | 0.491 |
| For reference: Chapter 37 Sonnet final (borrows) | 0.652 | 0.668 | +0.016 | 0.424 | 0.455 |
Strong-classifier AUC on the final-exam seeds (401–406), normal evaluation versus evaluation with the leaking pages removed from training; means over six runs. Opus's code still has an unseeded random generator in generation, so these are different generations from the first table and can differ by about 0.02.
So with the leak removed, neither search lowered gradient boosting below the start (about 0.60), and Opus's final model is actually worse. Chapter 37's Sonnet final also contained the mechanism, but its leak was small (0.65 → 0.67), so the conclusion of Chapter 37 stands.
The regression falling below 0.5 also happens for the starting point, which borrows nothing (0.39). This is a separate bias that cross-validation tends to show when two groups are nearly indistinguishable. Sonnet also confirmed this property independently.
| h2 | Once-only | Page character | Directly above | y→q | Adj.: same | Adj.: 1-glyph | Rare-word origin | |
|---|---|---|---|---|---|---|---|---|
| Target (manuscript) | 2.24 | 0.68 | 1.60 | 1.28 | 3.81 | 1.34 | 1.21 | 1.32 |
| Start (final Opus model of Chapter 37) | 2.24 | 0.654 | 1.58 | 1.26 | 3.98 | 1.22 | 1.22 | 1.37 |
| Sonnet 5.5 (final, second round) | 2.26 | 0.652 | 1.58 | 1.26 | 3.64 | 1.33 | 1.15 | 1.29 |
| Opus 5.5 (final, second round) | 2.27 | 0.651 | 1.61 | 1.29 | 3.92 | 1.28 | 1.19 | 1.38 |
| Opus 5.5, leak-free version | 2.27 | 0.652 | 1.62 | 1.33 | 3.90 | 1.29 | 1.20 | 1.32 |
Key statistics in the same exam. Bold marks values outside the target range.
In the second round both runs searched until morning without stopping, and the progress-report mechanism did its job. But most of the drop in distinguishability came from the leak that profile borrowing brought into the evaluation. With the leak removed, gradient boosting has not moved from the Chapter 37 final (about 0.60).
From now on, any mechanism that uses statistics of manuscript pages has to be evaluated with training and test split in a way that accounts for which pages it drew on. The remaining difference is that model pages have too few distinct words, a point the two searches reached from different directions.
Looking again at the evaluation leak found in Chapter 38, it turned out not to come only from profile borrowing. For a long time the model has built new words from the statistics of nearby pages. So in the old evaluation, which splits training and test by page, the statistics of a manuscript page sent to the test set reached the training side through the neighbouring fake pages.
With this yardstick we ran a third night on five machines.
The work environment was restarted twice during the night, but every machine noticed at its hourly check and restarted by itself. One Haiku noticed that its measurement died together with its waiting command, and found the fix of starting the measurement detached; we passed this fix on to the other two.
The final exam was rebuilt with the same split as the new evaluation (seeds 401–406, five classifiers; * marks classifiers never used in the search). The classifiers and features are the same as in the Chapter 37–38 exams; only the way training and test are split differs.
| Gradient boosting | Random forest* | With dispersion features* | Strong: regression | Chapter 32 classifier | |
|---|---|---|---|---|---|
| Start (Chapter 37 final) | 0.70 | 0.65 | 0.70 | 0.56 | 0.61 |
| Top of the Haiku grid (strength 0.8, keep 0.28) | 0.65 | 0.64 | 0.65 | 0.53 | 0.57 |
| Sonnet 5.5 final | 0.67 | 0.65 | 0.66 | 0.49 | 0.54 |
| Opus 5.5 final | 0.63 | 0.62 | 0.63 | 0.54 | 0.56 |
Mean AUC over six runs in the final exam (second edition, leak-free split). 0.5 means the classifier cannot tell them apart.
Choosing the best of many candidates makes it look better by whatever luck it had (the winner's curse). Before the deadline, both explorers re-measured the start and their final on seeds not used in the search (113–118).
| O: search seeds | O: check seeds | O: unused seeds | Gradient boosting (same) | Regression (same) | Penalty (same) | |
|---|---|---|---|---|---|---|
| Start | 0.657 | — | 0.662 | 0.680 | 0.551 | 0.047 |
| Sonnet final | 0.627 | 0.635 | 0.646 | 0.675 | 0.506 | 0.056 |
| Opus final | 0.603 | 0.583 | 0.596 | 0.645 | 0.530 | 0.008 |
Values as given in each explorer's report. O is the objective (0.5 + mean distance of the two strong classifiers from 0.5 + penalty); lower is better.
| Setting | Set 1 (101–106) | Set 2 (107–112) | Set 3 (113–118) | Mean |
|---|---|---|---|---|
| sp0.7_lk0.22 | 0.654 | 0.628 | 0.661 | 0.648 |
| sp0.8_lk0.28 | 0.651 | 0.647 | 0.665 | 0.654 |
| sp0.7_lk0.28 | 0.652 | 0.660 | 0.651 | 0.654 |
| sp0.8_lk0.34 | 0.647 | 0.668 | 0.672 | 0.662 |
| sp1.0_lk0.15 (start) | — | — | 0.662 | 0.662 |
| sp0.8_lk0.4_lm1.0 | — | — | 0.665 | 0.665 |
| sp0.7_lk0.34 | 0.645 | 0.687 | 0.672 | 0.668 |
| sp0.8_lk0.22 | 0.685 | 0.667 | 0.664 | 0.672 |
| sp0.9_lk0.22 | 0.662 | 0.683 | 0.670 | 0.672 |
| sp0.9_lk0.28 | 0.679 | 0.701 | 0.637 | 0.672 |
| sp0.8_lk0.28_lm0.5 | — | — | 0.673 | 0.673 |
| sp0.9_lk0.34 | 0.679 | 0.669 | 0.673 | 0.674 |
Haiku phase two: O (lower is better) for combinations of selection strength (sp) and keep share (lk), on three seed sets.
Exhaustive measurement confirmed that recombining existing settings does not give a reliable improvement over the start. In the explorers' runs too, the reliable gains came from new mechanisms.
Sonnet reached the same problem from another direction: in the manuscript, adjacent pages' glyph proportions are about twice as correlated as in fake pages, and the fewer words a page has, the easier it is to distinguish (AUC 0.78 below 80 words, 0.64 above 200). But the four new mechanisms it built to fix this did not move gradient boosting.
| h2 | Once-only | Page character | Directly above | y→q | Adj.: same | Adj.: 1-glyph | Rare-word origin | |
|---|---|---|---|---|---|---|---|---|
| Target (manuscript) | 2.24 | 0.68 | 1.60 | 1.28 | 3.81 | 1.34 | 1.21 | 1.32 |
| Start (Chapter 37 final) | 2.24 | 0.654 | 1.61 | 1.27 | 3.96 | 1.26 | 1.22 | 1.45 |
| Top of the Haiku grid (strength 0.8, keep 0.28) | 2.24 | 0.652 | 1.56 | 1.26 | 3.90 | 1.33 | 1.20 | 1.37 |
| Sonnet 5.5 final | 2.24 | 0.662 | 1.65 | 1.29 | 3.92 | 1.37 | 1.22 | 1.34 |
| Opus 5.5 final | 2.23 | 0.674 | 1.60 | 1.26 | 3.87 | 1.29 | 1.19 | 1.40 |
Key statistics in the same exam. Bold marks values outside the target range.
In short, rebuilding the yardstick showed that the model is easier to distinguish than we had thought. On that yardstick, adding coherent page-to-page variation and a writer-like way of repeating words clearly lowered distinguishability. What remains lies in the finer details of the direction of page variation.
Chapter 39 listed, among its caveats, that the new yardstick might still be too lenient. Before the next overnight search we checked this. We looked at two things.
The material is the fake pages made by the start (the Chapter 37 final) and by the Opus final (Chapter 39). They were generated with the same seeds as the final exam (401–406), and we averaged over the six runs. These seeds were used only to compare yardsticks, never to choose a model or setting. Features and classifiers are those of the final exam (gradient boosting, random forest and regression on the strong features).
At first we simply widened the buffer and measured again. The values fell, but only because fewer pages were left for training. With a 15-page buffer on the fake side, for example, only about 25 fake pages per fold remain for training, against 154 manuscript pages. In that setting we cannot tell whether a lower value means a leak was removed or the classifier simply learned too little.
So for every split we drew the same number of manuscript and fake pages at random for training (100 each, and 55 each; three draws, averaged).
| Split | Start GB | Start RF | Opus final GB | Opus final RF |
|---|---|---|---|---|
| Training: 100 + 100 pages | ||||
| Blocks 8, no buffer | 0.650 | 0.643 | 0.602 | 0.607 |
| Blocks 8, buffer 5 fakes only (current) | 0.646 | 0.651 | 0.611 | 0.611 |
| Blocks 8, buffer 5 both | 0.662 | 0.683 | 0.612 | 0.637 |
| 5 parts, buffer 10 both | 0.643 | 0.656 | 0.609 | 0.620 |
| 5 parts, buffer 20 both | 0.645 | 0.646 | 0.594 | 0.616 |
| Training: 55 + 55 pages | ||||
| Blocks 8, no buffer | 0.583 | 0.584 | 0.540 | 0.548 |
| Blocks 8, buffer 5 fakes only (current) | 0.586 | 0.599 | 0.552 | 0.574 |
| Blocks 8, buffer 5 both | 0.589 | 0.608 | 0.557 | 0.576 |
| Blocks 8, buffer 10 both | 0.590 | 0.616 | 0.560 | 0.580 |
| Blocks 16, buffer 5 both | 0.583 | 0.578 | 0.546 | 0.549 |
| Blocks 16, buffer 15 both | 0.590 | 0.594 | 0.563 | 0.564 |
| 5 parts, buffer 10 both | 0.579 | 0.591 | 0.561 | 0.571 |
| 5 parts, buffer 30 both | 0.565 | 0.574 | 0.544 | 0.556 |
Distinguishability (AUC) for each split, mean over seeds 401–406. GB is gradient boosting, RF is random forest. "On both" also removes manuscript pages near the test pages from training. "5 contiguous parts" cuts the manuscript into five consecutive parts. Compare rows within the same training size (values are lower overall in the 55-page rows).
Comparing the two halves of the table, going from 55 to 100 training pages of each kind raises the values by 0.04–0.07 under the same split. The amount of training mattered far more than the split.
Manuscript pages cannot be increased (193 pages have 50 words or more, and about 154 per fold are available for training). Fake pages, however, can be generated in any number by changing the seed. So, keeping the current yardstick (blocks of eight, buffer of five on the fake side), we changed the amount of training in two directions.
Number of fake pages used for training (per fold) against distinguishability (AUC). The vertical line marks the amount in the current final exam (about 111 pages). The dotted line at 0.5 means "indistinguishable". Further right, more fake pages from other seeds have been added. GB is gradient boosting, RF is random forest.
| Fake pages | Start GB | Start RF | Opus GB | Opus RF | Opus regr. |
|---|---|---|---|---|---|
| 39 | 0.581 | 0.594 | 0.548 | 0.567 | 0.526 |
| 55 | 0.608 | 0.614 | 0.571 | 0.588 | 0.537 |
| 77 | 0.641 | 0.639 | 0.598 | 0.608 | 0.531 |
| 94 | 0.669 | 0.662 | 0.615 | 0.624 | 0.539 |
| 111 (current exam) | 0.690 | 0.683 | 0.643 | 0.647 | 0.540 |
| 221 (2×) | 0.709 | 0.700 | 0.667 | 0.669 | 0.544 |
| 332 (3×) | 0.735 | 0.713 | 0.692 | 0.683 | 0.542 |
| 442 (4×) | 0.726 | 0.722 | 0.708 | 0.698 | 0.550 |
| 664 (6×) | 0.742 | 0.732 | 0.721 | 0.700 | 0.564 |
| 885 (8×) | 0.746 | 0.740 | 0.727 | 0.711 | 0.552 |
The same values as the figure (mean of six runs). The left column is the number of fake training pages per fold. The regression barely moves at any amount.
In short, no large leak remains in the Chapter 39 yardstick. But the classifiers were shown too few fake pages, which made the models look harder to distinguish than they are. With eight times the fake pages, even the Opus final is distinguished at 0.73, and the difference from the manuscript is still clear.
Chapter 29 measured a 15th-century Venetian recipe book and a herbal printed in 1522. We wanted more handwritten medical texts from 15th-century northern Italy, but the Italian corpus of medieval medical texts (ReMediA, OVI) was unreachable because of a server problem. We therefore wrote to Prof. Ilaria Zamuner (University of Chieti-Pescara), who co-directs ReMediA. She kindly provided seven critical editions prepared by herself and her colleagues, and agreed that we may publish the values and cite the editions. The texts and PDFs themselves are not published.
| Text | Words | Adjacent | z | Same | 1-glyph | h2 |
|---|---|---|---|---|---|---|
| Voynichearly 15th c. (vellum) | 34,859 | 1.24 | +11.3 | 1.34 | 1.21 | 2.24 |
| Two recipe books, New Haven, Cushing/Whitney ms. 52late 13th c., Florence · recipes | 7,630 | 0.87 | -1.9 | 0.88 | 0.87 | 3.06 |
| Recipe book, Ravenna, Classense ms. 215, sections A and C15th c., Catalan (with Latin) · recipes | 16,334 | 0.65 | -4.5 | 0.45 | 1.03 | 3.30 |
| Same, section B15th c., Tuscan (with Catalan) · recipes | 4,286 | 0.30 | -5.0 | 0.12 | 0.57 | 3.17 |
| Bruno, Chirurgia magna, Bergamo MA 501mid-15th c., eastern Lombard · surgery | 69,846 | 0.41 0.38–0.44 | -11.5 | 0.15 | 1.24 | 3.04 |
| Almansore (Rhazes, translated)14th c., Florence · medicine | 232,875 | 0.52 0.38–0.68 | -9.3 | 0.33 | 0.82 | 3.11 |
| Roger Frugardi, Chirurgia, BNCF Conv. Soppr. B.3.1536late 14th c., western Tuscan · surgery | 25,729 | 0.64 | -7.1 | 0.41 | 1.04 | 3.13 |
| Same work, Riccardiana 2163Tuscan · surgery | 29,247 | 0.78 | -4.9 | 0.52 | 1.08 | 3.11 |
| Ref.: Venetian recipe book (Ch. 29)15th c., Venetian · recipes | 7,253 | 0.51 | -4.1 | 0.18 | 1.12 | 3.10 |
Ratios to chance ("adjacent" = share of words with a word differing by at most one glyph 1–2 positions earlier, split into "same" and "1-glyph"). z is the deviation from chance (within-page shuffle). For long texts, the small numbers under "adjacent" give the minimum and maximum across sections.
In short, adding seven northern Italian and Tuscan recipe books, surgeries and medical treatises still yields no medieval text in which both identical and one-glyph-different words cluster next to each other. Identical repeats, in particular, are clearly avoided in all of them. This property of the Voynich cannot be explained by its genre (recipe or medical text) or by northern Italian origin.
Sources: I. Zamuner – E. Ruzza, I ricettari del codice 52 della Historical Medical Library di New Haven (XIII sec. u.q.), Firenze, Olschki, 2017 / C. Lemme, Il ricettario del ms. 215 della Biblioteca Classense di Ravenna (ff. 93r-156v), Alessandria, Edizioni dell'Orso, 2022 / E. Ventura, La «Chirurgia Magna» di Bruno da Longobucco in volgare, Berlin/Boston, De Gruyter, 2020 / R. Piro, L'Almansore. Volgarizzamento fiorentino del XIV secolo, Firenze, SISMEL, 2011 / E. Artale – M. Panichella, “Un volgarizzamento toscano della Chirurgia di Ruggero Frugardo”, Bollettino dell'Opera del Vocabolario Italiano XV (2010), 227–98 / I. Zamuner, “Il volgarizzamento toscano della Chirurgia di Ruggero Frugardo nel codice 2163 della Biblioteca Riccardiana”, BOVI XVII (2012), 245–332. We thank Prof. Ilaria Zamuner for providing the editions and agreeing to the publication of the results.
Chapter 40 showed that classifiers shown too few fake pages make the model look harder to distinguish than it is. For the fourth overnight run we therefore switched the yardstick to the “pooled classifier”. It is trained on all fake pages from the six evaluation runs together, about six times as many fake pages as manuscript pages.
| Classifier | Start | Final | Diff. |
|---|---|---|---|
| Pooled: gradient boosting | 0.682 | 0.687 | +0.005 |
| Pooled: random forest* | 0.685 | 0.681 | -0.003 |
| Pooled: regression | 0.564 | 0.541 | -0.023 |
| 1×: gradient boosting | 0.629 | 0.628 | +0.000 |
| 1×: random forest* | 0.623 | 0.616 | -0.007 |
| 1×: with dispersion features* | 0.629 | 0.628 | -0.001 |
| 1×: regression | 0.539 | 0.529 | -0.010 |
| Chapter 32 classifier | 0.565 | 0.548 | -0.017 |
Distinguishability (AUC) in the final exam, mean of six seeds. 0.5 means indistinguishable. * = classifiers never used in any search. Bold: values that moved by 0.02 or more. Pooled values vary by about 0.01–0.02 per seed.
| Search start | Search final | Unused start | Unused final | |
|---|---|---|---|---|
| O (lower is better) | 0.6400 | 0.6150 | 0.6397 | 0.6243 |
| Pooled: regression | 0.536 | 0.517 | 0.562 | 0.526 |
| Pooled: gradient boosting | 0.703 | 0.689 | 0.702 | 0.706 |
| Penalty | 0.020 | 0.012 | 0.008 | 0.008 |
From the explorer's report. “Search” = search seeds (101–106); “Unused” = seeds never used for selection (113–118). Values on the search seeds (101–106) are optimistic because the final was chosen among many candidates (winner's curse). The unbiased comparison is the “unused seeds” (113–118) columns.
In short, the fourth search could not lower the tree classifiers by tuning settings. Instead, it became clear why they do not move: model pages resemble their neighbours too closely and lack page-specific novelty, and strong classifiers see this difference spread across many features. What is needed next is not more tuning but a mechanism that gives each page manuscript-like novelty, and a way of comparing candidates that is not swamped by seed noise.