Giter VIP home page Giter VIP logo

gesetze's Introduction

Deutsche Bundesgesetze und -verordnungen

Dieses Git Repository enthält alle Deutschen Bundesgesetze und -verordnungen im Markdown-Format. Als Quelle dienen die XML-Versionen der Gesetze von www.gesetze-im-internet.de.

Warum Git?

Jeder Bürger kann den aktuellen Stand von Gesetzen sehr einfach online finden. Allerdings ist die Entstehung, die historische Entwicklung und die Aktualisierung von Gesetzen nicht einfach und frei nachvollziehbar. Das liegt daran, dass Gesetze nur in ihrer aktuellsten Version präsentiert werden und Änderungen an diesen Gesetzen nicht maschinenlesbar vorliegen. Dies soll hier geändert werden: die aktuellste Version eines Gesetzes wird hier mit Git versioniert gespeichert. Das erlaubt es, die Mächtigkeit von Git auf Gesetze und auf den Gesetzgebungsprozess anzuwenden. Das Einpflegen der kompletten deutschen Gesetzesvergangenheit in Git ist das ferne Ziel.

Warum Markdown?

Gesetze sind Prosa, sie enthalten keine maschinenlesbare Semantik. Eine Auszeichnungssprache wie XML verringert die Menschenlesbarkeit, erschwert die maschinelle Erkennung von Unterschieden und beinhaltet viel überflüssige Syntax.

Markdown ist eine intuitive Formatierung von Text, die ohne zusätzliche Programme für Menschen les- und schreibbar ist. Das passt zu Gesetzestexten, die nur minimale Formatierung benötigen. Weiterhin lässt sich Markdown in andere Formate wie HTML konvertieren und ist damit maschinen-formatierbar.

Pull Requests

Pull Requests können gerne geöffnet werden. Natürlich werden nur solche gemergt, die tatsächlich vom Bundestag verabschiedet wurden und Gesetz geworden sind.

Dennoch sind Änderungsvorschläge an Gesetzen von Parteien oder aus der Zivilgesellschaft als Pull Request nützlich. Die Änderungen lassen sich einfacher im Kontext verstehen, können direkt am Gesetz diskutiert und nachvollziehbar verändert werden.

Offizielle Gesetzesentwürfe, wenn öffentlich verfügbar, werden vom Fork der Bundesregierung als Pull Request an dieses Repository gestellt.

Fehler und Bitte um Mithilfe

Es wird kein Anspruch auf Korrektheit erhoben. Bitte verlassen Sie sich nur auf offizielle Quellen.

Die XML-Quelle ist nicht fehlerfrei und die Konvertierung von XML nach Markdown ist es auch nicht. Das liegt daran, dass die Gesetze im XML-Format das Markup auch für stilistische Auszeichnungen statt nur für semantische Auszeichnungen nutzen. Dies erschwert eine Konvertierung und führt zu fehlerhaftem Markdown. Da fehlerhaftes Markdown immer noch gut lesbar ist, führt dies erst bei einer Weiterverarbeitung zu Problemen.

Commits richten sich nach Möglichkeit nach den Veröffentlichungen im Bundesgesetzblatt und im Amtlichen Teil des Bundesanzeigers. Das funktioniert nicht immer problemlos und erfordert menschliche Unterstützung. Werkzeuge, die die Aktualisierung vereinfachen finden sich im gesetze-tools repository. Mithilfe ist erwünscht.

Um die Fähigkeiten von Git optimal zu nutzen, wird es nötig sein Commits, die Gesetzesänderungen einbringen, von Commits, die z.B. Korrekturen an der Syntax vornehmen oder die README verändern zu unterscheiden. Hier wird um Mithilfe bei der Ausarbeitung eines Git-Workflows für dieses Repostiory gebeten.

Siehe auch

Dieses Projekt wurde auch auf verschiedenen Konferenzen vorgestellt bzw. erwähnt:

Rechtliches

