Published January 7, 2025 | Version 2025-01-07
Software Open

[R] Source Code des Corpus des Deutschen Bundesrechts (C-DBR-Source)

  • 1. Ludwig-Maximilians-Universität München

Description

Überblick

Dieses Skript wertet das amtliche Internetangebot Gesetze im Internet der Bundesrepublik Deutschland vollständig aus und ist die Grundlage des Corpus des Deutschen Bundesrechts (C-DBR).

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. Die neueste Version des Datensatzes ist zusätzlich immer über den Link der Concept DOI erreichbar: https://doi.org/10.5281/zenodo.3832111

Lesen Sie bitte zuerst den Compilation Report! Dieser enthält den Source Code für die gesamte Pipeline, relevante Rechenergebnisse, alle Diagramme, Zeitstempel, sowie ein detailliertes und klickbares Inhaltsverzeichnis. Sie werden sich auf diese Weise viel schneller im eigentlichen Source Code zurechtfinden.

 

Aktualisierung

Dieser Datensatz wird ca. alle 3 Monate aktualisiert. Benachrichtigungen über neue und aktualisierte Datensätze veröffentliche ich immer zeitnah auf Mastodon unter @seanfobbe@fediscience.org

 

NEU in Version 2025-01-07

  • Vollständige Aktualisierung der Daten
  • Überarbeitung der Dokumentation zu den Varianten des Datensatzes
  • Expliziter R Package Version Lock für 2024-06-13 (CRAN Date)
  • Überarbeitung des Dockerfiles
  • Vereinheitlichung der Komponenten für PDF-Extraktion und Berechnung kryptographischer Hashes
  • Vereinfachung der Run-Skripte und stärkere Integration mit Docker Compose
  • /tmp in Arbeitsspeicher ausgelagert
  • Entfernung von überholtem Source Code
  • Entfernung der Tesseract System Library
  • Entfernung der Nummerierung von Diagrammen

 

Funktionsweise

Primäre Endprodukte des Skripts sind folgende ZIP-Archive:

  1. Der volle Datensatz im CSV-Format, unterteilt in Einzelnormen (nur Rechtsakte mit veröffentlichtem Normtext)
  2. Die Metadaten aller Einzelnormen im CSV-Format (wie 1, aber ohne Text-Variable)
  3. Der volle Datensatz im CSV-Format, unterteilt in Rechtsakte (nur Rechtsakte mit veröffentlichtem Normtext)
  4. Die Metadaten aller Rechtsakte im CSV-Format (wie 3, aber ohne Text-Variable)
  5. Die Metadaten aller veröffentlichten Rechtsakte, im CSV-Format (unabhängig davon ob Normtext veröffentlicht wurde)
  6. Der volle Datensatz im XML-Format, unterteilt in Rechtsakte (Originaldaten von GII)
  7. Alle Anlagen zu den XML-Dateien im jeweiligen Original-Format (Originaldaten von GII)
  8. Alle Rechtsakte im TXT-Format, unterteilt in Rechtsakte (deutlich reduzierter Umfang an Metadaten)
  9. Alle Rechtstexte im PDF-Format, unterteilt in Rechtsakte (deutlich reduzierter Umfang an Metadaten)
  10.  Alle Rechtstexte im EPUB-Format, unterteilt in Gesetze (deutlich reduzierter Umfang an Metadaten)
  11. Alle Analyse-Ergebnisse (Tabellen als CSV, Grafiken als PDF und PNG)
  12. 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.

 

Systemanforderungen

  • Docker
  • Docker Compose
  • 6 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.

 

Anleitung

Schritt 1: Ordner vorbereiten

Kopieren Sie bitte den gesamten Source Code in einen leeren Ordner (!), beispielsweise mit:

$ git clone https://github.com/seanfobbe/c-dbr

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.


Schritt 2: Docker Image erstellen

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

 

Schritt 3: Datensatz kompilieren

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:

$ bash delete_all_data.sh

 

Den vollständigen Datensatz kompilieren Sie mit folgendem Skript:

$ bash docker-run-project.sh

 

Ergebnis

Der Datensatz und alle weiteren Ergebnisse sind nun im Ordner output/ abgelegt.

 

Pipeline visualisieren

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


Troubleshooting

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

 

Weitere Open Access Veröffentlichungen (Fobbe)

Website 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/

 

Urheberrecht

Der Source Code und alle von mir bereitgestellten Rohdaten stehen unter der GNU General Public License v3.0 oder später.

 

Kontakt

Fehler gefunden? Anregungen? Kommentieren Sie gerne im Issue Tracker auf GitHub oder kontaktieren Sie mich über www.seanfobbe.de

 

Files

C-DBR_2025-01-07_CompilationReport.pdf

Files (159.9 MB)

Name Size Download all
md5:ed35c6bb8ab52cb605f9e4edddd21e2b
474.2 kB Preview Download
md5:512f3c43369e9540238b121091a7b035
7.0 kB Preview Download
md5:0dc43ce2b1d9ce28b098eb6fceb537a1
519.8 kB Preview Download
md5:24dc1780c44bf16e27a79115d6d782a3
939.3 kB Preview Download
md5:ea30f685b5077fceb69229327405654a
158.0 MB Preview Download

Additional details

Related works

Compiles
Dataset: 10.5281/zenodo.14592346 (DOI)
Is derived from
Software: https://github.com/SeanFobbe/c-dbr (URL)
References
https://www.gesetze-im-internet.de (URL)

Software

Repository URL
https://github.com/SeanFobbe/c-dbr
Programming language
R
Development Status
Active