> ## Content Index
> Fetch the complete content index at: https://www.traceoriginresearch.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# What a Knowledge Graph Found Across Five Authoritarian Systems, One Million Soviet Records, and the Six Categories of Political Prosecution That Keep Coming Back
- URL: https://www.traceoriginresearch.com/what-a-knowledge-graph-found-across-five-authoritarian-systems-one-million-soviet-records-and-the-six-categories-of-political-prosecution-that-keep-coming-back/
- Published: 2026-09-05T21:21:10.000Z
- Updated: 2026-10-04T19:06:31.000Z
- Author: Eric Brattin
- Tags: Russia

Trace Origin LLC · Comparative Analysis

**Legal note.** This report is a structural analysis of publicly available datasets. It documents patterns in charge co-occurrence, not individual culpability. No individual or entity is accused of any crime. SKOS charge-to-ICCPR mappings and Soviet-to-modern article equivalences are analyst judgments, not legally reviewed determinations. All names of political prisoners, sanctioned individuals, and deceased persons were previously published by the cited sources (Memorial, OVD-Info, BBC, RFE/RL, ICIJ, OFAC, UK FCDO). References to extrajudicial killings cite publicly documented cases covered extensively by international media. The offshore financial analysis documents corporate registry records and graph topology, not financial flows. Entity resolution is probabilistic, not determinative. This report does not constitute legal advice and should not be used as the basis for legal proceedings. Published by Trace Origin LLC (New Mexico). Governing law: State of New Mexico. 

1.06M SOVIET RECORDS 7,132 MODERN CASES 5 COUNTRIES 20 SKOS MAPPINGS 6 CATEGORIES 0 CONVICTIONS OVERTURNED SOVIET UNION · RUSSIA · BELARUS · CUBA · MYANMAR LOUVAIN + SKOS + OWL + FELLEGI-SUNTER 

1,056,670 Soviet records · 7,132 modern records · one method

## The article numbers changed. The charging categories were *reconstructed.*

This analysis asked whether the Russian state's political prosecution system preserves structural continuity with the Soviet system it officially replaced. We built a formal knowledge graph from two datasets spanning 100 years, applied identical computational methods to both, connected them through a hand-built semantic vocabulary, and then ran the same pipeline on Belarus, Cuba, and Myanmar to test whether the patterns are Russian, post-Soviet, or universal to authoritarianism.

The 1996 RF Criminal Code represented a legal rupture with Soviet-style explicitly political criminalization. The Soviet speech offenses (Art. 70 anti-Soviet agitation, Art. 190-1 fabrications, Art. 142 religious instruction) were not carried forward. But ordinary national-security offenses were retained from the start: Art. 205 (terrorism), Art. 275 (treason), Art. 276 (espionage), Art. 278 (violent seizure of power), Art. 279 (armed rebellion), Art. 282 (incitement of hatred, in narrower form than today) were present in the 1996 code as originally enacted. Over the following twenty-five years, these residual security offenses were broadened and new extremism, organizational, protest, separatism, historical-memory, and wartime-expression provisions were added or repurposed in ways that recreated much of the functional repertoire formerly supplied by Soviet political offenses.

The Soviet system bundled all six functional categories into one undifferentiated charging community (Louvain Q=0.29); the modern Russian system separates them into three specialized clusters (Q=0.473). An institutional mechanism is one candidate explanation for the rigid separation: Russian criminal procedure (Art. 151 UPK RF, *podsledstvennost*) partitions investigative jurisdiction by statute. Terrorism and treason (Arts. 205, 275) belong to the FSB Investigative Directorate and are tried in military courts. Extremist speech (Arts. 280, 282, 207.3, 354.1) belongs to the Investigative Committee (SKR) and is tried in civilian district courts. Protest offenses (Arts. 212, 318) are split between SKR and the Ministry of Internal Affairs. Because investigators are evaluated under departmental quota metrics (the *palochnaya sistema*) and rarely share cases across agency silos, the charge co-occurrence graph plausibly splits along jurisdictional lines (Solomon, 1996; Paneyakh, 2014; Hendley, 2017). This is a hypothesis the modularity structure is consistent with, not one the graph alone proves.

Belarus (Q=0.16) looks more like the Soviet system than modern Russia does. Myanmar independently developed the same speech/terrorism separation. Cuba's charge-stacking strategy produces an entirely different topology. The six functional categories recur across all five authoritarian systems examined here, which span different historical periods and legal traditions. Five hand-selected cases cannot establish this as a universal property of authoritarianism; what they can show is that these specific state-defined threat domains produce recurrent patterns of criminalization across all five systems in this comparison.

The Soviet system executed 170,838 people by formal state decree, approximately 85-90% by extrajudicial NKVD troiki and dvoiki under Order 00447 and the National Operations, the remainder by Military Tribunals and the Military Collegium of the Supreme Court. Russia has maintained a moratorium on judicial executions since the 1990s; capital punishment remains in the Criminal Code (Art. 59), with its application blocked by Constitutional Court ruling. The post-Soviet state rehabilitated 577,938 victims under the 1991 Law on Rehabilitation of Victims of Political Repression; there is no analogous formal mechanism in the modern system for persons convicted under post-Soviet political prosecution articles. Memorial, the organization that documented the Soviet crimes, was liquidated by the Supreme Court in late 2021 and awarded the Nobel Peace Prize in 2022.

Several deaths of modern Russian opposition figures and critics are commonly cited together, but they have different evidentiary and legal status: the Litvinenko case (2006) produced a UK public inquiry finding that the operation was "probably approved" by Putin and Patrushev; the Politkovskaya (2006) and Nemtsov (2015) murders resulted in convictions of the perpetrators but unresolved questions over commissioning; Navalny (2024) died in state custody at IK-3 under circumstances that have generated credible state-responsibility allegations but no adjudicated finding. These are different kinds of evidence and should not be bundled together as a single category.

Within the modern system, 48 prosecutions in the OVD-Info dataset targeted children as young as 14\. The substantive Criminal Code provisions applied to these minors are the same as those applied to adults. Russian criminal procedure contains Chapter 50 (UPK RF), which establishes special rules for proceedings against minors (detention, counsel, legal representatives, questioning, severance, circumstances to establish). Whether those statutory safeguards were observed in these 48 cases is a separate empirical question requiring case-file analysis.

The offshore financial infrastructure (Consulco International, incorporated 1993) that facilitates state-adjacent asset concealment was established in the immediate post-Soviet period, though our probabilistic matching of Panama Papers officers against sanctions lists returned no confirmed Soviet-to-modern connections. The prosecution system and the financial system are two views of the same apparatus: the state criminalizes its citizens' engagement with foreign structures while its own officers operate within them.

The Soviet dataset (Memorial, 1917-1991) contains 1,056,670 records of political repression victims, streamed from an archive of 18,973 JSON files. Charges were extracted from unstructured Russian free-text biographies using regex parsing. Article numbers could be extracted from 218,096 records (20.6%). The remaining records include large bodies of administrative and extrajudicial repression (troika proceedings, deportations, special settlements, operational-order cases) but absence of an extractable article number does not itself demonstrate that no criminal provision was involved: alternative explanations include biography brevity, archival incompleteness, pre-1934 article numbering changes, abbreviation conventions, and parsing failures. Accordingly, 20.6% is the observed coded subset, not an estimate that 79.4% of Soviet repression occurred outside criminal law. The modern Russian dataset (OVD-Info, 2012-2025) contains 7,132 prosecutions encoded as 217,814 RDF triples in a BFO-aligned OWL ontology. The two datasets were connected through 20 hand-built SKOS mappings linking RSFSR Criminal Code articles to their modern RF equivalents across six functional categories: speech, organizational, terrorism, treason, protest, and religious.

We then applied the same Louvain community detection algorithm to charge co-occurrence in both datasets. The question was whether the same charging logic produces the same community structure under a completely different legal code. The question was answered at multiple levels.

At the structural level: the categories survived but the architecture differentiated. The Soviet system produced one dominant community of 70 articles (Q=0.29), where speech, terrorism, organizational, and protest charges all appeared together on the same defendants. The modern Russian system separates them into three specialized clusters (Q=0.473): speech crimes in one track, terrorism in another, organizational prosecution in a third. Excluding the Great Terror years (1937-38, 487,277 records) does not change the Soviet structure, confirming the finding is robust and not an artifact of assembly-line charging.

At the comparative level: the six functional categories are not uniquely Russian. Belarus (12,199 prosecutions, Q=0.16) has the same categories with even lower differentiation than the Soviet system. Myanmar (31,824 arrests, Q=0.25) independently developed the same speech/terrorism separation Russia has, using two parallel legal instruments. Cuba (2,130 prisoners, 17 fragmented communities) stacks charges instead of simplifying them, producing an entirely different graph topology. The six functional categories recur across all five authoritarian systems examined here, which span different historical periods and legal traditions. What distinguishes Russia is not inheritance of specific Soviet articles (the 1996 code represented a legal rupture that was partially reconstructed) but the high-modularity bureaucratic specialization (Q=0.473) that developed over the subsequent twenty-five years. Belarus and the Central Asian republics (Kazakhstan, Uzbekistan, Tajikistan, Turkmenistan) also retained or reconstructed the same six categories, often copy-pasting Russia's extremism statutes via CIS model legislation. But Belarus operates at Q=0.16 (undifferentiated), not Q=0.473 (specialized). What distinguishes Russia is not that it uniquely reconstructed the categories, but that it uniquely developed a high-modularity bureaucratic specialization in the subsequent decades.

At the temporal level: the continuity was not inherited. It was convergent. The RF Criminal Code was deliberately cleaned of political prosecution tools in 1996\. Between 1996 and 2004, during the period of maximum Western institutional leverage (ECHR membership, Council of Europe, WTO negotiations), the code largely lacked instruments for political prosecution. As those constraints fell away, each crisis produced a legislative response that independently recreated a Soviet-era category: extremism amendments after the apartment bombings (2002), terrorism expansion after Beslan (2006), protest restrictions after Bolotnaya (2012), separatism after Crimea (2014), wartime speech crimes after the invasion (2022). The wartime articles were enacted seven days after Russia's Council of Europe representation was suspended (February 25 to March 4, 2022).

