-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Aujourd’hui, j’ai assisté à un colloque sur la révision constitutionnelle de 2008 qui a, entre autres, vu l’apparition de la QPC. J’ai donc logiquement adapté (rapidement) legi.py à la base CONSTIT.
Pour information, il y a eu (jusqu’au 14 mars 2018), et sauf erreur de programmation (possible quoique les résultats semblent cohérents), 601 QPC au rythme de 70 à 100 par an depuis 2010, avec comme résultats : 306 conformité, 79 non-conformité, 76 conformité avec réserves, 37 non conformité totale + effet différé, puis de nombreux autres statuts.
Cette issue (ambitieuse) se propose de modifier en profondeur legi.py pour que ça puisse être adapté relativement facilement à d’autres bases (il y en a désormais une vingtaine fournies par la DILA). Chaque base a une structure propre même si une structure commune peut être dégagée. En premier inventaire (et pour ce que j’en ai étudié), les structures communes sont :
- utilisation du XML
- utilisation d’ID
- rangement des sous-dossiers par ID
- mécanisme de mise à jour : Freemium initial + màj légères avec nouvelle version du fichier et liste de suppression (hormis protocole du gouvernement)
- métadonnées de liens intra-base ou inter-bases
Et, sans être exhaustif, les différences sont :
- LEGI : sous-dossiers initiaux "code_et_TNC_(en|non)_vigueur/(code|TNC)_en_vigueur"
- LEGI : utilisation de CID pour regrouper l’appartenance à un même texte dans différentes vigueurs regroupés dans des sous-sous-dossiers
- KALI, JORF : sous-dossiers initiaux "conteneur"
- JORFSIMPLE : fichier JORFCONT similaire à celui de JORF dossier "conteneur" mais rangé à côté des JORFTEXT dans un sous-sous-dossier JORFCONT
- JADE : sous-dossiers initiaux "inedit" vs "publie"
- INCA : top dossier initial "juri" (puis "inca/global" selon l’arborescence classique)
- INCA : sous-dossiers initiaux "criminelle" vs "sociale"
- LEGI : sous-dossiers avec les articles
- schéma XML propres à chaque base
- …
Dans mon idée, les similitudes pourraient être mises en commun dans des fonctions/classes/modules avec une portée limitée à leur fonctionnalité, et les différences pourraient être soit des fichiers de configuration/description soit des classes enfants d’autres classes plus génériques s’il y a des différences qui ne peuvent pas être décrites simplement dans des fichiers de configuration et doivent avoir un aspect programmatique.
Éventuellement, pour être plus ambitieux et générique encore, mais ça sort du champ de la légistique numérique pour entrer dans le champ de l’informatique, il pourrait être créé une librairie qui prend un fichier XML ainsi qu’une table de correspondance XML -> SQL (ou NoSQL au choix) et transfère les données depuis le fichier XML vers la base SQL/NoSQL. Une telle librairie pourrait être un composant d’une librairie legi.py comme décrite ci-dessus (elle ne gèrerait pas par exemple la gestion des fichiers et des dossiers des bases juridiques).