Political Memory Software

De La Quadrature du Net
Aller à la navigationAller à la recherche

Political Memory : Implemented Software Framework

Pages on this wiki related to Political Memory are based upon a Berkeley DB XML database (BDB XML). Some Perl scripts are run to create this database, to extract informations from this database in order to crate wiki pages, or to update this database from updates made on the wiki pages. Hence these wiki pages can be viewed as a frontend to this database. However there is no real time synchonizations between the database and the wiki pages. Updates of the wiki from the database, and conversely, are frequently made in a semi-automatic way.

A dump of the database, the directory tree, and Perl scripts can be downloaded freely. These scripts are licensed under GNU General Public License version 3 or higher.

Database Setup

  • Untar directory tree tarball (tar zxvf skeleton_memoire_politique.tgz)
  • Download Berkeley DB XML.
  • Install BDB XML with Perl support (sudo sh buildall.sh --enable-perl)
  • Untar dump of the database (tar zxvf dumps_memoire_politique.tgz)
  • Load the following containers from this tarball:
    • container for MEPs: dbxml_load -h <target_directory> -f dump/en_meps.dump en_meps.dbxml
    • container for the votes : dbxml_load -h <target_directory> -f dump/votes.dump votes.dbxml

You can access to this database with shell (dbxml) provided by BDB XML (see tutorial) or by writing your own programs in C++, Java, Perl, Python, PHP or Tcl. Of course, the Perl scripts described below can be use as examples.

Scripts Descriptions

Informations about command line arguments and options of each script are described by simply passing the option ./<script> --help (or ./<script> -h).

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

Database Initialization

  • en_fetch_mep_infos2xml.pl: Fetch all MEPs' informations from the European Parliament website. Every MEP's informations are saved into an XML file, MEPs' pictures are also downloaded.
  • en_rollcall2xml.pl: From a text file produced with a copy/paste from the PDF file listing rollcall votes at the European Parliament, produce the corresponding XML file. The XML file should then be completed by hand to add some descriptions of amendments, voting recommendations, etc.

Database Update

  • load_xml2dbxml.pl: Load XML files passed as arguments into a BDB XML container.
  • en_update_opinions.pl: Update a MEP's opinions from her wiki page into a BDB XML container.
  • vote_update_meps.pl: update MEPs' voting results into a BDB XML container.

Wiki Pages Extraction

  • en_all_meps_xmldb2mediawiki.pl: Create wiki pages for all MEPs from a BDB XML container.
  • en_mep_xmldb2mediawiki.pl: Create the wiki page for a MEP from a BDB XML container.
  • en_vote_xmldb2mediawiki.pl: Create wiki pages related to a vote from a BDB XML container.

Searching Wiki Pages Creation

  • en_meps_by_name.pl: Create wiki page listing MEPs by alphabetical order from an XQuery query.
  • en_meps_by_country.pl: Create wiki page listing MEPs by country from an XQuery query.
  • en_meps_by_group.pl: Create wiki page listing MEPs by political group from an XQuery query.
  • en_meps_by_committee.pl: Create wiki page listing MEPs by committee from an XQuery query.
  • en_meps_by_office.pl: Create wiki page listing MEPs by office from an XQuery query.

Wiki Pages Update

  • en_upload_mediawiki.pl: upload wiki pages passed as arguments.
  • upload_img.pl: upload pictures passed as arguments.