Open Seb35 opened 7 years ago
La source principale des doublons est la division de la base LEGI en 4 dossiers {code,TNC}_{vigueur,non_vigueur}
:
select count(*) from duplicate_files where dossier <> other_dossier;
22519
Si je me souviens bien cette séparation obsolète en 4 parties servait à vendre des licences limitées à un dossier (par exemple uniquement les codes en vigueur) avant que LEGI ne soit libérée.
L'autre source de doublons est la réutilisation de certains id
dans plusieurs cid
. Il s'agit probablement d'une optimisation visant à ne pas attribuer un nouveau numéro à deux éléments identiques présents dans deux "versions" d'un même texte.
select count(*) from duplicate_files where cid <> other_cid;
244
Afin de pouvoir utiliser les id
comme clés primaires legi.py doit se débarrasser des doublons. Pour ça il regarde la date de dernière modification du fichier (mtime
) et utilise le plus récent. https://github.com/Legilibre/legi.py/pull/8 a ajouté le stockage des données des fichiers plus anciens dans duplicate_files.data
pour que la base soit toujours complète.
Je n’avais pas remarqué ce phénomène avant que tu ne fasses la modification https://github.com/Legilibre/legi.py/pull/8, @Changaco. Est-ce que tu pourrais détailler ce que tu comprends de ce phénomène et le changement de comportement que tu as fait dans legi.py ?
En regardant les résultats dans duplicate_files de legi.py (je n’ai pas encore refait tourner legi.py avec la nouvelle version, j’essaye pour l’instant de comprendre au niveau des fichiers XML), je constate effectivement que certains fichiers XML (tous les sous-dossiers texte/version, texte/struct, articles et section_ta sont touchés) sont identiques ou très similaires, à la différence principale qu’ils n’ont pas le même CID, et parfois il y a des changements mineurs (j’ai vu : ajout de référence de lien, changement de la casse dans le titre d’un décret, changement d’état entre VIGUEUR_DIFF et VIGUEUR, changement de date de publication entre 2015-10-25 et 2999-01-01).
De ce que je vois dans duplicate_files, c’est que :
Les conclusions temporaires que je tire sont :
Tout complément d’information est le bienvenu !