An AI assistant on global organized crime
A knowledge graph of global organized crime, with an AI you can ask about it.
CRIMENET: 4,504 criminal organizations connected by 10,935 relationships across cooperation, conflict, and structural ties.
A few months ago, I created a network of criminal organizations and how they connect to each other. I applied an LLM to read hundreds of Wikipedia articles, extracting every criminal organization mentioned and every relationship between them. The result was CRIMENET: the first open-source knowledge graph of criminal organizations.
I have now significantly expanded it: 4,504 organizations and 10,935 relationships extracted from 1,418 Wikipedia articles1 across four languages. For each profiled organization2, the graph captures its description, country of origin, activity period, founding year, footprints in other countries, and defunct status. Every edge carries a verbatim evidence quote, a description, a versioned Wikipedia URL, and a time period when the source provides one. The three edge types are cooperation, conflict, and other3.
In this new version I also created an AI assistant that answers natural language questions by querying the graph. I will start there, since it covers all the new findings.
CRIMENET AI
Answering a question such as “What is the most connected criminal organization?” is just a matter of running a single computation on the graph. However, answering questions such as “Which motorcycle clubs have direct ties to Italian mafia organizations?” or “What potential rivalries does the Sinaloa Cartel have based on shared adversaries?” require combining information from across the graph.
A standard LLM would guess at the answers. However, give it tools to query the graph and it can combine results to synthesize a response. Not only that, a LLM able to reason over the graph can try answering more subjetive questions, such as “What is the community containing the most unlikely criminal organizations cooperating?”
Based on all of that, I created CRIMENET AI, a GraphRAG4 system I built from scratch. A practical note: answers can take a few seconds, because the AI may run several steps before responding. The following sections walk you through the kinds of questions this AI can answer.
Centrality
In the entire network, only 984 (22%) nodes are isolated. All the other 3,520 organizations are pretty much connected. For them, I computed three centrality measures (degree, betweenness, and PageRank) across. Here are the top 10 ranked by betweenness.
Table 1: Top 10 organizations by betweenness centrality.
- Which Mexican cartels have the most network influence?
- How does the Sinaloa Cartel's network importance compare to the American Mafia?
Communities
Communities are groups of nodes more connected to each other than to the rest of the network. I ran a community algorithm5 on the cooperation graph and it returned 229 communities. Each is now named and described.
I fed each community’s member organizations, their descriptions, and their relationships to DeepSeek to generate a title and a summary. You can browse all communities with their full descriptions and member lists in the Community Browser (select the Communities tab). Here are the top 10.
Table 2: The top 10 communities by membership, titled and described by DeepSeek.
- What community does the Sinaloa Cartel belong to?
- Find communities related to the mafia
- Which communities span the most countries?
Bridges
Some organizations cooperate across community boundaries. I call them bridges. Before CRIMENET, if someone asked “Which criminal organizations connect different communities?” the honest answer was: nobody knew. The question was too big to answer. Now it has an answer (incomplete, but an answer nonetheless): every bridging organization, ranked by how many communities it connects.
Table 3: The top 10 bridge organizations, ranked by cross-community cooperation edges.
- Which Mexican organizations bridge the most communities?
- Which organizations bridge Latin American and European criminal networks?
Paths
A path connects two organizations through documented relationships. A direct edge is a path of length one. If no direct edge exists, the path might run through intermediaries. Each step carries its own evidence quote. The AI can search across all relationship types (cooperation and conflict), or restrict the path to cooperation only.
- Are the Yakuza and the Sicilian Mafia connected?
- Who are the allies of allies of Mara Salvatrucha?
- Is there a cooperation-only route between the PCC and the Camorra?
Countries
Most profiled organization carries its country of origin and each accumulate footprints in other countries (that is to say, countries where one or more Wikipedia articles document its presence). Here are the top 10 countries by how many organizations are based there.
Table 5: The 10 countries where the most criminal organizations are based.
Table 5 stops at ten. For any country in the graph, the dashboard has the rest: switch the left panel to Countries and pick one. For instance, Japan gives you both the organizations based there and the foreign groups with a documented footprint in the country. It is also possible to just skip the browsing and ask CRIMENET AI.
You can also visualize footprints of orgs in each country through this nice interactive world map. Each organization’s country of origin and its documented footprints create arcs across the map.
- Which countries does the 'Ndrangheta have a footprint in?
- Which criminal organizations operate in both Colombia and Venezuela?
Building the graph
The raw material is 1,418 manually curated Wikipedia articles about criminal organizations across 4 languages (English, Italian, Portuguese, and Spanish). The extraction pipeline fetches each article, cleans the HTML into plain text, then sends it to DeepSeek to identify organizations and the relationships between them: cooperation, conflict, and other.6 The pipeline then profiles each organization from its own Wikipedia article (canonical name, aliases, description, country of origin, time period, founded and dissolved years, defunct status, and country footprints, each backed by a verbatim evidence quote) and merges everything into a single graph, folding variant names across languages so that Sinaloa Cartel and the Cártel de Sinaloa become one node.
An LLM extraction pipeline produces errors: it conflates names, misses duplicates, invents edges between orgs that were merely mentioned in the same paragraph, and sometimes pulls in non-criminal entities. In order to fix these problems, I built an audit pipeline that targets each class of error, one audit per error type.7 The correction loop is designed to be iterative: spot an error, add one line to a corrections file, re-run the apply step. Manual overrides always win over auto-suggestions.
CRIMENET’s home page is a dashboard with two panels where you can browse all organizations. Moreover, connection finder page lets you pick any two organizations to see if and how they are connected. The other tabs in Browse the network cover communities, bridges, and triadic signals.
Closing thoughts
There is, to my knowledge, no publicly larger directory of criminal organizations. Wikipedia’s most extensive list of criminal enterprises, gangs, and syndicates covers a few hundred groups. And it only mentions organizations, not their relationships.
This was honestly an accidental achievement. The goal was to build a knowledge graph of how criminal organizations relate to each other. But because the pipeline reads nearly 1,500 articles across four languages and extracts every organization mentioned in each one, it ended up capturing many criminal organizations documented on English, Italian, Portuguese, and Spanish Wikipedia.
Limitations
There are some relevant considerations worth mentioning:
- Wikipedia coverage skews toward English-language and Western sources. The pipeline processes four languages (English, Italian, Portuguese, and Spanish), which is better than one but still leaves gaps. Because the data comes from Wikipedia, the graph inherits the biases and gaps of its source material.
- Relationships are aggregated across time. Every edge carries its own time period, so the data is there, but the graph view flattens time into a single snapshot.
- The current graph models organizations and their relationships, not individuals or cyber criminal groups. This means we lose some information about criminal organizations built around a single person.
- CRIMENET AI will not work for long, at least publicly. It is spending my personal tokens so once my balance hits zero I do not plan to recharge it.
- Not every organization retrieved in the process is necessarily a criminal organization. Some state forces, political parties, or other non-criminal entities may have slipped in. The LLM pipeline is not perfect and occasionally misses a connection or misclassifies one.
If you have questions or ideas, get in touch.
-
Most of these articles are about criminal organizations themselves. The rest cover: individual criminals, events, law enforcement agencies, and other topics that mention criminal groups but are not about a specific organization. ↩︎
-
Of the 4,504 organizations, 1,032 are profiled from their own Wikipedia article (with full descriptions, aliases, country of origin, country footprints, time periods, and defunct status), 3,472 are mention-only (they appear in other orgs' articles but have no dedicated Wikipedia page). Some of these mention-only organizations are referenced in many articles. You can see them in this json file. ↩︎
-
The type ‘other’ is when the relationship between two orgs is genuinely not cooperation nor conflict. Most of these fall into a structural category, such as subgroups. ↩︎
-
GraphRAG stands for Graph Retrieval-Augmented Generation. A standard RAG system retrieves text chunks and asks the model to reason over them. A GraphRAG system retrieves structured data from a knowledge graph by calling tools that traverse nodes, edges, communities, and paths. I gave it 13 tools: functions that look up organizations, find connections, search by country, trace paths. The model decides which function to call, the code runs it against static data files, and the results feed back to the model, which can call another function or synthesize an answer. Every Wikipedia URL and edge from the tool results is collected and appended below the answer as Sources and Evidence. The tools are documented in the GitHub repository. ↩︎
-
The algorithm is Infomap, which finds communities by detecting where random walks tend to stay. ↩︎
-
Cooperation covers alliances, joint operations, and commercial dealings. Conflict covers fighting, war, and clashes. Other covers structural ties (sub-units, splinters), truces, and unspecified links. ↩︎
-
Seven steps in total. Audits 0 through 5 find wrong merges, missed merges, spurious edges, unsupported country links, umbrella terms, and non-criminal entities. Audit 6 provides an LLM second opinion. Audit 7 applies all corrections, with manual overrides from a curated file always winning over auto-suggestions. Full details in the GitHub repository. ↩︎