Inconsistencies and gaps in the law: finding them with a knowledge graph

Direct answer: I built the Open·Parlamento knowledge graph not to "answer" questions, but to map the relations between norms and surface the errors: inconsistencies, contradictions (legal antinomies, in technical terms) and gaps — including gaps in the relations that should already be officially mapped. It's the same tool that enables accountability: reconstructing conflicts of interest and understanding who benefits from a rule. With a caveat that comes before everything: it's meant to fix and document, not to game the law.
TL;DR
- The graph is for finding errors, not just answering: mapped relations = visible inconsistencies.
- Official gaps: I reconstructed the Senate org chart that didn't exist, and mapped its holes.
- Antinomies: contradictions and "forgotten" norms surface by following the graph's edges.
- Accountability: conflicts of interest reconstructed from public data, not from accusations.
- Ethics: dual-use stated plainly. We work on public roles and public data, not private profiles.
Why a graph, not a chatbot
Most projects take the laws and put a chatbot on top. I did the opposite: the knowledge graph first, then the agents. Because a chatbot gives you an answer; the graph shows you the relations — and when relations are explicit, inconsistencies become visible. A norm that cites another one never repealed, two rules that contradict each other, a cross-reference pointing at nothing: things you don't see in a PDF, and that jump out in a graph.
It's the reverse of the usual approach: not "ask me a question and I'll answer", but "let's map how it all holds together, and look at where it doesn't".
The gaps in the official relations
The most concrete example I found was on Parliament. The Chamber publishes its org-chart graph; the Senate doesn't. So I reconstructed it — following their official OSR schema, inside RepublicMCP — and in doing so I didn't just record the existing relations: I mapped the gaps, the relations that, among the officially published ones only, are missing or don't close.
That's the point: a gap isn't always "missing data by accident". Sometimes it's the symptom of something that should have been made visible earlier, and nobody did. Finding it is already a result.
Inconsistencies, contradictions, hidden relations
On top of the authoritative relations (86,672 edges from Normattiva, confidence 1.0) you can work in two ways:
- By following the edges. Inconsistencies and antinomies surface as you traverse the graph: norms that amend each other in a loop, articles that "survived" reforms meant to touch them.
- By searching for not-yet-known relations. With embeddings (semantic similarity at the sub-article level, not the whole article) you discover links nobody mapped explicitly. It's a separate effort, but it's the direction: a weighting algorithm of precedence and importance that helps validate what actually matters — useful to a journalist, a researcher, anyone auditing public spending.
The lenses: who looks, finds different things
The same graph, queried from different perspectives, tells different stories. A journalist reconstructs the history of a legislative battle: who pushed it, who slowed it, what came out. Someone working on public accounts follows the money: an amendment in a decree, a contract, a result. And yes, you can look at the more uncomfortable side: who benefits from a rule, reconstructing conflicts of interest — always starting from public data (roles, votes, holdings), not from insinuations.
This is the powerful part, and it's also why some applications today are called OSINT: intelligence from open sources. Tools like this are appearing everywhere.
OSINT, and why it needs ethics
Let's be blunt: a tool that cross-references laws, data and people is powerful and can be dangerous. That's why the guardrails come first.
- To fix and document, not to game. Spotting an inconsistency serves to close it or make it public, not to exploit it. No operational instructions for evading the law.
- Public data, not profiling. We work on public roles and public acts, not on private citizens' profiles. The line between accountability and surveillance is sharp, and it must be respected.
- Real sources, always cited. An inconsistency only counts if it resolves to verifiable norms and data. No accusations without proof.
AI makes all of this enormously faster. It's up to whoever builds it to decide which side they're on: transparency, or the opposite.
FAQ
Doesn't surfacing gaps and inconsistencies help those who want to game the law?
The tool is designed and framed for the opposite: to surface inconsistencies and gaps so they get fixed or documented. It doesn't provide instructions to evade rules, and it works on citable public sources. It's accountability, not a how-to for wrongdoing.
What does accountability "on public data" mean?
It means reconstructing documented facts — roles, votes, acts, holdings, funds — from official, citable sources, not from opinions or insinuations. The difference between serious investigative journalism and defamation is entirely here.
What is OSINT?
OSINT (Open-Source Intelligence) is the analysis of information from open, public sources. A knowledge graph that cross-references law and open data is an OSINT tool: powerful for transparency, but to be handled with explicit ethical guardrails.
Spot the inconsistencies before they become a problem — to fix them. See how Open·Parlamento works, why the graph is just the door and where it goes by cross-referencing all open data, or let's talk.
Related articles
- Understand a country by cross-referencing its open data, with AI agentsA statute is an idea; the data tell you what it actually became. An agentic system that cross-references every public database — law, cadastre, statistics, archives — to understand reality by analysing the data, not the opinions.
- Building at AI speed: the real bottleneck is decidingPersonal thoughts after a day spent building — articles, a manifesto, a page, even a team of automated fixes — at double speed. The lesson: producing isn’t the problem anymore. Deciding is.
- Why I Use Git as a Litmus Test When I Judge a TeamVersioning discipline is still the fastest way to tell whether a dev team is serious. Here is why — and where Git actually comes from.