Dieses Repository ermöglicht das Nachvollziehen aller Veränderungen am Grundgesetz für die Bundesrepublik Deutschland seit seinem Inkrafttreten im Jahr 1949. Es enthält den vollständigen Gesetzestext zuzüglich vieler Informationen, die damit in Verbindung stehen. Somit steht ein umfassendes Werk zur Verfügung, die Entwicklung der deutschen Verfassung transparenter zu machen.
Dieses Projekt ist Teil der Open-Data-Bewegung und unterliegt der Open Definition. Unser Ziel ist, öffentliche Daten leicht zugänglich zu machen; unser Weg ist, freie Software und freie Formate für unsere Arbeit zu verwenden; unsere Idee ist, das Grundgesetz für die Bundesrepublik Deutschland als das Beispiel für öffentliche Daten wie Verfassungen und Gesetzestexte von unfreien Formaten zu "befreien" und umfassend zu erschließen.
Gesetzestexte sind wie Software: der "Quelltext" ist gut strukturiert mit einfacher Syntax und Änderungen sind auch nichts anderes als Patches, um Fehler zu beseitigen oder neuen Anforderungen zu genügen. Das jedenfalls dachten wir uns vor einiger Zeit. Wie wäre es, ein Gesetz wie ein Stück Software zu behandeln, zu versionieren und zu patchen? Softwareentwickler benutzen dafür Versionskontrollsysteme wie git
. Damit kann man nachvollziehen, wer wann was und warum geändert hat. Als Syntax nahmen wir das leicht verständliche und weit verbreitete markdown
, das sich wie einfacher Text liest. Um die Gesetzestexte in schöne Formate konvertieren zu können, entschieden wir uns für das mächtige pandoc
, das unser verwendetes markdown
mit sinnvoller Syntax anreichert. Die Patches haben wir mit dem kleinen, aber feinen Tool quilt
erstellt. Den letzten Schliff gaben wir dem Projekt mit der selbst geschriebenen Software DocPatch
.
Wir beschränken uns nicht auf den reinen Text und die Änderungen, sondern gehen einen Schritt weiter: Mit Hilfe von weiteren strukturierten Daten ("Metadaten") stellen wir den Text als solches und alle Änderungen in einen größeren Kontext: Wann wurde eine Änderung verabschiedet? Wer hat sie initiiert, wer unterschrieben? Das sind alles Fragen, die wir versuchen zu beantworten.
Beschäftigen Dich eine oder mehrere der folgenden Fragen, dann bist Du hier genau richtig: Wie gehst Du am Besten vor, wenn Du ...
Bevor wir Dir die oben gestellten Fragen konkret beantworten können, solltest Du Dich vorher intensiv mit DocPatch
und unseren Zielen auseinandergesetzt haben. Auch schadet es nicht, sich mit dem Gesetzestext und dem nötigen Vokabular zu beschäftigen.
Bitte installiere DocPatch
mit allen Abhängigkeiten und wechsle in das Hauptverzeichnis dieses geklonten Repositories.
Dieses Repository enthält die folgende Dateistruktur:
etc/
: Konfigurations- und weitere Dateien
btwmeta.json
: Metadaten zu Legislaturperioden des deutschen Bundestagsdocpatch.conf
: Konfigurationsdatei für DocPatchmeta-info.txt
: Beschreibung der Metadaten über eine Gesetzesänderungmeta.template
: Vorlage einer Metadaten-Datei für Gesetzesänderungenmeta.json
: Meta-Informationen im JSON-Formatmeta/
: Dateien mit Metadaten über Gesetzesänderungen nach dem Schema [n].meta
, wobei n
die fortlaufende Nummer der Änderung darstelltout/
: aus den Quellen des versionierten Gesetzestextes erstellte Ausgabeformateref/
: Referenzen, Quellenangaben, mitgelieferte Quellenrepo/
: aus den Quellen dieses Repositories versioniertes Grundgesetzsrc/
: Gesetzestexte; pro Datei ein Artikel nach dem Schema [n].md
, wobei n
die Artikelnummer mit füllenden Nullen und md
die Dateiendung für in Markdown verfasste Texte isttpl/
: Vorlagen für die Ausgabeformateexport DOCPATCH_NO=64
export DOCPATCH_ARTICLES="1 2 3"
nano "./meta/${DOCPATCH_NO}.meta"
nano "./etc/meta.json"
cd src/
quilt push -a
quilt new "$DOCPATCH_NO"
for article in $DOCPATCH_ARTICLES; do quilt edit "${article}.md"; done
quilt refresh
# Optional review of your changes:
quilt diff
quilt pop -a
cd ../
git add "src/patches/${DOCPATCH_NO}"
git commit -a -m "Add new patch no. ${DOCPATCH_NO}"
Bitte anschließend einen Pull Request stellen, der von anderen Projektteilnehmern geprüft werden muss, bevor die Änderungen ins Repository aufgenommen werden.
Laut der Anleitung von DocPatch
benötigst Du dafür nur folgenden Aufruf in der Kommandozeile:
docpatch build
Das Repository wird unter repo
erstellt. Mehr Optionen verrät Dir die Hilfe docpatch build --help
bzw. die Man Page man docpatch-build
.
Der vorherige Schritt gilt als Voraussetzung für diesen. Mit dem Kommando
docpatch create --format pdf --revision last
erstellst Du im Ordner out/
den Gesetzestext im PDF-Format mit allen Änderungen. Alle unterstützten Formate und Optionen sind in der Hilfe docpatch create --help
bzw. in der Man Page docpatch-create
zu finden.
Das versionierte Grundgesetz wird von uns in einem eigenen Repository veröffentlicht. Dazu haben wir folgende Befehle verwendet:
git clone https://github.com/c3e/grundgesetz-dev
cd grundgesetz-dev
docpatch build --valid-dates
git remote add github git@github.com:c3e/grundgesetz.git
git push --force github master
Wir sind ständig auf der Suche nach Menschen und Maschinen, die uns tatkräftig unterstützen möchten -- sei es durch kreative Mithilfe, Spenden von Dienst- oder Sachleistungen. Melde Dich, wenn Du Dich für die "Befreiung Deiner Grundrechte" interessierst ;-)
Hast Du eine tolle Idee, was wir unbedingt umsetzen sollten? Hast Du einen Fehler gefunden? Hast Du Vorschläge, wie wir etwas besser machen können? Wir benutzen den GitHub-eigenen Issue Tracker für jegliche Anfragen solcher Art.
meta.json
erstellenHinter DocPatch stehen Freiwillige, die sich in ihrer Freizeit tatkräftig einsetzen:
Wer mit uns in Kontakt treten möchte, möge sich bitte direkt an Benjamin Heisig wenden oder indirekt die üblichen Kommunikationskanäle des Chaospott Essen bemühen.
Laut UrhG §5 genießen amtliche Werke wie das Grundgesetz für die Bundesrepublik Deutschland kein Urheberrecht. Allerdings gilt dies nicht für die vom Bundesanzeiger Verlag herausgegebenen Bundesgesetzblätter, in denen die Gesetzesänderungen verkündet werden, die von der Juris GmbH aufbereiteten Inhalte sowie für die unter in den Quellen genannten Schriftwerke.
Von uns verwendete Software und Formate sind konsequent offen gelegt.
Selbst erarbeitete Inhalte stehen unter einer Creative-Commons-Lizenz CC BY-SA 3.0 DE.