Cette page explique les différentes étapes de création et de mise à jour du site JORFSearch.
Les articles du Journal Officiel sont obtenues à travers la base OPENDATA de la DILA. On peut s'imaginer une longue liste de fichiers, chacun correspondant à un article du Journal Officiel.
D'autres données proviennent du Bulletin Officiel du Ministère de l'intérieur (BOMI) ou du Ministère de la Justice (BOMJ), ou de certains autres Bulletins Officiels listés ici.
A ce stade, ces "données" ne sont que des documents html ou pdf contenant des phrases écrites en français. Il n'y a aucune notion informatique de ce qui désigne un individu ou son futur poste.
Deux fois par jour environ, la DILA met à jour les données du Journal Officiel. Parfois, ce sont les ministères qui mettent à jour leurs Bulletins Officiels. Il faut donc détecter ces mises à jour, lister les entrées créées et lancer l'extraction des nominations.
Certains scripts de détection se lancent plusieurs fois par jour (pour le JO), et ceux des ministères deux à trois fois par semaine.
Certains Bulletin Officiels comme celui du Ministère de l'Intérieur ou celui du CNRS sont des pdf de plusieurs centaines de pages, qui sont découpés automatiquement article par article.
A la fin de cette étape, toutes les données sont contenues dans des fichiers texte/html, ce qui signifie pour les fichiers pdf de passer par une étape de reconnaissance de caractères (OCR) et de reconstruction des paragraphes.
Les phrases qui correspondent à des nominations sont souvent très explicites:
"Monsieur Untel est nommé Premier Ministre"
D'autres fois, les phrases sont plus complexes et comportent des listes d'individus:
Les personnes suivantes sont nommées ministres:
Il est très facile pour un humain d'identifier un nom dans une phrase. C'est plus difficile pour un ordinateur:
Ces dénominations mélangent nom et prénom, minuscules et majuscules, particules et parfois même un titre de Professeur. Les noms de jeunes filles sont également précieux pour pouvoir suivre la carrière d'une femme mariée.
Avec un peu de transpiration, on peut lister la plus grande partie des cas.
Les nominations sont parfois effectuées au sein d'organisations qui reviennent régulièrement dans les pages du Journal Officiel. Manque de chance, ces organisations ne sont pas toujours décrites de la même manière.
Ce travail de réunification est principalement réalisé à la main. Il prend un temps considérable, mais permet de suivre l'historique des nominations d'une institution.
Le nec-plus-ultra de la base données, ce sont les données sémantiques. La chaine de caractères "Université Lyon-1" décrit-elle une université existante, ou une université disparue ? Comment stocker de l'information sur les institutions elles-mêmes ?
Ces données peuvent être stockées dans la base Wikidata, une merveille de partage d'informations sémantiques. On stocke donc, quand c'est possible, l'identifiant Wikidata correspondant aux institutions.
Il faut cependant, et souvent manuellement, associer à chaque organisation de JORFSearch un identifiant Wikidata. Ca permet, par exemple, d'obtenir que la page de l'École Nationale d'Administration affiche un lien vers la page Wikipedia de l'ENA: en liant JORFSearch et Wikidata on obtient ces données gratuitement.
Une des pages les plus populaires de JORFSearch est la compilation des nominations de nouveaux notaires. Il faut, pour cela, détecter automatiquement qu'une personne est nommée en tant que notaire pour afficher l'information. On peut stocker, au passage, le lieu d'exercice de l'office de notaire puisqu'il parait au Journal Officiel.
Des dizaines de spécialisation existent pour les emplois d'ambassadeurs, de préfets, de professeurs des universités, de magistrats, etc.
Pour certains Bulletins Officiels dont la publication sur les sites des ministères est assez artisanale, il n'est pas déraisonnable de re-publier les pdf eux-même en leur ajoutant des métadonnées (date, numéro d'identification NOR).
Pour les pires d'entre eux, publiés par pdf de 400 pages, il peut également être utile au public de disposer d'un lien direct vers l'un de ces textes, et non pas uniquement vers le pdf les contenant tous. C'est ce qui est fait pour le BOCNRS et le BOMI.
Le site JORFSearch permet de faire de la recherche par nom, par organisation, par identifiant NOR, ou à l'aide de toute information spécalisée et liée à des types particuliers de nominations.
Ce site peut également suggérer les noms alternatifs de femmes mariées, et il est souvent utilisé pour suivre la carrière de fonctionnaires.
Les pages spécialisées permettent de suivre l'actualité d'une profession.
On peut ainsi consulter la liste des créations d'offices de notaires, ou obtenir la liste de tous les ambassadeurs de France en poste à l'étranger. Spoiler: l'Italie est parfois appelée "Italie", et d'autres fois "République Italienne", et c'est le cas pour de nombreux pays.
Il faut pour cela une base de toutes les dénominations des pays dans laquelle la France a un jour envoyé des ambassadeurs ... ce que j'ai fini par reconstruire.
Toute page du site JORFSearch est construite à partir de données XML que chacun peut consulter (via un lien sur la page).
Pour les utilisations nécessitant moins de précision dans les données, on peut également y accèder au format JSON. C'est de ce flux JSON que sont d'ailleurs générées les pages spécialisées
Pour le travail plus manuel, ces données sont également exportables au format TSV (une variante de CSV) ou bien au format Excel.
Cette base de données ne serait rien sans de nombreux tests, qui permettent de vérifier à chaque modification du code ou des données que des nominations qui étaient extraites correctement le sont toujours.
Il existe de nombreux type de tests dans cette base, mais il existe en particulier une liste de >600 nominations, choisies pour être chacune extrêmes à sa façon, qui sont vérifiées à chaque changement du code d'extraction.