Das Corpus des deutschen Bundesrechts (C-DBR) ist eine möglichst vollständige Sammlung der konsolidierten Fassungen aller Gesetze und Verordnungen auf Bundesebene. Der Datensatz nutzt als seine Datenquelle das amtliche Internetangebot www.gesetze-im-internet.de des Bundesministeriums der Justiz und wertet dieses vollständig aus.
Alle mit diesem Skript erstellten Datensätze werden dauerhaft kostenlos und urheberrechtsfrei auf Zenodo, dem wissenschaftlichen Archiv des CERN, veröffentlicht. Alle Versionen sind mit einem separaten und langzeit-stabilen (persistenten) Digital Object Identifier (DOI) versehen.
Aktuellster, funktionaler und zitierfähiger Release des Datensatzes: https://doi.org/10.5281/zenodo.3832111
Aktuellster, funktionaler und zitierfähiger Release des Source Codes: https://doi.org/10.5281/zenodo.4072934
Primäre Endprodukte des Skripts sind folgende ZIP-Archive:
- Der volle Datensatz im CSV-Format, unterteilt in Einzelnormen (nur Rechtsakte mit veröffentlichtem Normtext)
- Die Metadaten aller Einzelnormen im CSV-Format (wie 1, aber ohne Text-Variable)
- Der volle Datensatz im CSV-Format, unterteilt in Rechtsakte (nur Rechtsakte mit veröffentlichtem Normtext)
- Die Metadaten aller Rechtsakte im CSV-Format (wie 3, aber ohne Text-Variable)
- Die Metadaten aller veröffentlichten Rechtsakte, im CSV-Format (unabhängig davon ob Normtext veröffentlicht wurde)
- Der volle Datensatz im XML-Format, unterteilt in Rechtsakte (Originaldaten von GII)
- Alle Anlagen zu den XML-Dateien im jeweiligen Original-Format (Originaldaten von GII)
- Alle Rechtsakte im TXT-Format, unterteilt in Rechtsakte (deutlich reduzierter Umfang an Metadaten)
- Alle Rechtstexte im PDF-Format, unterteilt in Rechtsakte (deutlich reduzierter Umfang an Metadaten)
- Alle Rechtstexte im EPUB-Format, unterteilt in Gesetze (deutlich reduzierter Umfang an Metadaten)
- Alle Analyse-Ergebnisse (Tabellen als CSV, Grafiken als PDF und PNG)
- Netzwerk-Strukturen (Adjazenzmatrizen, Edgelists, GraphML, und Netzwerk-Diagramme) für alle Rechtsakte (experimentell!)
Alle Ergebnisse werden im Ordner output
abgelegt. Zusätzlich werden für alle ZIP-Archive kryptographische Signaturen (SHA2-256 und SHA3-512) berechnet und in einer CSV-Datei hinterlegt.
- Docker
- Docker Compose
- 8 GB Speicherplatz auf Festplatte
- Multi-core CPU empfohlen (8 cores/16 threads für die Referenzdatensätze).
In der Standard-Einstellung wird das Skript vollautomatisch die maximale Anzahl an Rechenkernen/Threads auf dem System zu nutzen. Die Anzahl der verwendeten Kerne kann in der Konfigurationsatei angepasst werden. Wenn die Anzahl Threads auf 1 gesetzt wird, ist die Parallelisierung deaktiviert.
Kopieren Sie bitte den gesamten Source Code in einen leeren Ordner (!), beispielsweise mit:
$ git clone https://github.com/seanfobbe/c-dbr.git
Verwenden Sie immer einen separaten und leeren Ordner für die Kompilierung. Die Skripte löschen innerhalb von bestimmten Unterordnern (files/
, temp/
, analysis
und output/
) alle Dateien die den Datensatz verunreinigen könnten --- aber auch nur dort.
Ein Docker Image stellt ein komplettes Betriebssystem mit der gesamten verwendeten Software automatisch zusammen. Nutzen Sie zur Erstellung des Images einfach:
$ bash docker-build-image.sh
Falls Sie zuvor den Datensatz schon einmal kompiliert haben (ob erfolgreich oder erfolglos), können Sie mit folgendem Befehl alle Arbeitsdaten im Ordner löschen:
$ Rscript delete_all_data.R
Den vollständigen Datensatz kompilieren Sie mit folgendem Skript:
$ bash docker-run-project.sh
Der Datensatz und alle weiteren Ergebnisse sind nun im Ordner output/
abgelegt.
Sie können die Pipeline visualisieren, aber nur nachdem sie die zentrale .Rmd-Datei mindestens einmal gerendert haben:
> targets::tar_glimpse() # Nur Datenobjekte
> targets::tar_visnetwork() # Alle Objekte
Hilfreiche Befehle um Fehler zu lokalisieren und zu beheben.
> tar_progress() # Zeigt Fortschritt und Fehler an
> tar_meta() # Alle Metadaten
> tar_meta(fields = "warnings", complete_only = TRUE) # Warnungen
> tar_meta(fields = "error", complete_only = TRUE) # Fehlermeldungen
> tar_meta(fields = "seconds") # Laufzeit der Targets
Die folgende Struktur erläutert die wichtigsten Bestandteile des Projekts. Während der Kompilierung werden weitere Ordner erstellt (files/
, temp/
analysis
und output/
). Die Endergebnisse werden alle in output/
abgelegt.
.
├── buttons # Buttons (nur optische Bedeutung)
├── CHANGELOG.md # Alle Änderungen
├── compose.yaml # Konfiguration für Docker
├── config.toml # Zentrale Konfigurations-Datei
├── data # Datensätze, auf denen die Pipeline aufbaut
├── delete_all_data.R # Löscht den Datensatz und Zwischenschritte
├── docker-build-image.sh # Docker Image erstellen
├── Dockerfile # Definition des Docker Images
├── docker-run-project.sh # Docker Image und Datensatz kompilieren
├── etc # Weitere Konfigurations-Dateien
├── functions # Wichtige Schritte der Pipeline
├── gpg # Persönlicher Public GPG-Key für Seán Fobbe
├── old # Alter Code aus früheren Versionen
├── pipeline.Rmd # Zentrale Definition der Pipeline
├── README.md # Bedienungsanleitung
├── reports # Markdown-Dateien
├── run_project.R # Kompiliert den gesamten Datensatz
└── tex # LaTeX-Templates
Website — https://www.seanfobbe.de
Open Data — https://zenodo.org/communities/sean-fobbe-data/
Source Code — https://zenodo.org/communities/sean-fobbe-code/
Volltexte regulärer Publikationen — https://zenodo.org/communities/sean-fobbe-publications/
Fehler gefunden? Anregungen? Kommentieren Sie gerne im Issue Tracker auf GitHub oder schreiben Sie mir eine E-Mail an [email protected]