[DuraLex] avancement du 17/04/17

Bonjour,

voilà les derniers progrès/changement dans le développement de DuraLex, le programme qui analyse les projets de loi pour les transformer en code informatique pour produire le texte de loi final avec le suivi des modifications et le rendre ainsi lisible et votable.

Le point vraiment important de cette semaine est que nous avons atteint une nouvelle étape absolument cruciale. En effet, DuraLex a automatiquement annalysé et appliqué les modifications d’un vrai projet de loi sur un véritable texte de loi existant tout en restituant un suivi détaillé des modifications et en les rendant consultables sur le Web via une plateforme communautaire (GitHub). Dans le principe, on devrait pouvoir faire de même pour tous les projets de loi.

Vous pouvez explorer le résultat de cette automatisation ici :

(même si vous voyez mon pseudo/mon avatar comme « auteur », c’est juste que DuraLex utilise mon compte pour publier ces contenus, mais ils sont bien générés automatiquement par le programme)

Pour mieux comprendre :

  • chaque « issue » (ou « ticket » en français) est un article du projet de loi, qui en compte 3 au total, donc 3 issues (ex: Article 1)
    • le titre de l’issue est le titre de l’article du projet de loi qu’elle décrit (ex : « Article 1 »)
    • la description de l’issue est le contenu original de cet article
    • la liste des modifications de l’issue (en dessous de la description) permet de consulter chacune des modifications apportées par cet article (exemple de modification ici
    • chaque utilisateur peut également commenter / réagir avec un emoji pour chaque article du projet de loi
  • le « code » est ici l’ensemble des articles du texte de loi original (1 article du texte de loi => 1 fichier)

Via GitHub, on peut donc dés maintenant :

  • consulter le texte de loi original et le texte de loi modifié
  • consulter et commenter le suivi des modifications apportées par le projet de loi
  • consulter la liste des articles et la liste des modifications apportées par ce dernier
  • consulter l’article original d’une modification

L’interface de GitHub est utilisée ici à des fins de démonstration. Elle est trop riche/complexe pour notre usage. Mais ça montre bien le principe (et ça n’a demandé pratiquement aucun développement). Il conviendra de faire une interface plus épurée/adaptée : c’est le but de SedLex.

C’est très important par ce que ça montre que nous sommes maintenant capable de créer une version consolidée d’un projet de loi sans aucune intervention humaine pour rendre le texte de loi modifié lisible par tous et donc votable.

L’intégration à Git et à une plateforme communautaire comme GitHub ouvrent également la voie pour que chacun puisse, un jour, proposer ses propres amendements/projets de loi et consulter ceux des autres… bref, à une rédaction/évolution communautaire de la loi aussi efficace que ce qui se fait aujourd’hui dans le monde du logiciel open source.

La loi, c’est du logiciel.
Et si on veut rendre la loi communautaire, alors elle doit être compatible avec les outils modernes d’ingénierie logicielle, notamment ceux utilisés par la communauté open source.
Et c’est ce que nous avons réussi à faire.

Les détails ci-dessous.
N’hésitez pas si vous avez des questions.

Interfaçage avec Git

Git est un système de contrôle de version utilisé pour l’édition de logiciels. Il permet principalement à une communauté de travailler sur un socle de code commun tout en conservant un suivi des modifications.

DuraLex est maintenant capable d’appliquer les modifications lues depuis le projet de loi et de les soumettre au format Git, permettant ainsi le suivi des modifications. Cet interfaçage inclut :

  • l’application du patch correspondant à chaque modification lue/analysée dans le projet de loi ;
  • sa soumission sur Git avec un message faisant référence à l’article / la section précise du projet de loi qui a occasionné la modification (ex : « Article 4, III, 2° »).

Exemple de « commit » Git généré et appliqué par DuraLex ici :

Interfaçage avec GitHub

GitHub est une plateforme communautaire permettant d’explorer et de collaborer sur des dépôts Git. C’est un outil pour collaborer autour de la production de logiciel/code.

En plus de pouvoir visualiser le suivi des modifications (cf lien ci-dessus), l’intégration avec GitHub va également créer un ticket (une « issue » en anglais) pour chaque article du projet de loi :

Le contenu du ticket est le texte original de l’article dans le projet de loi.
Chaque ticket va également automatiquement lister les modifications effectivement lues/annalysées/appliquées automatiquement par DuraLex. Exemple ici avec l’article 1 qui a impliqué deux modifications :

Inversement, chaque modification inclut un lien ver le ticket (et donc l’article du projet de loi) qui décrit la modification.

Plus de modifications/syntaxes appliquées

Notamment les modifications qui consistent à supprimer un article ou à en ré-écrire la totalité du contenu.

La syntaxe « la même loi » est maintenant reconnue et gérée.

Ajouts de tests unitaires

Le projet compte maintenant plus de 125 tests unitaires (contre une 50aine auparavant) qui vont permettre de détecter les régression mais aussi de garantir que toutes les syntaxes rencontrées dans un projet de loi sont bien gérées.

Transfert à l’organisation Legilibre

Dans le but de fédérer la communauté, le projet DuraLex est maintenant listé/géré dans l’organisation Légilibre sur GitHub et est disponible à l’adresse suivante :

10 « J'aime »

Bravo et vive DuraLex :slight_smile:
A quand SedLex ?

Petite surprise la semaine prochaine j’espère…
Pas SedLex mais « un truc du genre »

1 « J'aime »

Voilà :

1 « J'aime »