Gesetze sind amtliche Werke und unterliegen nicht dem Urheberrecht.

Kontakt

Twitter: @bundesgit


(English version)

German Federal Laws and Regulations

This Git repository contains all German federal laws and regulations in Markdown format. The source is the XML version of the laws from www.gesetze-im-internet.de.

Why Git?

All German citizens can easily find an up-to-date version of their laws online. However, the legislation process, the historic evolution and the updates to laws are not easily and freely trackable. The reason is that laws are only published in their most recent version and changes to laws are not available in a machine-readable format. This should change: the current state of laws will be stored in this repository under Git version control. This allows the power of Git to be applied to the legislation process. Integrating the whole history of German law changes in Git is the ambitious goal.

Why Markdown?

Laws are prose, they do not contain machine-readable semantics. A complex markup language like XML reduces the human-readability, makes detection of differences harder and contains lots of unnecessary syntax.

Markdown is an intuitive formatting of text, that is readable and writable by humans without the need of additional tools. That fits the nature of laws that only need minimal formatting. Furthermore, Markdown is machine-formattable and can be converted to other formats like HTML.

Pull Requests

You are encouraged to open pull request. Of course only valid legislation voted on by the Bundestag will be merged.

However, law change proposals as pull requests coming from parties or NGOs can be useful to understand context, discuss changes directly where they will happen and keep changes accountable.

Official change proposals from our government will be opened as pull requests from the fork of the Bundesregierung as they become publicy available.

Mistakes and call for help

There is no guarantee on correctness. Please only trust official sources.

The source XML is not without mistakes and neither is the conversion to Markdown. That's because the source XML uses markup for style and not only for semantics. This makes conversion harder and comes down to faulty Markdown. However, faulty Markdown is still very readable and will only cause problems when processed further.

Commits will be based on published changes (Bundesgesetzblatt and Bundesanzeiger). That doesn't work without problems and requires human interaction. Tools that make updates easier can be found in the gesetze-tools repository. Help needed.

In order to make the most out of Git we need to distinguish between law change commits and commits that fix e.g. syntax mistakes. Please help shape a Git Workflow for this repository.

See also

This project was also presented or mentioned at various conferences:

Legal Stuff

All laws are official works and are not under copyright law.

Contact

Twitter: @bundesgit

gesetze's People

Contributors

darkdragon-001 avatar mk-pmb avatar nagy avatar philipp-kempgen avatar rugk avatar shapeshed avatar stefanw avatar triang3l avatar ulfgebhardt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gesetze's Issues

Probleme mit Fußnoten bzw. Sonderzeichen *

Leider sind die Gesetze-Im-Internet Fußnoten nicht standardisiert, das führt immer mal wieder zu fehlerhaftem Markdown und dann .html Output, siehe zB § 9 InsO.

Vielleicht kann man solche Probleme automatisch mittels Regex im Markdown finden: Es kann ja nur sehr wenige zulässige Fehler von mehreren Sonderzeichen hintereinander im Markdown geben, mir fällt jetzt nur § oder # ein, alles andere ist dann sehr wahrscheinlich problematisch.

Bei Markdown Konvertierung "code blocks" deaktivieren

Bei manchen Unterpunkten wird trotz korrektem .md File ein fehlerhafter .html File erzeugt, weil -wegen der Einrückung- die Konvertierung .md -> html die Stelle als code-block formatiert, z.B. bei § 11 Abs. 1 Nr. 1 a StGB.

Am besten man schaltet dieses code-block Feature bei der Markdown-Konvertierung komplett ab.

Markdown-Dialekt festlegen

Das Markup-Format der Gesetzestexte im Repository ist bisher nur als "Markdown" spezifiziert, obwohl es einige Markdown-Dialekte gibt. Neben John Gruber's originalem Standard Markdown (SM), und dem erwähnten Pandoc Markdown fällt mir noch Multimarkdown ein und die index.md-Dateien werden hier mit GitHub-Flavoured Markdown (GFM) interpretiert. Die englische Wikipedia hat eine Liste der Markdown-Implementationen.

