Memoire politique infrastructure informatique

De La Quadrature du Net

Mémoire politique : infrastructure informatique mise en place

Les pages de ce wiki relatives à Mémoire politique s'appuient sur une base de données Berkeley DB XML (BDB XML). Des scripts Perl sont utilisés tant pour créer cette base de données, qu'en extraire des informations permettant de créer des pages wiki, ou encore pour enrichir cette base à partir de modifications faites sur les pages wiki. Ainsi ces pages wiki constituent un frontend pour cette base de données. Toutefois il n'y a pas d'interactions en temps réel entre la base et les pages wiki. Les mises à jour du wiki à partir de la base et inversement se font régulièrement de façon semi-automatisée.

L'arborescence des répertoires et les scripts Perl utilisés peuvent être librement téléchargés, ainsi que les containers BDB XML suivants :

Ces scripts sont distribués sous une licence GNU General Public License version 3 ou supérieure.

Installation de la base de données

  • Décompressez l'archive de la hiérarchie de répertoires (tar zxvf skeleton_memoire_politique.tgz)
  • Téléchargez Berkeley DB XML.
  • Installez BDB XML avec le support de Perl (sudo sh buildall.sh --enable-perl)
  • Décompressez l'archive de la base de données :
    • tar zxvf meps_dump_memoire_politique.tgz
    • tar zxvf votes_dump_memoire_politique.tgz
    • tar zxvf mps_dump_memoire_politique.tgz
    • tar zxvf mps_votes_dump_memoire_politique.tgz
  • Chargez chacun des container de cette archive :
    • container pour les eurodéputés : dbxml_load -h <repertoire_cible> -f dumps/meps.dump meps.dbxml
    • container pour les votes des eurodéputés: dbxml_load -h <repertoire_cible> -f dumps/votes.dump votes.dbxml
    • container pour les députés : dbxml_load -h <repertoire_cible> -f dumps/mps.dump mps.dbxml
    • container pour les votes des députés: dbxml_load -h <repertoire_cible> -f dumps/mps_votes.dump votes.dbxml

Vous pourrez manipuler cette base de données à l'aide du shell (dbxml) fourni avec BDB XML (cf. tutoriel) ou en écrivant vos propres programmes en C++, Java, Perl, Python, PHP ou Tcl. Bien entendu, les scripts Perl ci-dessous peuvent servir d'exemples.

Description des scripts

Les informations concernant les arguments et options de chaque script peuvent simplement être obtenues en utilisant l'option ./<script> --help (ou ./<script> -h).

Les scripts Perl sont simplement installés en décompressant leur archive (tar zxvf scripts_memoire_politique.tgz)

Initialisation de la base

  • fetch_mep_infos2xml.pl : collecte les informations sur tous les eurodéputés depuis le site du Parlement européen, les informations sur chaque eurodéputé sont sauvegardées dans un fichier XML, les photos des députés sont également téléchargées.
  • fetch_mp_infos2xml.pl : collecte les informations sur tous les députés depuis le site de l'Assemblée nationale, les informations sur chaque député sont sauvegardées dans un fichier XML, les photos des députés sont également téléchargées.
  • rollcall2xml.pl : à partir d'un fichier texte obtenu par copié/collé du PDF listant les votes par appel nominal au Parlement européen, produit le fichier XML correspondant. Ce fichier doit ensuite être complété manuellement, pour indiquer des descriptions des différents amendements, les recommandations de vote, etc.

Mise à jour de la base

  • load_xml2dbxml.pl : charge les fichiers XML passés en argument vers un container BDB XML.
  • fr_update_opinions.pl : met à jour dans un container BDB XML les prises de position d'un responsable politique à partir de sa page wiki.
  • vote_update_meps.pl : met à jour dans un container BDB XML les résultats des votes des responsables politiques.

Extraction des pages wiki

  • all_meps_xmldb2mediawiki.pl : crée les pages wiki de tous les eurodéputés à partir du container BDB XML.
  • all_mps_xmldb2mediawiki.pl : crée les pages wiki de tous les députés à partir du container BDB XML.
  • mep_xmldb2mediawiki.pl : crée une page wiki d'un eurodéputé à partir du container BDB XML.
  • mp_xmldb2mediawiki.pl : crée une page wiki d'un député à partir du container BDB XML.
  • vote_xmldb2mediawiki.pl : crée les pages wiki d'un vote à partir du container BDB XML.

Création de pages wiki de navigation

  • meps_by_name.pl : crée les pages wiki listant les eurodéputés par ordre alphabétique d'après une requête XQuery.
  • meps_by_country.pl : crée les pages wiki listant les eurodéputés par pays d'après une requête XQuery.
  • meps_by_group.pl : crée les pages wiki listant les eurodéputés par groupe politique d'après une requête XQuery.
  • meps_by_committee.pl : crée les pages wiki listant les eurodéputés par commission politique d'après une requête XQuery.
  • meps_by_office.pl : crée les pages wiki listant les eurodéputés par bureau d'après une requête XQuery.
  • mps_by_name.pl : crée les pages wiki listant les députés par ordre alphabétique d'après une requête XQuery.
  • mps_by_department.pl : crée les pages wiki listant les députés par département d'après une requête XQuery.
  • mps_by_group.pl : crée les pages wiki listant les députés par groupe politique d'après une requête XQuery.
  • mps_by_committee.pl : crée les pages wiki listant les députés par commission parlementaire d'après une requête XQuery.

Mise à jour des pages wiki

  • upload_mediawiki.pl : upload les pages wiki passées en argument.
  • fr_upload_mediawiki.pl : upload les pages wiki passées en argument pour les fiches en français des eurodéputés.
  • upload_img.pl : upload les images passées en argument.