How to extract speeches held at Austria’s parliament

The website of the Austrian parliament provides transcripts of its sessions. This post details how to extract the statements given by MPs, members of government and other speakers.
Author

Roland Schmidt

Published

22 Nov 2021

1 Context

This post is actually a spin-off of a another post, which got too long and convoluted (see here). The context is that I was recently interested in transcripts of sessions of Austria’s parliament and noticed that those of more recent legislative periods are not included in an already compiled dataset. Hence, the interest and need to dig into transcripts provided on the parliament’s website.

This post will lay out the necessary steps in R to get transcripts of multiple sessions from multiple legislative periods, and subsequently retrieve statements by individual speakers. The result, a file comprising all statements for the 16th and 17th legislative period (as of 3 Nov’21), is available for download here. If you use it, I would be grateful if you acknowledge this blog post. If you have any question or spot an error, feel free to contact me via twitter DM.

4 Extract text from transcripts

Now, with the links to the actual texts available, we have to feed them into a function which actually retrieves the latter. The function below does this. Again, the rvest package is our tool of choice to extract the content of the html file.

The somewhat tricky part here is to identify the relevant css-selector enabling us to retrieve the parts we are interested in. Navigate to one sample page, open the inspect tools (F12), and select the item of interest.

In the screen recording above we see that the statement by MP Drozda can be selected with the css-selector WordSection27. Other statements have e.g. WordSection28, WordSection60 etc. In other words, every statement has its own distinct selector/css class. At first glance, this looks like troubles ahead. ‘Luckily’ though, the html_nodes syntax allows us to specify something like a regex pattern: [class^=WordSection], i.e. take only those classes which start with WordSection. With this approach, we are able to select all our statements even if each of their css-selector is unique (ends with a distinct number). Sweet, no?

Let’s define the function accordingly:

And then apply it:

The first five rows of the resulting dataframe are below:

legis_period
date_session
session_name
text
link_records
link_to_text
XXVI
2017-11-09
1. Sitzung
[object Object]
https://www.parlament.gv.at/PAKT/VHG/XXVI/NRSITZ/NRSITZ_00001/index.shtml#tab-Sten.Protokoll
https://www.parlament.gv.at//PAKT/VHG/XXVI/NRSITZ/NRSITZ_00001/fnameorig_678451.html
XXVI
2017-12-13
2. Sitzung
[object Object]
https://www.parlament.gv.at/PAKT/VHG/XXVI/NRSITZ/NRSITZ_00002/index.shtml#tab-Sten.Protokoll
https://www.parlament.gv.at//PAKT/VHG/XXVI/NRSITZ/NRSITZ_00002/fnameorig_678989.html
XXVI
2017-12-13
3. Sitzung
[object Object]
https://www.parlament.gv.at/PAKT/VHG/XXVI/NRSITZ/NRSITZ_00003/index.shtml#tab-Sten.Protokoll
https://www.parlament.gv.at//PAKT/VHG/XXVI/NRSITZ/NRSITZ_00003/fnameorig_678993.html
XXVI
2017-12-13
4. Sitzung
[object Object]
https://www.parlament.gv.at/PAKT/VHG/XXVI/NRSITZ/NRSITZ_00004/index.shtml#tab-Sten.Protokoll
https://www.parlament.gv.at//PAKT/VHG/XXVI/NRSITZ/NRSITZ_00004/fnameorig_678995.html
XXVI
2017-12-20
5. Sitzung
[object Object]
https://www.parlament.gv.at/PAKT/VHG/XXVI/NRSITZ/NRSITZ_00005/index.shtml#tab-Sten.Protokoll
https://www.parlament.gv.at//PAKT/VHG/XXVI/NRSITZ/NRSITZ_00005/fnameorig_681356.html

5 Extract statements

Note that the entire transcript of one session is contained in the new column/cell text as a nested dataframe (list column; in the table above they are displayed as [object Object]).

[1] "list"

Hence, we need to unnest this list column.

What we get is a new dataframe with one row per ‘item’ in the transcript. Each item is an instance of the css class WordSection as defined in our rvest request. A quick look at the result, however, reveals that these items not only include statements in which we are interested, but also headings, the table of contents, and other parts of the transcript which are irrelevant for our focus. The chunk below shows the first ten rows of one session. There’s plenty of text which actually is not from a statement of a speaker.

Code
df_data_long %>% 
  slice_head(., n=10) %>% 
  select(legis_period, date_session, session_name, text_raw) %>% 
  reactable(.,
            theme=nytimes(cell_padding=0),
            columns = list(
              legis_period=colDef(width=100),
              date_session=colDef(format=colFormat(date=T, locales="de-De"),
                        width = 100),
              session_name=colDef(width=100),
              text_raw=colDef(width=400)),
            height=500) 