At the institutional level: the legal codes are the visible output; the security services are a plausible mechanism of transmission. The FSB is institutionally descended from Soviet security organs (KGB and its predecessors) and considers itself their direct successor. Specific desk-level or unit-level organizational genealogy from the KGB's Fifth Directorate (dissident speech) to the FSB's Center for Information Security (TsIB, which handles some modern internet-era political speech work) would require archival/organizational evidence beyond what is cited here. Institutional continuity exists at the level of the security-service apparatus; the operational culture that applied Article 58 and the operational culture that applies Article 280 are embedded in the same lineage, even if specific units and personnel cannot be directly traced across the 1991 break.

At the severity level: the Soviet system was the most egregious by every metric the data supports. 170,838 people were executed by formal state decree (judicial and extrajudicial), 16.2% of all records. Extrajudicial troiki operated under pre-assigned regional execution quotas with no defense counsel, processing dozens of cases per session. The dekulakization campaign displaced 1.8 million people by administrative order. The scale is incomparable to any other system in this analysis. Myanmar's junta executed four political activists in July 2022 (Kyaw Min Yu, Phyo Zeya Thaw, Hla Myo Aung, Aung Thura Zaw) following military tribunal death sentences, demonstrating that formal state execution of political prisoners is not confined to the Soviet case in this comparison, though the volumes are categorically different. Myanmar is currently the most lethal active system (5,600+ killed since the 2021 coup), mostly through military violence rather than court sentences. Russia maintains a moratorium on judicial execution (capital punishment remains in Art. 59 of the Criminal Code; Constitutional Court ruling blocks application). Several deaths of modern Russian opposition figures and critics have been attributed to the state with varying evidentiary status (see opening paragraph for the Litvinenko/Politkovskaya/Nemtsov/Navalny distinctions). The prosecution system documented here is the visible layer, designed to perform legality. Guriev and Treisman call this the "spin dictator" model: the appearance of law is the product.

At the human level: 48 prosecutions in the modern Russian dataset targeted children as young as 14\. The substantive Criminal Code provisions applied are the same as for adults. Russian criminal procedure contains Chapter 50 (UPK RF), which establishes special rules for proceedings against minors (detention, counsel, legal representatives, questioning, severance, specific circumstances to establish). Whether those statutory safeguards were observed in these 48 cases, and whether terrorism and national-security prosecutions of minors are compatible with Russia's CRC and ICCPR obligations, are empirical questions requiring case-file analysis. 12 of the 48 are currently imprisoned. Six face charges that raise potential incompatibility with non-derogable ICCPR rights (Art. 18, freedom of conscience). Memorial documented 427 child prosecutions since the invasion using separate methodology, suggesting OVD-Info's 48 is the floor. The Soviet system rehabilitated 577,938 victims under the 1991 Law on Rehabilitation, which Satter characterized as bureaucratic restoration rather than genuine reckoning. There is no analogous formal rehabilitation mechanism in the modern system for persons convicted under post-Soviet political prosecution articles. The organization that documented the Soviet crimes was liquidated by the Supreme Court in late 2021 and awarded the Nobel Peace Prize in 2022.

At the financial level: the same offshore infrastructure serves both eras. Consulco International, the Cypriot firm that services sanctioned oligarchs and FSB-connected entities (3,168 shell entities in the Panama Papers), was incorporated in 1993, two years after the Soviet collapse. The state criminalizes its citizens' engagement with foreign economic structures while its own officers use those same structures to conceal assets. Our Fellegi-Sunter probabilistic matching of Panama Papers officers against OpenSanctions (5,246 officers vs 266,211 sanctioned names) returned zero confirmed matches linking Soviet-era shells to currently sanctioned Russians. The relevant dataset (ICIJ Cyprus Confidential) is not publicly available for bulk analysis. The structural argument is supported by investigative journalism. The graph analysis did not independently confirm it. We state this because negative findings are findings.

**The Soviet dataset** (Memorial, 1917-1991) contains 1,056,670 records of victims of political repression, streamed from a 308 MB archive of 18,973 JSON files hosted on S3\. Each record is a free-text Russian biography with no structured charge field. We wrote regex parsers to extract RSFSR Criminal Code article numbers (after "ст."), charge descriptions (after "обв.:"), sentences (after "Приговор:"), arrest dates, birth years, execution markers ("расстрелян," "ВМН"), and rehabilitation status from unstructured text. 218,096 records (20.6%) yielded article numbers. The remaining records include substantial bodies of administrative and extrajudicial repression (OGPU/NKVD troiki, dekulakization and special settlement orders, national operations under Order 00447, dvoiki deportations), but the parsing miss rate is not itself evidence that no criminal provision was involved in those cases: alternative explanations include biography brevity, archival incompleteness, pre-1934 article renumbering (1922, 1926, 1960 codes), abbreviation conventions (КРД, СОЭ, ЕК-26), and parsing failures on malformed source text. 20.6% should be read as the observed coded subset, not as an estimate that exactly 79.4% of Soviet repression occurred outside criminal law. 170,838 people were executed (16.2% of all records). 577,938 were formally rehabilitated (54.7%). Article 58-10 (anti-Soviet agitation and propaganda) appeared in 105,402 cases, making it the single most common charge across 74 years of Soviet political prosecution.

**The modern dataset** (OVD-Info, 2012-2025) contains 7,132 politically motivated criminal prosecutions, encoded as 217,814 RDF triples in a BFO-aligned OWL ontology with a SKOS charge vocabulary mapped to ICCPR provisions. We ran Louvain community detection on charge co-occurrence (which Criminal Code articles appear together on the same person), permutation-tested structural breaks across candidate years, computed ICCPR violation counts per prosecution, identified 48 child prosecutions (approximately 45 unique persons, youngest age 14), extracted geographic clustering from prosecution locations, mapped co-defendant relationships, and defined OWL classes for inferencing (ChildPoliticalPrisoner, FaciallyIncompatibleChildDetention, CrossBoundaryProsecution, TerrorismChild).

**The bridge** is a hand-built SKOS vocabulary of 20 mappings linking RSFSR Criminal Code articles to their modern RF equivalents across six functional categories: speech (Art. 58-10 to Art. 280/354.1), organizational (Art. 72 to Art. 282.1/282.2), terrorism (Art. 58-8 to Art. 205), treason (Art. 64 to Art. 275), protest (Art. 190-3 to Art. 212/318), and religious (Art. 227 to Art. 205.5). Three SKOS relation strengths encode the precision of each mapping: exactMatch for near-verbatim statutory language (Art. 68 sabotage (diversiya) to Art. 281 sabotage), closeMatch for functional equivalents (Art. 58-10 agitation to Art. 280 extremist calls), and relatedMatch for thematic parallels (Art. 88 currency violations to Art. 284.2 calls for sanctions, the weakest mapping).

**The comparison.** We ran Louvain community detection on charge co-occurrence in both datasets. The Soviet system produced 4 communities with low modularity (Q=0.29): one dominant community of 70 articles containing speech, organizational, terrorism, and uprising charges all bundled together. The modern system produced 6 communities with higher modularity (Q=0.473): speech crimes in one cluster (Art. 280, 282, 354.1, 207.3), terrorism in another (Art. 205, 205.3, 205.4, 222), organizational prosecution in a third (Art. 282.2, 205.5, 275), and protest charges in a fourth (Art. 212, 318). The Soviet system's single undifferentiated community split into three specialized modern clusters when traced through the SKOS mappings. The dominant co-occurrence pair shifted from speech + organization (Soviet: Art. 58-10 + 58-11, 1,619 cases) to terror training + terror organization (modern: Art. 205.3 + 205.4, 227 cases).