GFM erweitert SM im Wesentlichen um für GitHub-spezifische Dinge wie automatisches Linken von Commits/Issues/Personen und fügt Code-Blöcke hinzu. Ich denke, dass die Unterschiede zwischen GFM und SM vernachlässigbar sind. Über den kleinen Unterschied beim Umgang mit Leeraum sollte man aber vielleicht noch mal nachdenken.

SM wie GFM kennen keine Syntax für Tabellen. Sollten solche benötigt werden, wäre es vielleicht besser, sich auf Pandoc-Markdown oder Multimarkdown festzulegen. Für die weitere Verarbeitung von SM/GFM Quellen mit Inline-HTML müssten diese sonst erst komplett zu HTML und anschließend zum eigentlichen Zielformat konvertiert werden. Mit Pandoc z.B. ist das kein Problem, aber vielleicht für andere Szenarien.

Entwicklungssprache festlegen

Es ist nicht klar, ob in Deutsch, oder Englisch entwickelt und diskutiert werden soll.

  • Das momentane Durcheinander setzt Kenntnis beider Sprachen allein zum Entwickeln voraus, was die denkbar schlechteste Lösung ist.
  • Ebenso würde Englisch zum Entwickeln und die deutschen Gesetzestexte zwei Sprachen für eine inhaltliche Diskussion voraussetzen.

Wegen der Notwendigkeit, mit deutschen Gesetzestexten umzugehen, halte ich daher für am sinnvollsten, die Deutsch als Sprache für die Entwicklung festzulegen.

Aktualität

Hi,

wie sieht es denn mit der Aktualität dieser Sammlung aus? Ich sehe, daß die letzten Änderungen vor einem Jahr eingepflegt wurden ... in der Zwischenzeit hat sich doch Einiges geändert und ist hinzugekommen? Wir diese Gesetzesquelle nicht mehr gepflegt ? Wer ist der Zuständige Ansprechpartner ?

Formatierung von Aufzählungen fehlerhaft

Teilweise ist die Formatierung von Aufzählungen fehlerhaft.

Beispiel: StVO § 3:

(3) Die zulässige Höchstgeschwindigkeit beträgt auch unter günstigsten
Umständen

    • innerhalb geschlossener Ortschaften für alle Kraftfahrzeuge
    • 50 km/h,
    • außerhalb geschlossener Ortschaften
    • a)
    • für Kraftfahrzeuge mit einem zulässigen Gesamtgewicht über 3,5 t bis
      7,5 t, ausgenommen Personenkraftwagen, für Personenkraftwagen mit
      Anhänger, für Lastkraftwagen und Wohnmobile jeweils bis zu einem
      zulässigen Gesamtgewicht von 3,5 t mit Anhänger sowie für
      Kraftomnibusse, auch mit Gepäckanhänger
    • 80 km/h,

Besser:

  1. Ebene 1
    1. Ebene 2
      1. Ebene 3
      2. Ebene 3
        1. Ebene 4
  2. Ebene 1

Dies könnte allerdings bedeuten, dass aus 1.b.1. im Original ein 1.ii.a. in Markdown wird.

Struktur der Daten, Schemadateien, Pflegemodell?

Es ist schon erstaunlich, welcher Hype um dieses Repository entfacht wurde... Respekt fürs Medien-Manöver!
Ich bekomme graue Haare, wenn ich sehe, dass hier Studenten vom HPI am Werke sind, die den Unterschied zwischen unstrukturierten, semi-strukturierten und strukturierten Daten kennen sollten und eigentlich auch in der Lage sein sollten, erst entsprechende Strukturen (!) zu entwickeln und dann Datenformate dafür auszuwählen.