legis_period
date_session
session_name
text_raw
XXVI
9.11.2017
1. Sitzung
Stenographisches Protokoll 1. Sitzung des Nationalrates der Republik Österreich XXVI. Gesetzgebungsperiode Donnerstag, 9. November 2017
XXVI
9.11.2017
1. Sitzung
Stenographisches Protokoll 1. Sitzung des Nationalrates der Republik Österreich XXVI. Gesetzgebungsperiode Donnerstag, 9. November 2017 Dauer der Sitzung Donnerstag, 9. November 2017: 10.04 – 14.50 Uhr ***** Tagesordnung 1. Punkt: Angelobung der Abgeordneten 2. Punkt: Wahl der Präsidentin/des Präsidenten, der Zweiten Präsidentin/des Zweiten Präsidenten und der Dritten Präsidentin/des Dritten Präsidenten 3. Punkt: Wahl der Schriftführerinnen und der Schriftführer sowie der Ordnerinnen und der Ordner 4. Punkt: Wahl des Hauptausschusses 5. Punkt: Wahl von ständigen Ausschüssen (Unvereinbarkeitsausschuss, Immunitäts­ausschuss, Budgetausschuss) 6. Punkt: Wahl der vom Nationalrat zu entsendenden Mitglieder und Ersatzmitglieder des Ständigen gemeinsamen Ausschusses des Nationalrates und des Bundesrates im Sinne des § 9 Finanz-Verfassungsgesetz 1948 ***** Inhalt Nationalrat Gedenkworte der Präsidentin Doris Bures anlässlich der Novemberpogrome von 1938 9 Einberufung der ordentlichen Tagung 2017/2018 der XXVI. Gesetzgebungspe­riode 10 1. Punkt: Angelobung der Abgeordneten ...................................................................... 15 2. Punkt: Wahl der Präsidentin/des Präsidenten, der Zweiten Präsidentin/des Zweiten Präsidenten und der Dritten Präsidentin/des Dritten Präsidenten ................................................................... 17 Beschluss auf Durchführung einer Debatte ................................................................... 17 RednerInnen: Sebastian Kurz ............................................................................................................. 17 Mag. Christian Kern ..................................................................................................... 19 Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 2 Heinz-Christian Strache .............................................................................................. 21 Mag. Dr. Matthias Strolz .............................................................................................. 23 Dr. Peter Kolba ............................................................................................................. 25 August Wöginger ......................................................................................................... 27 Mag. Andreas Schieder ............................................................................................... 29 Herbert Kickl ................................................................................................................. 31 Dr. Irmgard Griss ......................................................................................................... 34 Stephanie Cox, BA ....................................................................................................... 35 Dr. Angelika Winzig ..................................................................................................... 36 Gabriele Heinisch-Hosek ............................................................................................. 37 Dr. Nikolaus Scherak, MA ........................................................................................... 39 Daniela Holzinger-Vogtenhuber, BA ......................................................................... 41 Wahlergebnis: Präsidentin: Elisabeth Köstinger ................................................................................. 44 Zweite Präsidentin: Doris Bures ................................................................................... 50 Dritter Präsident: Ing. Norbert Hofer ............................................................................ 51 Abschiedsansprache der Präsidentin Doris Bures .................................................. 44 Antrittsansprache der Präsidentin Elisabeth Köstinger .......................................... 47 3. Punkt: Wahl der Schriftführerinnen und der Schriftführer sowie der Ordnerin­nen und der Ordner ............................................................................................................................... 52 Wahlergebnis: SchriftführerInnen: Hermann Gahr, Mag. Michaela Steinacker, Angela Lueger, Erwin Preiner und Wolfgang Zanger .......................................................................................................... 52 OrdnerInnen: Johann Singer, Ulrike Königsberger-Ludwig, MMMag. Dr. Axel Kassegger, Mag. Gerald Loacker und Mag. Dr. Wolfgang Zinggl ...................................................................... 52 Personalien Verhinderung .................................................................................................................. 10 Geschäftsbehandlung Redezeitbeschränkung nach Beratung in der Präsidialkonferenz gemäß § 57 Abs. 3 Z 2 der Geschäftsordnung .......................................................................................................... 17 Verlangen auf Durchführung der Wahlen in Wahlzellen ............................................... 43 Unterbrechung der Sitzung ........................................................... 43, 44, 49, 49, 50, 51 Verlesung der vorgesehenen Fassung eines Teiles des Amtlichen Protokolls die­ser Sitzung durch Präsidentin Elisabeth Köstinger ................................................................................ 54 Genehmigung des verlesenen Teiles des Amtlichen Protokolls .................................. 55 Bundesregierung Schreiben des Bundeskanzlers Mag. Christian Kern betreffend Amtsenthebung der Bundesregierung und der Staatssekretärin, Betrauung der Mitglieder der Bundesregierung bis zur Bildung einer neuen Bundesregierung mit der Fortfüh­rung der Verwaltung und seiner Person mit dem Vorsitz in der einstweiligen Bun­desregierung sowie Ernennung von Frau Mag. Muna Duzdar bis zur Bildung ei­ner neuen Bundesregierung zur Staatssekretärin zu seiner Unterstützung in der Geschäftsführung und zur parlamentarischen Vertretung durch den Bundespräsi­denten ....................................... 10 Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 3 Ausschüsse 4. Punkt: Wahl des Hauptausschusses ......................................................................... 52 5. Punkt: Wahl von ständigen Ausschüssen (Unvereinbarkeitsausschuss, Immu­nitätsausschuss, Budgetausschuss) .......................................................................................................... 53 6. Punkt: Wahl der vom Nationalrat zu entsendenden Mitglieder und Ersatzmit­glieder des Ständigen gemeinsamen Ausschusses des Nationalrates und des Bundesrates im Sinne des § 9 Finanz-Verfassungsgesetz 1948 ................................................................................................ 54 Eingebracht wurden Bürgerinitiativen ........................................................................................................... 13 Bürgerinitiative betreffend „Informationspflicht bei Unterbezahlungen und Verlän­gerung der Verfallfristen“ (Ordnungsnummer 1) Bürgerinitiative betreffend „Handy- und Internetnutzung von Kindern und Jugend­lichen“ (Ordnungsnummer 2) Bürgerinitiative betreffend „Erhaltung der Hausapotheken in der Wildschönau“ (Ordnungsnummer 3) Bürgerinitiative „Verbesserung der Lehrlingsausbildung“ (Ordnungsnummer 4) Bürgerinitiative betreffend „die längst fällige Einrichtung eines Unterstufenreal­gymnasiums am BORG Hermagor ab dem Schuljahr 2015/2016“ (Ordnungsnum­mer 5) Bürgerinitiative betreffend „Verpflichtung zur Abgabe unverkäuflicher Ware an die Zivilgesellschaft vor der Müllentsorgung – Anti-Wegwerf-Gesetz“ (Ordnungsnum­mer 6) Bürgerinitiative betreffend „Gleiche Rechte für chronisch kranke Kinder“ (Ord­nungsnummer 7) Bürgerinitiative betreffend „die Abschaffung des Pensionssicherungsbeitrages für PensionistInnen sowie BezieherInnen von Witwen/Witwer- und Waisenpensio­nen“ (Ordnungsnummer 8) Bürgerinitiative betreffend „Aufstockung der Vorbereitungsstunden bei der münd­lichen Matura der standardisierten kompetenzorientierten Reife- und Diplomprü­fung“ (Ordnungsnummer 9) Bürgerinitiative betreffend „Fakten helfen! Einführung einer bundesweiten anony­misierten Statistik über Schwangerschaftsabbrüche und Erforschung der Grün­de/Motive dafür“ (Ordnungsnummer 10) Bürgerinitiative betreffend „den Erhalt der Militärmusiken in allen Bundesländern in voller Spielstärke“ (Ordnungsnummer 11) Bürgerinitiative betreffend „Lebenskompetenz Ernährung im Schulsystem“ (Ord­nungsnummer 12) Bürgerinitiative betreffend „Ehe Gleich! Aufhebung des Eheverbots für gleich-ge­schlechtliche Paare“ (Ordnungsnummer 13) Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 4 Bürgerinitiative betreffend „Best- statt Billigstbieter bei Ausschreibungen im Li­nienbusverkehr. Qualitäts- und Sozialstandards, sowie verpflichtender Personal­übergang bei Ausschreibungen im Linienbusverkehr“ (Ordnungsnummer 14) Bürgerinitiative betreffend „Freie Schulwahl 2.0“ (Ordnungsnummer 15) Bürgerinitiative betreffend „Billiger wohnen jetzt! Junges Wohnen muss bezahlbar werden!“ (Ordnungsnummer 16) Bürgerinitiative betreffend „Selbstbestimmt statt fremdbeherrscht! Gegen sexuelle Belästigung und Ungleichbehandlung von Frauen an Österreichischen Hoch­schulen“ (Ordnungsnummer 17) Bürgerinitiative betreffend „Österreichweites Studierendenticket JETZT! Schaf­fung eines österreichweiten Studierendentickets für den öffentlichen Verkehr“ (Ordnungsnummer 18) Bürgerinitiative betreffend „Wahlfreiheit braucht Wahlmöglichkeit! Die Errichtung von Modellregionen ohne das Angebot von Sonderschulen oder Sonderschul­klassen darf nicht so weit reichen, dass das Recht der Betroffenen auf Wahlfrei­heit beschnitten wird“ (Ordnungsnummer 19) Bürgerinitiative betreffend „Sicherstellung, dass der Botanische Garten in Schön­brunn, einer der ältesten historischen Gärten Österreichs, erhalten und weiterhin öffentlich frei zugänglich bleibt.“ (Ordnungsnummer 20) Bürgerinitiative betreffend „Weg mit der Maklerprovision für Mieter!“ (Ordnungs­nummer 21) Bürgerinitiative betreffend „Schutz der europäischen Stahlindustrie & Industriear­beitsplätze“ (Ordnungsnummer 22) Bürgerinitiative betreffend „Freier Universitätszugang für österreichische Studen­ten!“ (Ordnungsnummer 23) Bürgerinitiative betreffend „Homöopathie als Kassenleistung“ (Ordnungsnum­mer 24) Bürgerinitiative betreffend „Fakten gegen Hetze – Maßnahmen für die Einhaltung ethischer Grundsätze in den Medien setzen“ (Ordnungsnummer 25) Bürgerinitiative betreffend „Nur wer beauftragt, zahlt – Bestellerprinzip für Immo­bilienmaklerprovisionen“ (Ordnungsnummer 26) Bürgerinitiative betreffend „die ökologische Ausrichtung und die soziale Absiche­rung der Energiewende in Österreich. Zum Wohlergehen der Menschen und zur Schonung von Lebensräumen und Natur.“ (Ordnungsnummer 27) Bürgerinitiative betreffend „Keine Reduzierung bei Polizeiinspektionen & Kein Stellenabbau von Polizeibeamten im Bezirk Gänserndorf!“ (Ordnungsnummer 28) Bürgerinitiative betreffend „Chancengleichheit gehörloser Menschen im österrei­chischen Bildungssystem“ (Ordnungsnummer 29) Bürgerinitiative betreffend „Wissenschaftliche Arbeiten genderfrei!“ (Ordnungs­nummer 30) Bürgerinitiative betreffend „freien und offenen Hochschulzugang“ (Ordnungsnum­mer 31) Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 5 Bürgerinitiative betreffend „Straffreistellung von Besitz und Erzeugung von Can­nabis(-produkten) bei PatientInnen mit entsprechender medizinischer Indikation“ (Ordnungsnummer 32) Bürgerinitiative betreffend „gerichtliche psychiatrische Begutachtungen“ (Ord­nungsnummer 33) Bürgerinitiative betreffend „Es ist Zeit für die Arbeitszeitverkürzung: Arbeitslosig­keit senken – Arbeitende entlasten!“ (Ordnungsnummer 34) Bürgerinitiative betreffend „Haus Beer in Gefahr – Petition zur Rettung des Haupt­werks von Josef Frank“ (Ordnungsnummer 35) Bürgerinitiative betreffend „Ausbau der Verbindungsbahn in Hietzing“ (Ordnungs­nummer 36) Bürgerinitiative betreffend „Der Hörndlwald muss langfristig gerettet werden! Wir fordern die Rückwidmung des Hörndlwalds zur Grünfläche um seine Bebauung auch in Zukunft verhindern zu können!“ (Ordnungsnummer 37) Berichte ......................................................................................................................... 11 III-1: Bericht Reihe Bund 2015/11; Rechnungshof III-2: Bericht Reihe Bund 2015/12; Rechnungshof III-3: Bericht Reihe Bund 2015/14; Rechnungshof III-4: Bericht Reihe Bund 2015/17; Rechnungshof III-5: Bericht Reihe Bund 2016/7; Rechnungshof III-6: Bericht betreffend IT-Programm E-Finanz, Verein „Zentrum für sichere Infor­mationstechnologie-Austria“ (A-SIT) und EKZ Tulln Errichtungs GmbH – Reihe Bund 2016/9; Rechnungshof III-7: Bericht betreffend Projekt AirPower – Reihe Bund 2016/11; Rechnungshof III-8: Bericht betreffend Erstversorgung im Salzkammergut-Klinikum Vöcklabruck, im Klinikum Wels-Grieskirchen sowie im Krankenhaus der Barmherzigen Schwes­tern Ried sowie Förderungen des BMGF Reihe Bund 2016/12; Rechnungshof III-9: Bericht betreffend Qualität der mittelfristigen Haushaltsplanung des Bun­des – Reihe Bund 2016/14; Rechnungshof III-10: Bericht betreffend System der Erhebung der Verbrauchsteuern sowie Aus- und Weiterbildung im BMF – Reihe Bund 2016/15; Rechnungshof III-11: Bericht betreffend BMB – Meldeverpflichtung gemäß Parteiengesetz 2012 – Reihe Bund 2016/23; Rechnungshof III-12: Bericht betreffend Lehrpersonenfort- und ‑weiterbildung – Reihe Bund 2017/2; Rechnungshof III-13: Bericht betreffend Lehrpersonenfort- und ‑weiterbildung – Reihe Bund 2017/3; Rechnungshof III-14: Bericht betreffend Personalbewirtschaftung des Bundes mit dem Schwer­punkt Personalplan – Reihe Bund 2017/5; Rechnungshof Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 6 III-15: Bericht betreffend Korruptionspräventionssysteme in ausgewählten Bun­desministerien (BKA, BMB, BMI, BMLFUW) – Reihe Bund 2017/8; Rechnungshof III-16: Bericht betreffend Mittelflüsse im Gesundheitswesen – Reihe Bund 2017/10; Rechnungshof III-17: Bericht betreffend Generalsanierung und Erweiterung des Museums für zeit­genössische Kunst (21er Haus); Follow-up-Überprüfung – Reihe Bund 2017/11; Rechnungshof III-18: Bericht betreffend Maßnahmen zur Förderung der Personalmobilität im Bun­desdienst; Follow-up-Überprüfung – Reihe Bund 2017/12; Rechnungshof III-19: Bericht betreffend tech2b Inkubator GmbH; Follow-up-Überprüfung – Rei­he Bund 2017/13; Rechnungshof III-20: Bericht betreffend Fonds und Stiftungen des Bundes – Reihe BUND 2017/14; Rechnungshof III-21: Bericht betreffend Monopolverwaltung GmbH – Reihe BUND 2017/15; Rech­nungshof III-22: Bericht betreffend Solidaritäts- und Strukturfonds bei der Monopolverwal­tung GmbH – Reihe BUND 2017/16; Rechnungshof III-23: Bericht betreffend Österreichische Bankenaufsichtsarchitektur – Reihe BUND 2017/20; Rechnungshof III-24: Bericht betreffend Gewinnausschüttungen – Ziele und Vorgaben des Bun­des – Reihe BUND 2017/21; Rechnungshof III-25: Bericht betreffend Bundesdenkmalamt – Reihe BUND 2017/23; Rech­nungshof III-26: Bericht betreffend Familiengerichtsbarkeit – Reihe BUND 2017/24; Rech­nungshof III-27: Bericht betreffend Risikomanagement in der Finanzverwaltung; Follow-up-Überprüfung – Reihe BUND 2017/27; Rechnungshof III-28: Bericht betreffend Strukturreform der Bezirksgerichte; Follow-up-Überprü­fung – Reihe BUND 2017/28; Rechnungshof III-29: Bericht betreffend Schutzwaldbewirtschaftung bei der Österreichischen Bundesforste AG – Reihe BUND 2017/29; Rechnungshof III-30: Bericht betreffend Stadt Wien Marketing GmbH – Meldeverpflichtung ge­mäß Parteiengesetz 2012 – Reihe BUND 2017/30; Rechnungshof III-31: Bericht betreffend ÖBB-Immobilie Gauermanngasse 2-4 – Reihe BUND 2017/31; Rechnungshof III-32: Bericht betreffend Bedarfsorientierte Mindestsicherung in Wien – Reihe BUND 2017/32; Rechnungshof III-33: Bericht betreffend Invaliditätspension Neu – Reihe BUND 2017/33; Rech­nungshof III-34: Bericht betreffend Hallstatt Wasserkraft GmbH – Reihe BUND 2017/34; Rechnungshof Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 7 III-35: Bericht betreffend Sicherung von Rohstofflagerstätten in den Ländern NÖ, OÖ und Tirol – Reihe BUND 2017/35; Rechnungshof III-36: Bericht betreffend Bekleidungswirtschaftsfonds der Exekutive – Reihe BUND 2017/36; Rechnungshof III-37: Bericht betreffend Wohnungen des BMLVS – Reihe BUND 2017/37; Rech­nungshof III-38: Bericht betreffend Finanzausgleich: Finanzzuweisungen lt. § 21 FAG – Rei­he BUND 2017/38; Rechnungshof III-39: Bericht betreffend Register im Hauptverband der österreichischen Sozial­versicherungsträger; Follow-up-Überprüfung – Reihe BUND 2017/39; Rechnungs­hof III-40: Bericht betreffend Bundesinstitut für Bildungsforschung, Innovation und Entwicklung des österreichischen Schulwesens (BIFIE); Follow-up-Überprüfung – Reihe BUND 2017/40; Rechnungshof III-41: Bericht betreffend Schulstandortkonzepte/-festlegungen im Bereich der all­gemein bildenden Pflichtschulen in den Ländern Oberösterreich und Steiermark; Follow-up-Überprüfung – Reihe BUND 2017/41; Rechnungshof III-42: Bericht betreffend Bundestheater-Holding GmbH; Follow-up-Überprüfung – Reihe BUND 2017/42; Rechnungshof III-43: Bericht betreffend Nationalstiftung für Forschung, Technologie und Entwick­lung; Follow-up-Überprüfung – Reihe BUND 2017/43; Rechnungshof III-44: Bericht betreffend Landesstudios des österreichischen Rundfunks; Follow-up-Überprüfung – Reihe BUND 2017/44; Rechnungshof III-45: Bericht betreffend Transparenzdatenbank – Kosten und Nutzen, Ziele und Zielerreichung – Reihe BUND 2017/45; Rechnungshof III-46: Bericht betreffend Versicherungs- und Pensionskassenaufsicht – Reihe BUND 2017/46; Rechnungshof III-47: Bericht betreffend Bundesstelle für Sektenfragen – Reihe BUND 2017/47; Rechnungshof III-48: Bericht betreffend Passagier- und Fahrgastrechte – Reihe BUND 2017/48; Rechnungshof Anträge der Abgeordneten Daniela Holzinger-Vogtenhuber, BA, Kolleginnen und Kollegen betreffend Maßnah­men zur Bekämpfung von Armut in Österreich durch eine gerechte Unterhaltssicherung (1/A)(E) Mag. Dr. Matthias Strolz, Kolleginnen und Kollegen betreffend ein Bundesgesetz, mit dem das Einkommensteuergesetz 1988 geändert wird (2/A) Dr. Nikolaus Scherak, MA, Kolleginnen und Kollegen betreffend Erarbeitung eines Bundesgesetzes über die Informationsfreiheit (3/A)(E) Mag. Dr. Matthias Strolz, Kolleginnen und Kollegen betreffend ein Bundes(verfas­sungs)gesetz, mit dem das Bundesgesetz über die Finanzierung politischer Parteien Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 8 (Parteiengesetz 2012 – PartG) und das Bundesgesetz über Förderungen des Bun- des für politische Parteien (Parteien-Förderungsgesetz 2012 – PartFörG) wird (4/A und Zu 4/A) Mag. Christian Kern, Kolleginnen und Kollegen betreffend ein Bundesgesetz, mit dem das Arbeitsmarktpolitik-Finanzierungsgesetz geändert wird (5/A) Mag. Christian Kern, Kolleginnen und Kollegen betreffend ein Bundesgesetz, mit dem das Arbeitsmarktpolitik-Finanzierungsgesetz geändert wird (6/A) Angela Lueger, Kolleginnen und Kollegen betreffend ein Bundesgesetz, mit dem das Bundesgesetz vom 24. Oktober 1967 betreffend den Familienlastenausgleich durch Bei­hilfen (Familienlastenausgleichsgesetz 1967) geändert wird (7/A) Kai Jan Krainer, Kolleginnen und Kollegen betreffend ein Bundesgesetz, mit dem das Körperschaftsteuergesetz 1988 (KStG 1988), das Unternehmensgesetzbuch und das Arbeitsvertragsrechts-Anpassungsgesetz (AVRAG) geändert wird (Gewinnverschie­bungs-Bekämpfungsgesetz) (8/A) Mag. Andreas Schieder, Kolleginnen und Kollegen betreffend ein Bundesgesetz, mit dem das Allgemeine bürgerliche Gesetzbuch und das Eingetragene Partnerschafts-Ge­setz geändert werden (9/A) Mag. Andreas Schieder, Kolleginnen und Kollegen betreffend Maßnahmen zur Stär­kung professioneller Pflege (10/A)(E) Mag. Andreas Schieder, Kolleginnen und Kollegen betreffend ein Bundesgesetz, mit dem das Pflegefondsgesetz geändert wird (11/A) Wolfgang Katzian, Kolleginnen und Kollegen betreffend ein Bundesgesetz, mit dem das Bundesgesetz über die Steigerung der Energieeffizienz bei Unternehmen und dem Bund (Bundes-Energieeffizienzgesetz – EEffG), geändert wird (EEffG-Novelle 2017) (12/A) Erwin Preiner, Kolleginnen und Kollegen betreffend gesundes Essen ohne Gift, Ret­tung der Insekten-Vielfalt (13/A)(E) Mag. Wolfgang Gerstl, Dr. Reinhard Eugen Bösch, Kolleginnen und Kollegen be­treffend ein Bundesgesetz, mit dem das Bundesministeriengesetz 1986 geändert wird (14/A) Mag. Ruth Becher, Kolleginnen und Kollegen betreffend ein Bundesgesetz mit dem das Mietrechtsgesetz 1981, BGBl. I Nr. 520/1981, und das Wohnungseigentumsge­setz 2002, BGBl. I Nr. 70/2002, geändert werden (15/A) Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 9 10.04.31Beginn der Sitzung: 10.04 Uhr Vorsitzende: Präsidentin Doris Bures, Präsidentin Elisabeth Köstinger. *****
XXVI
9.11.2017
1. Sitzung
Präsidentin Doris Bures: Meine sehr geehrten Damen und Herren! Gemäß § 3 Abs. 2 der Geschäftsordnung obliegt es der Präsidentin der vergangenen Gesetzgebungspe­riode, die Sitzung zu eröffnen und bis zur Wahl der neuen Präsidentin beziehungswei­se des neuen Präsidenten den Vorsitz zu führen. Ich eröffne die erste und konstituierende Sitzung des neu gewählten Nationalrates der XXVI. Gesetzgebungsperiode. 10.04.58Gedenkworte anlässlich der Novemberpogrome von 1938
XXVI
9.11.2017
1. Sitzung
10.04.59 Präsidentin Doris Bures: Ich möchte zu Beginn der konstituierenden Sitzung ein his­torisches Ereignis in Erinnerung rufen – ein Ereignis, das die Bedeutung und den Wert unserer starken und stolzen Demokratie, in der wir leben, unterstreicht. Heute vor 79 Jahren, in der Nacht vom 9. auf den 10. November 1938, begannen die November­pogrome. Es waren vom NS-Regime organisierte Gewaltmaßnahmen, die sich gezielt gegen jüdische Mitbürgerinnen und Mitbürger gerichtet haben. Synagogen, Wohnun­gen und Geschäfte wurden verwüstet. Tausende Menschen erfuhren unsägliches Leid. Sie wurden ermordet, in den Suizid getrieben und in Konzentrationslager verschleppt. In ganz Österreich, in zahllosen Städten und Gemeinden, finden in diesen Tagen dazu Gedenkveranstaltungen statt. Das Parlament erinnert heute Abend mit einer eigenen Vorstellung im Wiener Volkstheater an dieses bedeutsame Ereignis. Leider ist die Hauptdarstellerin des Stücks, die 92-jährige Holocaust-Überlebende Éva Fahidi ges­tern am Abend erkrankt. Ich denke, ich spreche in unser aller Namen, wenn ich Frau Fahidi baldige Besserung wünsche. Das Programm der Veranstaltung musste adaptiert werden, sie findet aber trotzdem statt. Ich hoffe, viele von Ihnen auch heute Abend im Volkstheater begrüßen zu dürfen. ***** Meine sehr geehrten Damen und Herren Abgeordnete! Ich bitte Sie nun, sich für die Darbringung der Bundeshymne von den Sitzen zu erheben. (Ein Bläserquartett der Wiener Philharmoniker intoniert die österreichische Bundes­hymne, die von den Versammelten stehend mitgesungen wird.) Meine sehr geehrten Damen und Herren des Hohen Hauses! Ich begrüße Sie noch­mals sehr herzlich, vor allem jene, die das erste Mal zum Nationalrat angelobt werden, die neu gewählten Abgeordneten, die somit am Beginn ihrer parlamentarischen Tätig­keit stehen. (Die Abgeordneten der ÖVP tragen türkise Buttons – einerseits mit dem Aufdruck des Parlamentsgebäudes, anderseits mit dem Hashtag oevpklub –, die Abge­ordneten der SPÖ rote Nelken und die Abgeordneten der FPÖ Edelweiß mit rot-weiß-roter Schleife am Revers. Auf den Plätzen der Abgeordneten der NEOS stehen Kak­teen mit pinkfarbener Blüte.) Mit großem Respekt begrüße ich den Herrn Bundespräsidenten in unserer Mitte, der bei dieser Sitzung anwesend ist. Herzlich willkommen, Herr Bundespräsident! (Allge­meiner Beifall. – Bundespräsident Van der Bellen erhebt sich von seinem Platz und dankt mit einer Verbeugung.) Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 10 Die konstituierende Sitzung wird von ORF 2 bis 13 Uhr und von ORF III in voller Länge übertragen werden. Weiters weise ich darauf hin, dass während der heutigen Nationalratssitzung Fotogra­fen im Auftrag der Parlamentsdirektion für die Homepage fotografieren werden. Außer­dem wird eine 360-Grad-Fotoaufnahme der Nationalratssitzung zu Dokumentations­zwecken angefertigt werden. Der Aufbau der Kamera wird nach der Wahl der Dritten Präsidentin/des Dritten Präsidenten erfolgen. 10.09.21Einberufung der ordentlichen Tagung 2017/2018
XXVI
9.11.2017
1. Sitzung
Präsidentin Doris Bures: Der Herr Bundespräsident hat mit Entschließung vom 19. Ok­tober 2017 den Nationalrat gemäß Art. 27 Abs. 2 des Bundes-Verfassungsgesetzes zur XXVI. Gesetzgebungsperiode und gleichzeitig gemäß Art. 28 Abs. 1 des Bundes-Verfassungsgesetzes zu seiner ordentlichen Tagung 2017/2018 für den 9. November 2017 einberufen. Aufgrund dieser Entschließung des Herrn Bundespräsidenten wurde die heutige Sit­zung anberaumt. 10.09.55Einlauf
XXVI
9.11.2017
1. Sitzung
Präsidentin Doris Bures: Ich darf dem Hohen Haus ferner von folgendem Schreiben des Herrn Bundeskanzlers vom 17. Oktober 2017 Mitteilung machen: „Ich beehre mich mitzuteilen, dass der Herr Bundespräsident mit Entschließung vom 17. Oktober 2017 die in der Sitzung des Ministerrates am 17. Oktober 2017 beschlos­sene Demission der Bunderegierung zur Kenntnis genommen und die Bundesregie­rung sowie die Staatssekretärin gemäß Artikel 74 Absatz 3 Bundes-Verfassungsgesetz des Amtes enthoben hat. Gleichzeitig hat der Herr Bundespräsident mich und die übrigen Mitglieder der Bun­desregierung gemäß Artikel 71 Bundes-Verfassungsgesetz bis zur Bildung einer neuen Bundesregierung mit der Fortführung der Verwaltung und mich mit dem Vorsitz in der einstweiligen Bundesregierung betraut. Ferner hat der Herr Bundespräsident auf meinen Vorschlag gemäß Artikel 70 Absatz 1 in Verbindung mit Artikel 78 Absatz 2 Bundes-Verfassungsgesetz bis zur Bildung einer neuen Bundesregierung Frau Mag. Muna Duzdar zur Staatssekretärin ernannt und sie mir zur Unterstützung in der Geschäftsführung und zur parlamentarischen Vertretung beigegeben. Mit den besten Grüßen Christian Kern“ ***** Gemäß § 3 Abs. 3 der Geschäftsordnung berufe ich nach Beratung in der Präsi­dialkonferenz folgende vier Abgeordnete zur vorläufigen Besorgung der Geschäfte der Schriftführer: Hermann Gahr, Mag.a Michaela Steinacker, Angela Lueger, Wolfgang Zan­ger. ***** Als verhindert gemeldet ist für die heutige Sitzung Herr Abgeordneter Mag. Stefan. Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 11 10.11.42Einlauf
XXVI
9.11.2017
1. Sitzung
Präsidentin Doris Bures: Hinsichtlich der eingelangten Verhandlungsgegenstände ver­weise ich gemäß § 23 Abs. 4 der Geschäftsordnung auf die im Sitzungssaal verteilte Mitteilung. Die schriftliche Mitteilung hat folgenden Wortlaut: Eingelangte Verhandlungsgegenstände: Vorlagen gemäß § 21 Abs. 1a GOG Bericht des Rechnungshofes Reihe Bund 2015/11 (III-1 d.B.) Bericht des Rechnungshofes Reihe Bund 2015/12 (III-2 d.B.) Bericht des Rechnungshofes Reihe Bund 2015/14 (III-3 d.B.) Bericht des Rechnungshofes Reihe Bund 2015/17 (III-4 d.B.) Bericht des Rechnungshofes Reihe Bund 2016/7 (III-5 d.B.) Bericht des Rechnungshofes betreffend IT-Programm E-Finanz, Verein „Zentrum für si­chere Informationstechnologie-Austria“ (A-SIT) und EKZ Tulln Errichtungs GmbH – Rei­he Bund 2016/9 (III-6 d.B.) Bericht des Rechnungshofes betreffend Projekt AirPower – Reihe Bund 2016/11 (III-7 d.B.) Bericht des Rechnungshofes betreffend Erstversorgung im Salzkammergut-Klinikum Vöcklabruck, im Klinikum Wels-Grieskirchen sowie im Krankenhaus der Barmherzigen Schwestern Ried sowie Förderungen des BMGF Reihe Bund 2016/12 (III-8 d.B.) Bericht des Rechnungshofes betreffend Qualität der mittelfristigen Haushaltsplanung des Bundes – Reihe Bund 2016/14 (III-9 d.B.) Bericht des Rechnungshofes betreffend System der Erhebung der Verbrauchsteuern sowie Aus- und Weiterbildung im BMF – Reihe Bund 2016/15 (III-10 d.B.) Bericht des Rechnungshofes betreffend BMB – Meldeverpflichtung gemäß Parteienge­setz 2012 – Reihe Bund 2016/23 (III-11 d.B.) Bericht des Rechnungshofes betreffend Lehrpersonenfort- und ‑weiterbildung – Reihe Bund 2017/2 (III-12 d.B.) Bericht des Rechnungshofes betreffend Lehrpersonenfort- und ‑weiterbildung – Reihe Bund 2017/3 (III-13 d.B.) Bericht des Rechnungshofes betreffend Personalbewirtschaftung des Bundes mit dem Schwerpunkt Personalplan – Reihe Bund 2017/5 (III-14 d.B.) Bericht des Rechnungshofes betreffend Korruptionspräventionssysteme in ausgewähl­ten Bundesministerien (BKA, BMB, BMI, BMLFUW) – Reihe Bund 2017/8 (III-15 d.B.) Bericht des Rechnungshofes betreffend Mittelflüsse im Gesundheitswesen – Reihe Bund 2017/10 (III-16 d.B.) Bericht des Rechnungshofes betreffend Generalsanierung und Erweiterung des Mu­seums für zeitgenössische Kunst (21er Haus); Follow-up-Überprüfung – Reihe Bund 2017/11 (III-17 d.B.) Bericht des Rechnungshofes betreffend Maßnahmen zur Förderung der Personalmobi­lität im Bundesdienst; Follow-up-Überprüfung – Reihe Bund 2017/12 (III-18 d.B.) Bericht des Rechnungshofes betreffend tech2b Inkubator GmbH; Follow-up-Überprü­fung – Reihe Bund 2017/13 (III-19 d.B.) Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 12 Bericht des Rechnungshofes betreffend Fonds und Stiftungen des Bundes – Reihe BUND 2017/14 (III-20 d.B.) Bericht des Rechnungshofes betreffend Monopolverwaltung GmbH – Reihe BUND 2017/15 (III-21 d.B.) Bericht des Rechnungshofes betreffend Solidaritäts- und Strukturfonds bei der Mono­polverwaltung GmbH – Reihe BUND 2017/16 (III-22 d.B.) Bericht des Rechnungshofes betreffend Österreichische Bankenaufsichtsarchitektur – Reihe BUND 2017/20 (III-23 d.B.) Bericht des Rechnungshofes betreffend Gewinnausschüttungen – Ziele und Vorgaben des Bundes – Reihe BUND 2017/21 (III-24 d.B.) Bericht des Rechnungshofes betreffend Bundesdenkmalamt – Reihe BUND 2017/23 (III-25 d.B.) Bericht des Rechnungshofes betreffend Familiengerichtsbarkeit – Reihe BUND 2017/24 (III-26 d.B.) Bericht des Rechnungshofes betreffend Risikomanagement in der Finanzverwaltung; Follow-up-Überprüfung – Reihe BUND 2017/27 (III-27 d.B.) Bericht des Rechnungshofes betreffend Strukturreform der Bezirksgerichte; Follow-up-Überprüfung – Reihe BUND 2017/28 (III-28 d.B.) Bericht des Rechnungshofes betreffend Schutzwaldbewirtschaftung bei der Österrei­chischen Bundesforste AG – Reihe BUND 2017/29 (III-29 d.B.) Bericht des Rechnungshofes betreffend Stadt Wien Marketing GmbH – Meldeverpflich­tung gemäß Parteiengesetz 2012 – Reihe BUND 2017/30 (III-30 d.B.) Bericht des Rechnungshofes betreffend ÖBB-Immobilie Gauermanngasse 2-4 – Reihe BUND 2017/31 (III-31 d.B.) Bericht des Rechnungshofes betreffend Bedarfsorientierte Mindestsicherung in Wien – Reihe BUND 2017/32 (III-32 d.B.) Bericht des Rechnungshofes betreffend Invaliditätspension Neu – Reihe BUND 2017/33 (III-33 d.B.) Bericht des Rechnungshofes betreffend Hallstatt Wasserkraft GmbH – Reihe BUND 2017/34 (III-34 d.B.) Bericht des Rechnungshofes betreffend Sicherung von Rohstofflagerstätten in den Ländern NÖ, OÖ und Tirol – Reihe BUND 2017/35 (III-35 d.B.) Bericht des Rechnungshofes betreffend Bekleidungswirtschaftsfonds der Exekutive – Reihe BUND 2017/36 (III-36 d.B.) Bericht des Rechnungshofes betreffend Wohnungen des BMLVS – Reihe BUND 2017/37 (III-37 d.B.) Bericht des Rechnungshofes betreffend Finanzausgleich: Finanzzuweisungen lt. § 21 FAG – Reihe BUND 2017/38 (III-38 d.B.) Bericht des Rechnungshofes betreffend Register im Hauptverband der österreichi­schen Sozialversicherungsträger; Follow-up-Überprüfung – Reihe BUND 2017/39 (III-39 d.B.) Bericht des Rechnungshofes betreffend Bundesinstitut für Bildungsforschung, Innova­tion und Entwicklung des österreichischen Schulwesens (BIFIE); Follow-up-Überprü­fung – Reihe BUND 2017/40 (III-40 d.B.) Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 13 Bericht des Rechnungshofes betreffend Schulstandortkonzepte/-festlegungen im Be­reich der allgemein bildenden Pflichtschulen in den Ländern Oberösterreich und Steier­mark; Follow-up-Überprüfung – Reihe BUND 2017/41 (III-41 d.B.) Bericht des Rechnungshofes betreffend Bundestheater-Holding GmbH; Follow-up-Über­prüfung – Reihe BUND 2017/42 (III-42 d.B.) Bericht des Rechnungshofes betreffend Nationalstiftung für Forschung, Technologie und Entwicklung; Follow-up-Überprüfung – Reihe BUND 2017/43 (III-43 d.B.) Bericht des Rechnungshofes betreffend Landesstudios des österreichischen Rund­funks; Follow-up-Überprüfung – Reihe BUND 2017/44 (III-44 d.B.) Bericht des Rechnungshofes betreffend Transparenzdatenbank – Kosten und Nutzen, Ziele und Zielerreichung – Reihe BUND 2017/45 (III-45 d.B.) Bericht des Rechnungshofes betreffend Versicherungs- und Pensionskassenaufsicht – Reihe BUND 2017/46 (III-46 d.B.) Bericht des Rechnungshofes betreffend Bundesstelle für Sektenfragen – Reihe BUND 2017/47 (III-47 d.B.) Bericht des Rechnungshofes betreffend Passagier- und Fahrgastrechte – Reihe BUND 2017/48 (III-48 d.B.) Bürgerinitiative Nr. 1 betreffend „Informationspflicht bei Unterbezahlungen und Verlän­gerung der Verfallfristen“ Bürgerinitiative Nr. 2 betreffend „Handy- und Internetnutzung von Kindern und Jugend­lichen“ Bürgerinitiative Nr. 3 betreffend „Erhaltung der Hausapotheken in der Wildschönau“ Bürgerinitiative Nr. 4 „Verbesserung der Lehrlingsausbildung“ Bürgerinitiative Nr. 5 betreffend „die längst fällige Einrichtung eines Unterstufenreal­gymnasiums am BORG Hermagor ab dem Schuljahr 2015/2016“ Bürgerinitiative Nr. 6 betreffend „Verpflichtung zur Abgabe unverkäuflicher Ware an die Zivilgesellschaft vor der Müllentsorgung – Anti-Wegwerf-Gesetz“ Bürgerinitiative Nr. 7 betreffend „Gleiche Rechte für chronisch kranke Kinder“ Bürgerinitiative Nr. 8 betreffend „die Abschaffung des Pensionssicherungsbeitrages für PensionistInnen sowie BezieherInnen von Witwen/Witwer- und Waisenpensionen“ Bürgerinitiative Nr. 9 betreffend „Aufstockung der Vorbereitungsstunden bei der mündli­chen Matura der standardisierten kompetenzorientierten Reife- und Diplomprüfung“ Bürgerinitiative Nr. 10 betreffend „Fakten helfen! Einführung einer bundesweiten ano­nymisierten Statistik über Schwangerschaftsabbrüche und Erforschung der Gründe/ Motive dafür“ Bürgerinitiative Nr. 11 betreffend „den Erhalt der Militärmusiken in allen Bundesländern in voller Spielstärke“ Bürgerinitiative Nr. 12 betreffend „Lebenskompetenz Ernährung im Schulsystem“ Bürgerinitiative Nr. 13 betreffend „Ehe Gleich! Aufhebung des Eheverbots für gleich-geschlechtliche Paare“ Bürgerinitiative Nr. 14 betreffend „Best- statt Billigstbieter bei Ausschreibungen im Linienbusverkehr. Qualitäts- und Sozialstandards, sowie verpflichtender Personalüber­gang bei Ausschreibungen im Linienbusverkehr“ Bürgerinitiative Nr. 15 betreffend „Freie Schulwahl 2.0“ Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 14 Bürgerinitiative Nr. 16 betreffend „Billiger wohnen jetzt! Junges Wohnen muss bezahl­bar werden!“ Bürgerinitiative Nr. 17 betreffend „Selbstbestimmt statt fremdbeherrscht! Gegen se­xuelle Belästigung und Ungleichbehandlung von Frauen an Österreichischen Hoch­schulen“ Bürgerinitiative Nr. 18 betreffend „Österreichweites Studierendenticket JETZT! Schaf­fung eines österreichweiten Studierendentickets für den öffentlichen Verkehr“ Bürgerinitiative Nr. 19 betreffend „Wahlfreiheit braucht Wahlmöglichkeit! Die Errichtung von Modellregionen ohne das Angebot von Sonderschulen oder Sonderschulklassen darf nicht so weit reichen, dass das Recht der Betroffenen auf Wahlfreiheit beschnitten wird“ Bürgerinitiative Nr. 20 betreffend „Sicherstellung, dass der Botanische Garten in Schönbrunn, einer der ältesten historischen Gärten Österreichs, erhalten und weiterhin öffentlich frei zugänglich bleibt.“ Bürgerinitiative Nr. 21 betreffend „Weg mit der Maklerprovision für Mieter!“ Bürgerinitiative Nr. 22 betreffend „Schutz der europäischen Stahlindustrie & Industrie­arbeitsplätze“ Bürgerinitiative Nr. 23 betreffend „Freier Universitätszugang für österreichische Studen­ten!“ Bürgerinitiative Nr. 24 betreffend „Homöopathie als Kassenleistung“ Bürgerinitiative Nr. 25 betreffend „Fakten gegen Hetze – Maßnahmen für die Einhal­tung ethischer Grundsätze in den Medien setzen“ Bürgerinitiative Nr. 26 betreffend „Nur wer beauftragt, zahlt – Bestellerprinzip für Immo­bilienmaklerprovisionen“ Bürgerinitiative Nr. 27 betreffend „die ökologische Ausrichtung und die soziale Absi­cherung der Energiewende in Österreich. Zum Wohlergehen der Menschen und zur Schonung von Lebensräumen und Natur.“ Bürgerinitiative Nr. 28 betreffend „Keine Reduzierung bei Polizeiinspektionen & Kein Stellenabbau von Polizeibeamten im Bezirk Gänserndorf!“ Bürgerinitiative Nr. 29 betreffend „Chancengleichheit gehörloser Menschen im österrei­chischen Bildungssystem“ Bürgerinitiative Nr. 30 betreffend „Wissenschaftliche Arbeiten genderfrei!“ Bürgerinitiative Nr. 31 betreffend „freien und offenen Hochschulzugang“ Bürgerinitiative Nr. 32 betreffend „Straffreistellung von Besitz und Erzeugung von Can­nabis(-produkten) bei PatientInnen mit entsprechender medizinischer Indikation“ Bürgerinitiative Nr. 33 betreffend „gerichtliche psychiatrische Begutachtungen“ Bürgerinitiative Nr. 34 betreffend „Es ist Zeit für die Arbeitszeitverkürzung: Arbeitslosig­keit senken – Arbeitende entlasten!“ Bürgerinitiative Nr. 35 betreffend „Haus Beer in Gefahr – Petition zur Rettung des Hauptwerks von Josef Frank“ Bürgerinitiative Nr. 36 betreffend „Ausbau der Verbindungsbahn in Hietzing“ Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 15 Bürgerinitiative Nr. 37 betreffend „Der Hörndlwald muss langfristig gerettet werden! Wir fordern die Rückwidmung des Hörndlwalds zur Grünfläche um seine Bebauung auch in Zukunft verhindern zu können!“ ***** 10.11.521. Punkt Angelobung der Abgeordneten
XXVI
9.11.2017
1. Sitzung
Präsidentin Doris Bures: Wir gehen in die Tagesordnung ein und kommen zum 1. Punkt: Angelobung der Abgeordneten. Schriftführer Wolfgang Zanger wird die Angelobungsformel verlesen; sodann werden die Abgeordneten über Namensaufruf durch den genannten Schriftführer – der später von der Schriftführerin Angela Lueger abgelöst wird – die Angelobung mit den Worten „Ich gelobe“ zu leisten haben. Ich darf nun den Schriftführer, Herrn Abgeordneten Wolfgang Zanger, bitten, die Ange­lobungsformel zu verlesen und anschließend mit dem Namensaufruf zu beginnen. Meine sehr geehrten Damen und Herren, ich bitte Sie, sich von Ihren Plätzen zu erhe­ben. (Die Anwesenden erheben sich von ihren Sitzplätzen.)
XXVI
9.11.2017
1. Sitzung
10.12.43 Schriftführer Wolfgang Zanger: „Sie werden geloben unverbrüchliche Treue der Re­publik Österreich, stete und volle Beobachtung der Verfassungsgesetze und aller an­deren Gesetze und gewissenhafte Erfüllung Ihrer Pflichten.“ Über Namensaufruf durch die SchriftführerInnen Zanger und Lueger leisten die nach­stehend angeführten Abgeordneten die Angelobung mit den Worten „Ich gelobe“: Amesbauer Hannes, BA; Amon Werner, MBA; Androsch Maurice, Ing.; Angerer Er­win; Antoni Konrad; Bacher Walter; Baumgartner Angela; Bayr Petra, MA MLS; Becher Ruth, Mag.; Be­lakowitsch Dagmar, Dr.; Berlakovich Nikolaus, Dipl.-Ing.; Bernhard Michael; Biß­mann Martha, Dipl.-Ing. (FH); Bogner-Strauß Juliane, Mag. Dr.; Bösch Reinhard Eu­gen, Dr.; Brückl Hermann; Bures Doris; Cox Stephanie, BA; Deimek Gerhard Dipl.-Ing.; Diesner-Wais Martina; Dönmez Efgani, PMM; Doppel­bauer Karin, Dipl.-Ing.; Drozda Thomas, Mag.; Duzdar Muna, Mag.; Ecker Cornelia; Einwallner Reinhold, Ing.; Engelberg Martin, Mag.; Erasim Mela- nie, MSc; Eßl Franz Leonhard; Feichtinger Elisabeth, BEd BEd; Feichtinger Klaus Uwe, Mag. Dr.; Fichtinger Ange­la; Friedl Klaudia; Fuchs Hubert, MMag. DDr.; Fürlinger Klaus, Mag.; Fürst Susan- ne, Mag. Dr.; Gahr Hermann; Gamon Claudia, MSc (WU); Gerstl Wolfgang, Mag.; Gerstner Peter; Gödl Ernst, Mag.; Graf Martin, Mag. Dr.; Graf Tanja; Greiner Karin, Mag.; Griss Irm­gard, Dr.; Großbauer Maria; Grünberg Kira; Hafenecker Christian, MA; Haider Roman, Mag.; Hammer Michael, Mag.; Hammer­schmid Sonja, Mag. Dr.; Hanger Andreas, Mag.; Haubner Peter; Hauser Gerald, Mag.; Heinisch-Hosek Gabriele; Herbert Werner; Himmelbauer Eva-Maria, BSc; Höbart Christian, Ing.; Hochstetter-Lackner Irene; Hofer Norbert, Ing.; Hofinger Manfred, Ing.; Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 16 Höfinger Johann; Holzinger-Vogtenhuber Daniela, BA; Holzleitner Eva Maria, BSc; Hoyos-Trauttmansdorff Douglas; Jachs Johanna, Mag.; Jarolim Johannes, Dr.; Jeitler-Cincelli Carmen, Mag., BA; Je­newein Hans-Jörg, MA; Kaniak Gerhard, Mag.; Kassegger Axel, MMMag. Dr.; Katzian Wolfgang; Kaufmann Martina, MMSc, BA; Keck Dietmar; Kern Christian, Mag.; Kickl Herbert; Kirchbaumer Rebecca; Kitzmüller Anneliese; Klinger Wolfgang, Ing.; Knes Wolfgang; Kolba Pe- ter, Dr.; Kollross Andreas; Königsberger-Ludwig Ulrike; Kopf Karlheinz; Köstinger Elisabeth; Kovacevic Christian; Krainer Kai Jan; Krauss Maximilian; Krenn Barbara; Krisper Stephanie, Dr.; Krist Hermann; Kucher Philip; Kugler Gudrun, Dr.; Kühber­ger Andreas; Kumpitsch Günther, Mag.; Kuntzl Andrea, Mag.; Kurz Sebastian; Laimer Robert; Lasar David; Lausch Christian; Leichtfried Jörg, Mag.; Linder Maxi­milian; Lindinger Klaus, Ing., BSc; Lindner Mario; Lintl Jessi, Dr.; Loacker Gerald, Mag.; Lopatka Reinhold, Dr.; Lueger Angela; Lugar Robert, Ing.; Mahrer Karl, BA; Marchetti Nico; Margreiter Doris; Mölzer Wendelin; Moser Josef, Dr.; Muchitsch Josef; Mühlberghuber Edith; Nehammer Karl, MSc; Neubauer Werner, BA; Niss Maria Theresia, Dr., MBA; Noll Alfred J., Dr.; Nussbaum Verena, Mag.; Obernosterer Gabriel; Ofenauer Friedrich, Mag.; Ottenschläger Andreas; Pewny Christian, Ing.; Plakolm Claudia; Plessl Rudolf; Povysil Brigitte, Dr.; Preiner Erwin; Prinz Nikolaus; Rädler Johann; Ragger Christian, Mag.; Rauch Walter; Rendi-Wagner Pamela, Dr., MSc; Riemer Josef A.; Rosenberger Alois, Dipl.-Ing.; Rosenkranz Walter, Dr.; Rossmann Bruno, Mag.; Rupprechter Andrä, Dipl.-Ing.; Sandler Birgit Silvia; Schandor Christian, Dipl.-Ing.; Schatz Sabine; Schellhorn Josef; Scherak Nikolaus, Dr., MA; Schieder Andreas, Mag.; Schimanek Carmen; Schmied­lechner Peter; Schmuckenschlager Johannes; Schnöll Stefan, Mag.; Schrangl Phi­lipp, Mag.; Schrott Dominik; Schwarz Gabriela; Sieber Norbert; Singer Johann; So­botka Wolfgang, Mag.; Stark Christoph; – Mag. Harald Stefan ist entschuldigt –; Ste­ger Petra; Steinacker Michaela, Mag.; Stöger Alois, diplômé; Strache Heinz-Chris­tian; Strasser Georg, Dipl.-Ing.; Strolz Matthias, Mag. Dr.; Svazek Marlene, BA; Taschner Rudolf, Mag. Dr.; Troch Harald, Dr.; Tschank Markus, Dr.; Unterrainer Maximilian, Mag. (FH); Vogl Markus, Ing.; Wagner Petra; Wassermann Sandra; Weidinger Peter, Mag.; Wimmer Petra; Winzig Angelika, Dr.; Wittmann Peter, Dr.; Wöginger August; Wurm Peter; Yildirim Selma, Mag.; Yılmaz Nurten; Zadić Alma, Dr., LL.M; Zanger Wolfgang; Zarits Christoph; Zinggl Wolfgang, Mag. Dr. ***** (Die Abgeordneten Diesner-Wais, Kitzmüller, Kugler, Neubauer, Rupprechter und Sieber leisten nach Aufruf ihrer Namen die Angelobung mit den Worten „Ich gelobe. So wahr mir Gott helfe!“) *****
XXVI
9.11.2017
1. Sitzung
Nationalrat, XXVI.GPStenographisches Protokoll1. Sitzung, 9. November 2017 / Seite 17 Präsidentin Doris Bures: Damit ist die Angelobung beendet. Meine sehr geehrten Damen und Herren! Sie haben sich mit dem Gelöbnis zur geset­zestreuen und gewissenhaften Ausübung Ihrer Funktion verpflichtet, und ich wünsche Ihnen im Interesse der Republik dazu alles erdenklich Gute. (Allgemeiner Beifall.) 10.22.142. Punkt Wahl der Präsidentin/des Präsidenten, der Zweiten Präsidentin/des Zweiten Prä­sidenten und der Dritten Präsidentin/des Dritten Präsidenten

