Wie viele Paragraphen hat ein Gesetz

Kürzlich kam die interessante Frage auf, wie viele Paragraphen ein Gesetzbuch hat. Also z.B. wie viele Paragraphen hat das BGB? Der erste einfache Gedanke „schauen wir doch einfach mal, was die höchste Paragraphen-Nummer ist“ funktioniert leider nicht, denn einerseits sind einige Paragraphen im Laufe der Jahre entfallen, d.h. ersatzlos gestrichen worden und andererseits sind neue Paragraphen hinzugekommen, indem man Buchstaben an vorhandene Paragraphen angehängt hat.
Also der zweite Gedankengang: Man nehme das BGB und schaue, ob es eine gewisse strukturelle Logik gibt, an Hand derer man die Paragraphen durchzählen kann. Dabei stellt sich jedoch das Problem, woher man das BGB überhaupt in einer digitalen Variante bekommt. Eine kurze Suche führt einen zu der Seite Gesetze im Internet. Eine genaue Lektüre der Seite ergibt zwar, dass ausschließlich der Bundesanzeiger die amtliche Version herausgibt, die auf dieser Seite ladbaren Dateien also ggf. fehlerbehaftet sind, aber denoch erhält man hier die Gesetzestexte in verschiedenen brauchbaren Formaten.
Im nächsten Schritt sucht man sich das BGB heraus, das es auf der entsprechenden Unterseite gibt. Nun ist es natürlich naheliegend, einfach das BGB als PDF-Dokument zu laden, aber damit kommt man nicht wirklich weiter, denn dann hat man schlicht hunderte von Seiten, die zwar gut lesbar, jedoch nicht gut analysierbar sind.

Um einen maschinell zu analysierenden Text zu erhalten, lädt man sich die XML-Variante des BGB herunter. Man bekommt eine ZIP-Datei, die das gesamte BGB in einer XML-Struktur enthält. Damit kann man etwas anfangen. Für den Menschen ist die Datei zwar schwer zu lesen, für einen Computer jedoch leicht zu verarbeiten. Ein kurzer Blick in die Datei bringt zu Tage, dass alle Paragraphen mit Tags versehen sind, die man ganz gezielt durchsuchen und verarbeiten kann. Am Beispiel des §1 sieht das so aus:
<enbez>§ 1</enbez>
Generell sind alle Paragraphen mit dem Tag <enbz> versehen. Sie haben also den konstant gleichen Aufbau. Zuerst kommt das Tag <enbz>, dann kommt das Paragraphenzeichen, dann ein Leerzeichen, dann eine Zahl, dann ggf. ein oder mehrere Buchstaben und abschließend das Schlusstag </enbz>. Mit dieser Struktur kann man etwas anfangen.
Paragraphen, die gestrichen wurden, haben eine andere Struktur:
<enbez>(XXXX) §§ 3 bis 6</enbez>
Es ist egal, ob ein oder mehrere X-Zeichen enthalten sind, ausschlaggebend ist schlicht, dass hinter dem <enbez>-Tag kein Paragraphen-Zeichen steht. Wenn man auf Nummer Sicher gehen möchte, dann kann man zur Analyse noch einen Teil des folgenden Tags heranziehen, denn nach dem schließenden Tag </enbez> folgt das Tag <titel…

Wie geht man nun weiter vor? Am besten man analysiert das ganze unter Linux, denn dort kann man die Zählung mit „Bordmitteln“, also ohne spezielle Programme vornehmen. Man braucht die beiden Tools „grep“ und „wc“. Das Tool „grep“ steht für „general regular expression parser“, existiert seit über 30 Jahren und ist perfekt für die Mustersuche in Textdateien geeignet. Es liefert alle Zeilen mit dem gefundenen Muster. Das Tool „wc“ zählt die Ergebnisse. Entsprechend lautet die Kommandozeile, mit der man die BGB-XML-Datei untersucht wie folgt:
grep „<enbz>.. [0-9]*.*</enbz><titel “ BJNR001950896.xml | wc -l
Das sieht etwas kryptisch aus, ist jedoch ganz einfach, Suche nach:

  1. <enbz>
  2. ..: zwei beliebigen Zeichen (das Paragraphen-Zeichen ist als UTF-Zeichen kodiert, also 2 Zeichen  lang)
  3. [0-9]* eine Nummernsequenz, also die Ziffern 0-9 beliebig zusammengestellt und beliebig wiederholt
  4. .* ein beliebiges Zusatzzeichen (z.B. ein Buchstabe), beliebig wiederholt
  5. </enbz>
  6. <titel

Man bekommt als Ausgabe für jeden gefundenen Treffer die Zeile, in der die gesuchte Sequenz steht. Mit dem Kommando „wc -l“ wird dann einfach die Anzahl der Zeilen durchgezählt.

Voilá: Das BGB enthält nach dieser Analysemethode 2367 aktuelle Paragraphen. Es darf allerdings nicht unerwähnt bleiben, dass diese Zählmethode nur dann funktioniert, wenn der gesamte XML-Gesetztestext der gleichen Aufbau-Struktur folgt. Sollte es in der Struktur oder Logik des Aufbaus Abweichungen gehen, oder wenn ich etwas übersehen habe, dann stimmt das Ergebnis natürlich nicht. Es gibt also keine Garantie für die Zahl. Sie ist jedoch auf alle Fälle plausibel. Sollte es doch Sonderkonstellationen geben, so kann man den Suchmusterstring natürlich noch entsprechend anpassen.

Mit der gleichen Methode kann man natürlich auch alle anderen Gesetztestexte analysieren. Es wäre doch mal interessant, wie viele Steuerparagraphen es in Deutschland gibt.

 

Dieser Beitrag wurde unter Datenanalyse abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.