# How to develop

Wie kann man entwickeln?

```r
# alles geht mit devtools (laedt auch noch ein paar andere pakete)
library(devtools)

# neu laden aller paket funktionen
load_all()
```
Wir verwenden NIEMALS source, etc.! Außerdem NIEMALD library(...) verwenden, sondern
um neue pakete hinzuzufuegen (als dependency), verwende:
```r
use_package("my-good-old-package")
```
Um paket imports verfuegbar zu machen, muss man diese in `R/hateimparlament-package.R`
als `@import <package>` hinzufuegen.

Um dokumentationen neu zu laden / zu erstellen (ruft roxgen auf)
```r
document()
```

Baue vignetten
```r
rmarkdown::render("vignettes/bla.Rmd")
```

# Herunterladen

Bevor analysiert werden kann, muss fetch.R ausgeführt werden, um alle Protokolle herunterzuladen.

# Parsing

## Tabellen

parse.R parsed einzelne Protokolle und erstellt 3 Tibbles

### Redner

Struktur: `id` , `vorname` , `nachname` , `fraktion` , `titel` , `rolle_kurz`, `rolle_lang`

Die Rollen sind beispielsweise "Bundeskanzlerin". Leider gegendert und deshalb wahrscheinlich
nervig zu analysieren.

Wird gewonnnen aus dem `<rednerliste>` Eintrag am Ende der Protokolle.

### Reden

Struktur: `id` , `redner`

Die Reden `id` wird im Protokoll festgelegt und ist eindeutig. Eine Rede ist ein
`<rede>` Eintrag im Sitzungsverlauf. Eine Rede hat immer einen Hauptredner
(der der vorne am Pult steht).

Innerhalb einer Rede kann es verschieden Redebeiträge geben:

- Kommentare: Beifall, Zwischenrufe, etc.
- Redebeiträge: Typischerweise hauptsächlich der Hauptredner, aber auch Zwischenfragen. Diese werden
beim parsen in der Tabelle Talks gespeichert.

### Talks

Struktur: `rede_id` , `redner` , `content`

Das sind die eigentlichen Redebeiträge, die innerhalb von _rede_ Einträgen auftauchen. Dabei gilt:

- `rede_id`: Die Rede in dem der Beitrag auftaucht
- `redner`: Der Sprecher des Redebeitrags
- `content`: Der Inhalt der Rede (__wichtig__: Aktuell werden die Ordnungskommentare des
Bundestagspräsidenten nicht herausgefiltert, tauchen also im Inhalt auf, obwohl sie nicht vom
`redner` gesprochen werden. To be fixed -> Issues!)

## Noch zu parsen: Alles kann, nichts muss.

- Kommentare (aktuell werden nur `<p>`'s in Reden gesammelt). Hier ist zu überlegen, wie diese
gesammelt werden sollten.
- Meta Daten? Diese sind teilweise in den `rede_id`'s encoded.

## Kombinieren der Tabellen der Protokolle 

- Alle Tabellen sollten schlussendlich kombiniert werden zu großen Tabellen über
alle Protokolle.

# Analyse

- Schnittmenge AfD Vokabular und Hitler's Reden?
- Redeanteile nach Geschlecht (dazu gibt es leider keine Daten in der Rednerliste), Fraktion, etc.
- Ideen, Ideen, Ideen ...