Wohin soll Euch bitte "Markdown", welches ein Schreibformat für Webmenschen ist, als Datenformat tragen?
Meiner Ansicht nach kommt ihr bei juristischen Daten nicht um XML rum. Das wurde von Charles F. Goldfarb doch gerade entwickelt, um Datenstellen in juristischen Texten zu markieren und maschinenlesbar zu sein. Semi-strukturierte Datenformate wie "Markdown" oder auch "HTML" sind nicht gut geeignet für juristische Daten, weil sie zu wenig Strukturinformation offenbaren - höchstens für eine menschenlesbare Repräsentation der Daten.

Bei strukturierten Daten gibts regelmäßig zusätzlich zu den Daten noch ein Schema-Format, um Kenntnis über die Struktur zu haben und Format-Validierungen zu ermöglichen (XML/XSD/DTD).

Es lässt sich in diesem Repository an Struktur nicht wirklich viel finden, nämlich lediglich
(a) der alphabetischen Repo-Index und
(b) einige Zeilen in jedem Gesetzes-Dateikopf (Ausfertigungsdatum, Fundstelle, Neugefasst durch, Zuletzt geändert durch), sowie
(c) einige Markdown-Tags, etwa "Doppelhash Absatz/Überschrift".
Insgesamt weniger, als auf den seit Jahren gut gepflegten Platformen http://buzer.de, http://openjur.de, http://juris.de/ oder http://gesetze-im-internet.de. Ich kann bislang keine Neuerungen oder Verbesserungen erkennen.

Zudem ist es grotesk, dass bereits bestehende und etablierte XML-Gesetzesstandards des BMJ und der Verwaltung gänzlich ignoriert werden. Ich denke, ihr wollt Euch in den bestehenden Toolchain einklinken und die Arbeit damit verbessern - dann macht das doch einfach mal! Werft mal einen Blick in die UML Spezifikation von xNorm und eNorm. Das Verfahren läuft mit diesen Werkzeugen und nicht mit Git oder auf Github :)

Wir halten fest:
Die Struktur der Daten ist schwach. Es gibt keine Schemadateien. Es gibt kein Pflegemodell.

Umwandlung von Tabellen ist fehlerhaft

Bei Tabellen zB in §§ 19,22 EStG ist Markdown und Html Version praktisch immer falsch.
Wahrscheinlich kann man die Stellen automatisch finden, wenn man in den Markdown-Versionen nach zwei Sternchen ( * ) nebeneinander sucht.

Auch für andere Bugs ist die Suche nach leerstehenden Sternchen möglich, z.B. die Umwandlung von fremdsprachlichen Begriffen in der Anlage 2 EStG, die auch nicht funktioniert.

Hintergrundinfo in der Readme

ich denke, es wäre gut, in der Readme kurz darauf einzugehen, wer/welche Organisation hinter diesem Projekt steht.

Projekt noch aktiv?

Hallo, ist das Projekt noch aktiv? Wenn nein, wäre ein Hinweis in der README sehr praktisch. Und gibt es Alternativen? Ich finde das Projekt sehr gut, aber der letzte Commit ist von 2013.

Add Continuous Integration support

CI is awesome, but how to test laws? Some ideas:

  • Law Integrity: do all referenced laws exist? Is the referenced paragraph still existant?
  • Law Content Linting: should a paragraph be split into two, is it too complex by some language measure?
  • Law Style Linting: Proper line breaks in Markdown etc.

Having TravisCI test law change proposals would be mind-boggingly sweet.

Strukturinfo für Einarbeiten Gesetzesinfo?

Bei bayerischen Gesetzen steht in der .html Fassung noch Strukturinfo ala (siehe http://tinyurl.com/cxkb8ac). Für das Einarbeiten neuer Gesetzesentwürfe + Prüfen auf Fehler erscheint mir das für menschliche Bearbeiter sehr praktisch, um die Veränderungen schnell zuordnen zu können. Im Markdown-Text selbst würde das aber wahrscheinlich die Lesbarkeit verringern. Vielleicht bräuchte man noch einen Markdown-Converter in ein Zwischenformat?

Letztlich gibt es in Gesetzen an Struktur ja nur: § 1 Abs. 1 Satz 1 Nr. 1 a) aa)... Hin und wieder leider unregelmäßiges Zeug wie Spiegelstriche.

