Every analysis begins with a registry maintained by a human rights organization that documents political prisoners. We encode the registry as a formal knowledge graph, run unsupervised community detection on the charge co-occurrence data, and test for structural breaks using permutation null models. The algorithm is not told what to look for. It finds the patterns the charging data contains.
Each entry below is a country, a dataset, and a finding.
What a Knowledge Graph Found in 1,172 Cuban Charge Sheets
The algorithm found two entirely separate charging regimes that never overlap. Regime A is a street-protest bundle: Contempt, Public Disorder, Assault, and Resistance, charged together as a boilerplate package. Regime B is a single standalone charge (Sedition) applied to a different population. The state sorts its prisoners into categories. The categories are invisible in any individual case file.
What a Knowledge Graph Found in 7,111 Russian Prosecution Records
The most significant structural breaks in Russia's charging architecture are 2017 (p=0.046) and 2019 (p=0.010), not the 2022 invasion. The apparatus was already built. The war scaled it. Three regimes operate in parallel: wartime speech offenses (Art. 207.3, 280.3), organizational persecution (Art. 282.2, 205.5), and a street-protest bundle structurally identical to Cuba's Regime A.
What a Knowledge Graph Found in 3,829 Belarusian Charge Sheets
The grinder does not distinguish. Belarus's charging structure is continuously homogenizing: modularity dropped from 0.26 (2020) to 0.07 (2024). Every year since 2020 is a statistically significant structural break (all p=0.005). In 2025, Art. 361-4 (promoting extremism) overtook Art. 342 (public disorder) as the primary charge for the first time, signaling a pivot from protest suppression to organizational persecution.
Three countries. Three patterns. One method.
Each pattern was found by the same unsupervised algorithm on the same type of data. None was hypothesized in advance. The method does not impose a framework on the data. It reads the framework the data contains.
| Country | Pattern | Structural signature | Key article |
|---|---|---|---|
| Cuba | Two static regimes | Charge stacking (3.0x lift) | Sedición |
| Russia | Discrete ratchet | Single-charge (85%) | Art. 207.3 |
| Belarus | Continuous grinder | Q: 0.26 → 0.07 | Art. 342 |
A technique that finds structure in one dataset could be overfitting. A technique that finds different structures in three datasets from three legal traditions is measuring something real.
The first non-European-legal-tradition case in the framework. Myanmar's Penal Code charges (Section 505A, 124A) and Anti-Terrorism Law prosecutions represent a fundamentally different legal architecture. If the same unsupervised method finds charging regimes in a Burmese military tribunal dataset, the methodology is system-agnostic.
Foro Penal's registry of political detentions since 2014 includes the post-July 2024 mass detention wave (1,315 verified arbitrary detentions). The revolving-door pattern and ongoing ICC preliminary examination make the charge-pattern evidence directly relevant to submissions to the Office of the Prosecutor.
A NATO member, still in the Council of Europe, subject to ECtHR jurisdiction, with 150,000+ purged post-2016. Anti-terror law charges, Art. 299 (insult to president), and Gulenist organizational membership. The same structural pattern found in Russia and Belarus, inside a Western alliance member.