The challenge now is to filter the dataframe in such a way that we eventually obtain only the rows we are interested in, i.e. to distinguish between rows containing statements and rows containing other text.

5.1 Filter out rows of interest

Below the code doing the heavy lifting, including inline comments.

Code
#define regex for page headers which have to be removed
regex_page_header <- regex("Nationalrat, [XVI]{2,5}\\.GPS.*?Seite \\d+")
#define regex picking up the text of a motion which is inserted in the transcript; I also remove them; speakers don't read out the entire motion;
regex_petition_text <- regex("Der Antrag hat folgenden Gesamtwortlaut:.*$")

#select only those rows which are statements/speeches
df_text_filtered <- df_data_long %>% 
  #remove those rows which start with "Abstimmung" (=vote) 
  filter(!str_detect(str_extract(text_raw, regex("[:alpha:]+")), regex("^Abstimm"))) %>% 
  #remove from the raw text the page header and page footer
  mutate(text_raw=str_remove_all(text_raw, regex_page_header)) %>% 
  #remove text of motions; they are included in the transcript, but are not actually read out by the speakers
  mutate(text_raw=str_remove_all(text_raw, regex_petition_text)) %>% 
  mutate(text_raw=str_trim(text_raw, side=c("both"))) %>% 
  #remove rows which include "Stenographisches Protokol"; refer to headers etc
  filter(!str_detect(text_raw, regex("Stenographisches Protokoll"))) %>% 
  #remove soft hyphen; invisible signs introducing line breaks  which we do not need and otherwise distort search results
  mutate(text_raw=str_remove_all(text_raw, regex("\\p{Cf}+"))) %>% 
  mutate(row_id=row_number()) 