Entferne Satzzahlen im Text

Per Mail: "Bei den juris-Gesetzen gibt es eine kleine Inkonsistenz, die folglich auch bei Github auftaucht: Bei manchen Gesetzen erscheinen die Satzzahlen im Text und folglich auch im Markdown und sind dort beim Lesen etwas störend."

Dokumentation der Struktur

Die Struktur des Repos sollte besser dokumentiert werden.
Augenscheinlich gibt es für jeden Buchstaben einen Ordner (um die Anzahl der jeweiligen Unterordner klein zu halten(?)) und darin pro Gesetz einen Ordner benannt nach dem Kurznamen des Gesetzes (?) und darin eine index.md.
Ist das so korrekt? Was sind die Gründe für diese Struktur?

Was ist das eigentliche Endprodukt / wie ist die Nutzung des Repos gedacht / welche Use-Cases gibt es?
Klickt man sich auf https://github.com/bundestag/gesetze durch?
Öffnet man das Repo lokal in gitk/gitx/tortoise?
Sollte es einen STRG-F-durchsuchbaren Index mit den ausgeschriebenen Namen geben? Wie wird dieser generiert?

Nehmt doch MultiMarkdown für LaTeX Konvertierung

Wenn ihr MultiMarkdown verwendet, könnt ihr die Gesetzestexte auch wunderbar in LaTeX konvertieren. soweit ich das noch weiss, hat MultiMarkdown eine direkte Möglichekit in Texte in LaTeX zu wandeln. MultiMarkdown ist eine tolle Erweiterung von Markdown und lässt sich in verschiedenste TExt-Dokuemnte konvertieren:

Mehr Infos gibt es hier:

http://fletcherpenney.net/multimarkdown/features/
https://github.com/fletcher/peg-multimarkdown-latex-support

Non-Textual Content

Mir fallen folgende Inhalte auf, z.B.:

  • Inhalt: nicht erfaßtes Grunderwerbsverzeichnis, Fundstelle: Anlageband II zum BGBl. I Nr. 22 vom 19.4.1994 I 734, S. 231 - 280
  • Inhalt: nicht erfaßter Erläuterungsbericht mit nicht darstellbaren Graphiken und Plänen, Fundstelle: Anlageband III zum BGBl. I Nr. 22 vom 19.4.1994 I 734, S. 283 - 378

Währe es technisch möglich, diese Inhalte entweder direkt (inline Grafik) darzustellen oder zumindest zu verlinken?

Formatierungsfehler bullet points in html (Beispiel: § 46 II StGB)

In der .html Version von § 46 Absatz 2 StGB wird für das erste Unterelement des Absatzes ein überflüssiger bullet point erzeugt. Wahrscheinlich weil im Original ausnahmsweise mehrere Unterpunkte nur durch Einrückung, nicht durch Gedankenstriche (-) angeführt sind.

Ungebräuchliche Abkürzungen für Gesetze

Manchmal sind die Abkürzungen für Gesetzesbezeichnungen bei Gesetze-im-Internet falsch bzw. in der Praxis völlig ungebräuchlich. Komischerweise machen sie es in der HTML-Fassung in der Überschrift meistens richtig.
Es wäre praktisch, wenn es eine Liste aller Gesetze gäbe, die man dann wie ein Wiki nach und nach anpasst...

Derzeitige Beispiele:

  • KredWG KWG
  • BGBEG EGBGB
  • BBauG BauGB

Update: Der Fundstellennachweis A des Bundesjustizministeriums erhält ab S. 763 ein Abkürzungsverzeichnis. (http://www.bgbl.de/Xaver/start.xav?startbk=Bundesanzeiger_BGBl)

Vielleicht wäre es auch praktisch, die Gliederungsnummern aus dem Fundstellennachweis als Metadata in die Gesetze aufzunehmen.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.