The Voynich Ninja

Full Version: Inside the Voynich Network: graph analysis
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6
(28-10-2025, 05:15 PM)Mauro Wrote: You are not allowed to view links. Register or Login to view.The same graph also brings me to re-evaluate Torsten Timm's work, because it's undeniable it's plotted 'near' the VMS, while its shuffled version is far away.

The T&T generator is vaguely similar to a high-order word-based Markov model, so it naturally mimics the long-range correlations (up to 4 words apart and more) of the target language.  An English-based version of the T&T output (or of an order-3 Markov) should plot close to real English too, while their shuffled versions would plot far from it.
Mauro, thank you for the compliments.

You got it right, the co-ocurrence graph has been created with a window of 5 tokens.

Now I have some more tests to carry on:

- see the differences with different windows
- create the graph taking into account the paragraphs. I think this is important because my opinion is that the window of 5 should not take into account words from the next paragraph. This will reduce the edges and I am curious to see how different the graph KPI will be
- I will post also graphs KPI for languages A and B

Regarding the differences between texts of the same language, I think the graphs can help separating styles or themes of the texts. I will try to continue testing more texts.

If anyone has any suggestion, I am open to try it through.
I’ve run the co-occurrence graphs for window sizes from K = 1 up to 10 on the same four corpora: Alchemical Herbal Latin, Tirant lo Blanch, Torsten Timm’s generated text, and the Voynich Manuscript.
The global behaviour is smooth across all K, and most indicators move monotonically: clustering grows, path length shortens, modularity declines. Yet the Voynich keeps its peculiar position: extremely small-world at every scale, moderately modular, and lower in entropy.

CorpusKCσModularityH_mean
AlchemicalHerbalLatin10.55086.670.4242.41
20.55086.670.4272.41
30.62060.860.3732.94
50.68039.450.3033.59
70.70729.470.2594.01
100.72921.360.2234.44
Tirant_lo_Blanch10.637169.750.2352.79
20.637169.750.2392.79
30.680119.960.1963.30
50.71678.990.1553.93
70.72959.490.1364.33
100.73943.820.1214.74
TorstenTimm10.610144.110.1422.99
20.610144.110.1422.99
30.664109.020.1303.48
50.70676.330.1134.09
70.72560.250.1074.47
100.73946.540.1034.87
Voynich10.535410.180.2812.50
20.535410.180.2842.50
30.615307.830.2673.02
50.674201.410.2373.68
70.698152.950.2324.11
100.717115.740.2234.56

Across all corpora, increasing K makes the graph more tightly connected and less modular, but the Voynich keeps its distinct profile. Its small-world index is several times larger than any other text at every scale, and even at K = 10 it remains roughly twice that of the closest competitor. Clustering converges around 0.7 for all, yet Voynich begins lower and catches up only slowly. Modularity drops from 0.28 to 0.22, remaining midway between the natural languages and the Timm generator. Entropy grows with K as expected, but the Voynich still shows lower H_mean and a higher proportion of deterministic transitions.

The K-sweep reinforces the pattern seen before: the Voynich network is not random, but its combination of high connectivity, modest modularity, and low entropy makes it stand apart from both natural language and algorithmic texts.
I also repeated the Voynich run for K = 5, this time restricting co-occurrence windows to stay within paragraph boundaries, so that tokens at the end of one paragraph don’t link to those at the beginning of the next (note that in the previous results, the window could cath words from the next paragraph; in this run, I avoided this). The difference is subtle but measurable across several KPIs.

SettingNodesEdgesCσModularityavg_degreekcore_maxdegree_giniH_mean
Voynich (K=5)87441307970.674201.410.23729.91850.6213.68
Voynich (K=5, paragraph-limited)83241153940.712219.290.22827.73820.6514.28

Confining the windows within paragraphs slightly reduces the network size and density, but the structure becomes more tightly clustered (C rises from 0.67 to 0.71) and even more small-world (σ ≈ 219 vs. 201). Restricting co-occurrences within paragraphs increases clustering while keeping path lengths comparable, which numerically raises σ. In practice, this means the network becomes more locally cohesive rather than globally more efficient. The degree distribution flattens a bit (higher Gini), and modularity remains stable. Mean entropy increases (which is expected, as limiting context makes each local neighbourhood less diverse, reducing the smoothing effect of cross-paragraph transitions).

Limiting co-occurrences to within paragraphs makes the Voynich network smaller but more internally cohesive: words cluster more tightly inside paragraphs, paths stay short, and entropy rises as each section becomes more self-contained and less connected to the rest of the text.

The overall picture suggests that paragraph boundaries act as real topological separators in the Voynich text. When preserved, they sharpen the internal cohesion of each component while still keeping the global small-world pattern intact, reinforcing the impression of a text with strong local repetition and high global connectivity.