#extract period and session
df_text_filtered <- df_text_filtered %>% 
  #include legislative period again
  mutate(legis_period=str_extract(link_to_text, regex("(?<=VHG\\/)[^\\/]*")),
         .before=date_session) %>% 
  #create a session_id for easier data management
  mutate(session_id=str_extract(link_to_text, regex("(?<=NRSITZ_)\\d+")) %>% 
           as.numeric(),
         .after=legis_period) %>% 
  relocate(session_name, .after=session_id) %>% 
  arrange(legis_period, session_id) %>% 
  ungroup() %>% 
  mutate(row_id=row_number()) 

After this process we reduced our dataframe from 29,263 to 28,855 rows.

Code
nrow(df_data_long)
[1] 29263
Code
nrow(df_text_filtered)
[1] 28855

5.2 Extract speakers

In the next step, I’ll retrieve the name of the speakers from the extracted strings. As the sample output below shows, the speaker’s name is always contained in the opening text section before a colon, after which the actual statement starts. I’ll later call this part of the row speaker_prep.

# A tibble: 5 × 1
  text_raw                                                                      
  <chr>                                                                         
1 19.50.16 Abgeordneter Andreas Minnich (ÖVP): Frau Präsidentin! Sehr geehrte F…
2 16.48.21 Abgeordnete Mag. Selma Yildirim (SPÖ): Sehr geehrter Herr Präsident!…
3 9.06.51 Abgeordneter Karl Schmidhofer (ÖVP): Ich gelobe.                      
4 18.18.56 Abgeordneter Hannes Amesbauer, BA (FPÖ): Sehr geehrte Frau Präsident…
5 Präsidentin Doris Bures: Als Nächster gelangt Herr Abgeordneter Douglas Hoyos…

