-
Notifications
You must be signed in to change notification settings - Fork 0
Format de la base LEGI officielle
La base LEGI est mise à disposition sous forme d'archives .tar.gz
sur ftp://legi:[email protected]/
. Une nouvelle archive incrémentale est ajoutée à la fin de chaque jour ouvré, et une ou deux fois par an la grosse archive de base est remplacée par une nouvelle.
Une archive globale de LEGI contient plus d'1,5 millions de petits fichiers XML répartis dans un nombre similaire de répertoires. Si vous souhaitez extraire tout ça nous vous conseillons de créer une partition XFS dédiée, d'au moins 10Go. Pour en savoir plus lisez ext4 vs XFS.
La base LEGI est découpée en 4 parties : code_en_vigueur
, code_non_vigueur
, TNC_en_vigueur
, et TNC_non_vigueur
. Elle a 4 types de fichiers : article
, section_ta
, texte_struct
, et texte_version
.
Le chemin de chaque fichier contient deux identifiants: le premier niveau est un cid
qui regroupe les éléments d'un texte, et le deuxième est un id
qui correspond à une version d'un élément du texte.
Pour être utilisable sur des systèmes de fichiers basiques LEGI transforme les identifiants en arborescence profonde de sous-dossiers : LEGIABCD123456789012
devient LEGI/ABCD/12/34/56/78/90/LEGIABCD123456789012
.
Nous avons donc des chemins comme ceux-là :
legi/global/code_et_TNC_en_vigueur/TNC_en_vigueur/JORF/TEXT/00/00/30/43/10/JORFTEXT000030431093/section_ta/LEGI/SCTA/00/00/30/43/47/LEGISCTA000030434772.xml
legi/global/code_et_TNC_en_vigueur/TNC_en_vigueur/JORF/TEXT/00/00/30/43/10/JORFTEXT000030431093/texte/struct/LEGITEXT000030434764.xml
legi/global/code_et_TNC_en_vigueur/TNC_en_vigueur/JORF/TEXT/00/00/30/43/10/JORFTEXT000030431093/texte/version/LEGITEXT000030434764.xml
legi/global/code_et_TNC_en_vigueur/TNC_en_vigueur/JORF/TEXT/00/00/30/43/10/JORFTEXT000030431093/article/LEGI/ARTI/00/00/31/84/35/LEGIARTI000031843598.xml
(Dans le cas des archives journalières ils sont en plus préfixés par la date et l'heure de l'archive, par exemple 20160126-202105/
.)
Cette arborescence ne permet pas de garantir que les identifiants sont uniques, et en pratique certains fichiers sont en effet présents plus d'une fois dans la base.
Les fichiers XML de la base LEGI ont des DTD qui décrivent leurs structures. Vous pouvez les trouver dans le dossier DTD LEGI FREEMIUM
du serveur FTP.
Toute base de données a besoin de clés primaires, malheureusement celles de LEGI sont un peu faibles.
Un texte peut avoir plusieurs cid
, plusieurs NOR, et plusieurs titrefull
s. La base LEGI n'a aucun identifiant qui regroupe toutes les versions d'un texte.
De plus un NOR peut pointer vers plusieurs textes.
Le champ titre
des textes n'est pas unique non plus. Par exemple « Loi du 22 juillet 1922 » peut faire référence à celle « relative aux retraites des agents des chemins de fer secondaires d'intérêt général, des chemins de fer d'intérêt local et des tramways » tout autant qu'à celle « supprimant dans les actes de naissance des enfants naturels les mentions relatives au père ou à la mère, lorsque ceux-ci sont inconnus ou non dénommés ».
Pire, un titrefull
peut pointer vers plusieurs textes publiés le même jour avec le même nom et des contenus similaires mais pas identiques.
Cependant un cid
ne semble jamais regrouper plusieurs textes différents.
Un texte n'a pas forcément de num
, mais quand il en a un le tuple (nature, num)
est une clé primaire sauf pour nature='DECISION'
.
La clé d'une version d'un texte est (cid, date)
. C'est d'ailleurs ce qu'on retrouve dans les URLs legifrance, par exemple https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=LEGITEXT000030829276&dateTexte=20150531. Le champ id
d'un texte ne versionne que les métadonnées de celui-ci (par exemple son titre), pas chaque version du contenu du texte.