Documentation Tricoteuses / Canutes ← Accueil
Le Rapporteur · Hackathon Assemblée nationale 2026

La base de données du droit et du Parlement

Le Rapporteur vérifie chaque citation contre Canutes, la base unifiée du projet Tricoteuses. Cette page explique ce qu'est cette base, ce que nous avons produit pour la rendre exploitable, et comment ses entités s'articulent.

C'est quoi Tricoteuses ?

Tricoteuses est un projet open-source qui nettoie et republie les données ouvertes du Parlement français (Assemblée nationale, Sénat) et du droit (Légifrance, Service-public), souvent brutes et hétérogènes (XML, dumps PostgreSQL anciens), dans une base PostgreSQL unifiée nommée Canutes, avec une API PostgREST et des serveurs MCP (Moulineuse, Parlement).

Concrètement, Canutes rassemble : articles de codes (Légifrance), textes et amendements de l'AN et du Sénat, débats, scrutins, dossiers législatifs, fiches Service-public. C'est la matière première d'une IA juridique sourcée.

Ce qu'on a fait

Le schéma de base de données

SchemaSpy · legifrance

Articles, textes, codes, sections (23 tables).

Ouvrir le diagramme →
SchemaSpy · assemblee

Acteurs, amendements, dossiers, scrutins (19 tables).

Ouvrir le diagramme →
Diagramme & formats

Vue d'ensemble et formats lisibles par un LLM.

Diagramme (SVG) · JSON · DBML

Le fichier DBML se rend aussi sur dbdiagram.io ; le SVG ci-dessus est un export déjà généré (sans service externe).

Comment lire Canutes

Préfixe d'idEntité
LEGIARTI…un article de code
LEGISCTA…une section (nœud de l'arbre du code)
LEGITEXT…un texte / code entier
JORFARTI…une version publiée au Journal officiel

Liens entre les entités

Reconstitués à partir des conventions d'id et du contenu jsonb (data.CONTEXTE, data.LIENS).

⚠️ Déductions : ces relations ne sont pas déclarées en base (aucune clé étrangère). Ce sont des hypothèses de lecture, pas des contraintes vérifiées.
erDiagram texte_version ||--o{ section_ta : "contient (LEGITEXT vers LEGISCTA, deduit)" section_ta ||--o{ article : "contient (LEGISCTA vers LEGIARTI, deduit)" article ||--o{ article_lien : "cite (LEGIARTI vers LEGIARTI, deduit)" texte_version ||--o{ dossier_legislatif : "rattache (deduit)" article { character id text num jsonb data } section_ta { character id } texte_version { character id } article_lien { } dossier_legislatif { }