5.2.1 Compile dataset containing all members of government and parliament

To be able to extract the names of the speakers, I needed to create a dataframe containing the name of all MPs and government members for each legislative period. Subsequently, I’ll check whether any of these names is present in the opening section of a statement by using the regex_left_join function from the fuzzyjoin package.

The data on MPs I retrieve from Flooh Perlot’s (@drawingdata) pertaining github repository; the data on members of government is extracted from a repository I created after scraping the data from the parliament’s website. If you unfold the code chunk below, you’ll see the required steps.

5.2.2 Fuzzy-join

Now, let’s use fuzzyjoin::regex_left_join and see whether a name of an MP or government member shows up in the opening section of the extracted text string.

Code
df_text_filtered_speaker <- df_text_filtered %>% 
  # create a helper column to make work a bit easier; take everything before the first colon 
    mutate(speaker_prep=str_extract(text_raw, regex("^[^\\:]*\\:")) %>% 
             #remove time stamp at beginning
             str_remove(., regex("\\d+\\.?\\d+\\.?\\d+")) %>% 
             #removing characters which are erroneously enocded/retrieved from web
             str_remove_all(., regex("†")) %>% 
             #removes an error when parsing the website (e.g. Sobotka, row_id 2896, 3041)
             str_remove_all(., regex("\\|")) %>% 
             str_remove_all(., regex("\\*+")) %>% 
             #corrects row_id 4694; Sobotka - das Glockenzeichen - 
             str_remove_all(., regex("\\p{Pd}.*?\\p{Pd}")) %>% 
             #row_id 23158; arbitrary word in speaker_prep
             str_remove(., regex("Einlauf")) %>% 
             str_trim(., side=c("both"))) %>% 
  #create a unique id for each row; I'll need that later when it comes to combining separated statements 
  mutate(row_id=row_number()) %>%
  select(row_id, legis_period, date_session, date_first, session_id, session_name, speaker_prep,
         text_raw, link_records, link_to_text)