I am now re-running more text comparisons, even with language A and language B corpus (the Currier one's, not my topic modeling ones). I will try to post the results toorrow.
To compare the Voynich Manuscript with ordinary texts and Voynich languages A and B, I built word–co-occurrence graphs (window of 5 tokens) for each corpus (≈20,000 tokens each, except Voynich A ≈11,000 as it does not have more). I have detected that the metrics depend too much from the graph size (nodes) so I built this comparison with similar length texts.

For every graph I computed key network metrics: clustering ©, path length (L), small-worldness (σ), degree inequality (Gini), eigenvector concentration, and resilience under targeted attacks. As said, all texts were normalized in size to make the metrics comparable.

Here are the results:

CorpusCLσGini degEigen conc.Resilience ½
LA In Psalmum Exposito0.632.484.400.550.00310.22
FR La reine Margot0.692.263.030.620.00560.21
VOY Marco's Markov0.652.463.190.620.00310.22
EN Romeo and Juliet0.702.262.840.630.00530.23
DE Simpl. Simpl.0.672.353.430.600.00390.21
Voynich EVA0.662.603.950.580.00370.18
Voynich EVA A0.652.564.180.530.00420.18
Voynich EVA B0.672.583.600.590.00440.17
T.Timm0.682.242.780.630.00690.24
CA Tirant lo Blanch0.702.123.000.620.00850.22
Voynich CUVA0.652.654.150.570.00330.18
LA De docta ignorantia0.642.313.280.600.00630.26
ES Lazarillo0.712.193.470.580.00790.19
Naibe Cipher0.622.333.230.580.00400.29
VI Vietnamese Stolfi0.672.162.200.620.00630.31

What we can see:

- All Voynich sections have higher σ (small-worldness) than ordinary texts, meaning stronger local clustering and weaker global connectivity (Note: in this calculation, the small-world coefficient σ was computed against degree-preserving random graphs, not simple Erdős–Rényi graphs. This means each random control graph keeps the same degree distribution as the original, making σ more reliable for linguistic networks. That's why the values are lower than in previous posts)
- Average path length L is slightly longer: information (or adjacency) travels less efficiently across the graph, suggesting that the network is more fragmented into local clusters with fewer bridging links connecting them.
- Degree Gini is lower: no strong “hub” tokens comparable to function words in real languages, indicating a more uniform connectivity pattern where all nodes share similar importance instead of a few dominating the network.
- Eigenvector concentration and resilience are both lower: influence and robustness are evenly spread rather than hierarchical, implying that the network lacks dominant central nodes and would fragment quickly if connections were removed.

I show here a couple of plots:

[attachment=11854][attachment=11853][attachment=11852]

Natural languages form networks with a few highly connected function words and many peripheral ones.
The Voynich graphs are more uniform and modular: dense local clusters, few bridges, and a fragile large-scale structure.

As deduced throughout the thread, this pattern fits a system built from repetitive combinational rules rather than a natural linguistic process, with structural dependencies extending across at least five-token window rather than just immediate bigram links.
Can you please update with the new data also the two graphs you posted before, ie. in post You are not allowed to view links. Register or Login to view.  (labelled Modularity vs. Character entropy h1, and Modularity vs. conditional entropy H1)? Possibly with shuffled Voynich too, for reference. Thanks in advance!
(30-10-2025, 01:17 PM)Mauro Wrote: You are not allowed to view links. Register or Login to view.Can you please update with the new data also the two graphs you posted before, ie. in post You are not allowed to view links. Register or Login to view.  (labelled Modularity vs. Character entropy h1, and Modularity vs. conditional entropy H1)? Possibly with shuffled Voynich too, for reference. Thanks in advance!

Hello Mauro, I am working on it. I am trying to find a normalization for the KPI's, so we can compare different texts with different number of tokens, as some KPI are node dependent. That's why some texts in the same language were so apart. I am trying to get normalized data to compare as much different text as we can.
Hi, very interesting work. Could you try for me Portuguese? Maybe even a special text in old Portuguese?
(30-10-2025, 11:52 PM)Kaybo Wrote: You are not allowed to view links. Register or Login to view.Hi, very interesting work. Could you try for me Portuguese? Maybe even a special text in old Portuguese?

Hi Kaybo,

please provide the texts that you want me to analyze.

Thank you Smile
(30-10-2025, 11:52 PM)Kaybo Wrote: You are not allowed to view links. Register or Login to view.Could you try for me Portuguese?

Quimqu already tested You are not allowed to view links. Register or Login to view..  Would those do?
Pages: 1 2 3 4 5 6