From dccd155b31b87b25f4573388c76b71f77f20904d Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Tue, 25 Aug 2026 23:05:22 +0200 Subject: =?UTF-8?q?Die=20Randziffer=20z=C3=A4hlt=20die=20Gegen=C3=BCberste?= =?UTF-8?q?llung,=20nicht=20den=20Abgleich?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Abgleich mit der amtlichen Nachfassung verwendete für seine abweichenden Normen dieselbe Auszeichnung wie die Gegenüberstellung und erbte damit deren fortlaufende Randziffer. Sie behauptete dort eine Ordnung, die es nicht gibt: Jede abweichende Norm steht für sich. Die Auszeichnung wird geschieden. Ferner werden das Verzeichnis der Fassungen und das Verzeichnis der Landesrecht-Beispiele fortgeschrieben. In letzterem entfällt der Punkt „Noch offen“ zu den Anlagen-Nummern im gii-XML — die Frage war falsch gestellt. Geprüft: 388 Tests, reuse lint 190/190. Die Browserfassung ist gebaut und örtlich durchgespielt: Berlin gibt „171 von 171 Normen gleich“ nebst beiden Verweisen aus, Baden-Württemberg „91 von 93“ mit den zwei benannten Abweichungen, deren Wortunterschied die Synopse zeigt. Change-Id: I9e6af0b398ffedc7c0691c7947960a78bf99f137 --- FASSUNGEN.txt | 136 ++++++++++++++++++++- .../eu/mulk/aendggner/synopse/HtmlRenderer.java | 7 +- .../sampledata/Landesrecht-Beispiele.adoc | 23 +++- 3 files changed, 158 insertions(+), 8 deletions(-) diff --git a/FASSUNGEN.txt b/FASSUNGEN.txt index ea23530..376dd30 100644 --- a/FASSUNGEN.txt +++ b/FASSUNGEN.txt @@ -33,6 +33,16 @@ Wesentliche. Zugleich war das Ankreuzfeld für die unveränderten Vorschriften leer, obgleich die vollständige Synopse dem entspricht, was erwartet, wer ein Gesetz in seiner neuen Fassung ansehen will. +Am selben Tage sind zwei Leistungen hinzugetreten, die das Erzeugnis längst +erbringen konnte, aber nicht herausgab, und fünf namentlich festgehaltene Lücken +der Befehlsabdeckung geschlossen worden. Die erste Leistung ist die +fortgeschriebene Fassung selbst: Sie stand als vollständiges Gesetz im +Arbeitsspeicher, verließ das Erzeugnis aber nur als halbe Spalte einer Synopse. +Die zweite ist der Prüfmaßstab: Ob ein Lauf gelungen ist, entscheidet nicht die +Zahl der angewandten Befehle, sondern der Wortlaut hinterher — und dieser Maßstab +stand allein im Testcode, sodass jedes neue Land ihn ein zweites Mal aufschreiben +musste. + Artikel 1 Ausklappbarer Abschnitt „Weitere Angaben“ @@ -76,11 +86,135 @@ Fortschreibung des Handbuchs werden fortlaufend weitergezählt; der Verweis in § 4 Absatz 3 wird angepasst. +Artikel 4 +Ausgabe der fortgeschriebenen Fassung + +(1) Der Textausgeber (LandesRechtTextAusgeber) kehrt den Klartextleser um: Aus + einem Gesetz wird der kanonische Klartext nach § 5 Absatz 2 des Handbuchs. + Ausgegeben wird allein, was das Datenmodell trägt; erfunden wird nichts. Die + Abkürzungszeile tritt nur auf, wenn die Quelle eine geführt hat. + +(2) Zwei Grenzen des Formats sind im Quelltext benannt: Der Normkopf einer Anlage + nimmt keinen Titel auf, und eine Gliederungseinheit hinter der letzten Norm + des Textteils hat keinen anderen Ort als eben diesen. + +(3) Der Schalter „--neufassung “ schreibt die Fassung neben der Synopse + fort; „-“ bezeichnet die Standardausgabe. Damit steht die Kette: Die Ausgabe + des ersten Laufes ist das Stammgesetz des zweiten. + +(4) Der Beleg ist der Rundlauf und nicht der Augenschein. Er wird an sämtlichen + dreiundzwanzig Klartext-Stammfassungen des Beispielkorpus geführt und + überdies am Bundesrecht, dessen Ausgangsformat das gii-XML ist. + + +Artikel 5 +Abgleich mit der amtlichen Nachfassung + +(1) Der Nachfassungsabgleich (Nachfassungsabgleich) stellt die errechnete Fassung + normweise gegen die amtliche und weist die fehlenden, die überzähligen und die + abweichenden Normen aus. Verglichen wird nach Normalisierung des Leerraums; + die Überschrift zählt zum Wortlaut, denn auf sie zielen eigene Befehle. + +(2) Der Schalter „--nachfassung “ nimmt dieselben Eingaben an wie das + Stammgesetz. Der Bericht tritt als Abschnitt „Abgleich mit der amtlichen + Nachfassung“ in die Synopse; die Abweichung wird dort wortweise gezeigt, links + die amtliche, rechts die errechnete Fassung. Geht der Abgleich nicht auf, so + endet der Lauf mit dem Rückgabewert 3. + +(3) Die Akzeptanzprüfungen fahren fortan denselben Abgleich; vier + handgeschriebene Vergleichsschleifen weichen ihm. Werkzeug und Prüfung messen + damit an einem Maßstab. + +(4) An die Stelle der Überladungsleiter der Pipeline tritt ein Auftrags-Record. + + +Artikel 6 +Fortschreibung des Klartextlesers + +(1) Der Rundlauf nach Artikel 4 Absatz 4 hat zwei Mängel des Lesers zutage + gefördert. Eine nummerierte Zeile gilt als Unter-Überschrift, wenn ihr eine + weitere Überschrift folgt; als solche zählten bislang nur drei der fünf + Formen. Die arabische und die ordinalwörtliche Form treten hinzu. + +(2) 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. + + +Artikel 7 +Die Überschrift einer Aufzählungseinheit + +(1) Der Überschrift-Zweig des Anwenders verzweigte bei jeder Stelle, die eine + Überschrift nennt, unbedingt auf den Titel der Norm und verwarf dabei jede + feinere Komponente schweigend. Welche Überschrift gemeint ist, entscheidet + fortan die Auflösung der Stelle ohne die Überschrift-Komponente: Löst sie auf + eine ganze Norm auf, so ist deren Titel gemeint; löst sie auf einen + Textbereich auf, so ist dessen Kopfzeile gemeint. + +(2) Ein Block aus einer einzigen Zeile hat keine Überschrift, sondern nur Text; + dort wird gerügt statt angewandt. + +(3) Die Neufassung einer solchen Kopfzeile bleibt eine bewusst gezogene Grenze + und wird nunmehr als solche gerügt: Die Kopfzeile trägt zugleich die + Aufzählungsmarke, die eine Neufassung nicht mitliefert. + + +Artikel 8 +Skopus einer Wortoperation im Verbund + +(1) Bleibt die Begleitklausel eines Verbunds bei norm-weiter Auflösung + mehrdeutig, so entscheidet die soeben umnummerierte Einheit. Der Vorrang + bleibt bei der weiten Suche; findet sie gar keine Fundstelle, so meint der + Befehl etwas anderes und bleibt liegen. + +(2) Die Regel gehört zur Anwendung und nicht zur Erkennung: Ob ein Anker + mehrdeutig ist, steht erst nach den vorangegangenen Punkten fest. Der Schritt + trägt darum eine Rückfallstelle, die das Auffalten des Verbunds mitgibt — + vorwärts und nur innerhalb desselben Verbunds. + + +Artikel 9 +Landesrechtliche Befehlsformen aus Rheinland-Pfalz + +(1) „Strichpunkt“ gilt als Nebenform des Semikolons, als Subjekt wie als Ziel. + +(2) Der Halbsatz wird eine eigene Ebene der Anfügung. Er beginnt keinen neuen + Satz, sondern setzt den bestehenden fort; angefügt wird er nur, wenn der + Zieltext auf einen Strichpunkt endet. Als Ziel einer Struktur-Einfügung oder + -Ersetzung bleibt er ausgeschlossen. + +(3) Der bezugspunktlose Chapeau-Lokator („In der Einleitung“, „Im Eingangssatz“) + tritt als zweite Alternative zum vorhandenen Muster. + +(4) Die Verweisung auf einen anderen Punkt desselben Artikels + (VerweisenderBefehl) wird gelesen und ausdrücklich als Grenze gerügt. Der + Rest wandert damit von „Befehl nicht erkannt“ zu „Nicht unterstützt“. + + +Artikel 10 +Fortschreibung der Browserfassung und des Handbuchs + +(1) Der Vordruck erhält das Dateifeld „Amtliche Nachfassung“ und das Ankreuzfeld + „Auch die fortgeschriebene Fassung als Klartext ausgeben“, beide hinter der + Klappe nach Artikel 1. + +(2) Das Handbuch erhält die §§ 6a und 6b; § 7 nimmt die Nummern 13, 14 und 17 + auf, § 8 einen Absatz über den Skopus im Verbund, § 17 einen Absatz über den + Rundlauf. + + Die Prüfung geht auf: Am UWG mit dem Dritten Gesetz zu seiner Änderung ergeben sich vorangekreuzt 19 Befehle, nichts manuell zu prüfen und 31 Normen in der Synopse, ohne Ankreuzung dieselben 19 Befehle und 6 geänderte Normen; der Abschnitt „Weitere Angaben“ steht beim Laden zu, klappt auf Druckanforderung auf -und danach wieder zu. +und danach wieder zu. Sämtliche 388 Prüfungen (zuvor 350) laufen durch, „reuse +lint“ weist 190 von 190 Dateien als vollständig ausgezeichnet aus. Der Artikel 1 +der GEG-Novelle ist nunmehr vollständig angewandt (119 von 119 Befehlen, zuvor +117); Berlin gibt am Abgleich 171 von 171 Normen gleich aus, Baden-Württemberg +91 von 93 mit den beiden benannten Abweichungen; sämtliche 23 Befehle des +rheinland-pfälzischen Heftes sind erschlossen. Die Browserfassung ist mit +demselben Ergebnis durchgespielt worden. ════════════════════════════════════════════════════════════════════════════════ diff --git a/src/main/java/eu/mulk/aendggner/synopse/HtmlRenderer.java b/src/main/java/eu/mulk/aendggner/synopse/HtmlRenderer.java index 07449b8..90326fb 100644 --- a/src/main/java/eu/mulk/aendggner/synopse/HtmlRenderer.java +++ b/src/main/java/eu/mulk/aendggner/synopse/HtmlRenderer.java @@ -261,7 +261,7 @@ public final class HtmlRenderer { .append("
Errechnete Fassung
\n"); for (var abweichung : abgleich.abweichungen()) { var spalten = WortDiff.vergleiche(abweichung.soll(), abweichung.ist()); - sb.append("
\n

") + sb.append("
\n

") .append(esc(abweichung.enbez())) .append("

\n
\n
") .append(spalten.altHtml()) @@ -515,6 +515,11 @@ public final class HtmlRenderer { padding-bottom: 0.9rem; border-bottom: 1px solid var(--linie); } + /* Die Randziffer zählt die Normen der Gegenüberstellung. Im Abgleich zählt sie nichts — + dort steht jede Norm für sich, und eine fortlaufende Nummer behauptete eine Ordnung, die + es nicht gibt. */ + section.norm.abweichung { counter-increment: none; } + section.norm.abweichung::before { content: none; } section.norm::before { content: counter(norm); position: absolute; diff --git a/src/test/resources/sampledata/Landesrecht-Beispiele.adoc b/src/test/resources/sampledata/Landesrecht-Beispiele.adoc index b018d67..0bd4b9d 100644 --- a/src/test/resources/sampledata/Landesrecht-Beispiele.adoc +++ b/src/test/resources/sampledata/Landesrecht-Beispiele.adoc @@ -274,11 +274,6 @@ Klartext-Zweig des Loaders normalisiert zur Sicherheit mit. == Noch offen -* *Anlagen-Nummern im gii-XML* — im Klartext des Landesrechts sind die Nummern einer Anlage - seit dieser Welle eigene Normen („Anlage Nummer 23“). Im gii-XML des Bundes stehen sie - dagegen als Aufzählungsmarken im Wortlaut der Anlage; dort bleibt es beim Markensuchen, und - ein Befehl auf „die Überschrift der Nummer 1 der Anlage 8“ (GEG, Artikel 1 Nr. 43 b) aa)) - findet seine Stelle nicht. Ob die Anlagen des Bundes ebenso zu zerlegen sind, ist offen. * *Vorfassungen bei knapp gehaltenen juris-Portalen* — Rheinland-Pfalz, Saarland und Sachsen-Anhalt führen nur die aktuelle Gesamtausgabe nebst einer Aufzählung der Änderungen; die Schaltfläche „Gesamtausgaben-Liste", über die Hessen, Schleswig-Holstein, Berlin und @@ -290,9 +285,25 @@ Klartext-Zweig des Loaders normalisiert zur Sicherheit mit. == Wo weitermachen Kein Land scheitert noch an reiner Extraktionsschwäche, und jedes Land mit einem Änderungs- -dokument trägt nunmehr einen Belegfall bis zur Anwendung. Nach absteigendem Nutzen: +dokument trägt nunmehr einen Belegfall bis zur Anwendung. Seit Welle 23 ist überdies der +Prüfmaßstab selbst eine Leistung des Erzeugnisses: `--nachfassung` stellt das Ergebnis normweise +gegen die amtliche Fassung, und `--neufassung` gibt die errechnete Fassung als kanonischen +Klartext aus. Ein weiteres Land kostet damit Stammfassung, Heft und Nachfassung — keinen eigenen +Prüfcode mehr. Nach absteigendem Nutzen: . *Weitere Länder erfassen* — Bremen, Hamburg, Mecklenburg-Vorpommern, Saarland, Sachsen-Anhalt. + Für Hamburg (`landesrecht-hamburg.de`) und Mecklenburg-Vorpommern (`landesrecht-mv.de`) ist + zuerst zu prüfen, ob die Portale einer Skriptabfrage antworten; sonst gilt der Browserweg. + +*Erledigt in Welle 23:* Die Frage nach den _Anlagen-Nummern im gii-XML_ war falsch gestellt. Eine +Zerlegung braucht es nicht — der `StellenAufloeser` probiert längst beide Wege. Der Fehler saß im +Überschrift-Zweig des Anwenders, der jede feinere Komponente schweigend verwarf und stets auf den +Normtitel griff; die Überschrift einer Anlagen-Nummer ist im gii-XML die Kopfzeile ihres +Aufzählungsblocks. Ebenso erledigt sind die drei rheinland-pfälzischen Idiome (Strichpunkt samt +Halbsatz-Anfügung, „In der Einleitung“, Verweisung auf einen anderen Punkt — die letzte wird +gelesen und ausdrücklich als Grenze gerügt) und der Skopus einer Wortoperation im Verbund: Die +norm-weite Auflösung behält den Vorrang, bei Mehrdeutigkeit entscheidet die soeben umnummerierte +Einheit. Der Artikel 1 der GEG-Novelle ist damit vollständig angewandt (119/119). *Erledigt:* _Brandenburg_ ist umgesetzt (Fraktionsgesetz, 4/4 Befehle, alle 24 Normen gleich der amtlichen Nachfassung). Der Fall hat gezeigt, dass nicht jedes Landesportal eine juris-Einseiten- -- cgit v1.2.1