library(fuzzyjoin)
#find whether names of office holders are in speaker_prep;
df_extract <- df_text_filtered_speaker %>% 
  regex_left_join(., 
                  df_office %>% 
                    select(name_clean, 
                           body,
                           office_position=position, 
                           ministry,
                           office_period, 
                           speaker_party=party),
                  by=c(speaker_prep="name_clean")) %>% 
  rename(speaker=name_clean)

The result is quite good, but not perfect. There were only 82 instances in which no speaker could be identified.


FALSE  TRUE 
93147    82 

These instances can be traced back to 19 distinct cases, which overwhelmingly concern speakers who were not members of the Austrian Parliament or Government. I will revisit these cases at a later stage.

# A tibble: 19 × 2
   speaker speaker_prep                                                         
   <chr>   <chr>                                                                
 1 <NA>    Mitglied des Europäischen Parlaments Mag. Evelyn Regner (SPÖ):       
 2 <NA>    Präsidentin des Rechnungshofes Dr. Margit Kraker:                    
 3 <NA>    <NA>                                                                 
 4 <NA>    Wir gelangen somit gleich zur Abstimmung über den Gesetzentwurf samt…
 5 <NA>    Mitglied des Europäischen Parlaments Karin Ingeborg Kadenbach (SPÖ): 
 6 <NA>    Mitglied des Europäischen Parlaments Mag. Dr. Georg Mayer, MBL-HSG (…
 7 <NA>    Präsidentin der Parlamentarischen Versammlung des Europarates Lilian…
 8 <NA>    Präsidentin der Parlamentarischen Versammlung des Europarates Lilian…
 9 <NA>    Somit kommen wir zur Abstimmung, die ich über jeden Verhandlungsgege…
10 <NA>    Bundesministerin für Bildung, Wissenschaft und Forschung Mag. Dr. Ir…
11 <NA>    Bevor ich diese Sitzung schließe, gebe ich noch bekannt, dass im Ans…
12 <NA>    Mitglied des Europäischen Parlaments Dr. Monika Vana (Grüne):        
13 <NA>    Mitglied des Europäischen Parlaments Dr. Monika Vana (fortsetzend):  
14 <NA>    Mitglied des Europäischen Parlaments Barbara Thaler (ÖVP):           
15 <NA>    Volksanwalt Mag. Bernhard Achitz:                                    
16 <NA>    Mitglied des Europäischen Parlaments Mag. Dr. Georg Mayer, MBL-HSG (…
17 <NA>    Mitglied des Europäischen Parlaments Mag. Dr. Günther Sidl (SPÖ):    
18 <NA>    Mitglied des Europäischen Parlaments Mag. Lukas Mandl (ÖVP):         
19 <NA>    Präsidentin des Rechnungshofes Rechnungshof Dr. Margit Kraker:       

5.2.3 Multi-period members

The regex_left_join above yielded a match whenever the name of a member of parliament or government appeared in the first section of an extracted item. However, with this approach we end up with duplicates for some observations. Some MPs have changed party affiliation, or their party’s name changed during their time in parliament. Similarly, some MPs had interrupted memberships in parliament (resulting to multiple membership entries). Consequently, the dataset on office holders contains multiple rows for one and the same MP. This results in multiple matches. In fact we obtained 93,229, instead of 28,855 rows!

To control for this source of error, we keep only those matches where the date of the statement falls into the speaker’s period of office. (A consequence of this approach is that we lose those rows where we were previously unable to identify a speaker; again, more on that later).

Code
df_extract_2 <- df_extract %>% 
    filter(date_first %within% office_period)
# A tibble: 4 × 5
# Groups:   speaker [2]
  row_id date_session speaker             speak…¹ office_period                 
   <int> <chr>        <chr>               <chr>   <Interval>                    
1   5870 2018-10-18   Beate Meinl-Reisin… NEOS    2018-09-27 UTC--2023-01-01 UTC
2   5872 2018-10-18   Beate Meinl-Reisin… NEOS    2018-09-27 UTC--2023-01-01 UTC
3     35 2017-11-09   Nikolaus Scherak    NEOS    2014-01-30 UTC--2023-01-01 UTC
4     93 2017-12-13   Nikolaus Scherak    NEOS    2014-01-30 UTC--2023-01-01 UTC
# … with abbreviated variable name ¹​speaker_party

5.2.4 Multi-office members

After this step we still end up with more matches/rows (28,882) than we initially had statements (28,855). Why is this? Well, some speakers have more than one position. e.g. the current Austrian Vice-Chancellor Kogler is not only Vice-Chancellor, he is also Minister for Arts, Culture, Public Administration and Sport (don’t ask me how they put these ministries together). In other words, there are two rows for Werner Kogler as member of the government during the same period of time which will result in two matches for one single statement. To solve this, I’ll collapse these duplicates into one observation with a composite position, i.e. ‘Vice-Chancellor, Minister for….’.

Code
df_extract_2 <- df_extract_2 %>% 
  group_by(row_id) %>% 
  add_count() %>% 
  relocate(n, .after="row_id") %>% 
  relocate(office_period, .after="date_session") %>% 
  relocate(office_position, .after="office_period") %>% 
  relocate(speaker, .after="office_period") %>% 
  ungroup()

df_extract_3 <- df_extract_2 %>% 
  group_by(across(.cols=c(everything(), 
                          -office_period, 
                          -office_position, 
                          -ministry,
                          -speaker_party,
                          -body
                          ))) %>% 
  summarise(office_position=paste(office_position, collapse="/"),
            ministry=paste(ministry, collapse="/"),
            speaker_party=paste(speaker_party, collapse=",")) %>% 
  ungroup()

So how do we fare now, did we get rid of all noise created by the fuzzjoin?

# A tibble: 1 × 3
  initial merged_position  diff
    <int>           <int> <int>
1   28855           28726  -129

The results is somewhat puzzling since we have now 129 rows less than before. How can this be?

5.3 Adding non-MPs/non-Gov speakers

Code
df_non_mp_gov_speakers <- df_text_filtered_speaker %>%
    anti_join(., df_extract_3,
              by=c("row_id"))

If we contrast our results with our initially extracted dataframe of statements, I find 129 rows which are now missing. These missing rows are statements where we previously were unable to identify a speaker. A glimpse at the text before the first colon (speaker_prep) reveals that almost all of these rows concern speakers who are neither MPs nor members of the Government, but e.g. members of the European Parliament, the Office of the Ombudsman, the Court of Audit etc. who can also give statements in the chamber.

# A tibble: 37 × 1
   speaker_prep                                                                 
   <chr>                                                                        
 1 Mitglied des Europäischen Parlaments Dr. Othmar Karas, MBL-HSG (ÖVP):        
 2 Mitglied des Europäischen Parlaments Mag. Evelyn Regner (SPÖ):               
 3 Mitglied des Europäischen Parlaments Mag. Dr. Angelika Mlinar, LL.M (NEOS):  
 4 Präsidentin des Rechnungshofes Dr. Margit Kraker:                            
 5 <NA>                                                                         
 6 Volksanwältin Dr. Gertrude Brinek:                                           
 7 Volksanwalt Dr. Peter Fichtenbauer:                                          
 8 Volksanwalt Dr. Günther Kräuter:                                             
 9 Mitglied des Europäischen Parlaments Mag. Dr. Angelika Mlinar, LL.M. (NEOS): 
10 Wir gelangen somit gleich zur Abstimmung über den Gesetzentwurf samt Titel u…
# … with 27 more rows

To get the names of these speakers, I’ll extract the required information via regular expressions from these missing rows, and subsequently add them to our previously obtained data set (where we were able to identify speakers).

Code
df_non_mp_gov_speakers <- df_non_mp_gov_speakers %>% 
  mutate(speaker=str_remove(speaker_prep, regex("\\:")) %>%
           #remove brackets
           str_remove(., regex("\\([^\\)]*\\)")) %>%
           str_trim(., side=c("both")) %>%
           #remove everything after last comma
           str_remove(., regex(",[^,]*$")) %>%
           #extract last two words (assuming name only two words)
           str_extract(., regex("\\w+\\s+\\w+$"))) %>%
  #these speakers originate neither from parliament nor government; hence "other"
  mutate(body="other") %>%
  #but they can be affiliated to a party, e.g. MEPs
  mutate(speaker_party=str_extract(speaker_prep, regex("(?<=\\()[^\\)]*(?=\\)\\:)"))) %>%
  mutate(speaker_party=case_when(is.na(speaker_party) ~ "none",
                        TRUE ~ as.character(speaker_party))) %>% 
  #extract the position:
  mutate(office_position=speaker_prep %>% 
           #remove name from speaker_prep; results with position plus noise
           str_remove(., speaker) %>% 
           str_remove(., regex(":")) %>% 
           #remove academic titles
           str_remove_all(., regex("\\S+\\.")) %>% 
           #remove bracket terms
           str_remove(., regex("\\(.*?\\)")) %>% 
           #remove everything after comma (problem with ministers who are wrongly parsed)
           str_remove(., ",.*$") %>% 
           str_trim())


df_data <- bind_rows(df_extract_3,
                     df_non_mp_gov_speakers)

Combining those two datasets results in a dataframe with the exact same number of statements as initially obtained from the web scraping: 28855. The noise introduced by the fuzzyjoin has hence been removed.

[1] 0

6 Revising speaker details

We have now a dataframe where each row is a distinct statement; the name of the speaker is extracted, and his/her position, party affiliation and institutional body are identified. However, a few revisions are needed.

First, one detail which needs to be revisited is that of the speaker’s position. Initially, we obtained speakers’ positions by matching the opening sections in the raw statement text (speaker_prep) with names from the dataframe on members of parliament and government (with the latter also including information on speakers’ positions). While this approach worked generally fine, there are MPs who were later elected for other positions, and hence their qualification as MP becomes misleading. This concerns e.g. the president and vice-presidents of the chamber (who are elected from the pool of MPs), or rapporteurs (‘Berichterstatter’) and committee/working group secretaries (‘Schriftführer’) who are MPs, but act for a specific task in a non-partisan function. Hence these changes to speakers’ position have to be corrected.

Second, as indicated above, there are a few speakers who held multiple functions at the same time. In general, this is not a big issue, e.g. as explained the Vice-Chancellor can also be minister and when making a statement, there is no explicit differentiation between his two positions. However, there are a very few cases, where an individual was an MP and a member of government on the same day, e.g. Sebastian Kurz as an MP made a brief statement before becoming - later in the day - chancellor. In such a case, it would be wrong to assign such a statement both positions (since a member of gov is not a member of parliament). Hence, the speaker’s details have to be corrected.

Whether a speaker actually acts as (vice)president, rapporteur or MP or chancellor is indicated in the starting segment before the actual statement (speaker_prep, text before the first colon). If this description is not the same as in the office_position column, the values have to be corrected. The code chunk below does this (and a few other things).

Code
df_position_rev <- df_data %>% 
  #corrects cases of Kurz (Chancellor and Abgeordneter on same day)
  mutate(office_position=case_when(
    str_detect(speaker_prep, regex("^Abgeor")) ~ "Abgeordnete/r",
    TRUE ~ as.character(office_position)
  )) %>% 
  #get those MPs where position and position in speaker's identification don't match
  filter(str_detect(office_position, "Abge")) %>% 
  filter(!str_detect(speaker_prep, regex("Abge"))) %>% 
  distinct(speaker_prep, speaker, office_position) %>% 
  #correct the position by extracting the position as stated in speaker_prep
  #by removing name, title etc from speaker_prep; what remains is actual position;
  mutate(office_position_corr=speaker_prep %>% 
           #remove name of speaker
           str_remove(., speaker) %>% 
           str_remove(., regex(":")) %>% 
           #remove bracket terms
           str_remove_all(., regex("\\(.*?\\)")) %>% 
           #remove titles
           str_remove_all(., regex("\\S*\\.")) %>% 
           #remove part were an editorial error in one row
           str_remove(., regex("\\-.*?\\-")) %>%
           str_trim) %>% 
  mutate(office_position_corr=case_when(
    office_position=="Abgeordnete/r" ~ str_remove(office_position_corr, regex(",.*$") %>% 
                                                    str_trim()),
    TRUE ~ as.character(office_position_corr)
  ))


#merge result from above to original dataset; insert corrected position;
df_data <- df_data %>% 
  rename(office_position_orig=office_position) %>% 
  left_join(.,
            df_position_rev %>% 
              select(speaker_prep, office_position_corr),
            by="speaker_prep") %>% 
  #correct office_position
  mutate(office_position=case_when(
    is.na(office_position_corr) ~ office_position_orig,
    TRUE ~ office_position_corr)) %>% 
  #corrects for Kurz who was MP and chancellor on the same day
  mutate(office_position=case_when(
    str_detect(speaker_prep, regex("^Abgeor")) ~ "Abgeordnete/r",
    str_detect(office_position, regex("^Bericht")) ~ "Berichterstatter",
    TRUE ~ as.character(office_position))) %>% 
  #correct body
  mutate(body=case_when(
    str_detect(office_position, regex("minister|kanzler|staatssekr",
                                      ignore_case = T)) ~ "government",
    str_detect(office_position, regex("^Abgeord|Schriftführ|^Präsident(in)?$|^Bericht")) ~ "parlament",
    TRUE ~ as.character("other"))) %>% 
  #correct ministry
  mutate(ministry=case_when(
    #corrects for Kurz who was MP and chancellor on the same day
    str_detect(office_position, "^Abge") ~ NA_character_,
    ministry=="NA" ~ NA_character_,
    TRUE ~ as.character(ministry)
  )) %>% 
  select(-office_position_corr, -office_position_orig) %>% 
  #we have not data on gov members party affiliation;
  #if MP than there is no NA in party affiliation which would originate from gov membership
  mutate(speaker_party=case_when(str_detect(office_position, "Abge") ~
                                   str_remove_all(speaker_party, "NA") %>% 
                                   str_remove(., ",") %>% 
                                   str_trim(),
                                 body=="government" ~ NA_character_,
         TRUE ~ as.character(speaker_party)))

Here some of the results:

# A tibble: 25 × 3
   speaker_prep                                                 speaker  offic…¹
   <chr>                                                        <chr>    <chr>  
 1 Präsidentin Doris Bures:                                     Doris B… Präsid…
 2 Schriftführer Wolfgang Zanger:                               Wolfgan… Schrif…
 3 Präsidentin Elisabeth Köstinger:                             Elisabe… Präsid…
 4 Schriftführerin Angela Lueger:                               Angela … Schrif…
 5 Schriftführerin Mag. Michaela Steinacker:                    Michael… Schrif…
 6 Präsident Mag. Wolfgang Sobotka (den Vorsitz übernehmend):   Wolfgan… Präsid…
 7 Präsident Mag. Wolfgang Sobotka:                             Wolfgan… Präsid…
 8 Präsidentin Anneliese Kitzmüller:                            Annelie… Präsid…
 9 Schriftführer Hermann Gahr:                                  Hermann… Schrif…
10 Präsident Mag. Wolfgang Sobotka (das Glockenzeichen gebend): Wolfgan… Präsid…
# … with 15 more rows, and abbreviated variable name ¹​office_position

7 Pending issues and improvements

By now we’re almost done. However, doing a few tests to check our results reveal that there are some statements which weren’t properly extracted.

# A tibble: 38 × 2
   office_position                                                             n
   <chr>                                                                   <int>
 1 Besonders verstört bin ich übrigens auch                                    1
 2 Bevor ich diese Sitzung schließe                                            1
 3 Bundeskanzlerin                                                             1
 4 Bundesminister für Europa, Integration und Äußeres                          1
 5 Mitglied des Europäischen Parlaments Karin                                  1
 6 Präsidentin des Rechnungshofes Rechnungshof                                 1
 7 Somit kommen wir                                                            1
 8 Staatssekretärin im Bundeskanzleramt                                        1
 9 Vizekanzler                                                                 1
10 Vizekanzler/Bundesminister/Betraut mit der Vertretung der Bundesminist…     1
# … with 28 more rows
[1] 4

Overall, there are 4 out of 28,855 rows where the result is obviously wrong. As far as I can tell, these errors occur when two distinct statements are lumped together into one row, i.e. into the same html_nodes/class ‘WordSection’ (see above). Why this is the case, I can’t tell for sure, but it seems a bit like a formatting mishap on the side of the transcripts’ authors.

Since these errors are rather small (0.00347% in terms of rows, or 0.0012% in terms of all words spoken) and this post anyway is already much longer than originally intended, I’ll only flag the erroneous rows with a new column (flag_parse_error) instead of manually correcting them.

7.1 Indicator for interrupted statemetns

The transcripts feature bracket terms (‘fortsetzend’) to highlight statements which were interrupted by, e.g. the Chamber’s president, and subsequently continued by the speaker. This information can be relevant, e.g. if one is interested in the length of statements and hence would take into consideration that one statement was split into multiple rows. With this in mind, I’ll add an additional column which highlights split statements.

Code
df_data %>% 
  filter(str_detect(speaker_prep, regex("\\(fortsetzend\\)"))) %>%
  select(row_id, speaker_prep) %>% 
  slice_head(., n=5)
# A tibble: 5 × 2
  row_id speaker_prep                                     
   <int> <chr>                                            
1    272 Abgeordneter Mag. Christian Kern (fortsetzend):  
2    285 Abgeordneter Mag. Andreas Schieder (fortsetzend):
3    339 Abgeordneter Dr. Alfred J. Noll (fortsetzend):   
4    341 Abgeordneter Dr. Alfred J. Noll (fortsetzend):   
5    357 Abgeordneter Christian Lausch (fortsetzend):     
Code
df_data <- df_data %>% 
  mutate(continuing=str_detect(speaker_prep, regex("\\(fortsetzend\\)")))

8 Result & Wrap-up

We now have our final result. The dataframe contains 28,855 rows. The table below displays only the first 200 characters of each statement. The complete file can be downloaded as a csv-file here.

date_first
speaker
statement
row_id
legis_period
session_id
date_session
party
position
body
ministry
continuing
link_to_text
flag_error
2017-11-09
Doris Bures
Meine sehr geehrten Damen und Herren! Gemäß § 3 Abs. 2 der Geschäftsordnung obliegt es der Präsidentin der vergangenen Gesetzgebungsperiode, die Sitzung zu eröffnen und bis zur Wahl der neuen Präs...
1
XXVI
1
2017-11-09
SPÖ
Präsidentin
parlament
-
false
2017-11-09
Doris Bures
Ich möchte zu Beginn der konstituierenden Sitzung ein historisches Ereignis in Erinnerung rufen – ein Ereignis, das die Bedeutung und den Wert unserer starken und stolzen Demokratie, in der wir le...
2
XXVI
1
2017-11-09
SPÖ
Präsidentin
parlament
-
false
2017-11-09
Doris Bures
Der Herr Bundespräsident hat mit Entschließung vom 19. Oktober 2017 den Nationalrat gemäß Art. 27 Abs. 2 des Bundes-Verfassungsgesetzes zur XXVI. Gesetzgebungsperiode und gleichzeitig gemäß Art. 2...
3
XXVI
1
2017-11-09
SPÖ
Präsidentin
parlament
-
false
2017-11-09
Doris Bures
Ich darf dem Hohen Haus ferner von folgendem Schreiben des Herrn Bundeskanzlers vom 17. Oktober 2017 Mitteilung machen: „Ich beehre mich mitzuteilen, dass der Herr Bundespräsident mit Entschließun...
4
XXVI
1
2017-11-09
SPÖ
Präsidentin
parlament
-
false
2017-11-09
Doris Bures
Hinsichtlich der eingelangten Verhandlungsgegenstände verweise ich gemäß § 23 Abs. 4 der Geschäftsordnung auf die im Sitzungssaal verteilte Mitteilung. Die schriftliche Mitteilung hat folgenden Wo...
5
XXVI
1
2017-11-09
SPÖ
Präsidentin
parlament
-
false
2017-11-09
Doris Bures
Wir gehen in die Tagesordnung ein und kommen zum 1. Punkt: Angelobung der Abgeordneten. Schriftführer Wolfgang Zanger wird die Angelobungsformel verlesen; sodann werden die Abgeordneten über Namen...
6
XXVI
1
2017-11-09
SPÖ
Präsidentin
parlament
-
false
2017-11-09
Wolfgang Zanger
„Sie werden geloben unverbrüchliche Treue der Republik Österreich, stete und volle Beobachtung der Verfassungsgesetze und aller anderen Gesetze und gewissenhafte Erfüllung Ihrer Pflichten.“ Über N...
7
XXVI
1
2017-11-09
FPÖ
Schriftführer
parlament
-
false
2017-11-09
Doris Bures
Damit ist die Angelobung beendet. Meine sehr geehrten Damen und Herren! Sie haben sich mit dem Gelöbnis zur gesetzestreuen und gewissenhaften Ausübung Ihrer Funktion verpflichtet, und ich wünsche ...
8
XXVI
1
2017-11-09
SPÖ
Präsidentin
parlament
-
false
2017-11-09
Doris Bures
Wir kommen nun zum 2. Punkt der Tagesordnung. Hiezu liegen schriftliche Wahlvorschläge vor, die ich bekannt gebe: Der Vorschlag für die Präsidentin des Nationalrates lautet auf Abgeordnete Elisabe...
9
XXVI
1
2017-11-09
SPÖ
Präsidentin
parlament
-
false
2017-11-09
Doris Bures
Gemäß § 57 Abs. 3 Z 2 der Geschäftsordnung wird für diese Debatte eine Blockredezeitbeschränkung von 20 Minuten pro Klub vorgeschlagen, wobei maximal drei Redner/Rednerinnen pro Klub zu Wort gelan...
10
XXVI
1
2017-11-09
SPÖ
Präsidentin
parlament
-
false
1–10 of 28855 rows
...

Again, this post got much longer than intended, and congrats if you ended up reading these lines. I hope the above detailed steps are helpful when it comes to extracting statements from Austrian MPs. If you have any question, feel free to contact me, and I’ll try to help. Similarly, if you spot any error - please let me know.

Overall, and as some kind of closing note - , the effort to get statements of MPs etc has been somewhat remarkable, considering that we’re dealing here with the statements of public representatives. A more convenient way to obtain MPs’ statements shouldn’t be too much to ask for, particularly in terms of transparency and accountability. At least that’s my feeling after having finished this post.

Footnotes

  1. [@rauh2020]↩︎

  2. I am grateful to user QHarr for having helped me out on Stackoverflow.↩︎

Reuse

Citation

BibTeX citation:
@online{schmidt2021,
  author = {Schmidt, Roland},
  title = {How to Extract Speeches Held at {Austria’s} Parliament},
  date = {2021-11-22},
  url = {https://werk.statt.codes/posts/2021-04-20-extracting-speeches-held-at-austrias-parliament},
  langid = {en}
}
For attribution, please cite this work as:
Schmidt, Roland. 2021. “How to Extract Speeches Held at Austria’s Parliament.” November 22, 2021. https://werk.statt.codes/posts/2021-04-20-extracting-speeches-held-at-austrias-parliament.