Format Akoma Ntoso

Phrase de présentation du format Akoma Ntoso sur son site dédié :

Akoma Ntoso (“linked hearts” in the Akan language of West Africa) defines a set of simple technology-neutral electronic representations in XML format of parliamentary, legislative and judiciary documents.

Ce format (complexe) permet de décrire notamment les projets et propositions de loi.

Utilisation par le Sénat

Le Sénat l’utilise (de manière expérimentale ?) pour publier certains documents législatifs.

Les URL des documents au format Akoma Ntoso semblent suivre la syntaxe https://www.senat.fr/akomantoso/{identifiant du texte}.akn.xml.

Par exemple le Projet de loi n°101 de financement de la sécurité sociale pour 2021 a pour identifiant pjl20-101. Sa page web est http://www.senat.fr/leg/pjl20-101.html et sa page Akoma Ntoso est https://www.senat.fr/akomantoso/pjl20-101.akn.xml.

Autres exemples :

Plus d’informations

La description XML de la version 3 du schéma Akoma Ntoso est publiée au format XSD par l’Oasis.

J’avais commencé très rapidement une conversion Akoma Ntoso → JSON lors du hackathon Datafin au Sénat en janvier 2020, c’est sur ce snippet. Il faudrait encore épurer le résultat, il y a encore trop de HTML jsonifié.

Comme on discutait avec @eraviart, il pourrait être créé un format basé sur unist pour réutiliser les chaînes de traitement de ce projet, d’autant que c’est a peu près compatible DuraLex et metslesliens (ce n’est pas un hasard pour metslesliens, j’avais découvert ce projet et m’en étais inspiré pour les besoins de syntaxes supplémentaires, je sais pas si Jean-Marc le connaissait et/ou si les grands esprits se sont rencontrés). Mais étant donné l’existence de Akoma Ntoso, il faudrait évaluer si c’est pertinent ou bien si des convertisseurs unist ↔ Akoma Ntoso seraient plus appropriés (si ça vaut le coup de réutiliser ce qu’a développé le projet unist).

J’imagine un outil qui :

  • convertit les projets et propositions de loi en HTML de l’Assemblée vers un arbre syntaxique (AST) spécifique aux lois, basé sur unist et reprenant un sous-ensemble des termes d’Akoma Ntoso ;
  • convertit les projets et propositions de loi en Akoma Ntoso du Sénat vers ce mêmeAST ;
  • convertit aussi les lois promulguées du Journal officiel vers cet AST.

L’AST ainsi généré s’arrêterait au niveau de l’Alinea, mais ensuite metslesliens pourrait prendre le relai et convertir les références à des documents législatifs figurant sous forme de texte dans ces nœuds de l’AST en sous-arbres.

Les références trouvées par metlesliens seraient ensuite enrichies de l’URL vers le texte référencé grâce à ELI router.

On pourrait même imaginer qu’à terme Duralex prenne le relai de metslesliens et continuer à préciser l’AST en le transformant en un arbre de plus en plus sémantique.

Et à tout moment cet AST pourrait être converti en AST Markdown (ou HTML), et permettrait ainsi de proposer des documents législatifs plus faciles à manipuler (historique sous Git par exemple) et à consulter (avec des liens notamment).

Ce projet a déjà un nom : Tricoteuses Arbre de la loi :slight_smile:

Dans Tricoteuses Arbre de la loi, il y a maintenant un premier convertisseur qui prend un fichier Akoma Ntoso du Sénat pour le convertir en AST.

Mais c’est une impasse, car rien qu’en le testant avec 1 seul projet de loi, on peut se rendre compte qu’il y a des erreurs et des omissions dans l’export Akoma Ntoso du Sénat.

Ainsi, dans l’export Akoma Ntoso du projet de loi de financement de la sécurité sociale pour 2021 :

  • L’alinéa 2 de l’article 1 est incorrect : la ligne “1° Le tableau d’équilibre, par branche, de l’ensemble des régimes obligatoires de base de sécurité sociale :” est absente du format Akoma Ntoso, et en plus un élément <num> est ajouté par erreur à l’<alinea>.
  • Les annexes contiennent des dans des et des parties sont manquantes.

Tout cela fait qu’il va falloir, comme pour l’Assemblée, construire l’AST à partir du HTML. Et c’est bien dommage.