API legi


#1

Bonsoir,

:bulb:Je découvre depuis quelques mois la “légistique” et ses joies :slight_smile:

Et ses peines aussi car j’ai été étonné de ne pas avoir trouvé de GIT “officiel” des textes structurés (a part Archeo-lex), ni plus d’open-data. Ces données existent sûrement déjà à plein d’endroits mais dispersées/cachées.

Et les fichiers XML de la DILA… on en parle ? :joy:

Je suis tombé sur la base de legilibre/legi.py, qui est, de ce que j’ai vu, la source brute des textes “froids” la plus exploitable et à jour disponible ? d’autres idées ?
J’ai également rencontré Alexis du Journal Officieux à la nuit du code citoyen et l’approche ElasticSearch est prometteuse aussi;

Mon objectif actuel c’est de pouvoir extraire les textes par code/section/article/date, et de pouvoir faire des opérations sur le texte et la structure, via 1) un module NodeJS et 2) une API HTTP.
Le but n’est pas de faire un outil de recherche, mais plutôt d’extraction des textes bruts, normés, structurés, testés, sur lesquels on va pouvoir travailler : analyse, extract, stats, enrichissement, ML…

ex d’applications:

  • evolution du thème “formation” dans le code du travail depuis 1970
  • article ART R1221-3 du code du travail au 31/12/16…
  • extraction de divers référentiels/corpus

Donc la base legilibre/legi.py me parait une bonne piste, et cela a entrainé quelques expérimentations, pour lesquelles archeo-lex, legi-php et autres ont été indispensables pour pouvoir comprendre ces données; merci aux auteurs et respect pour le support du XML et de la norme LEGI :fist:

Donc j’ai fait un peu de JavaScript, c’est encore très expérimental, mais je compte bien stabiliser dans les semaines qui viennent…

Vos retours/suggestions sont bienvenues, notamment sur le (futur) design de l’API Node ou HTTP ou tout autre remarque :slight_smile:

Merci !

legi-docker

Container docker qui maintient une base PostgreSQL à jour depuis la base LEGI

DILA -----> legi.py ------> pgloader ------> PostgreSQL

bon, il faut quand même ajouter un cron :wink:

legi.js

Un module Javascript qui permet d’interroger une base legilibre, NodeJS / browser(soon)

Le résultat est récupéré sous forme d’arbre JSON, html ou markdown

ex d’usage :

legi.getCode({ id: "LEGITEXT000006072050", date: "2012-03-05" });

legi-api

API HTTP qui utilise legi.js et expose les mêmes données :slight_smile:

GET /getCode/LEGITEXT000006072050?date=2012-03-05&format=markdown


2018-04-06 Compte-rendu du bureau ouvert
#2

Hello, merci pour ce retour d’expérience et les programmes. Je ne les ai pas encore lancé mais ça a l’air bien fait. J’essaierai de prendre le temps, peut-être au prochain Bureau ouvert.

Pour info, en lien avec la dernière proposition de programme, il y a parlapi qui a été en sommeil pendant un bout de temps mais qui reprend ces dernières semaines.

Sinon plus généralement, je me dis de plus en plus que au-delà des programmes de traitement de la base LEGI (et des autres), il faudrait désormais faire des documentations, mettre en valeur ces documentations et les faire éprouver par les nouveaux entrants, ça permettra d’augmenter globalement la qualité des programmes de traitement. Il y en a déjà sur le wiki Légilibre et le wiki Archéo Lex, mais je verrai bien de l’enrichir de nouvelles thématiques, peut-être améliorer la doc des DTD des bases.


#3

Bonjour,

quelques news sur ces projets :

sur la partie technique, le project legi-docker est stabilisé, j’ai un serveur postgresql de demo qui permet de consulter la base LEGI issue du projet legi.py et qui se maintient à jour tout seul. vous pouvez tester avec le mot de passe legi :

psql -U legi -p 5444 -h legi.vps.revolunet.com

select id,cid,etat,date_debut from articles order by id desc limit 10;

          id          |         cid          |     etat     | date_debut
----------------------+----------------------+--------------+------------
 LEGIARTI000037018793 | LEGITEXT000006073189 | VIGUEUR      | 2018-06-07
 LEGIARTI000037018771 | LEGITEXT000006073189 | VIGUEUR      | 2018-06-07
 LEGIARTI000037018757 | LEGITEXT000006074220 | VIGUEUR_DIFF | 2018-07-01
 LEGIARTI000037018755 | LEGITEXT000006074220 | VIGUEUR_DIFF | 2018-07-01
 LEGIARTI000037018753 | LEGITEXT000006074220 | VIGUEUR_DIFF | 2018-07-01
 LEGIARTI000037018737 | LEGITEXT000006072665 | VIGUEUR_DIFF | 2018-07-01
 LEGIARTI000037018730 | LEGITEXT000006072665 | VIGUEUR_DIFF | 2018-07-01
 LEGIARTI000037018651 | LEGITEXT000025503132 | VIGUEUR_DIFF | 2018-07-01
 LEGIARTI000037018633 | LEGITEXT000025503132 | VIGUEUR_DIFF | 2018-07-01
 LEGIARTI000037018616 | LEGITEXT000025503132 | VIGUEUR_DIFF | 2018-07-01
(10 rows)

Time: 14,566 ms

A dispo pour vous aider à mettre en place une instance si besoin.

Sinon j’ai recemment échangé avec la DILA qui travaille sur son API, qui a l’air de prendre forme puisque j’ai pu voir un début de fichier swagger.

La bonne nouvelle c’est que tout le site Legifrance sera basée sur cette API, et que ce serait dispo début 2019, donc on devrait avoir accès à tous les textes et leur historique.


#4

Et le projet legi-docker a été transféré chez Legilibre et renommé en legi-postgres ! https://github.com/Legilibre/legi-postgres