| Matthias Andreas Benkard | 73c5dba | 2026-07-13 21:42:38 +0200 | [diff] [blame] | 1 | ╔══════════════════════════════════════════════════════════════════════════════╗ |
| 2 | ║ ║ |
| 3 | ║ V E R Z E I C H N I S D E R F A S S U N G E N ║ |
| 4 | ║ des Softwareerzeugnisses „ÄndGgner“ ║ |
| 5 | ║ (Werkzeug zur Erstellung von Synopsen für Änderungsgesetze) ║ |
| 6 | ║ ║ |
| 7 | ╚══════════════════════════════════════════════════════════════════════════════╝ |
| 8 | |
| 9 | Vorbemerkung zur Führung dieses Verzeichnisses |
| 10 | ────────────────────────────────────────────── |
| 11 | (1) Dieses Verzeichnis dokumentiert nach Maßgabe der nachstehenden Bestimmungen |
| 12 | den jeweiligen Stand des Quelltextes des vorbezeichneten Erzeugnisses. |
| 13 | (2) Für jeden Kalendertag, an dem Änderungen am Quelltext vorgenommen werden, ist |
| 14 | ein gesonderter Abschnitt nach dem Muster der nachfolgenden Fassungen anzu- |
| 15 | legen; die Abschnitte sind in absteigender zeitlicher Reihenfolge (jüngste |
| 16 | Fassung zuerst) zu führen. |
| 17 | (3) Die Änderungen sind in sachlich gegliederter Form, unter fortlaufender |
| 18 | Nummerierung und unter Angabe der betroffenen Bestandteile (Klassen, Dateien) |
| 19 | zu bezeichnen. Maßgeblich ist die im Handbuch der Rechtsförmlichkeit nieder- |
| 20 | gelegte Ausdrucksweise entsprechend. |
| 21 | |
| 22 | |
| 23 | ════════════════════════════════════════════════════════════════════════════════ |
| Matthias Andreas Benkard | 6311227 | 2026-07-17 05:10:53 +0200 | [diff] [blame] | 24 | Fassung vom 17. Juli 2026, |
| 25 | zuletzt geändert durch die am 17. Juli 2026 vorgenommenen Änderungen |
| 26 | ════════════════════════════════════════════════════════════════════════════════ |
| 27 | |
| Matthias Andreas Benkard | 99511a9 | 2026-07-17 07:16:51 +0200 | [diff] [blame] | 28 | Auf Grund eines gemeldeten Wiedergabefehlers wird der Textbereiniger um eine |
| 29 | geometrische Zeilenend-Klassifikation auf Basis von PDFBox-Koordinaten ergänzt; |
| 30 | ferner wird die Strukturierung hängend eingerückter Definitionslisten (z.B. im |
| 31 | UWG-Anhang) sowohl im PDF-Extraktor als auch im XML-Flattener vereinheitlicht. |
| Matthias Andreas Benkard | 6311227 | 2026-07-17 05:10:53 +0200 | [diff] [blame] | 32 | |
| Matthias Andreas Benkard | 65eff08 | 2026-07-18 12:24:32 +0200 | [diff] [blame^] | 33 | Sodann wird das Erzeugnis in einer fünften Ertüchtigungswelle für das Landes- |
| 34 | recht des Freistaates Bayern ertüchtigt (Artikel 4 bis 10): Stammgesetze in |
| 35 | Artikel-Gliederung aus der konsolidierten Fassung von gesetze-bayern.de, |
| 36 | paragraphengegliederte Änderungsgesetze aus dem Bayerischen Gesetz- und |
| 37 | Verordnungsblatt und aus Landtags-Drucksachen, amtliche Satznummern als |
| 38 | Superskripte sowie die bayerischen Befehlsformen. Belegfall ist das Gesetz zur |
| 39 | Änderung des Bayerischen Jagdgesetzes und weiterer Rechtsvorschriften vom |
| 40 | 26. März 2026 (GVBl. S. 113) nebst Regierungsentwurf (Ltg-Drs. 19/9707). |
| 41 | |
| Matthias Andreas Benkard | 6311227 | 2026-07-17 05:10:53 +0200 | [diff] [blame] | 42 | |
| 43 | Artikel 1 |
| Matthias Andreas Benkard | f20828f | 2026-07-18 08:57:22 +0200 | [diff] [blame] | 44 | Geometrische Klassifikation der Zeilenenden nach Ausrichtungs-Clustern |
| Matthias Andreas Benkard | 6311227 | 2026-07-17 05:10:53 +0200 | [diff] [blame] | 45 | |
| 46 | Der Textbereiniger (TextBereiniger.verbindeUmbrueche) zog eine Zeile, die ohne |
| 47 | Leerraum am Ende mit einem Buchstaben schließt und deren Folgezeile klein |
| 48 | beginnt, bislang stets ohne Trennzeichen mit der Folgezeile zusammen, in der |
| 49 | Annahme, es handle sich um eine bei der PDF-Extraktion um den Bindestrich |
| 50 | gebrachte Silbentrennung. Diese Annahme trifft auf einen bewussten Wortgrenzen- |
| 51 | Umbruch (etwa das Stichwort einer hängend eingerückten Definition, wie er im |
| Matthias Andreas Benkard | 99511a9 | 2026-07-17 07:16:51 +0200 | [diff] [blame] | 52 | Anhang zum UWG vorkommt) nicht zu. Zur Behebung bestimmt der PDF-Vorverarbeiter |
| Matthias Andreas Benkard | f20828f | 2026-07-18 08:57:22 +0200 | [diff] [blame] | 53 | (FontgroessenFilter) das geometrische End-X jeder Zeile (unter Flush auch am |
| 54 | Seitenende, damit die letzte Zeile einer Seite nicht die erste der Folgeseite |
| 55 | verfälscht) und klassifiziert die Zeilenenden anhand von Ausrichtungs-Clustern |
| 56 | in einem Fenster von 20 Zeilen davor/danach: Ein Zeilenende ist weich, wenn |
| 57 | mindestens fünf Fensterzeilen (auf vier Punkt genau) gleich ausgerichtet enden |
| 58 | (Satzspiegelrand des Blocksatzes), und hart, wenn ein solcher Rand mindestens |
| 59 | zehn Punkt oberhalb des Zeilenendes verläuft — dort wäre noch Platz gewesen, |
| 60 | der Umbruch ist mithin gewollt. Cluster statt eines Fenster-Perzentils, weil am |
| 61 | Spaltenwechsel des zweispaltigen alten Bundesgesetzblatts beide Spaltenränder |
| 62 | in ein Fenster fallen; maßgeblich ist der Rand, an dem die Zeile selbst |
| 63 | ausgerichtet ist. Der Textbereiniger zieht markerlose Umbrüche nur noch bei |
| 64 | weichen Zeilenenden zusammen (in Ermangelung von Geometriedaten näherungsweise |
| 65 | nach Zeichenzahl wie bisher), nie jedoch vor einer Folgezeile, die mit einem |
| 66 | Aufzählungsmarker („d)“, „3.“) beginnt. |
| Matthias Andreas Benkard | 6311227 | 2026-07-17 05:10:53 +0200 | [diff] [blame] | 67 | |
| 68 | |
| 69 | Artikel 2 |
| Matthias Andreas Benkard | f20828f | 2026-07-18 08:57:22 +0200 | [diff] [blame] | 70 | Zusammenzug weicher und Erhaltung harter Umbrüche |
| 71 | |
| 72 | Nach den Einzelzusammenzügen fügt der Textbereiniger geometrisch weiche |
| 73 | Zeilenenden mit einem Leerzeichen zu Fließtext zusammen (Reflow); harte und |
| 74 | unklassifizierte Umbrüche bleiben erhalten. Nach der Bereinigung ist damit |
| 75 | jeder verbleibende Zeilenumbruch nach bester Einschätzung beabsichtigt, weshalb |
| 76 | die Zitat-Normalisierung des Befehlsanwenders (normalisiereZitatText) Umbrüche |
| 77 | nicht mehr zu Leerzeichen faltet. Ausgenommen vom Reflow sind Strukturzeilen |
| 78 | („Artikel 2“, „§ 19“, allein stehende Gliederungs-Bezeichnungen): Gleich |
| 79 | breite, zentrierte Überschriften in Serie bilden ein Schein-Cluster, der Parser |
| 80 | benötigt sie jedoch allein auf der Zeile. |
| 81 | |
| 82 | |
| 83 | Artikel 3 |
| Matthias Andreas Benkard | 99511a9 | 2026-07-17 07:16:51 +0200 | [diff] [blame] | 84 | Strukturierung und Normalisierung hängend eingerückter Definitionslisten |
| Matthias Andreas Benkard | 6311227 | 2026-07-17 05:10:53 +0200 | [diff] [blame] | 85 | |
| Matthias Andreas Benkard | 99511a9 | 2026-07-17 07:16:51 +0200 | [diff] [blame] | 86 | Damit die nunmehr erhaltenen hängenden Zeilenenden in Definitionslisten (wie |
| Matthias Andreas Benkard | f20828f | 2026-07-18 08:57:22 +0200 | [diff] [blame] | 87 | beim UWG-Anhang oder in § 2 IfSG) korrekt strukturiert werden: |
| 88 | 1. Der XML-Flattener (ContentFlattener) trennt mehrere <LA>-Geschwister innerhalb |
| 89 | eines <DD>-Elements durch Zeilenumbrüche und rückt die Folgezeilen tiefer ein |
| 90 | als die Aufzählungszeile (Kindzeilen der Einheit für die Stellenauflösung). |
| 91 | 2. Der Befehlsanwender rückt beim Einsetzen von Zitattext (rueckeZitatEin) |
| 92 | Fortsetzungszeilen zwei Zeichen tiefer ein als die Aufzählungszeile. |
| 93 | Beide Wege erzeugen dieselbe kanonische Zeilenform („ 2a. Stichwort“ nebst |
| 94 | „ Definitionstext“), welche für die korrekte Erkennung von Kindzeilen durch |
| 95 | die Stellenauflösung (StellenAufloeser.zeilenBlock) erforderlich ist. |
| Matthias Andreas Benkard | 6311227 | 2026-07-17 05:10:53 +0200 | [diff] [blame] | 96 | |
| 97 | |
| Matthias Andreas Benkard | 65eff08 | 2026-07-18 12:24:32 +0200 | [diff] [blame^] | 98 | Artikel 4 |
| 99 | Verallgemeinerung der Normbezeichnung auf das Artikel-Sigel |
| 100 | |
| 101 | Die Stellenkomponente des Paragraphen (Stelle.Paragraph) führt neben der Nummer |
| 102 | nunmehr das Sigel („§“ oder „Art.“) und bildet daraus die Einzelnormbezeichnung |
| 103 | (enbez). Der Stellenparser (StellenParser) nimmt „Art.“ als Normbezeichnung |
| 104 | sowie durchgehend die abgekürzten und deklinierten Einheitenwörter an („Abs.“, |
| 105 | „Nr.“, „Nrn.“, „Buchst.“, „Sätzen“, „Absätzen“); ferner wird die Komponente des |
| 106 | Halbsatzes eingeführt (Auflösung durch Teilung des Satzes am Semikolon) und |
| 107 | werden koordinierte Stellen mit nachgestellten Komponenten („Art. 18 Satz 2, |
| 108 | Art. 19 und 20 Satz 1“) entfaltet. Befehlserkenner und Befehlsanwender bilden |
| 109 | sämtliche bisher auf das „§“-Zeichen festgelegten Muster auf beide Sigel ab; |
| 110 | das Verhalten gegenüber Bundesrecht bleibt unverändert. |
| 111 | |
| 112 | |
| 113 | Artikel 5 |
| 114 | Amtliche Satznummern als Superskripte |
| 115 | |
| 116 | Bayerische Normtexte führen amtliche Satznummern als hochgestellte Ziffern. |
| 117 | Der PDF-Vorverarbeiter (FontgroessenFilter) erhält einen Superskript-Modus: |
| 118 | Ziffernfolgen, die kleiner gesetzt und gegenüber der Grundlinie ihres Laufs um |
| 119 | zwei bis sechs Punkt gehoben sind, werden als Unicode-Superskripte (¹ ² ³) |
| 120 | übernommen statt verworfen — im selben Lauf klebende Satznummern und Fußnoten- |
| 121 | marker („Enteignung⁶)“) eingeschlossen. Der Satzteiler (SatzTeiler) teilt |
| 122 | nummerierte Texte exakt an den Satznummern und stellt die Nummer eines Satzes |
| 123 | bereit; die Stellenauflösung löst Satzangaben in nummerierten Texten nach dem |
| 124 | amtlichen Label statt nach der Position auf. Die Satz-Umnummerierung schreibt |
| 125 | die Satznummer im Text um („Satz 5 wird Satz 4“ → „⁵“ wird „⁴“). Für Bundes- |
| 126 | recht (Modus „Entfernen“) bleibt das Verhalten unverändert. |
| 127 | |
| 128 | |
| 129 | Artikel 6 |
| 130 | Kolumnentitel des GVBl und des Bayerischen Landtags; geschützte Leerzeichen |
| 131 | |
| 132 | Der Textbereiniger entfernt die Kolumnentitel des Bayerischen Gesetz- und |
| 133 | Verordnungsblatts (mit links- oder rechtsstehender, auch an die Jahreszahl |
| 134 | geklebter Seitenzahl: „… Nr. 6/202676“) sowie die Titel- und Seitenköpfe der |
| 135 | Landtags-Drucksachen; eine am Seitenwechsel unterbrochene Silbentrennung heilt |
| 136 | nach der Kopfentfernung („kurz-“ + „fristige“). Geschützte Leerzeichen des |
| 137 | GVBl-Satzes („§ 1“, „Abs. 2“) werden früh auf gewöhnliche Leerzeichen |
| 138 | normalisiert, da sie für die Muster des Parsers unsichtbar sind. Die Struktur- |
| 139 | zeilen-Ausnahme des Reflows erfasst nunmehr auch „Art. N“. |
| 140 | |
| 141 | |
| 142 | Artikel 7 |
| 143 | Paragraphengegliederte Änderungsgesetze; Rahmenbefehl im Vorspann; |
| 144 | Fortführungszeichen |
| 145 | |
| 146 | Bayerische Änderungsgesetze gliedern sich in Paragraphen. Der Parser |
| 147 | (AenderungsgesetzParser) teilt ein Dokument ohne Artikel-Überschriften an |
| 148 | freistehenden „§ N“-Zeilen; die Auswahl über den Einleitungssatz (betrifft) |
| 149 | bleibt maßgeblich und wählt auch die „Weitere Änderung“ desselben Stamm- |
| 150 | gesetzes. Nennungen des Stammgesetzes als Genitiv-Attribut eines Ausführungs- |
| 151 | oder Durchführungstitels („Verordnung zur Ausführung des Bayerischen Jagd- |
| 152 | gesetzes“) zählen nicht als Treffer. Trägt der Vorspann nach der gesetzesweiten |
| 153 | Änderungsformel einen Rahmenbefehl („… wird wie folgt geändert: Art. 28 Abs. 1 |
| 154 | wird wie folgt geändert:“) oder das Ziel eingebettet in der Formel selbst |
| 155 | („Art. 7 Abs. 2 des X-Gesetzes … wird wie folgt geändert:“), so wird dieses |
| 156 | Ziel Kontext aller Gliederungspunkte. Der Zitatextraktor behandelt das |
| 157 | Fortführungszeichen des GVBl (jedes neugefasste Aufzählungsglied öffnet am |
| 158 | Zeilenanfang erneut mit „, geschlossen wird einmal am Blockende) als |
| 159 | Typografie statt als geschachteltes Zitat; der Begründungs-Abschneider nimmt |
| 160 | auch „Begründung:“ an. Ein GVBl-Heft, das zugleich ein artikelgegliedertes |
| 161 | Änderungsgesetz enthielte, unterdrückte die Paragraphen-Teilung — Ausweg ist |
| 162 | die Handkorrektur über --extract-only. |
| 163 | |
| 164 | |
| 165 | Artikel 8 |
| 166 | Stammgesetz-Lader für das bayerische Landesrecht |
| 167 | |
| 168 | Das neue Paket gesetz/bayern liest ein Stammgesetz aus der konsolidierten |
| 169 | Fassung von gesetze-bayern.de — als PDF (über den Superskript-erhaltenden |
| 170 | Extraktionsweg) oder als kanonischen Klartext im Format der --extract-only- |
| 171 | Ausgabe (BayRechtLoader, BayRechtTextParser). Erfasst werden Titelblock, |
| 172 | Gliederungs-Überschriften samt nummerierten Unter-Überschriften (synthetische |
| 173 | Kennzahlen), Normköpfe „Art. N“ (Querverweise am Zeilenanfang werden über eine |
| 174 | Negativliste und die Monotonie der Artikelnummern ausgeschlossen; vom Reflow an |
| 175 | ein Satzende geklebte Normköpfe werden am doppelten Leerzeichen erkannt und |
| 176 | wieder abgetrennt), aufgehobene Artikel sowie Fußnotenzeilen („⁶) [Amtl. |
| 177 | Anm.:] …“), die superskript-normalisiert im tragenden Absatz verbleiben. Die |
| 178 | Befehlszeile (AendGgner) wählt den Lader nach dem Dateityp des Stammgesetzes |
| 179 | (XML → gii, PDF/Klartext → Bayern) und extrahiert Änderungsgesetze dann im |
| 180 | Superskript-Modus. |
| 181 | |
| 182 | |
| 183 | Artikel 9 |
| 184 | Bayerische Befehlsformen |
| 185 | |
| 186 | Der Befehlserkenner und der Befehlsanwender werden ergänzt um: die Aufhebung |
| 187 | von Fußnoten („Fußnote 1 wird aufgehoben“, auch mehrere — entfernt Fußnoten- |
| 188 | zeile und Inline-Marker der Kontextnorm), die Streichung der Satznummerierung |
| 189 | („In Satz 1 wird die Satznummerierung „1“ gestrichen“), die Wortlaut-Formen |
| 190 | („Der Wortlaut wird Satz 1“, „Der bisherige Wortlaut wird Abs. 5“ — erhält nur |
| 191 | der einzige unnummerierte Absatz die Nummer —, „Dem Wortlaut werden die |
| 192 | folgenden Abs. 1 bis 4 vorangestellt“ nebst lokativer Folgeklausel auf den |
| 193 | nummerierten Absatz), stellenlose und koordinierte Streichungen („Die Angabe |
| 194 | „X“ wird gestrichen“, „werden die Angabe „X“ und die Angabe „Y“ gestrichen“), |
| 195 | Ersetzungspaare mit „sowie“ und Einfügepaare mit Komma-Reihung, Bereichs- und |
| 196 | Koordinations-Umnummerierungen in abgekürzter Form („Die bisherigen Abs. 1 |
| 197 | bis 3 werden die Abs. 2 bis 4“) sowie Klauselketten mit gemeinsamem Schluss- |
| 198 | verb („… wird durch … und … wird durch … ersetzt“). Die Absatz-Umnummerierung |
| 199 | greift nur noch, wenn der Absatz selbst das Ziel ist (bei „Satz 5 wird Satz 4“ |
| 200 | stammt die Absatzangabe aus dem Kontextrahmen und der Satz-Zweig ist |
| 201 | zuständig). |
| 202 | |
| 203 | |
| 204 | Artikel 10 |
| 205 | Feinbehandlung von Satzgrenzen, Fußnoten und mehrschrittigen Aufhebungen bei |
| 206 | der Anwendung |
| 207 | |
| 208 | Aus der vollständigen Anwendung der bayerischen Belegnovelle auf die (nach |
| 209 | Artikel 8 wiederhergestellte) alte Jagdgesetz-Fassung ergeben sich folgende |
| 210 | Verfeinerungen des Satzteilers, des Befehlserkenners und des Befehlsanwenders: |
| 211 | |
| 212 | 1. Der Satzteiler (SatzTeiler) bestimmt die Satzgrenzen fortan als Textanfang |
| 213 | zuzüglich der Fundstelle jeder amtlichen Satznummer ab „²“. Eine allein |
| 214 | stehende Nummer ≥ 2 — sei es, weil der erste Satz keine Nummer trägt, sei es, |
| 215 | weil seine Nummer zuvor gestrichen wurde („Verboten ist … ²Art. 33 …“) — |
| 216 | bildet damit eine eigene Grenze. Als Satzanfang gilt eine Satznummer auch vor |
| 217 | einem Paragraphzeichen („³§ 23 …“). |
| 218 | |
| 219 | 2. Fußnoten-Definitionszeilen („⁶) [Amtl. Anm.:] …“) sind für die wortweisen |
| 220 | Operationen (Streichen, Ersetzen, Einfügen) kein Inhalt: Sie werden vor der |
| 221 | Operation abgetrennt und danach unverändert wieder angefügt, sodass die |
| 222 | Streichung eines Fußnotenmarkers („die Angabe „¹)“ wird gestrichen“) den in |
| 223 | den Text eingebetteten Marker trifft, nicht aber den gleichlautenden Kopf der |
| 224 | Definitionszeile (deren Beseitigung der Fußnoten-Aufhebung vorbehalten bleibt). |
| 225 | |
| 226 | 3. Die Aufhebung eines durch seine Bezeichnung benannten Absatzes markiert |
| 227 | diesen — unter Beibehaltung seiner Nummer — als weggefallen. Eine nachfolgende |
| 228 | Absatz-Umnummerierung auf eine Zielnummer, die bereits von einem leeren Platz- |
| 229 | halter (weggefallen oder gegenstandslos) belegt ist, überschreibt diesen |
| 230 | (in Entsprechung zur Umnummerierung auf eine weggefallene Zielnorm), sodass |
| 231 | Folgen wie „Abs. 2 wird aufgehoben; Abs. 3 wird Abs. 2 …“ vollständig aufgehen. |
| 232 | |
| 233 | 4. In einem Verbund erbt eine reine Wortoperation ohne eigenen Lokativ den Skopus |
| 234 | der linken Klausel („In Abs. 2 Satz 1 wird „A“ ersetzt und die Angabe „B“ wird |
| 235 | gestrichen“ wirkt für beide Klauseln auf Abs. 2 Satz 1); das gemeinsame Verb |
| 236 | wird hierzu in die grammatische Normalform vorgezogen. |
| 237 | |
| 238 | |
| Matthias Andreas Benkard | 6311227 | 2026-07-17 05:10:53 +0200 | [diff] [blame] | 239 | Schlussbestimmung |
| 240 | |
| Matthias Andreas Benkard | 65eff08 | 2026-07-18 12:24:32 +0200 | [diff] [blame^] | 241 | Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle (zwei- |
| 242 | hundertelf an der Zahl) sowie durch die vollständige Erstellung (mvnw verify) |
| 243 | bestätigt worden. Die Behebung des eingangs genannten Wiedergabefehlers wurde |
| 244 | anhand der Beispieldaten (UWG-Anhang, Nummern 2a, 4c sowie 22; § 2 IfSG) |
| 245 | verifiziert; die Anwendungs- und Prüfzahlen der bundesrechtlichen Beispiele (UWG, |
| 246 | AGG, ProdHaftG, GEG, IfSG) bleiben durchgehend unverändert. Die Ertüchtigung für |
| 247 | das bayerische Landesrecht ist durch die vollständige Anwendung der Belegnovelle |
| 248 | (GVBl. 2026 S. 113, §§ 1 und 2) auf die wiederhergestellte alte Fassung des |
| 249 | Bayerischen Jagdgesetzes belegt: Von einhundertvierundfünfzig Änderungsanweisungen |
| 250 | werden einhundertneunundvierzig selbsttätig angewandt; keine bleibt unerkannt. |
| 251 | Die fünf verbleibenden Anweisungen sind Folgeänderungen innerhalb zweier mehr- |
| 252 | schrittiger Umnummerierungssequenzen (Neunummerierung des Bußgeldkatalogs in |
| 253 | Art. 56 sowie die Absatzverschiebung in Art. 29a) und werden — statt fehlerhaft |
| 254 | gedeutet zu werden — mit Begründung dem Abschnitt „Manuell prüfen“ zugewiesen. |
| 255 | Der Regierungsentwurf (Ltg-Drs. 19/9707) wird auf derselben Grundlage verarbeitet. |
| Matthias Andreas Benkard | 6311227 | 2026-07-17 05:10:53 +0200 | [diff] [blame] | 256 | |
| 257 | |
| 258 | ════════════════════════════════════════════════════════════════════════════════ |
| Matthias Andreas Benkard | b7e9f0f | 2026-07-16 21:12:08 +0200 | [diff] [blame] | 259 | Fassung vom 16. Juli 2026, |
| 260 | zuletzt geändert durch die am 16. Juli 2026 vorgenommenen Änderungen |
| 261 | ════════════════════════════════════════════════════════════════════════════════ |
| 262 | |
| 263 | Auf Grund der vierten Ertüchtigungswelle werden Anhänge und Anlagen als Norm-Ziele, |
| 264 | die Angabe-Befehle der Inhaltsübersicht sowie die Einfügung und Ersetzung von |
| 265 | Gliederungs-Überschriften einer Verarbeitung zugänglich gemacht; ferner wird der |
| 266 | Befehlserkenner um weitere Verbund- und Bereichsformen sowie die Neufassung der |
| 267 | Gesetzesüberschrift ergänzt und die Brotschriftbestimmung des PDF-Vorverarbeiters |
| 268 | seitenweise gefasst. |
| 269 | |
| 270 | |
| 271 | Artikel 1 |
| 272 | Anhänge und Anlagen als Norm-Ziele |
| 273 | |
| 274 | Die Stelle (Stelle) wird um die Unterscheidung zwischen echten Gliederungseinheiten |
| 275 | (Teil, Abschnitt, Unterabschnitt und dergleichen) und Anhängen/Anlagen ergänzt |
| 276 | (betrifftEchteGliederung, anlagenEnbez); Anhänge und Anlagen sind im gii-XML eigene |
| 277 | Normen mit Text und werden fortan wie Paragraphen behandelt. Der Stellenaufloeser |
| 278 | löst hierbei Nummer- und Buchstabe-Ketten verschachtelt und blockweise auf: die |
| 279 | Aufzählungszeile einer Nummer oder eines Buchstabens wird um ihre tiefer |
| 280 | eingerückten Kindzeilen erweitert, und eine Angabe ohne Absatzbezeichnung wird |
| 281 | norm-weit gesucht, sofern sie in genau einem Absatz auffindbar ist. |
| 282 | |
| 283 | |
| 284 | Artikel 2 |
| 285 | Selbsttätige Anwendung der Inhaltsübersichts-Angaben |
| 286 | |
| 287 | Es wird der Anwender InhaltsuebersichtAnwender eingeführt, der die Angabe-Befehle |
| 288 | (gefasst, ersetzt, eingefügt, gestrichen sowie die Neufassung der gesamten |
| 289 | Übersicht) auf das Zeilenmodell der Inhaltsübersichts-Norm anwendet. Eine adressierte |
| 290 | Zeile wird anhand der Gliederungs- und Paragraphen-Kette der Stelle verschachtelt |
| 291 | gesucht, wobei gleichrangige Gliederungseinheiten als Fenstergrenzen dienen. Bei der |
| 292 | Neufassung der gesamten Übersicht schützt eine Plausibilitätssperre vor der |
| 293 | Übernahme eines Zitats, das durch ein unbalanciertes Anführungszeichen Befehlssprache |
| 294 | nachfolgender Anweisungen mitgerissen hat; ein solcher Fall wird dem Abschnitt |
| 295 | „Manuell prüfen“ zugewiesen. |
| 296 | |
| 297 | |
| 298 | Artikel 3 |
| 299 | Einfügung und Ersetzung von Gliederungs-Überschriften |
| 300 | |
| 301 | Es wird der Befehl „GliederungsUeberschriften“ eingeführt; die Anweisungen „Nach |
| 302 | § N werden die folgenden Überschriften zu ... eingefügt: „…““ sowie „Die bisherigen |
| 303 | Überschriften zu ... werden durch die folgende Überschrift zu ... ersetzt: „…““ |
| 304 | legen neue Einheiten im Gliederungsbaum an beziehungsweise ersetzen bisherige |
| 305 | Einheiten durch neue. Der Befehlsanwender (BefehlAnwender.wendeGliederungsUeberschriftenAn) |
| 306 | zieht die Titel der neuen Einheiten aus dem Zitat und ordnet sie an der Stelle der |
| 307 | ersetzten Einheiten beziehungsweise hinter dem Einfügeanker ein. Ferner wird die |
| 308 | Neufassung der Gesetzesüberschrift selbst („Die Überschrift wird wie folgt gefasst“ |
| 309 | ohne weitere Stellenangabe) erkannt und auf den Langtitel des Gesetzes angewandt. |
| 310 | |
| 311 | |
| 312 | Artikel 4 |
| 313 | Weitere Erweiterungen des Befehlserkenners |
| 314 | |
| 315 | Der Befehlserkenner (BefehlErkenner) wird um Voranstellungen, Mehrfach-Ersetzungs- |
| 316 | und -Einfügepaare, Bereichsziele auf Nummern und Buchstaben, zusammengesetzte |
| 317 | Komma-Mehrfachpaare sowie Umnummerierungs-Verbünde („§ 50 wird zu § 38 und wird wie |
| 318 | folgt geändert: ...“) ergänzt. |
| 319 | |
| 320 | |
| 321 | Artikel 5 |
| 322 | Seitenweise Brotschriftbestimmung |
| 323 | |
| 324 | Der Fontgrößenfilter (FontgroessenFilter) bestimmt die Brotschrift fortan seitenweise |
| 325 | statt dokumentweit: Auf jeder Seite gilt die größte Fontgröße mit mindestens 25 vom |
| 326 | Hundert Seitenanteil als Brotschrift, wobei eine absolute Mehrheit ab 60 vom Hundert |
| 327 | sofort entscheidet; Fußnoten werden als Kleingedrucktes unterhalb der letzten |
| 328 | Brotschriftzeile erkannt, Seitenfüße bleiben hiervon ausgenommen. Der Textbereiniger |
| 329 | (TextBereiniger) wird um die Toleranz weiterer Drucksachen-Artefakte (Seitenköpfe |
| 330 | und -füße, Vorabfassungs-Wasserzeichen, vertauschte oder gerade Anführungszeichen, |
| 331 | verklebte Wortgrenzen) ergänzt. |
| 332 | |
| 333 | |
| 334 | Schlussbestimmung |
| 335 | |
| 336 | Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle (einhundert- |
| 337 | dreiundsiebzig an der Zahl) sowie durch die vollständige Erstellung (mvnw verify) |
| 338 | bestätigt worden. Auf den Beispieldaten werden nunmehr sämtliche Befehle der |
| 339 | BGBl-Fassungen sowie der geprüften Entwürfe angewandt (UWG, AGG und ProdHaftG: |
| 340 | 0 manuell). Nicht selbsttätig verarbeitbar bleiben einstweilen Befehle gegen eine |
| 341 | ältere, im XML-Bestand nicht mehr vorhandene Gesetzesfassung sowie vereinzelte, |
| 342 | durch Extraktionsverluste im Quell-PDF verursachte Zitatlücken; diese werden |
| 343 | weiterhin, mit Begründung versehen, dem Abschnitt „Manuell prüfen“ zugewiesen. Die |
| 344 | Unterstützung des bayerischen Landesrechts bleibt einem späteren Zeitpunkt |
| 345 | vorbehalten. |
| 346 | |
| 347 | |
| 348 | ════════════════════════════════════════════════════════════════════════════════ |
| Matthias Andreas Benkard | ebd5a7b | 2026-07-15 20:54:27 +0200 | [diff] [blame] | 349 | Fassung vom 15. Juli 2026, |
| 350 | zuletzt geändert durch die am 15. Juli 2026 vorgenommenen Änderungen |
| 351 | ════════════════════════════════════════════════════════════════════════════════ |
| 352 | |
| 353 | Auf Grund der weiteren Ertüchtigung des Befehlserkenners und des Befehlsanwenders |
| 354 | werden Bereichs- und Koordinationsziele bei Struktur-Ersetzungen, die Streichung |
| 355 | und Umnummerierung ganzer Struktureinheiten (Paragraphen und Gliederungs- |
| 356 | einheiten) sowie das Einfügen und Ersetzen ganzer Paragraphenblöcke einer |
| 357 | Verarbeitung zugänglich gemacht. |
| 358 | |
| 359 | |
| 360 | Artikel 1 |
| 361 | Erweiterung der Struktur-Ersetzung um Ziel-Bereiche |
| 362 | |
| 363 | Der Aenderungsbefehl (Aenderungsbefehl.StrukturErsetzung) wird um das Feld |
| 364 | „bisStelle“ ergänzt, welches bei einem zusammenhängenden, koordinierten Ziel- |
| 365 | Bereich („Die Absätze 8 und 9 werden durch die folgenden Absätze 8 bis 10 |
| 366 | ersetzt: „…““, „Die bisherigen Sätze 4 und 5 werden wie folgt gefasst: „…““) |
| 367 | das letzte Ziel bezeichnet; bei einem Einzelziel bleibt es unbesetzt. Der |
| 368 | Befehlsanwender (BefehlAnwender) löst den Bereich für Absätze, Sätze und |
| 369 | Paragraphen auf und ersetzt ihn durch den zitierten Block. |
| 370 | |
| 371 | |
| 372 | Artikel 2 |
| 373 | Aufnahme struktureller Streichungen und Umnummerierungen |
| 374 | |
| 375 | Der Befehlserkenner wird wie folgt geändert: |
| 376 | |
| 377 | 1. Die Streichung ganzer Struktureinheiten („§ 9 wird gestrichen.“, „Die §§ 34 |
| 378 | bis 39 werden gestrichen.“, „Der bisherige Teil 3 wird gestrichen.“) wird als |
| 379 | Aufhebung erkannt. |
| 380 | |
| 381 | 2. Die Umnummerierung wird auf Paragraphen und Gliederungseinheiten (Teil, |
| 382 | Abschnitt, Unterabschnitt, Buch, Kapitel, Anlage) erstreckt sowie um die |
| 383 | paarweise §-Umnummerierung („Die §§ 46 und 47 werden zu den §§ 34 und 35.“) |
| 384 | ergänzt. Der Befehlsanwender benennt hierbei die betroffene Norm oder |
| 385 | Gliederungseinheit um; eine bereits weggefallene Zielnorm wird überschrieben. |
| 386 | |
| 387 | 3. Die Neufassung eines §-Bereichs wird auf die Form ohne „bisherige“ erstreckt |
| 388 | und liefert bei mehrgliedrigem Ziel nunmehr eine bereichsbezogene Struktur- |
| 389 | Ersetzung statt eines Einzelbefehls. |
| 390 | |
| 391 | 4. Die Neufassung der Überschrift einer benannten Einheit („In Anlage 7 wird die |
| 392 | Überschrift durch die folgende Überschrift ersetzt: „…““) sowie der Inhalts- |
| 393 | übersicht werden erkannt; letztere wird stets der manuellen Prüfung |
| 394 | zugewiesen. |
| 395 | |
| 396 | 5. Die Entwurfsform der Struktur-Ersetzung, bei der die Aufzählungsbezeichnung |
| 397 | außerhalb des Zitats steht („… ersetzt: 3. „…““), wird abgefangen und dem |
| 398 | Ersatztext wieder vorangestellt. |
| 399 | |
| 400 | 6. Der Chapeau-Qualifier („Im Satzteil vor Nummer 1 …“, „In der Angabe vor |
| 401 | Nummer 1 …“) wird auf weitere Einleitungen erstreckt; steht er allein, ohne |
| 402 | eigene Stelle, so bezieht sich die Operation auf die Kontextstelle. |
| 403 | |
| 404 | |
| 405 | Artikel 3 |
| 406 | Einfügung und Ersetzung ganzer Paragraphenblöcke |
| 407 | |
| 408 | 1. Die Einfügung mehrerer Paragraphen in einem Zuge („Nach § 60a werden die |
| 409 | folgenden §§ 60b und 60c eingefügt: „…““) sowie die Ersetzung eines §-Bereichs |
| 410 | durch einen §-Block werden erkannt. |
| 411 | |
| 412 | 2. Der Befehlsanwender zerlegt den zitierten Block anhand der §-Überschriften |
| 413 | (unter Ausschluss bloßer Querverweise wie „§ 71 Absatz 1“) in die einzelnen |
| 414 | Paragraphen und fügt sie geschlossen ein oder setzt sie an die Stelle des |
| 415 | ersetzten Bereichs. |
| 416 | |
| 417 | |
| 418 | Schlussbestimmung |
| 419 | |
| 420 | Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle |
| 421 | (einhundertvierundvierzig an der Zahl) sowie durch die vollständige Erstellung |
| 422 | (mvnw verify) bestätigt worden. Nicht selbsttätig verarbeitbar bleiben |
| 423 | einstweilen die mehrquellige Struktur-Ersetzung über mehrere Gesetze hinweg |
| 424 | sowie vereinzelte Sonderfälle der Entwurfsfassung (Drucksachen); diese werden |
| 425 | dem Abschnitt „Manuell prüfen“ zugewiesen. Die Unterstützung des bayerischen |
| 426 | Landesrechts bleibt einem späteren Zeitpunkt vorbehalten. |
| 427 | |
| 428 | |
| 429 | ════════════════════════════════════════════════════════════════════════════════ |
| Matthias Andreas Benkard | 73c5dba | 2026-07-13 21:42:38 +0200 | [diff] [blame] | 430 | Fassung vom 13. Juli 2026, |
| 431 | zuletzt geändert durch die am 13. Juli 2026 vorgenommenen Änderungen |
| 432 | ════════════════════════════════════════════════════════════════════════════════ |
| 433 | |
| 434 | Auf Grund der fortdauernden Ertüchtigung des Befehlserkenners werden die bis zu |
| 435 | diesem Tage nicht selbsttätig verarbeitbaren Änderungsanweisungen nach näherer |
| 436 | Maßgabe der nachstehenden Abschnitte einer Verarbeitung zugänglich gemacht. Die |
| 437 | Zahl der nicht erkannten Anweisungen (nachfolgend: „unbekannte Befehle“) ver- |
| 438 | ringert sich hierdurch nach den vorliegenden Feststellungen wie folgt: im |
| 439 | Datensatz GEG von fünfzig (50) auf fünf (5), im Datensatz IfSG von elf (11) auf |
| 440 | drei (3), im Datensatz AGG von zwei (2) auf null (0) sowie im Datensatz UWG von |
| 441 | zwei (2) auf null (0). |
| 442 | |
| 443 | |
| 444 | Artikel 1 |
| 445 | Übernahme des vorbefindlichen Bearbeitungsstandes |
| 446 | |
| 447 | Der zum Stichtag im Arbeitsverzeichnis vorgehaltene, noch nicht in die Versions- |
| 448 | verwaltung überführte Bearbeitungsstand wird eingecheckt. Erfasst werden ins- |
| 449 | besondere der Sammelbefehl (mehrere Teilbefehle als ein Protokolleintrag), die |
| 450 | mehrfache Stellenauflösung (StellenParser.parseMehrfach) sowie die Auflösung von |
| 451 | Bereichs-Umnummerierungen in absteigender Reihenfolge. |
| 452 | |
| 453 | |
| 454 | Artikel 2 |
| 455 | Erkennung verbundener und mehrgliedriger Ersetzungsanweisungen |
| 456 | |
| 457 | Der Befehlserkenner (BefehlErkenner) wird wie folgt geändert: |
| 458 | |
| 459 | 1. Die Erkennung wird in eine Einzelbefehls-Stufe (erkenneEinzeln) und eine nach- |
| 460 | geordnete Auffangstufe (erkennePaarErsetzung, erkenneVerbund) gegliedert. Trifft |
| 461 | ein Muster zwar auf den Wortlaut, nicht aber auf eine auflösbare Stelle zu, so |
| 462 | steht dies der Prüfung der nachfolgenden Muster und Auffangstufen nicht mehr |
| 463 | entgegen. |
| 464 | |
| 465 | 2. Anweisungen der Form „In <Stelle> werden die Wörter „A“ durch die Wörter „B“ |
| 466 | und die Angabe „C“ durch die Wörter „D“ ersetzt“ werden erkannt; für jedes |
| 467 | Ersetzungspaar wird eine Ersetzung gebildet und, im Falle koordinierter Stellen, |
| 468 | das Kreuzprodukt aus Stellen und Paaren gebildet. |
| 469 | |
| 470 | 3. Anweisungen der Form „... und wird/werden ...“ werden an der Verbindungsstelle |
| 471 | versuchsweise zerlegt; wird jede Teilklausel als eigenständiger Befehl erkannt – |
| 472 | unverändert, mit großem Anfangsbuchstaben oder unter Voranstellung des lokativen |
| 473 | Präfixes der linken Klausel –, so entsteht ein Sammelbefehl. |
| 474 | |
| 475 | 4. Ergänzend werden die Einfügung eines Satzzeichens („... ein Komma eingefügt“) |
| 476 | sowie die anker-voranstehende Einfügung („Nach der Angabe „...“ wird ... |
| 477 | eingefügt“) als Muster aufgenommen. |
| 478 | |
| 479 | Der Stellenparser (StellenParser) wird dahin geändert, dass eine bloße Nummer oder |
| 480 | ein bloßer Buchstabe die Komponentenart der jeweils vorangehenden Stelle erbt |
| 481 | („Absatz 1 und 5“). |
| 482 | |
| 483 | |
| 484 | Artikel 3 |
| 485 | Erkennung von Bereichs-, Wortlaut- und Satzzeichenanweisungen |
| 486 | |
| 487 | 1. Der Stellenparser wird um die Entfaltung von „bis“-Bereichen (ganzzahlig sowie |
| 488 | für Einzelbuchstaben) und um die Pluralformen der Komponentenbezeichnungen |
| 489 | (Absätze, Sätze, Nummern, Buchstaben) ergänzt. |
| 490 | |
| 491 | 2. Die Aufhebung wird auf bereichs- und koordinierte Angaben erstreckt („Die |
| 492 | Nummern 1 bis 3 werden aufgehoben“, „Die Absätze 4 und 5 werden aufgehoben“). |
| 493 | |
| 494 | 3. Die Bereichs-Umnummerierung wird auf Nummern und Buchstaben sowie auf die Form |
| 495 | ohne „zu den“ erstreckt („Die bisherigen Nummern 4 bis 6 werden die Nummern |
| 496 | 8 bis 10“); die Einzel-Umnummerierung wird auf Nummern und Buchstaben sowie auf |
| 497 | die Einleitung „Die bisherige“ erstreckt. |
| 498 | |
| 499 | 4. Die Neufassung eines Paragraphen-Bereichs („Die §§ 52 bis 56 werden wie folgt |
| 500 | gefasst: ...“) wird durch Zerlegung des zitierten Blocks an den „§ N“-Grenzen |
| 501 | erkannt. |
| 502 | |
| 503 | 5. Es wird der Befehl „WortlautZuAbsatz“ eingeführt; die Anweisung „Der Wortlaut |
| 504 | wird Absatz N“ versieht den bislang unnummerierten Normtext mit der Absatznummer. |
| 505 | |
| 506 | 6. Die Ersetzung eines Wortes durch ein Satzzeichen („... das Wort „oder“ am Ende |
| 507 | durch ein Komma ersetzt“) sowie die zusammengesetzten Kommaformen werden erkannt. |
| 508 | |
| 509 | |
| 510 | Artikel 4 |
| 511 | Aufnahme der Gliederungs- und Inhaltsübersichts-Anweisungen |
| 512 | |
| 513 | 1. Das Datenmodell wird wie folgt geändert: |
| 514 | a) Die Gliederung (Gliederung) wird um die Gliederungskennzahl ergänzt. |
| 515 | b) Das Gesetz (Gesetz) führt fortan die geordnete Liste der Gliederungs- |
| 516 | einheiten mit; der Lader (GiiXmlLoader) erhebt diese aus dem gii-XML. |
| 517 | |
| 518 | 2. Die Stelle (Stelle) wird um die Komponenten „Gliederungseinheit“ (Teil, |
| 519 | Abschnitt, Unterabschnitt, Anlage und dergleichen) sowie „Absatzbezeichnung“ |
| 520 | ergänzt. Der Stellenparser erkennt diese Komponenten, ferner die Wendung |
| 521 | „Überschrift von <Gliederung>“, und lässt die verfeinernden Zusätze „Satzteil |
| 522 | vor Nummer N“ und „Angabe vor Nummer N“ außer Betracht. |
| 523 | |
| 524 | 3. Die Neufassung sowie die Streichung von Gliederungs-Überschriften werden auf den |
| 525 | Gliederungsbaum angewandt und in der Synopse als gesonderter Abschnitt |
| 526 | „Geänderte Gliederungs-Überschriften“ dargestellt. Die Streichung einer |
| 527 | Absatzbezeichnung entfernt die betreffende Absatznummer. Die die Inhaltsübersicht |
| 528 | betreffenden Anweisungen („Die Angabe(n) zu ...“) werden erkannt. |
| 529 | |
| 530 | |
| 531 | Schlussbestimmung |
| 532 | |
| 533 | Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle |
| 534 | (einhundertneunzehn an der Zahl) sowie durch die vollständige Erstellung (mvnw |
| 535 | verify) bestätigt worden. Nicht selbsttätig verarbeitbar bleiben einstweilen die |
| 536 | mehrquelligen Struktur-Ersetzungen, die Einfügung und Bereichsersetzung ganzer |
| 537 | Paragraphenfolgen (§§), die Neufassung von Satzbereichen sowie die stellenlosen |
| 538 | Chapeau-Anweisungen; diese werden dem Abschnitt „Manuell prüfen“ zugewiesen. Die |
| 539 | Unterstützung des bayerischen Landesrechts bleibt einem späteren Zeitpunkt |
| 540 | vorbehalten. |