From 22f19c3afc4d51d7714647c5635bb068cf32d433 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Tue, 25 Aug 2026 22:25:21 +0200 Subject: =?UTF-8?q?Das=20Erzeugnis=20gibt=20seine=20Fassung=20heraus=20und?= =?UTF-8?q?=20pr=C3=BCft=20sie=20selbst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zwei Leistungen fehlten, die das Werkzeug längst erbringen konnte, aber nicht herausgab. Die erste ist die fortgeschriebene Fassung. Der Schalter --neufassung schreibt sie als kanonischen Klartext; damit steht die Kette: Die Ausgabe des ersten Laufes ist das Stammgesetz des zweiten, und eine konsolidierte Fassung lässt sich aus dem Stammheft und den Änderungsheften zusammensetzen, wo kein Portal sie fertig liefert. Für Thüringen ist das von Hand geschehen. Die zweite ist der Abgleich. Ob ein Lauf gelungen ist, entscheidet nicht die Zahl der angewandten Befehle, sondern der Wortlaut hinterher — und dieser Maßstab stand bislang allein im Testcode. Wer ein Land erschloss, musste die Prüfung ein zweites Mal schreiben. Der Schalter --nachfassung nimmt die amtliche Fassung entgegen, weist fehlende, überzählige und abweichende Normen aus, zeigt die Abweichung in der Synopse wortweise und endet bei einem Fehlschlag mit dem Rückgabewert 3. Denselben Abgleich fahren fortan die Akzeptanzprüfungen; vier handgeschriebene Vergleichsschleifen weichen ihm. Die Überschrift zählt dabei zum Wortlaut, denn auf sie zielen eigene Befehle — der Korpus trägt diese Verschärfung ohne einen einzigen Rückfall. Statt einer sechsten und siebten Fassung der Signatur tritt ein Auftrags-Record an die Stelle der Überladungsleiter der Pipeline. Die Browserfassung bekommt beides: ein Dateifeld für die Nachfassung und ein Ankreuzfeld für die Textausgabe, beide hinter der Klappe „Weitere Angaben“. Der Rundlauf hat dabei einen zweiten Mangel des Lesers zutage gefördert. Das Bundesrecht führt aufgehobene Paragraphen unter einer Sammelbezeichnung („§§ 17 u. 18“, Titel „(weggefallen)“, im gii-XML mit der Platzhalterkennung „(XXXX)“). Der kanonische Klartext kannte diese Kopfzeile nicht; sie wäre in den Wortlaut der Vornorm gefallen und hätte ihn verfälscht. Ohne sie könnte der Klartext kein Bundesgesetz tragen, und die Kette endete beim Bund. Geprüft: 375 Tests (zuvor 373); Berlin gibt 171 von 171 Normen gleich aus, und die für das UWG ausgegebene Fassung ergibt wieder eingelesen dieselbe. Change-Id: Ie3c45e18b561175fe6dd0033c46d3bed69e415bc --- README.md | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 90 insertions(+), 6 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index ff13037..3e4e980 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,8 @@ durchgerechneten Beispiele sind der kürzeste Weg zum ersten Ergebnis - [§ 4 Herstellung des Erzeugnisses](#-4-herstellung-des-erzeugnisses) - [§ 5 Zulässige Eingaben](#-5-zulässige-eingaben) - [§ 6 Betrieb der Befehlszeilenfassung](#-6-betrieb-der-befehlszeilenfassung) +- [§ 6a Die fortgeschriebene Fassung; die Kette](#-6a-die-fortgeschriebene-fassung-die-kette) +- [§ 6b Abgleich mit der amtlichen Nachfassung](#-6b-abgleich-mit-der-amtlichen-nachfassung) - [§ 7 Erkannte Änderungsbefehle](#-7-erkannte-änderungsbefehle) - [§ 8 Reihenfolge der Anwendung](#-8-reihenfolge-der-anwendung) - [§ 9 Aufbereitung der Druckwerke](#-9-aufbereitung-der-druckwerke) @@ -213,6 +215,15 @@ java -jar target/aendggner-0.1.0-SNAPSHOT.jar \ unangewandt und werden gesondert ausgewiesen (§ 8 Absatz 5). Ohne diese Angabe werden alle Befehle angewandt. +**`--neufassung `** +: Neben der Synopse die fortgeschriebene Fassung als kanonischen Klartext (§ 5 + Absatz 2) ausgeben; „`-`“ bezeichnet die Standardausgabe. Die Ausgabe ist als + Stammgesetz eines weiteren Änderungsheftes wieder einlesbar (§ 6a). + +**`--nachfassung `** +: Das Ergebnis Norm für Norm gegen die amtliche Nachfassung halten (§ 6b). Es + gelten dieselben Eingabeformate wie für das Stammgesetz. + **`--extract-only`** : Nur den bereinigten Lineartext des Änderungsdokuments ausgeben. Dies ist angezeigt, wenn die PDF-Aufbereitung (§ 9) fehlerhaft bleibt: Der Text ist zu @@ -228,6 +239,63 @@ java -jar target/aendggner-0.1.0-SNAPSHOT.jar \ (4) Die vollständige Schalterliste einschließlich der Schalter für die Fehlersuche gibt `--help` aus. +## § 6a Die fortgeschriebene Fassung; die Kette + +(1) Ein Änderungsgesetz sagt, was zu tun ist; das Erzeugnis rechnet aus, was danach +gilt. Diese Fassung ist nicht bloß die rechte Spalte der Synopse, sondern ein +eigenes Erzeugnis: Der Schalter `--neufassung` (§ 6 Absatz 2) gibt sie als +kanonischen Klartext im Format des § 5 Absatz 2 aus. + +(2) Daraus folgt die **Kette**. Wer zwei Hefte nacheinander auf dasselbe Stammgesetz +anwenden will, gibt die Ausgabe des ersten Laufes als Stammgesetz des zweiten ein: + +```shell +java -jar target/aendggner-0.1.0-SNAPSHOT.jar stamm.txt heft-1.pdf \ + --neufassung zwischenfassung.txt -o synopse-1.html +java -jar target/aendggner-0.1.0-SNAPSHOT.jar zwischenfassung.txt heft-2.pdf \ + --neufassung endfassung.txt -o synopse-2.html +``` + +Auf diesem Wege lässt sich eine konsolidierte Fassung aus dem Stammheft und den +Änderungsheften des Gesetzblattes zusammensetzen, wo kein Portal sie fertig liefert +(§ 13 Absatz 3). Mehrere Hefte in einem Lauf sind ohnehin zulässig; die Kette ist +für das gedacht, was über einen Lauf hinausreicht. + +(3) Ausgegeben wird allein, was das Datenmodell trägt; erfunden wird nichts. Für +Bundesrecht ist die Ausgabe deshalb eine getreue Wiedergabe des Wortlauts, aber kein +Rundlauf ins gii-XML: Jenes Format führt einen Fußnotenapparat und Standangaben, die +der Klartext nicht aufnimmt. Was der Klartext trägt, trägt er vollständig — dass der +Leser aus der Ausgabe dasselbe Gesetz wiedergewinnt, ist an sämtlichen +Klartext-Stammfassungen des Beispielkorpus geprüft (§ 17 Absatz 3). + +## § 6b Abgleich mit der amtlichen Nachfassung + +(1) Ob ein Lauf gelungen ist, entscheidet nicht die Zahl der angewandten Befehle, +sondern der Wortlaut hinterher. Der Schalter `--nachfassung` (§ 6 Absatz 2) nimmt die +amtliche Fassung nach dem Änderungsgesetz entgegen und stellt das Ergebnis Norm für +Norm dagegen: + +```shell +java -jar target/aendggner-0.1.0-SNAPSHOT.jar ASOG-Bln-alt.txt GVBl-2026-17.pdf \ + --artikel 1 --nachfassung ASOG-Bln-neu.txt -o synopse.html +# → Abgleich mit der amtlichen Nachfassung: 171 von 171 Normen gleich +``` + +(2) Ausgewiesen werden die fehlenden, die überzähligen und die abweichenden Normen; +bei den abweichenden zeigt die Synopse den Unterschied wortweise unter der Aufschrift +**Abgleich mit der amtlichen Nachfassung**, links die amtliche, rechts die errechnete +Fassung. Verglichen wird nach Normalisierung des Leerraums: Wie ein Portal umbricht, +ist kein Rechtsinhalt — jedes Wort und jedes Satzzeichen dagegen schon. Die +Überschrift zählt zum Wortlaut, denn auf sie zielen eigene Befehle. + +(3) Geht der Abgleich nicht auf, so endet der Lauf mit dem Rückgabewert 3. Das ist für +Massenläufe gedacht, die die Ausgabe nicht lesen. + +(4) Es ist derselbe Abgleich, den die Akzeptanzprüfungen fahren (§ 17 Absatz 2). +Damit messen Werkzeug und Prüfung an einem Maßstab, und die Erschließung eines +weiteren Landes braucht keinen eigenen Prüfcode mehr: Stammfassung, Heft, Nachfassung +— das Erzeugnis sagt selbst, wo es danebenliegt. + ## § 7 Erkannte Änderungsbefehle (1) Erkannt werden die gebräuchlichsten Änderungsbefehle des Handbuchs der @@ -538,17 +606,22 @@ wählen, Synopse erhalten. (2) Der Vordruck stellt außer den beiden Dateifeldern dieselben Angaben zur Verfügung wie die Befehlszeile nach § 6 Absatz 2, nämlich das Feld „Anzuwendender Artikel“ (`--artikel`), das Feld „Stichtag“ (`--stichtag`), das -Ankreuzfeld „Unveränderte Vorschriften mit in die Synopse aufnehmen“ -(`--vollstaendig`) und das +Dateifeld „Amtliche Nachfassung“ (`--nachfassung`), das Ankreuzfeld +„Unveränderte Vorschriften mit in die Synopse aufnehmen“ (`--vollstaendig`), das +Ankreuzfeld „Auch die fortgeschriebene Fassung als Klartext ausgeben“ +(`--neufassung`) und das Ankreuzfeld „Statt der Synopse nur den maschinell gelesenen Text der Änderungsdokumente ausgeben“ (`--extract-only`). Das letztgenannte ist kein Zierat: Ohne es hätte, wer im Browser arbeitet, keine Möglichkeit, einem unerklärlich unangewandten Befehl auf den Grund zu gehen. Der ausgegebene Text ist derselbe, den der Parser bekommt; er lässt sich sichern, von Hand -berichtigen und als Klartextdatei wieder einreichen. +berichtigen und als Klartextdatei wieder einreichen. Ebensowenig Zierat ist die +Ausgabe der fortgeschriebenen Fassung: Ohne sie bliebe die Kette nach § 6a +Absatz 2 der Befehlszeile vorbehalten. -(3) Von diesen Angaben stehen die drei selten auszufüllenden — „Anzuwendender -Artikel“, „Stichtag“ und die Textausgabe — hinter der zugeklappten Aufschrift +(3) Von diesen Angaben stehen die selten auszufüllenden — „Anzuwendender +Artikel“, „Stichtag“, die Nachfassung, die Textausgabe und die Ausgabe der +fortgeschriebenen Fassung — hinter der zugeklappten Aufschrift „Weitere Angaben“; die beiden Dateifelder und das Ankreuzfeld für die unveränderten Vorschriften bleiben offen im Vordruck. Dieses Ankreuzfeld ist abweichend von der Befehlszeile vorangekreuzt: Wer eine Synopse ansieht, will in @@ -738,10 +811,21 @@ deshalb entbehrlich. (2) Die Prüfung umfasst neben den Einzelprüfungen Akzeptanzprüfungen, die vollständige Änderungshefte auf die zugehörige Stammfassung anwenden und das -Ergebnis gegen die amtliche Nachfassung stellen. Die hierfür verwendeten +Ergebnis gegen die amtliche Nachfassung stellen — mit demselben Abgleich, den +`--nachfassung` fährt (§ 6b Absatz 4). Die hierfür verwendeten Beispieldaten nebst Herkunftsnachweis (`SOURCES`) liegen unter `src/test/resources/sampledata/`. +(3) Der Textausgeber (§ 6a) wird nicht am Augenschein geprüft, sondern am +**Rundlauf**: Was er schreibt, muss der Lader wieder zu demselben Gesetz lesen. +Geprüft wird das an sämtlichen Klartext-Stammfassungen des Beispielkorpus und +überdies am Bundesrecht, dessen Ausgangsformat das gii-XML ist. Der Rundlauf ist +kein Selbstzweck: Er deckt gerade die Verluste auf, die ein Ausgeber sonst +stillschweigend einbaut, und hat auf Anhieb zwei Lücken des Lesers zutage +gefördert — die unvollständige Nachfolgerliste der Unter-Überschriften und die +aufgehobene Sammelnorm des Bundesrechts („§§ 17 u. 18 (weggefallen)“), deren +Kopfzeile zuvor in den Wortlaut der Vornorm gefallen wäre. + ## Lizenz Der Quelltext steht unter der GNU Affero General Public License, Version 3 oder -- cgit v1.2.1