This repository contains code to build cosponsorship networks from bills passed in the lower and upper chambers of the French Parliament.
The code is a simplified version of the neta
repository, which handles more data in more ways.
Replicate by running psql.sh
to export some tables from PostgreSQL for the French Senate, and then by running make.r
in R. You will need a PostgreSQL installation to run the scripts: see below for further instructions.
The sponsors-an.r
and dossiers-an.r
scripts deal with the lower house; it will scrape all sponsors for legislatures 8-14 and all dossiers for the same legislatures. Legislature 10 is then excluded from the network building routine in build-an.r
, as cosponsors are not reported for bills registered with the National Assembly during that period. The open data portal of the National Assembly does not currently provide legislative files for legislatures prior to the current one.
The sponsors-se.r
, dossiers-se.r
and build-se.r
scripts carry the same operations as above for the upper house, for the same time period. Because Senate bills come from a PostgreSQL dump downloaded from its open data portal, the code expects to find three CSV files exported from the Dosleg database in the data
folder. After installing PostgreSQL, just run the psql.sh
shell script to download the Dosleg database, import it into PostgreSQL and export the relevant data:
sh psql.sh
The script will clean up by removing the Dosleg database from PostgreSQL, but it will keep a zipped copy of the original dump in the data
folder.
An extra set of routines applied to both houses is coded into functions-fr.r
.
Assemblée nationale:
legislature
-- legislature numberurl
-- bill URLtitle
-- short title, including precise date of introductionau
-- semicolon-separated bill sponsors, as names (some from the Senate)au_url
-- semicolon-separated URLs of bill sponsors (some from the Senate)co
-- semicolon-separated bill cosponsors, as names (some from the Senate)co_url
-- semicolon-separated URLs of bill cosponsors (some from the Senate)
Sénat:
legislature
-- legislature numberurl
-- bill URLuid
-- unique identifier (texcod
in the SQL tables)texte
-- bill numberdate
-- date of examination by chambersponsors
-- semicolon-separated bill sponsors, as shortened URLsn_au
-- toal number of sponsors
The sponsors data has one row per sponsor-legislature. Both houses hold the same variables (although constituencies are regional for senators, and seniority is computed over more possible election dates).
legislature
-- legislature of activityfullname
-- original namename
-- simplified name, uppercasesex
-- gender (M/F), imputed from birth information ("Né/e")born
-- year of birth (stored as character)party
-- political party, abbreviated (see below)constituency
-- constituency, stored as the string to its Wikipedia Francophone entrynyears
-- number of years in office before start of legislatureurl
-- sponsor URL, shortened to unique identifierphoto
-- numeric dummy coding for the presence of a photo
Political parties in France fall into a few broad categories, with many different renamings and alliances to form parliamentary groups. The party names were simplified to the following categories:
COM
-- Communists (PCF, GDR, CRC)ECO
-- Ecologists (Verts)SOC
-- Socialists (PS)RAD
-- Radicals, including:- the RCV "gauche plurielle" group of legislature 12 (1997-2002) in the lower house
- the RRDP and RDSE groups in the upper house
CEN
-- Centrists (UDF, MODEM, UDI and various small parties that formed the UDF)DRO
-- Conservatives (RPR, DL and then UMP/LR)FN
-- Front national (lower house during legislature 8, 1986-1988)IND
-- Independents ("sans étiquette" and "non inscrits"), often from the centre-right ("DVD")
- Authueil and Benjamin from Regards Citoyens for comments
- Sébastien Dubourg and the rest of the Data Sénat team