**The rupture and the reconstruction.** The RF Criminal Code enacted on 1 January 1997 represented a legal rupture with Soviet-style explicitly political criminalization. Art. 58 had been abolished in 1960 during de-Stalinization; the 1996 code did not carry forward its 1960-era successors (Art. 70 anti-Soviet agitation, Art. 190-1 fabrications, Art. 142 religious instruction). But ordinary national-security offenses were present from the start: the 1996 code as originally enacted contained Art. 205 (terrorism), Art. 275 (treason), Art. 276 (espionage), Art. 278 (violent seizure of power), Art. 279 (armed rebellion), Art. 280 (public calls for extremist activity, in narrower form) and Art. 282 (incitement of hatred, in narrower form). What was absent from the 1996 code was not national-security law as such, but the explicitly Soviet-style political offenses. Over the following twenty-five years, those residual offenses were broadened and new provisions (Art. 282.1/282.2 extremist organization, 2002; Art. 212.1 repeated protest, 2014; Art. 280.1 separatism, 2014; Art. 354.1 rehabilitation of Nazism, 2014; Art. 207.3 and 280.3 wartime speech, 2022) were added or repurposed in ways that recreated much of the functional repertoire formerly supplied by Soviet political offenses. Each wave coincided with a specific political crisis (2002 extremism amendments after the apartment bombings and Second Chechen War; 2006 terrorism expansion after Beslan; 2014 protest and separatism restrictions after Bolotnaya Square and the Crimea annexation; 2017 Jehovah's Witnesses designation after years of administrative pressure; 2022 wartime speech articles after the invasion). The expansion occurred alongside Russia's deteriorating relationship with European legal institutions: PACE suspended Russian delegation voting rights in April 2014, Russia was expelled from the Council of Europe on 16 March 2022, and ECHR jurisdiction over Russian acts ceased on 16 September 2022\. The temporal association does not establish that weakening external constraints caused the legislation; domestic security policy, regime consolidation, specific political crises, and the 24 February 2022 invasion of Ukraine provide competing and interacting explanations. The March 4 wartime legislation was eight days after the invasion and seven days after the PACE suspension of Russian delegation rights; the invasion is the more immediate explanation. The strongest defensible claim is that specific legal instruments used for political repression were progressively broadened or reconstructed after the late 1990s, not that six categories disappeared and returned.

**The children.** 48 prosecutions against approximately 45 children under age 18 (CRC definition). 12 currently imprisoned. The youngest was 14 (terrorism and terror financing). 35 prosecutions occurred after the February 2022 invasion, a fivefold increase in annual rate. The substantive Criminal Code articles applied to these minors are the same as those applied to adults. Russian criminal procedure contains Chapter 50 (UPK RF), which modifies ordinary procedure for persons under 18 (detention rules, mandatory counsel, legal representatives, questioning conditions, severance of cases, specific circumstances the investigation must establish). The empirical question is whether those safeguards were respected in these 48 cases, and whether terrorism and national-security prosecutions of minors are compatible with Russia's CRC and ICCPR obligations. Children are overrepresented in terrorism charges (Art. 205: 9.2% for minors vs 2.8% for adults) and wartime speech charges (Art. 354.1: 15.8% vs 2.7%). Six child prosecutions raise potential incompatibility with non-derogable ICCPR rights (Art. 18, freedom of conscience). 17 probable co-defendant groups contain both minors and adults, with age gaps up to 60 years. Memorial documented 427 child prosecutions since the invasion (separate methodology), suggesting the OVD-Info figure is the floor.

**The connection.** The political prosecution pipeline and the offshore financial analysis (FSB officer cross-reference against ICIJ Panama/Pandora Papers, UK Companies House, Cyprus company registry) are not separate workstreams. Consulco International, the most significant intermediary in the offshore analysis (3,168 entities, services to sanctioned oligarchs), was incorporated in 1993, two years after the Soviet collapse. The Cypriot corporate services infrastructure that modern Russian intelligence officers use to conceal assets was established in the early 1990s as Soviet-era capital sought offshore destinations. Soviet Art. 88 criminalized citizens' engagement with foreign economic systems while the KGB operated through the same systems via front companies. Modern Art. 284.2 criminalizes calls for sanctions while Art. 354.1 (rehabilitation of Nazism) is applied to anti-war expression, and FSB officers use offshore structures in the same sanctioned jurisdictions. The legal prosecution of economic disloyalty and the economic infrastructure for capital flight are two sides of the same system, connected through the same island: Cyprus.

Analysis

Trace Origin LLC

Soviet data

Memorial (base.memo.ru)

Modern data

OVD-Info (7,132 records)

Method

Louvain + SKOS cross-mapping

1.06M

Soviet records  
Memorial (1917-1991)

218K

With article  
numbers extracted

170K

Executed  
(16.2% of records)

20

SKOS mappings  
Soviet to modern

SIX CATEGORIES OF POLITICAL PROSECUTION ACROSS FOUR CRIMINAL CODE VERSIONS RSFSR 1926 Art. 58 era RSFSR 1960 De-Stalinization RF 1996 NARROWER COVERAGE RF 2022 Reconstructed 58-10: Agitation 70: Anti-Soviet agit. 280/282 (narrower) 280, 354.1, 207.3 SPEECH 58-11: Anti-Soviet org 72: Org. activity added 2002 282.1/282.2 ORG 58-8: Terror acts 66: Terroristic act 205 (present, narrower) 205 (6 sub-articles) TERROR 58-1a: Treason 64: Betrayal 275 (present) 275: State treason TREASON Art. 59-2 (mass disorders) 190-3: Group actions 212 (present); 212.1 added 2014 212/318: Riots PROTEST Arts. 122-127 (religious) 142/227: Religious 148 (narrower) 148/205.5 RELIGION Soviet-style framing dropped; residual security offenses retained 

Fig. A Six functional categories of political prosecution tracked across four Criminal Code versions. Solid boxes: category present at full modern scope. Lighter boxes in the 1996 column: present at enactment but narrower. Dashed boxes: category added later (organizational offenses Art. 282.1/282.2 were introduced in 2002). The 1996 code dropped Soviet-style explicitly political offenses (Art. 70 anti-Soviet agitation, Art. 190-1 fabrications) but retained ordinary national-security provisions (Arts. 205, 275, 278, 279, 280, 282 among others). Those residual provisions were progressively broadened over the following twenty-five years, and new provisions were added, in ways that recreated much of the Soviet functional repertoire under different article numbers.

WHAT THE SYSTEM DOES TO THE PEOPLE IT CHARGES Soviet Union 1,056,670 records 16.2% 54.7% rehabilitated other 170,838 executed 577,938 named Myanmar 31,824 arrested 5,600+ killed detained / released / fled military violence, not courts Russia (modern) 7,132 cases imprisoned (visible layer: designed to look like law) Navalny · Nemtsov · Politkovskaya · Litvinenko (invisible layer: deniable) 0 rehabilitated Belarus 12,199 cases imprisoned + systematic torture (Viasna, 2020-2025) Cuba 2,130 prisoners imprisoned (longest average sentences in comparison) 

Fig. B Outcomes across five systems. Red = state killing. Green = formal rehabilitation. The Soviet system had both (16.2% executed, 54.7% rehabilitated under the 1991 Law on Rehabilitation). Russia maintains a judicial-execution moratorium (capital punishment remains in Art. 59) and has no analogous formal rehabilitation mechanism for post-Soviet political cases; several deaths of modern Russian opposition figures and critics have been attributed to the state with varying evidentiary status (Litvinenko, Politkovskaya, Nemtsov, Navalny). Myanmar's junta executed four political activists in July 2022 by military tribunal death sentence and continues to kill mostly through military violence. Belarus and Cuba imprison. The Soviet system is the only one in this comparison that created a formal mechanism to name its victims.

the timeline

## Temporal distribution of Soviet political *prosecutions.*

SOVIET POLITICAL PROSECUTIONS BY YEAR (Memorial, 1,056,670 records) 180K 100K 0 1930-31 Dekulakization 217,000 1937-38 Great Terror 282,922 1941-42 Wartime 1917 1937 1941 2012-2025 OVD-Info 7,132 (at this scale: invisible) 

Fig. 1 Soviet political prosecutions by year. The 1937 Great Terror peak (179,269 cases) dwarfs everything. The modern OVD-Info dataset (7,132 cases over 13 years) would be invisible at this scale. The volume changed. The question is whether the structure did.

### Why the modern number appears lower

The 7,132 modern prosecutions and the 1,056,670 Soviet records are not comparable as measures of repressive volume. The modern number is artificially low for three structural reasons identified by OVD-Info's data and legal team in a September 2026 meeting:

**FSB cases operate outside the court system.** The Federal Security Service conducts investigations and detentions that never enter the public court record. If no lawyer or family member contacts OVD-Info, the case is invisible. The FSB may detain, interrogate, and release without any court filing. These cases never reach OVD-Info's database.

**Terrorism and treason case materials are classified.** Under Russian law, cases involving Art. 205 (terrorism) and Art. 275 (treason) are heard behind closed doors by military courts. Case files are sealed. OVD-Info learns about them only when the lawyer, the family, or a journalist breaks the silence.

**Occupied territories are not covered.** Crimea (since 2014) and the occupied regions of Donetsk, Luhansk, Zaporizhzhia, and Kherson are largely invisible to OVD-Info's monitoring. Freedom House rates Russian-occupied territories at negative one on its freedom scale.

The 7,132 records are the cases that broke through all three barriers. The actual volume of modern political prosecution is unknown but substantially higher. Memorial documented 427 child cases alone since the 2022 invasion, compared to OVD-Info's 48\. The Louvain comparison in this report analyzes the structure of what is visible, not the full scale of what exists. The Soviet dataset has the opposite bias: Memorial's records are disproportionately drawn from rehabilitation proceedings, meaning the dataset overrepresents cases the state eventually acknowledged as unjust and underrepresents those it never reviewed.

170,838

People executed. 16.2% of all records.  
Russia maintains a judicial-execution moratorium.  
Myanmar executed 4 political activists in July 2022.

What the 20.6% extraction rate meansArticle numbers could be extracted from 218,096 of 1,056,670 records (20.6%). The remainder is the parsing miss rate, which is not itself evidence that no criminal provision was involved: alternative explanations include biography brevity (Memorial entries vary widely in detail), archival incompleteness, pre-1934 article renumbering (the 1922, 1926, and 1960 RSFSR codes used different numbers), abbreviation conventions (КРД, КРА, СОЭ, ЕК-26 appearing in place of article numbers), and parsing failures on malformed source text. Historians agree that an enormous share of Soviet repression was in fact administrative or extrajudicial: dekulakization (1930-31, approximately 217,000 cases in this dataset) proceeded largely by administrative order; the National Operations under NKVD Order 00447 used troika proceedings outside ordinary criminal process; the special settlement regime used administrative directives. The honest statement is that 20.6% is the observed coded subset, not that exactly 79.4% of Soviet repression occurred outside criminal law. The modern system's analogous administrative track includes foreign-agent designations, NGO liquidations, tax inspections, professional sanctions, and fines under KoAP (e.g. Art. 20.2 for protest violations); the 7,132 criminal prosecutions in the OVD-Info dataset are the visible layer of modern repression, just as the 218,096 coded Memorial cases are the visible layer of their period. 

Great Terror distortion (1937-38)The 1937-38 peak (282,922 cases) may distort the co-occurrence analysis. Archival research (Getty, 1985) demonstrated that the Great Terror was qualitatively different from routine Soviet political prosecution: regional NKVD chiefs exceeded quotas, fabricated cases in assembly-line fashion, and troiki adjudicated dozens of cases per session. The high co-occurrence of Art. 58 sub-articles may reflect prosecutorial haste (stacking every available sub-article on defendants processed en masse) rather than deliberate charging strategy. A validity test was run excluding the Great Terror years (1937-38), which account for 487,277 records. Result: the community structure is unchanged. Without 1937-38, the Soviet system still produces 4 communities with Q=0.301 (slightly higher than the full-dataset Q=0.290). The dominant community shrinks from 68 to 59 articles but retains the same core: Art. 58-10 (agitation), 58-11 (organizational), 58-8 (terrorism), 58-2 (uprising), 58-9 (sabotage). The Great Terror inflated the volumes but did not create the community structure. The low-modularity, one-dominant-community finding is robust to the exclusion of the most anomalous period in the dataset. 

Social mechanism: denunciation vs surveillanceThe Soviet repression system was partially crowd-sourced. Citizens denounced neighbors, workers denounced managers, students denounced teachers. The charge (58-10, 58-11) was often applied after the fact to justify an arrest that was socially motivated (Fitzpatrick, 1999). The modern system has a different input mechanism: prosecutions are initiated by the FSB through digital surveillance (Telegram monitoring, social media scraping, keyword detection). The denunciation infrastructure has been replaced by centralized surveillance. This analysis captures the legal output (charge co-occurrence) but not the social input that generates the cases. The charging categories may be continuous while the social practice that feeds them has fundamentally changed. 

Memorial data biasThe Memorial dataset is biased toward cases that were later rehabilitated, since rehabilitation proceedings generated much of the documentary record. Cases that were never reviewed (because the victim died, had no surviving family, or was in a category not covered by rehabilitation laws) are underrepresented. Additionally, the dataset does not disaggregate by ethnicity or nationality. The Soviet national operations (Polish Operation 1937-38, German Operation, Korean deportation) were distinct repressive structures targeting ethnic groups for deportation and execution, using different legal mechanisms than the domestic Art. 58 prosecutions. These operations are partially captured in the dataset but cannot be separated without ethnicity data. 

the dominant charge

## Dominant charge comparison across *eras.*

In the Soviet dataset, Article 58-10 ("anti-Soviet agitation and propaganda") accounts for 105,402 cases. It is the single most common political prosecution charge across 74 years. In the modern dataset, Article 354.1 ("rehabilitation of Nazism," enacted 2014, expanded and applied at scale after March 2022) is the fastest-growing charge. Both criminalize speech the state considers disloyal.

Soviet (1926-1991)

Art. 58-10

Anti-Soviet agitation and propaganda

105,402 cases

"Dissemination of fabrications defamatory to the Soviet state and social system." Up to 7 years imprisonment + 5 years exile. 

Modern (2022-2025)

Art. 354.1

Rehabilitation of Nazism

204 cases

"Public denial of facts established by the International Military Tribunal, dissemination of false information about the activities of the USSR during WWII." Applied post-2022 to anti-war expression. Enacted 2014, expanded March 2022\. Applied at scale to anti-war expression post-invasion. Up to 3 years. 

Soviet Art. 58-10 criminalized speaking against the state. Modern Art. 354.1 criminalizes speech the state classifies as rehabilitating Nazism. Different vocabulary. Same function.

the mappings

## SKOS vocabulary: 20 functional equivalences across Criminal Code *versions.*

The RSFSR Criminal Code (1960) was replaced by the RF Criminal Code (1996). Every article was renumbered. The following SKOS mappings link Soviet-era articles to their modern functional equivalents. Three relation strengths: exactMatch (near-verbatim statutory language), closeMatch (same conduct criminalized), relatedMatch (thematic parallel).

Code version caveatThe mass repressions of 1930-38 used the 1926 RSFSR Criminal Code, which had a different Article 58 structure than the 1960 code. The 1926 version's sub-articles were numbered and scoped differently. The Memorial data spans both code versions. The SKOS mappings use the 1960 numbering conventions, which may not precisely match 1926-era charges. For pre-1960 records, the article numbers in the Memorial text may reflect either the original 1926 numbering or retrospective reclassification during rehabilitation proceedings. 

Weakest mapping: Art. 88 to Art. 284.2One SKOS mapping is classified as thematic parallel rather than functional equivalent: Soviet Art. 88 (illegal currency transactions) to modern Art. 284.2 (calls for sanctions against Russia). Art. 88 criminalized economic conduct (black market currency trading). Art. 284.2 criminalizes calls for sanctions against Russia. The connection (both use "economic disloyalty" as a basis for criminal liability) is thematic, not functional. A sanctions law expert would not recognize this as a legal succession. It is included in the SKOS vocabulary as a relatedMatch but is excluded from the main mapping visualization. 

SKOS MAPPINGS: SOVIET ARTICLES (LEFT) TO MODERN EQUIVALENTS (RIGHT) RSFSR (1926 / 1960) RF (1996) SPEECH 58-10: Agitation 280: Extremist calls 354.1: Rehabilitation of Nazism 190-1: False fabrications 207.3: Military fake news ORGANIZATIONAL 72: Anti-Soviet org 282.1: Extremist community 282.2: Extremist org TERRORISM 58-8: Terrorist acts 205: Terrorism 68: Sabotage (diversiya) 281: Sabotage near-verbatim statutory language TREASON 64: Betrayal of Motherland 275: State treason PROTEST 190-3: Group actions 212: Mass riots 318: Violence vs official RELIGIOUS 227: Religious encroach. 205.5: Terror org (JW, HT) Soviet Art. 227 targeted Pentecostals, Baptists. Modern Art. 205.5 targets Jehovah's Witnesses. 

Fig. 2 SKOS mappings from Soviet RSFSR articles (left) to modern RF equivalents (right). Lines show functional equivalences. Six categories of political prosecution survive across the code rewrite: speech, organizational, terrorism, treason, protest, religious. The article numbers are different. The charging categories are the same.

the communities

## Louvain community structure: 4 Soviet communities vs 6 *modern.*

Louvain community detection on charge co-occurrence reveals different organizational structures. The Soviet system clustered speech, organizational, and terrorism charges in one large community. The modern system separates them into specialized clusters.

Soviet: 4 communities, Q=0.29 (Q=0.30 excluding 1937-38)

One dominant community (robust to Great Terror exclusion)

**Community 2 (70 articles):**  
Art. 58-10 (agitation) + Art. 58-11 (organizational) + Art. 58-8 (terrorism) + Art. 58-2 (uprising)  
  
Speech, organizational activity, terrorism, and armed uprising all cluster together. The Soviet system did not differentiate. One catch-all category: "counter-revolutionary."  
  
**Top pair:** 58-10 + 58-11 (agitation + organization): 1,619 cases charged together 

Modern: 6 communities, Q=0.473

Three specialized clusters

**Speech (25 articles):** Art. 280, 282, 354.1, 207.3  
**Terrorism (17 articles):** Art. 205, 205.3, 205.4, 222  
**Organizational (9 articles):** Art. 282.2, 205.5, 275  
**Protest (4 articles):** Art. 212, 318  
  
The modern system separates speech crimes from terrorism from organizational crimes. Different investigators, different courts, different sentences.  
  
**Top pair:** 205.3 + 205.4 (terror training + terror org): 227 cases 

COMMUNITY STRUCTURE: SOVIET (LEFT) vs MODERN (RIGHT) 58-10 (agitation) 58-11 (organizational) 58-8 (terrorism) 58-2 (uprising) \+ 66 more articles 70 articles one community Q = 0.29 → 80 years 280, 282, 354.1 207.3 SPEECH (25) 205, 205.3 205.4, 222 TERRORISM (17) 282.2, 205.5 ORG (9) Q = 0.473 

Fig. 3 The Soviet system bundled all political charges into one undifferentiated community (Q=0.29, low modularity). The modern system separated them into specialized clusters (Q=0.473, higher modularity). Same functional categories. Different organizational structure. The community structure differentiated.

the cross-mapping

## Cross-era SKOS mapping: which modern communities inherit Soviet *articles.*

When we follow the SKOS mappings from Soviet articles to their modern equivalents and check which Louvain community those modern articles land in, the Soviet system's single "counter-revolutionary" community splits into four modern communities. The table below tracks each Soviet article through the mapping: which Soviet community was it in, what modern article does it map to, and which modern community did that article land in? "SPLIT" means the Soviet community broke apart. "PRESERVED" means articles that clustered together in the Soviet system still cluster together in the modern one.

| Soviet article         | Soviet community                                   | Modern equivalent      | Modern community       | Structure |
| ---------------------- | -------------------------------------------------- | ---------------------- | ---------------------- | --------- |
| 58-10 (agitation)      | All in oneSoviet Community 2(70 articles together) | 280 (extremist calls)  | Speech cluster         | SPLIT     |
| 58-11 (organizational) | 282.1 / 282.2                                      | Organizational cluster |                        |           |
| 58-8 (terrorism)       | 205 (terrorism)                                    | Terrorism cluster      | SPLIT                  |           |
| 58-2 (uprising)        | 212 (mass riots)                                   | Protest cluster        | SPLIT                  |           |
| 64 (treason)           | Separate (Community 1)                             | 275 (treason)          | Organizational cluster | PRESERVED |
| 190-3 (group actions)  | All in one (Community 2)                           | 212 + 318              | Protest cluster        | PRESERVED |

### The input changed. The output categories did not.

The Soviet repression system was partially crowd-sourced. Citizens denounced neighbors, workers denounced managers, students denounced teachers (Fitzpatrick, 1999). The charge (58-10, 58-11) was often applied after the fact to justify an arrest that was socially motivated. The modern system is centralized: the FSB identifies targets through digital surveillance (Telegram monitoring, social media scraping, keyword detection), then selects the appropriate article. The Soviet system's low modularity (Q=0.29) may reflect the messiness of denunciations: accusers said "he is an agitator AND a saboteur AND he meets with foreigners," producing multi-category charge sheets. The modern system's higher modularity (Q=0.473) may reflect centralized targeting: the FSB decides whether someone is a speech case or a terrorism case before the investigation begins, producing cleaner, more specialized charge profiles.

What this means (two interpretations)The Soviet system had one large undifferentiated community for political prosecution. If you were charged with agitation, you might also be charged with terrorism, organizational activity, or armed uprising. All of these appeared together on the same defendants. The modern system has separated these into specialized tracks. A speech defendant (Art. 280, 354.1) is charged differently from a terrorism defendant (Art. 205).  
  
**Interpretation A (design):** The Soviet system's low modularity was deliberate. Stalin's prosecutors were instructed to use Article 58 broadly because it allowed any political case to be constructed from any combination of sub-articles. The undifferentiated structure was a feature, not a flaw: maximum prosecutorial flexibility.  
  
**Interpretation B (constraint):** The modern system's higher modularity reflects legal constraints, not refinement. The RF Constitution (1993) and the European Convention on Human Rights (ratified 1998, withdrawn 2022) imposed procedural requirements the Soviet system did not face. The state created multiple narrow articles (205, 280, 282, 354.1) because a single catch-all article would trigger constitutional challenges. The differentiation is a workaround for constraints, not an improvement in design.  
  
Both interpretations fit the data. This report documents the structural difference. It does not claim to know which interpretation is correct. 

Unweighted edges (limitation)This analysis treats all charge co-occurrences as equivalent. It does not weight edges by sentence outcome. Under the Soviet system, Art. 58-1a (treason) carried a mandatory death sentence while Art. 58-10 (agitation) carried 7 years maximum. A prosecutor choosing between them was making a precise lethal decision, not selecting interchangeable instruments. Under the modern system, Art. 354.1 (rehabilitation of Nazism) carries up to 3 years while Art. 205 (terrorism) carries 10-20 years or life. Weighting edges by average sentence length would likely sharpen the separation between the modern speech and terrorism communities. A political economy analysis (Guriev) would further distinguish population-control articles (280, 354.1, 207.3: light sentences, chilling effect) from elite-control articles (159 fraud, 174 money laundering, 199 tax evasion: heavy sentences, selective enforcement against disloyal businessmen). The Soviet system did not need this distinction because it had no private sector to discipline. The modern system uses political prosecution for two purposes: suppressing dissent (population control) and maintaining oligarchic alignment (elite control). These are different instruments serving different functions, and the Louvain communities do not currently separate them. A future iteration should condition the Soviet analysis on outcome (execution vs imprisonment vs exile) and the modern analysis on sentence length. 

Threat categories vs legal articlesThe legal articles analyzed here are outputs of a political classification process. The Russian state, whether Soviet or post-Soviet, perceives categories of threat: foreign-influenced dissent, organized opposition, threats to sovereignty, threats to stability. The legal articles are instruments selected to match these threat perceptions. Art. 354.1 was created in March 2022 not because someone studied Art. 58-10, but because the invasion created a new threat category (domestic opposition to the war) that required a legal instrument. The continuity documented here may be between threat perceptions rather than between legal codes. The legal codes are the visible output. The threat perceptions are the invisible input. 

Cross-country comparison (completed)The same Louvain pipeline was applied to Belarus (Viasna dataset, 12,199 prosecutions), Cuba (Prisoners Defenders, 2,130 political prisoners), and Myanmar (AAPP, 31,824 arrested). Results: 

| Country       | Records   | Communities | Q (modularity)            | Dominant cluster                    | Structure                       |
| ------------- | --------- | ----------- | ------------------------- | ----------------------------------- | ------------------------------- |
| Soviet Union  | 1,056,670 | 4           | 0.29 (0.30 excl. 1937-38) | Art. 58 catch-all (70 articles)     | One undifferentiated blob       |
| Modern Russia | 7,132     | 6           | 0.473                     | Speech (25), Terror (17), Org (9)   | Three specialized clusters      |
| Belarus       | 12,199    | 4           | 0.16                      | Protest Art. 342 (21 articles)      | One dominant blob (like Soviet) |
| Cuba          | 2,130     | 17          | high fragmentation        | Desacato bundle (18 charges)        | One dominant + many singletons  |
| Myanmar       | 31,824    | 14          | 0.25                      | Counter-Terrorism Law (46 sections) | Two clusters: Penal Code vs CTL |

LOUVAIN COMMUNITY STRUCTURE ACROSS FIVE SYSTEMS Art. 342 Art. 130 Art. 361 Belarus Q = 0.16 4 communities 12,199 prosecutions Art. 58-10 Art. 58-11 Art. 58-8 \+ 67 more Soviet Union Q = 0.29 4 communities 1,056,670 records Penal Code S. 505A Counter- Terrorism Law Myanmar Q = 0.25 14 communities, 31,824 arrests SPEECH 280, 354.1 TERROR 205 ORG 282.2 Modern Russia Q = 0.473 6 communities, 7,132 cases Desacato bundle Cuba 17 communities (fragmented) 2,130 prisoners Undifferentiated Specialized Belarus 0.16 Myanmar 0.25 Soviet 0.29 Russia 0.473 Cuba omitted from spectrum (stacking topology, not comparable by Q) 

Fig. 4 Community structure across five systems. Belarus (Q=0.16) and the Soviet Union (Q=0.29) share the same undifferentiated topology: one dominant community containing most political charges. Myanmar (Q=0.25) shows early differentiation between two legal instruments. Modern Russia (Q=0.473) has the highest modularity: three specialized clusters for speech, terrorism, and organizational crimes. Cuba's stacking strategy produces a fragmented topology with one dominant bundle and many singletons, not comparable on the modularity spectrum. The modularity gradient runs from undifferentiated (left) to specialized (right). Only modern Russia has reached high specialization.

**Belarus (Q=0.16):** The lowest modularity of any system. One massive protest cluster (Art. 342: organizing/participating in group actions, 3,788 cases) dominates, with speech crimes (Art. 368, 369, 130) and extremist-organization charges (Art. 361 variants) in separate communities. The structure resembles the Soviet system more than the modern Russian one: low differentiation, one dominant community. Lukashenko's Criminal Code uses nearly identical functional categories to Russia's (Art. 293 = mass riots, Art. 130 = incitement, Art. 361 = extremist activity), and the community structure is similarly undifferentiated.

**Cuba (17 communities):** Highly fragmented. One dominant bundle (Desórdenes públicos + Desacato + Atentado + Resistencia: the "street bundle" identified in Report I) accounts for most cases. The remaining 16 communities are singletons or near-singletons. Cuba stacks charges; Russia simplifies them. Different prosecutorial strategies produce different graph topologies.

**Myanmar (Q=0.25):** Two major clusters: Penal Code charges (especially S. 505A: incitement, 8,014 cases) and Counter-Terrorism Law charges (S. 52-a, 50-j: 14,312 cases combined). The military junta uses two legal instruments in parallel: ordinary criminal law and a dedicated counter-terrorism framework. This dual structure is closer to modern Russia (which also separates speech from terrorism) than to the Soviet system or Belarus.

What the comparison showsThe six-category structure is not uniquely Russian. Belarus has the same categories under different article numbers, with even lower modularity (Q=0.16 vs the Soviet system's Q=0.29). Myanmar separates speech from terrorism, like modern Russia. Cuba uses a stacking strategy that produces a different topology entirely. The finding is not that Russia uniquely inherited Soviet prosecution categories. The finding is that the six functional categories recur across all five systems examined, and that modern Russia has differentiated them into specialized clusters that other systems (Myanmar) are also developing independently. The Russian-specific finding is incremental: a 1996 code that represented a legal rupture with Soviet-style explicitly political criminalization, followed by twenty-five years of broadening residual security offenses and adding new provisions, producing the specialized Q=0.473 architecture. 

severity

## Which system is the most *egregious?*

The community detection comparison measures structure, not severity. Structure tells you how a system organizes its charges. It does not tell you what happens to the people it charges. The data supports a clear ranking.

SEVERITY BY OUTCOME: WHAT HAPPENS TO THE PEOPLE THE SYSTEM CHARGES Soviet Union 170,838 executed by formal state decree (judicial and extrajudicial) (16.2%) Myanmar 5,600+ killed since 2021 coup Russia (modern) extrajudicial killings (deniable) Belarus torture documented, no political executions Cuba long sentences, smallest dataset ARBITRARINESS OF PROCESS Soviet troiki No defense. Quotas. Dozens per session. Myanmar military tribunals Belarus closed trials Russia military courts (terrorism) Cuba 

Fig. 9 Severity by outcome, not structure. The Soviet system is the most egregious by scale: highest lethality (170,838 state executions, judicial and extrajudicial, under Order 00447 troika quotas with no defense counsel), largest total scope (over one million persons in the Memorial dataset alone). Myanmar is currently the most lethal active system: over 5,600 killed since the February 2021 coup (AAPP data); the junta also executed four political activists in July 2022 following military tribunal death sentences. Russia maintains a judicial-execution moratorium; several deaths of modern Russian opposition figures and critics have been attributed to the state with varying evidentiary status. Belarus documents widespread torture; Cuba has the smallest dataset and longest average sentences.

The Soviet system was the most egregious by every metric the data supports. Three features distinguish it from the other four systems:

**State execution at industrial scale.** 170,838 people were executed by court or troika sentence in the Memorial dataset. That is 16.2% of all records. Myanmar's junta executed four political activists in July 2022 (Kyaw Min Yu, Phyo Zeya Thaw, Hla Myo Aung, Aung Thura Zaw) following military tribunal death sentences, so formal state execution of political prisoners is not confined to the Soviet case in this comparison; the volumes are categorically different. The majority of Myanmar's 5,600+ post-coup killings have come through military violence rather than court sentences. Russia maintains a judicial-execution moratorium (capital punishment remains in Art. 59 of the Criminal Code; Constitutional Court ruling blocks application). Belarus and Cuba imprison. The Soviet system's practice of execution by law was unmatched in scale.

**Extrajudicial processing at mass scale.** Article numbers could be extracted from 20.6% of Memorial records; the remaining 79.4% is the parsing miss rate, not a direct measure of extrajudicial processing. Historians agree that enormous Soviet repression was in fact administrative or extrajudicial: NKVD troiki (panels of three officials) under Order 00447 operated with pre-assigned regional execution quotas (the Leningrad region was allocated 4,000 executions in the first category), processing cases in batches of dozens per session, with no defense counsel, no right of appeal, no public record. Dekulakization and the National Operations (Polish 1937-38, German, Korean deportation) used administrative mechanisms rather than ordinary criminal process. But the exact share of Soviet repression that was extrajudicial cannot be derived from an article-number regex. The modern Russian system, for all its abuses, maintains the formal architecture of a legal system (charges, trials, appeals, sentences) in cases that go to court. Where the modern system operates outside the Criminal Code, it uses administrative tools: foreign-agent designations, NGO liquidations, tax inspections, professional sanctions, and administrative fines under KoAP (e.g. Art. 20.2 for protest violations).

**Scale of administrative deportation.** The dekulakization campaign (1930-31) displaced approximately 1.8 million people through administrative order, not court process. Entire families were loaded onto cattle cars and deposited in special settlements in Siberia, Central Asia, and the Far North. No other system in this comparison conducted population displacement at this scale as a tool of political repression.

What the modern systems shareMyanmar, Belarus, Russia, and Cuba all imprison political opponents. All use speech crimes. All use terrorism or national security frameworks to prosecute dissent. None of them execute political prisoners by formal state decree (judicial and extrajudicial). The Soviet Union did. That is the dividing line. The four modern systems operate on different points of a severity spectrum, but all of them are on the same side of the line that separates imprisonment from state killing by law. The Soviet system was on the other side. 

the dominant pair

## Dominant co-occurrence pairs across *eras.*

Soviet top pair

Art. 58-10 + Art. 58-11

Agitation + Organizational activity

1,619 cases

You spoke against the state AND you were part of a group. The two charges were inseparable.

Modern top pair

Art. 205.3 + Art. 205.4

Terror training + Terror organization

227 cases

You trained for terrorism AND you were part of a terrorist org. Applied to Hizb ut-Tahrir members and Jehovah's Witnesses.

The Soviet top pair (58-10 + 58-11) links speech to organization. The modern top pair (205.3 + 205.4) links two terrorism sub-articles. The dominant pairing shifted from **speech + organization** to **terror training + terror organization**. The modern system charges political offenses through the terrorism framework rather than through a dedicated political crimes article.

The Soviet system had Art. 58: a single article with 14 sub-articles covering every form of political disloyalty. The modern system distributes the same function across Art. 205 (terrorism, 6 sub-articles), Art. 280 (extremism, 3 variants), Art. 282 (hatred, 3 variants), and Art. 354.1 (rehabilitation of Nazism, applied to anti-war expression). The functional categories survived. Whether this reflects inheritance or reconstruction is a separate question.

the gap

## 1996: a legal rupture, residual security offenses, and *reconstruction.*

RECONSTRUCTION TIMELINE: ABOLITION (1996) TO WARTIME ARTICLES (2022) 1996 2002 2006 2012 2014 2017 2022 Code clean Extremism 282.1 Terrorism+ 205.x Protest 212.1 Separatism 280.1 JW ban 282.2 Wartime 354.1 207.3 280.3 WESTERN CONSTRAINTS ECHR ratified 1998 ECHR ignored \~2010 PACE suspends RF voting rights (2014) RF expelled from CoE 16 Mar; ECHR ends 16 Sep 2022 Wartime articles enacted 8 days after RF invasion of Ukraine (24 Feb 2022) 

Fig. 8 The reconstruction timeline. The RF Criminal Code dropped Soviet-style explicitly political offenses in 1996 (cream bar) while retaining ordinary national-security provisions. Over the next 26 years, those residual provisions were progressively broadened and new provisions were added (gray drops), including two new wartime speech articles (Art. 207.3 military fake news, Art. 280.3 discrediting the armed forces) and expansion of Art. 354.1 (rehabilitation of Nazism, originally enacted 2014) in March 2022 (red). The bottom layer shows Russia's deteriorating relationship with European legal institutions: ECHR ratified 1998, PACE suspends Russian voting rights 2014, Russia expelled from CoE 16 March 2022, ECHR jurisdiction over Russian acts ceases 16 September 2022\. The temporal association does not establish causation; domestic security policy, regime consolidation, specific political crises, and the 24 February 2022 invasion of Ukraine are competing and interacting explanations.

The RF Criminal Code enacted on 1 January 1997 was drafted by a commission that included reformers who sought to drop the explicitly Soviet-style political offenses. Art. 58 had already been abolished in 1960; the 1996 code did not carry forward its late-Soviet successors (Art. 70 anti-Soviet agitation, Art. 72 anti-Soviet organization, Art. 190-1 fabrications). Ordinary national-security provisions were retained from the start (Arts. 205, 275, 276, 278, 279, 280, 282 among others), though several were narrower in their 1996 form than they are today. The code as originally enacted did not contain Art. 282.1/282.2, Art. 212.1, Art. 280.1, Art. 354.1, Art. 207.3, Art. 280.3, or the expanded terrorism sub-articles. These were added in waves over the following two decades:

| Year         | Amendment                                                                                                                                           | Soviet equivalent                                       |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| 2002         | Art. 282.1, 282.2 (extremist community/organization)                                                                                                | Art. 72 (anti-Soviet organization)                      |
| 2006         | Expanded Art. 205 terrorism framework                                                                                                               | Art. 58-8 (terrorist acts)                              |
| 2014         | Art. 212.1 (repeated protest violations, FZ 258-FZ, 21 July 2014)                                                                                   | Art. 190-3 (group actions)                              |
| 2014         | Art. 280.1 (separatism)                                                                                                                             | Art. 58-2 (armed uprising, partial)                     |
| 2017         | Jehovah's Witnesses designated extremist under Art. 282.2                                                                                           | Art. 227 (religious encroachment)                       |
| 2022 (March) | Art. 207.3 (military fake news), Art. 280.3 (discrediting army), Art. 354.1 expanded (rehabilitation of Nazism, enacted 2014, new parts added 2022) | Art. 190-1 (false fabrications), Art. 58-10 (agitation) |

The continuity documented in this report was not inherited unchanged from the Soviet code. The 1996 code represented a legal rupture with Soviet-style explicitly political criminalization: specifically, the overtly political offenses of the late Soviet period (Art. 70 anti-Soviet agitation, Art. 190-1 fabrications, Art. 142 religious instruction) were not carried forward. But ordinary national-security provisions were retained from the start (Arts. 205, 275, 276, 278, 279, 280, 282). Over the next twenty-five years, those residual provisions were broadened and new provisions were added or repurposed in ways that recreated much of the Soviet functional repertoire. Each wave corresponded to a specific political crisis. The underlying pattern is incremental expansion and political repurposing of a non-Soviet code, not simple abolition and recreation of six Soviet categories. The SKOS mappings capture functional equivalence across article numbers; the mapping does not imply that modern articles were directly derived from Soviet ones.

Why this matters for the Louvain comparisonThe community structures we compare (Soviet Q=0.29, Modern Q=0.473) are separated not just by time but by a legal rupture: the 1996 code dropped Soviet-style explicitly political offenses while retaining ordinary national-security provisions. That the modern Q=0.473 architecture emerged from twenty-five years of broadening those residual provisions and adding new ones (rather than from a continuous Soviet lineage) is arguably a stronger finding than unbroken continuity would be. The state did not inherit a political-prosecution toolkit; it incrementally reassembled a functionally similar one from a different starting point. 

rehabilitation

## Rehabilitation: 577,938 Soviet cases vs *zero* modern.

FORMAL REHABILITATIONS: SOVIET/POST-SOVIET vs MODERN 577,938 formally rehabilitated (1953-2004) 0 rehabilitated (2012-2025) Memorial (which documented the Soviet crimes) was liquidated by the modern state, December 2021\. Nobel Peace Prize, October 2022. 

Fig. 7 The Soviet/post-Soviet system created a formal rehabilitation mechanism and named 577,938 victims. The modern system has rehabilitated zero persons convicted under political prosecution articles. The bar for modern rehabilitations is one pixel wide because the value is zero. As Satter documented, the Soviet rehabilitation was bureaucratic restoration, not genuine reckoning. The modern system has not created even that.

54.7% of the 1,056,670 Memorial records show formal rehabilitation. But the Memorial dataset itself is a fraction of total Soviet repression: estimates of the full victim count range from 12 to 20 million when including Gulag deaths, famine victims, and persons deported without formal sentencing (Conquest, 1990). The 577,938 rehabilitations are a fraction of a fraction. And the rehabilitation process excluded entire categories: those who died in the Gulag without court proceedings, those deported to special settlements without Article 58 charges (the 80% of Memorial records without article numbers), and those who died in the 1932-33 Ukrainian famine, which was never formally classified as political repression. Beginning under Khrushchev and continuing through the Gorbachev and Yeltsin eras, the Soviet and post-Soviet state acknowledged that these prosecutions were unjust, formally rehabilitated the victims, and in many cases restored their civil rights posthumously.

Soviet/post-Soviet system

577,938

formally rehabilitated (54.7%)

The 1991 Law on Rehabilitation of Victims of Political Repressions created a judicial mechanism: courts reviewed cases, annulled convictions, restored names. But the process was legalistic, not moral. No truth commission. No public reckoning. No equivalent to denazification. Khrushchev's "Secret Speech" denouncing Stalin was delivered behind closed doors. The rehabilitation restored names on paper without societal confrontation of what the state had done (Satter, 2012). The organization that documented the crimes (Memorial) was itself liquidated by the modern Russian state in December 2021\. 

Modern system

0

rehabilitated

No person convicted under Art. 280, 282, 205.5, 354.1, or 207.3 has been formally rehabilitated. No rehabilitation mechanism exists for modern political prosecutions. No court has reviewed these convictions for political motivation. The modern system has not created even the legalistic mechanism the post-Soviet state eventually adopted. 

The post-Soviet state created a formal mechanism for rehabilitation. 577,938 people were named. But as Satter documented, the process substituted bureaucratic restoration for genuine reckoning. Russia never confronted the Soviet past the way Germany confronted Nazism. The rehabilitation was administrative, not transformative. And even that incomplete mechanism does not exist for the modern system. The state that liquidated Memorial in 2021 has no interest in acknowledging the prosecutions Memorial was documenting.

the connection

## Entity resolution: political prosecution graph to offshore financial *graph.*

This report analyzes political prosecution. A companion report ("Lubyanka to Tortola") analyzes offshore financial concealment by FSB officers. These appear to be separate workstreams. They are not. They are two views of the same system.

The economic infrastructure that enabled Soviet-era capital flight (Communist Party accounts in Western banks, KGB front companies, Gosbank correspondent relationships through Cypriot and Maltese intermediaries) was never dismantled after the collapse. It was privatized. The same Cypriot, Maltese, and BVI structures documented in the FSB-Panama analysis were originally established to manage Soviet-era hard currency flows.

Consulco International: incorporated 1993Consulco International Limited, the most significant intermediary identified in the Panama Papers analysis (3,168 entities, services to Roldugin, Timchenko, Prokhorov, Surkov, Akhmetov, Khan, Aven), was incorporated on 12 November 1993 (Cyprus registry HE 58332), two years after the Soviet collapse. A defunct entity ("Consulco Limited," Jersey, 1974-1988) is unrelated. The broader Cypriot corporate services infrastructure serving Russian clients developed rapidly in the early 1990s as Soviet-era capital sought offshore destinations. 

Soviet Art. 88 criminalized illegal currency transactions. Modern Art. 284.2 (enacted March 2022) criminalizes calls for sanctions against Russia. The state prosecuted citizens for engaging with foreign economic systems while simultaneously using those same systems (through KGB front companies and Party accounts) to manage hard currency. The modern system replicates this duality: it prosecutes citizens under Art. 284.2 (sanctions) and Art. 354.1 (Nazism rehabilitation, applied to anti-war expression) while its intelligence officers use offshore structures in the same jurisdictions (Cyprus, BVI, Malta) that the sanctions target.

Soviet duality

**Prosecute citizens** for currency violations (Art. 88)  
  
**While using** the same foreign financial system through KGB front companies, Gosbank correspondents, and Communist Party accounts in Western banks 

Modern duality

**Prosecute citizens** under Art. 284.2 (sanctions) and Art. 354.1 (Nazism rehabilitation, applied to anti-war speech)  
  
**While using** the same offshore jurisdictions (Cyprus, BVI, Malta) through Vassiliades, Consulco, and Alcogal to conceal state-adjacent assets 

The legal prosecution of economic disloyalty and the economic infrastructure for capital flight are two sides of the same system. The state criminalizes its citizens' engagement with foreign economic structures while its own officers and their facilitators operate within those same structures. The SKOS mappings connect the legal codes. The corporate registries connect the financial infrastructure. Both connections cross the same island: Cyprus.

Institutional continuity at the apparatus level (Galeotti, Soldatov, Snyder)The SKOS mappings connect legal codes. The institutional continuity of the security services is a plausible but distinct line of transmission. The FSB considers itself the direct successor of the KGB, which succeeded the NKVD. Soviet security organs and the modern FSB share an institutional lineage at the apparatus level: training traditions, organizational culture, headquarters (Lubyanka), and personnel pathways. A desk-level or unit-level organizational genealogy from the KGB's Fifth Directorate (dissident speech) to the FSB's Center for Information Security (TsIB, which handles some modern internet-era political speech work) would require archival/organizational evidence beyond what Soldatov and Borogan (2010) document. The defensible claim is institutional continuity at the apparatus level; the claim that the "same desk" today applies Art. 280 that previously applied Art. 70 is stronger than the cited literature carries. The operational culture that applied Article 58 and the operational culture that applies Article 280 are embedded in the same lineage, even where specific units cannot be directly traced across the 1991 break. 

What we tested and what we foundWe ran Fellegi-Sunter probabilistic scoring (the same method used in the FSB-Panama analysis) on 5,246 officers of Soviet-era Panama Papers entities (incorporated before 1992) against 266,211 Russian sanctioned persons from OpenSanctions. The result was null: zero strong matches, zero confirmed connections between Soviet-era Mossack Fonseca shells and currently-sanctioned Russians. The reason is dataset scope: the Panama Papers are one Panamanian law firm's records. The Russian offshore infrastructure primarily ran through Cyprus, not Panama. Consulco International (incorporated 1993, 3,168 entities) does not appear in the Mossack Fonseca data because it is a Cypriot firm. The dataset that would test this hypothesis is ICIJ's Cyprus Confidential (3.6 million documents from Cypriot financial services firms, published November 2023), which is not available for bulk download. The structural argument (Belton, Dawisha) is supported by reporting. The graph analysis did not independently confirm it. We state this explicitly because negative findings are findings. 

Same categories. Different methods.

The Soviet system executed 170,838 people by formal state decree (approximately 85-90% by extrajudicial NKVD troiki and dvoiki under Order 00447 and the National Operations, the remainder by Military Tribunals and the Military Collegium of the Supreme Court) and rehabilitated 577,938 under the 1991 Law on Rehabilitation. Russia maintains a moratorium on judicial execution (capital punishment remains in Art. 59 of the Criminal Code, with its application blocked by Constitutional Court ruling); there is no analogous formal rehabilitation mechanism in the modern system for persons convicted under post-Soviet political prosecution articles. Both systems prosecute speech, organizational activity, terrorism, treason, protest, and religion under six functional categories. The 1996 code represented a legal rupture with Soviet-style explicitly political criminalization, dropping the Soviet-era agitation and fabrication offenses but retaining ordinary national-security provisions (Arts. 205, 275, 278, 279, 280, 282). Over the following twenty-five years those residual provisions were broadened and new provisions were added, recreating much of the Soviet functional repertoire under different article numbers. Other post-Soviet autocracies retained or reconstructed similar categories. What distinguishes Russia is the high-modularity bureaucratic specialization (Q=0.473) that developed over the following decades. The article numbers changed. The functional repertoire has substantially overlapped. 

bibliography

## Sources and *references.*

### Primary data

| Source                                                                  | Records                            | Access                          |
| ----------------------------------------------------------------------- | ---------------------------------- | ------------------------------- |
| Memorial, "Victims of Political Terror in the USSR" (base.memo.ru)      | 2.6M+ (1,056,670 in this analysis) | GitHub: ivbeg/memoru; bulk JSON |
| OVD-Info, Political Prosecution Database                                | 7,132                              | Public Airtable export (CSV)    |
| ICIJ Offshore Leaks Database (offshoreleaks.icij.org)                   | 810,000+ entities                  | Public bulk download            |
| UK Companies House, PSC Register                                        | 15.6M                              | Bulk snapshot (May 2026)        |
| Cyprus Department of Registrar of Companies (efiling.drcor.mcit.gov.cy) | manual search                      | Public registry                 |
| Ukrainian GUR, FSB Officer List (gur.gov.ua)                            | 619 officers                       | Official government publication |
| OpenSanctions (opensanctions.org)                                       | 400,000+ entities                  | Public FTM JSON                 |

### Legal codes

RSFSR Criminal Code (1926). Replaced by RSFSR Criminal Code (1960). Replaced by RF Criminal Code No. 63-FZ (13 June 1996, effective 1 January 1997). Amendments: Federal Law No. 114-FZ (25 July 2002, extremism); Federal Law No. 153-FZ (27 July 2006, terrorism expansion); Federal Law No. 65-FZ (8 June 2012, protest restrictions); Federal Law No. 280-FZ (28 December 2013, separatism); Federal Law No. 32-FZ (4 March 2022, military fake news, discrediting armed forces, rehabilitation of Nazism). Law of the Russian Federation No. 1761-1 (18 October 1991, rehabilitation of victims of political repressions). 

### Historians of the Soviet era

Conquest, Robert. *The Great Terror: A Reassessment.* Oxford University Press, 1990\. The first comprehensive account of Stalin's purges, originally published 1968.  
  
Fitzpatrick, Sheila. *Everyday Stalinism: Ordinary Life in Extraordinary Times.* Oxford University Press, 1999\. Social history of the Soviet Union from below; examines how citizens navigated the repressive system.  
  
Getty, J. Arch. *Origins of the Great Purges: The Soviet Communist Party Reconsidered, 1933-1938.* Cambridge University Press, 1985\. Revisionist challenge to the totalitarian model; demonstrated bureaucratic chaos and localized nature of the terror.  
  
Getty, J. Arch, and Oleg V. Naumov. *The Road to Terror: Stalin and the Self-Destruction of the Bolsheviks, 1932-1939.* Yale University Press, 1999\. Declassified Politburo documents on the purge mechanism.  
  
Kotkin, Stephen. *Stalin: Paradoxes of Power, 1878-1928.* Penguin Press, 2014\. Vol. 1 of the definitive biography; institutional power and statecraft.  
  
Kotkin, Stephen. *Stalin: Waiting for Hitler, 1929-1941.* Penguin Press, 2017\. Vol. 2; covers collectivization, the Great Terror, and the lead-up to war.  
  
Pipes, Richard. *Russia Under the Bolshevik Regime.* Knopf, 1993\. Totalitarian model: the Soviet Union as continuation of Russian imperial autocracy.  
  
Plokhy, Serhii. *The Last Empire: The Final Days of the Soviet Union.* Basic Books, 2014\. Definitive account of the USSR's collapse.  
  
Satter, David. *It Was a Long Time Ago, and It Never Happened Anyway: Russia and the Communist Past.* Yale University Press, 2012\. Russia's failure to confront Soviet crimes; rehabilitation as bureaucratic substitute for genuine reckoning.  
  
Snyder, Timothy. *Bloodlands: Europe Between Hitler and Stalin.* Basic Books, 2010\. The overlapping atrocities of the Soviet and Nazi regimes in Eastern Europe; geographic framing of mass violence.  
  
Smith, Kathleen E. *Moscow 1956: Silenced Spring.* Harvard University Press, 2017\. Khrushchev-era thaw and the limits of de-Stalinization.  
  
Viola, Lynne. *The Unknown Gulag: The Lost World of Stalin's Special Settlements.* Oxford University Press, 2007\. Administrative deportation and special settlements; the extrajudicial repression this analysis cannot capture.  
  
*Note on Imperial precedents:* The categories of political prosecution documented here may predate the Soviet period. Article 58 of the RSFSR code descended from Tsarist laws on political crimes (Ulozhenie o Nakazaniyakh, 1845; revised 1903). The continuity may be 180 years, not 100\. This analysis does not extend to the Imperial period, but Pipes (1974, 1993) argued that Russian autocratic governance, including the criminalization of political dissent, is a continuous tradition spanning centuries. The Imperial precedents are outside the scope of this analysis but are noted for completeness. 

### Contemporary Russian politics and security

Galeotti, Mark. *The Vory: Russia's Super Mafia.* Yale University Press, 2018\. Russian organized crime and its intersection with state power.  
  
Galeotti, Mark. *Putin's Wars: From Chechnya to Ukraine.* Osprey Publishing, 2022\. Russian military strategy and security services.  
  
Hill, Fiona, and Clifford G. Gaddy. *Mr. Putin: Operative in the Kremlin.* Brookings Institution Press, 2013\. Putin's worldview and strategic thinking; the operational logic behind legal instruments.  
  
McFaul, Michael. *From Cold War to Hot Peace: An American Ambassador in Putin's Russia.* Houghton Mifflin Harcourt, 2018\. U.S.-Russia relations and the closure of democratic space.  
  
Stoner, Kathryn. *Russia Resurrected: Its Power and Purpose in a New Global Order.* Oxford University Press, 2021\. Russia's resurgence as a global power despite economic weakness. 

### Economics and political economy

Aslund, Anders. *Russia's Crony Capitalism: The Path from Market Economy to Kleptocracy.* Yale University Press, 2019\. Post-Soviet economic transition and the creation of the oligarchy.  
  
Dawisha, Karen. *Putin's Kleptocracy: Who Owns Russia?* Simon and Schuster, 2014\. The economic infrastructure of Putin's inner circle; KGB-to-oligarch pipelines.  
  
Guriev, Sergei, and Daniel Treisman. *Spin Dictators: The Changing Face of Tyranny in the 21st Century.* Princeton University Press, 2022\. How modern autocracies use information control rather than mass repression.  
  
Belton, Catherine. *Putin's People: How the KGB Took Back Russia and Then Took on the West.* Farrar, Straus and Giroux, 2020\. KGB front companies, Gosbank correspondents, and the privatization of Soviet-era financial infrastructure. Documents the continuity between Soviet and modern offshore structures that this analysis identifies independently through graph analysis.  
  
Soldatov, Andrei, and Irina Borogan. *The New Nobility: The Restoration of Russia's Security State and the Enduring Legacy of the KGB.* PublicAffairs, 2010\. Documents the institutional continuity between the KGB and the modern FSB at the apparatus level: training traditions, organizational culture, personnel pathways. Does not establish unit-level genealogy from the Fifth Directorate to the TsIB. 

### Method

Blondel, Vincent D., et al. "Fast unfolding of communities in large networks." *Journal of Statistical Mechanics: Theory and Experiment* 2008.10 (2008): P10008\. The Louvain algorithm used in this analysis.  
  
Fellegi, Ivan P., and Alan B. Sunter. "A theory for record linkage." *Journal of the American Statistical Association* 64.328 (1969): 1183-1210\. Probabilistic entity matching used in the FSB-Panama analysis.  
  
Forman, Robin. "Bochner's method for cell complexes and combinatorial Ricci curvature." *Discrete and Computational Geometry* 29.3 (2003): 323-374\. Curvature analysis used to identify concealment topology in the offshore graph.  
  
Miles, Alistair, and Sean Bechhofer. "SKOS Simple Knowledge Organization System Reference." *W3C Recommendation* (2009). The vocabulary standard used for charge-to-ICCPR and Soviet-to-modern mappings.  
  
Hitzler, Pascal, et al. "OWL 2 Web Ontology Language Primer." *W3C Recommendation* (2012). The ontology language used for class definitions and inferencing. 

### Human rights instruments

International Covenant on Civil and Political Rights (ICCPR). Adopted 16 December 1966, entered into force 23 March 1976\. USSR ratified 1973\. Russian Federation succeeded 1991.  
  
UN Convention on the Rights of the Child (CRC). Adopted 20 November 1989, entered into force 2 September 1990\. USSR ratified 1990\. Art. 1: "a child means every human being below the age of eighteen years."  
  
UN Human Rights Committee, General Comment No. 29: States of Emergency (Art. 4), CCPR/C/21/Rev.1/Add.11, 31 August 2001\. Defines non-derogable rights and the scope of Art. 4(2).  
  
UN Human Rights Committee, General Comment No. 35: Liberty and Security of Person (Art. 9), CCPR/C/GC/35, 16 December 2014\. Standards for pretrial detention of juveniles. 

### Journalism and reporting

ICIJ, "Cyprus Confidential." November 2023\. 3.6 million leaked documents from Cypriot financial services firms; 67 of 105 Russian billionaires used Cyprus firms.  
  
ICIJ, "Panama Papers." April 2016\. 11.5 million leaked documents from Mossack Fonseca.  
  
ICIJ, "Pandora Papers." October 2021\. 11.9 million documents from 14 offshore service providers.  
  
BBC Russian Service, RFE/RL, Moscow Times, CNN, Novaya Gazeta Europe, Mediazona, OVD-Info: reporting on individual child prosecution cases cited in the companion Report IV.  
  
Memorial International. Political prisoner lists and case assessments, 1989-2021 (liquidated by Russian court order, 28 December 2021). Data preserved by partner organizations. 

architecture and tooling

## Technical execution: how the analysis was *built.*

### Ontology construction

The knowledge graph was built in Python using `rdflib` (v7.0) for RDF triple construction and serialization. The ontology follows BFO (Basic Formal Ontology) alignment with OWL 2 DL expressivity. The SKOS charge vocabulary was hand-built using `rdflib`'s SKOS namespace bindings. SHACL validation shapes enforce cardinality constraints on prosecution records (every Persecution must have at least one chargeArticle (sh:minCount 1) and one persecutionStartYear). The merged ontology (217,814 triples) is serialized as Turtle (.ttl) and queried locally using `rdflib`'s SPARQL engine. No external triplestore is used. The entire pipeline runs on a single laptop from six Python scripts (01 through 06) executed sequentially against the public OVD-Info CSV export.

### Graph analytics

`NetworkX` (v3.3) provides the graph data structure for both charge co-occurrence and offshore entity networks. Louvain community detection uses `python-louvain` (Blondel et al., 2008) at resolution parameter 1.0 with stability testing across 100 random seeds (NMI > 0.96). Structural break detection uses a custom permutation test: for each candidate break year, the observed modularity difference between pre/post partitions is compared against a null distribution generated by randomly permuting year labels while preserving charge structure (5,000 permutations per candidate year). Fellegi-Sunter probabilistic entity matching uses `rapidfuzz` (v3.14) for candidate generation and a custom scoring function with surname IDF weighting derived from the combined name corpus.

### Forman-Ricci curvature

The bibliography references Forman-Ricci curvature analysis (Forman, 2003). This method was applied in the companion FSB-Panama offshore report, not in the Soviet-modern comparison. In the offshore graph, Forman-Ricci curvature identifies edges with negative curvature as structural bottlenecks: nodes that bridge otherwise disconnected communities. Severum Holdings (curvature -19, betweenness 0.294, degree 21) was identified as the most central concealment node through this method. Curvature analysis was not applied to the charge co-occurrence graphs because charge co-occurrence graphs are dense (high edge density within communities) and curvature is most informative on sparse networks with clear bridging structure. The method is described here because the bibliography cites the foundational paper.

### Data streaming

The Memorial dataset (308 MB compressed, 18,973 JSON files, 1,056,670 records) is streamed from S3 into memory as a gzipped zip archive. Charge extraction uses regex parsing of unstructured Russian free-text biographies (patterns: "ст." for article numbers, "обв.:" for charge descriptions, "Приговор:" for sentences). OpenSanctions (4.3M FTM entities) is streamed from S3 and parsed line by line. The Panama Papers N-Triples file (83.9 MB compressed, 13.1M triples) requires three sequential streaming passes: Pass 1 identifies Soviet-era entity URIs by incorporation date, Pass 2 extracts names and relationships for those URIs only, Pass 3 resolves connected officer names. This multi-pass architecture keeps memory usage under 500 MB on commodity hardware.

### Entity resolution: prosecution graph to offshore graph

The political prosecution graph and the offshore financial graph are connected through two mechanisms. First, OpenSanctions serves as a shared reference: sanctioned officials appear in both the OVD-Info prosecution dataset (as perpetrators or associated figures) and the ICIJ offshore datasets (as officers, shareholders, or beneficial owners of shell entities). Fellegi-Sunter probabilistic scoring with surname IDF weighting identifies candidate matches across datasets. Second, corporate registry records (UK Companies House PSC register, Cyprus Department of Registrar) provide deterministic links: a named individual (e.g., Christodoulos Vassiliades) appears in both the ICIJ offshore graph and the Cyprus company registry with matching registration numbers (HE 244054). The connection between prosecution and offshore infrastructure is structural (the same state apparatus that prosecutes dissidents also generates the officials whose assets require concealment), not transactional (this analysis does not trace financial flows between the two graphs).

Key referencesSolomon, Peter H. (1996). *Soviet Criminal Justice under Stalin.* Cambridge University Press.  
Paneyakh, Ella (2014). "Faking Performance Together: Systems of Performance Evaluation in Russian Enforcement Agencies." *Post-Soviet Affairs* 30(2-3).  
Hendley, Kathryn (2017). *Everyday Law in Russia.* Cornell University Press.  
Getty, J. Arch and Naumov, Oleg V. (1999). *The Road to Terror: Stalin and the Self-Destruction of the Bolsheviks, 1932-1939.* Yale University Press.  
Kuhn, Philip A. (1990). *Soulstealers: The Chinese Sorcery Scare of 1768.* Harvard University Press. 

From two databases. One method.

Soviet data: Memorial (base.memo.ru), 1,056,670 records, bulk JSON export via GitHub (ivbeg/memoru).  
Modern data: OVD-Info political prosecution database, 7,132 records.  
Method: Louvain community detection (Blondel et al., 2008) on charge co-occurrence graphs.  
SKOS mappings: 20 Soviet-to-modern functional equivalences (analyst judgments).  
RSFSR Criminal Code (1960). RF Criminal Code (1996). Same algorithm. 80 years apart.  
  
© 2026 Trace Origin LLC