blob: 0e4879d108ffb40ee927c42b6ec30d9883a8fac5 [file] [log] [blame]
Matthias Andreas Benkard73c5dba2026-07-13 21:42:38 +02001╔══════════════════════════════════════════════════════════════════════════════╗
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
9Vorbemerkung 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 Benkardd10ce7c2026-08-23 08:32:31 +020024 Fassung vom 23. August 2026,
25 zuletzt geändert durch die am 23. August 2026 vorgenommenen Änderungen
26════════════════════════════════════════════════════════════════════════════════
27
28Das Erzeugnis steht seit seinem ersten Tage unter der GNU Affero General Public
29License; ausgesprochen war das indes nur an drei verstreuten Stellen — im
30Lizenzvolltext „COPYING“, in einem Satz des Impressums und in einer Bemerkung der
31Datei „.gitattributes“. Keine einzige Quelldatei nannte ihren Urheber oder ihre
32Lizenz. Wer eine Datei für sich betrachtete — und so betrachtet sie jeder, der
33sie übernimmt —, fand daran nichts.
34
35Erschwerend tritt die Eigenart dieses Erzeugnisses hinzu: Sein Prüfbestand
36besteht aus fünfundvierzig PDF-Dateien, fünf EPUB-Dateien und den XML-Fassungen
37fremder Werke, nämlich der Gesetzblätter, Drucksachen und Entwürfe des Bundes und
38der Länder. Deren Rechtsstellung — gemeinfrei nach § 5 UrhG, gleichwohl gebunden
39an Änderungsverbot und Quellenangabe nach §§ 62 und 63 UrhG — war bislang nur
40menschenlesbar in den „SOURCES“-Dateien niedergelegt. Sie ist nunmehr auch
41maschinenlesbar erfasst, und zwar nach Herkunft geschieden.
42
43Maßstab ist die REUSE-Spezifikation in der Fassung 3.3.
44
45
46Artikel 1
47Lizenzbezeichnung
48
49(1) Der eigene Quelltext steht fortan unter „AGPL-3.0-or-later“, also unter der
50 Version 3 der Lizenz oder, nach Wahl des Empfängers, einer späteren Fassung.
51 Bislang sprach das Impressum von der „Version 3“ ohne Nachfolgeklausel.
52
53(2) Die Angabe ist an allen Stellen dieselbe: im Impressum, im Fußzeilenverweis
54 der Startseite, in einem neu aufgenommenen „licenses“-Block der „pom.xml“ und
55 im Abschnitt „Lizenz“ des Handbuchs.
56
57
58Artikel 2
59Verzeichnis der Lizenztexte
60
61(1) Das Verzeichnis „LICENSES“ nimmt die Wortlaute auf: „AGPL-3.0-or-later.txt“,
62 „Apache-2.0.txt“ für den unverändert mitgelieferten Maven-Wrapper und
63 „LicenseRef-AmtlichesWerk.txt“.
64
65(2) „COPYING“ bleibt an seiner Stelle, tritt aber als symbolische Verknüpfung
66 auf. Der gewohnte Pfad trägt damit fort, ohne dass zwei Wortlaute
67 nebeneinander zu pflegen wären; die Prüfung übergeht Verknüpfungen, sodass
68 für den Lizenztext selbst keine sachfremde Lizenzangabe zu erfinden war.
69
70
71Artikel 3
72Amtliche Werke
73
74(1) „LICENSES/LicenseRef-AmtlichesWerk.txt“ bezeichnet keine erteilte Lizenz,
75 sondern hält die gesetzliche Rechtslage fest: die Gemeinfreiheit nach § 5
76 Abs. 1 UrhG für Verkündungsblätter, Drucksachen und Plenarprotokolle, nach
77 § 5 Abs. 2 UrhG für ministerielle Entwürfe und Synopsen, ferner das
78 fortbestehende Änderungsverbot und Gebot der Quellenangabe.
79
80(2) Ausdrücklich festgehalten ist, dass die technische Aufbereitung durch die
81 Rechtsportale kein eigenes Recht am Text begründet und dass der Prüfbestand
82 kein „Corresponding Source“ im Sinne der AGPL ist.
83
84(3) Maßgeblich für die Fundstelle der einzelnen Datei bleibt die Datei „SOURCES“
85 des jeweiligen Verzeichnisses; die Lizenzdatei nimmt sie in Bezug.
86
87
88Artikel 4
89Zuordnung im Einzelnen
90
91(1) Dateien mit Kommentarsyntax tragen ihre Angabe in sich: zwei Zeilen
92 „SPDX-FileCopyrightText“ und „SPDX-License-Identifier“ im jeweils üblichen
93 Stil, vor dem vorhandenen erläuternden Kommentar und ohne diesen anzutasten.
94 Bei „index.html“ und den übrigen Seiten steht sie hinter der Typangabe, bei
95 „webpaket.sh“ und „cloudflare.sh“ hinter der Aufrufzeile, bei den
96 AsciiDoc-Dateien innerhalb des Dokumentenkopfes.
97
98(2) Für Binärdateien, für JSON und für reinen Text ordnet „REUSE.toml“ zu. Der
99 Prüfbestand ist darin nach Herkunft geschieden: Bund (Verkündung und
100 Parlament), Bund (ministerielle Entwürfe), gesetze-im-internet.de nebst der
101 Aufbereitung durch die juris GmbH, sodann neun Länder je einzeln.
102
103(3) Die selbst abgeleiteten Textfassungen („*-alt.txt“) tragen „AGPL-3.0-or-later
104 AND LicenseRef-AmtlichesWerk“: Der Wortlaut ist amtlich, die Aufbereitung —
105 Einrückung, Superskript-Satznummern, Gliederungsüberschriften — eigene
106 Arbeit.
107
108(4) „mini-gii.xml“ und „.mvn/maven.config“ erhalten bewusst keine Kopfzeile,
109 sondern einen Eintrag in „REUSE.toml“: Ersteres liest der GiiXmlLoader,
110 Letzteres Maven vor jedem Bau, und beide sollen von der Auszeichnung
111 unberührt bleiben.
112
113
114Artikel 5
115Fortdauernde Prüfung
116
117(1) Spotless pflegt die Kopfzeilen der Java-Dateien („licenseHeader“). Der Lauf
118 von „spotless:check“ ist an die Phase „verify“ gebunden und hält den Bau an,
119 sobald eine Quelldatei ohne Kopfzeile oder ohne die vereinbarte Formatierung
120 hinzukommt.
121
122(2) Dabei hat sich ergeben, dass „src/wasm/java“ der Formatprüfung bislang
123 verborgen war: Das Verzeichnis tritt dem Quellbaum erst im Profil „wasm“ bei.
124 Die Quellverzeichnisse sind nunmehr ausdrücklich benannt; die beiden
125 Wasm-Klassen sind erstmals umformatiert worden.
126
127(3) Ein Ausrollwerkzeug hinterließ mit „.wrangler“ ein Zwischenverzeichnis im
128 Arbeitsbaum; es ist fortan übergangen.
129
130
131Artikel 6
132Nachweis
133
134(1) Die Prüfung meldet Konformität mit der Fassung 3.3 der Spezifikation:
135 einhundertvierundfünfzig von einhundertvierundfünfzig Dateien tragen Urheber-
136 und Lizenzangabe, keine Lizenz bleibt ungenutzt, keine fehlt.
137
138(2) Dreihundertfünfundzwanzig Testfälle bestehen unverändert; am Verhalten des
139 Erzeugnisses ändert sich nichts.
140
141(3) Das ausgelieferte Quelltextarchiv ist von sich aus konform, denn
142 „.gitattributes“ nimmt den Prüfbestand von ihm aus.
143
144
145════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkard14ec52a2026-08-22 16:41:57 +0200146 Fassung vom 22. August 2026,
147 zuletzt geändert durch die am 22. August 2026 vorgenommenen Änderungen
148════════════════════════════════════════════════════════════════════════════════
149
150Zwei Mängel, die die vorangegangene Fassung aufgedeckt, aber nicht behoben hatte,
151wiegen schwerer als alles sonst Offene: Sie führen zu einem falschen Ergebnis,
152ohne es anzuzeigen. Ein Befehl gilt als angewandt, der Wortlaut des Zielgesetzes
153weicht gleichwohl von der amtlichen Nachfassung ab, und der Abschnitt „Manuell
154prüfen“ schweigt. Damit war das Leitprinzip des Erzeugnisses — niemals
155stillschweigend zu verwerfen — an dieser Stelle verfehlt.
156
157Bei ihrer Behebung hat sich ergeben, dass die beiden Mängel nicht nebeneinander
158standen, sondern eine Ursache teilten: die fehlende Einrückung. Sie ist im
159kanonischen Klartext nicht Schmuck, sondern trägt die Gliederung; wer sie
160verliert, verliert die Zugehörigkeit einer Zeile zu ihrer Einheit.
161
162
Matthias Andreas Benkard08c27472026-08-22 19:02:46 +0200163Erster Teil
164Behebung der festgehaltenen Mängel
165
166
Matthias Andreas Benkard14ec52a2026-08-22 16:41:57 +0200167Artikel 1
168Einrückung bei der Neufassung einer Aufzählungseinheit
169
170(1) Die Neufassung einer Nummer oder eines Buchstabens (BefehlAnwender.
171 wendeNeufassungAn) setzt den neuen Wortlaut fortan auf die Einrückung der
172 Einheit, an deren Stelle er tritt; bislang begann er in Spalte 0. Es gilt
173 damit dasselbe wie bei der Ersetzung einer solchen Einheit.
174
175(2) Der Grund ist folgender: Der Zeilenblock einer Aufzählungsmarke
176 (StellenAufloeser.zeilenBlock) reicht so weit, wie tiefer eingerückt wird.
177 Eine in Spalte 0 gesetzte Zeile nimmt daher den gesamten Rest des Absatzes
178 als ihre Kindzeilen an. Der nachfolgende Befehl „Nach Nr. 4 werden die
179 folgenden Nrn. 5 bis 7 eingefügt“ trat deshalb hinter die letzte Nummer des
180 Absatzes statt hinter die Nr. 4 — er galt als angewandt, stand aber falsch.
181
182(3) Die Neufassung eines Satzes oder Halbsatzes bleibt unberührt; ihr Bereich
183 beginnt mitten in der Zeile und trägt keine Einrückung.
184
185
186Artikel 2
187Heilung des Weißraums nach einer Streichung
188
189(1) Die Streichung von Wörtern (BefehlAnwender.wendeStreichungAn) heilte den
190 zurückbleibenden Weißraum bislang über den gesamten Zieltext; dieser ist bei
191 einer Stelle ohne Fein-Komponente der ganze Absatz. Sie fraß dabei die
192 Einrückung der Aufzählungszeilen: Aus den zwei Leerzeichen vor jeder Marke
193 wurde eines.
194
195(2) Geheilt wird fortan allein die Naht der Streichung (heileNaht): Aus zwei
196 Leerzeichen wird eines, vor einem Satzzeichen bleibt keines. Traf die
197 Streichung den Zeilenanfang, so ist der Weißraum vor der Naht Einrückung und
198 bleibt unangetastet.
199
200
201Artikel 3
202Weichen des leeren Platzhalters
203
204Vergibt ein eingefügter Block eine Bezeichnung, die ein leerer Platzhalter der
205Altfassung noch hält („7. (aufgehoben)“), so weicht dieser. Es ist dieselbe
206Regel, die schon bei der Umnummerierung auf eine weggefallene Bezeichnung gilt,
207und so zeigt es auch die amtliche Nachfassung. Verdrängt wird dabei nur ein
208Platzhalter, niemals ein Wortlaut; ein Platzhalter, den kein Befehl anrührt,
209bleibt stehen.
210
211
212Artikel 4
213Zwischenraum hinter der Aufzählungsmarke
214
215Im Satz des Gesetzblatts steht zwischen der Marke einer Aufzählungszeile und
216ihrem Text die Tabulatorspalte des Setzers. Der kanonische Klartext kennt dort
217ein einzelnes Leerzeichen. Die Aufbereitung eines Zitats (normalisiereZitatText)
218führt den Zwischenraum künftig auf dieses zurück; andernfalls trügen gerade die
219neu gesetzten Zeilen ein anderes Satzbild als die unberührten.
220
221
222Artikel 5
223Nachweis
224
225(1) Der Akzeptanztest des BayJG (EndToEndTest.bayJgGvblAcceptance) hielt die
226 beiden Mängel bislang ausdrücklich fest. Die betreffenden Zusicherungen
227 werden umgekehrt: Der eingefügte Block steht zwischen der Nr. 4 und der
228 Nr. 8, der Platzhalter ist gewichen, die Einrückung besteht fort.
229
230(2) Art. 56 Abs. 1 des Bayerischen Jagdgesetzes gleicht damit in Aufbau und
231 Wortlaut der amtlichen Nachfassung (BayJG.pdf); die Gegenprobe ist Zeile für
232 Zeile geführt worden.
233
234(3) Hinzu treten drei Prüfungen der zugrunde liegenden Regeln
235 (BefehlAnwenderTest). Der Gesamtbestand beträgt nunmehr 315 Prüfungen; keine
236 der gepinnten Zahlen der übrigen Belegfälle hat sich geändert.
237
238
Matthias Andreas Benkard08c27472026-08-22 19:02:46 +0200239Zweiter Teil
240Thüringen
241
242Mit der Mängelliste war die Arbeit wieder in die Breite zu führen. Von den seit
243Juli beschafften Gesetzblättern der Länder war eines nie angefasst worden: das
244Gesetz- und Verordnungsblatt für den Freistaat Thüringen. Es hat drei Befunde
245erbracht, die keineswegs thüringisch sind, sondern allgemein gelten, und einen
246Beschaffungsweg eröffnet, wo das Landesrechtportal versperrt ist.
247
248
249Artikel 6
250Gerade Anführungszeichen
251
252(1) Gerade Anführungszeichen (") wurden bislang ausnahmslos als schließende
253 gelesen (TextBereiniger.normalisiereAnfuehrungszeichen). Für das Bundes-
254 gesetzblatt und die Drucksachen trifft das zu; dort öffnet stets das
255 deutsche Zeichen, und ein gerades ist ein Satz- oder Extraktionsfehler.
256
257(2) Führt ein Text dagegen kein einziges öffnendes Zeichen („), so setzt er die
258 geraden beidseitig. Sie werden fortan paarweise gelesen: das erste öffnet,
259 das zweite schließt, und so fort. Bei ungerader Anzahl ist der Text
260 nachweislich unbalanciert; dann bleibt es bei der schließenden Lesart, und
261 es ergeht eine Warnung.
262
263(3) Ohne diese Unterscheidung fände der Zitatextraktor in einem so gesetzten
264 Blatt kein einziges Zitat; sämtliche Befehle des Heftes gingen verloren.
265
266(4) Eine Regel nach der Stellung des Zeichens (öffnend, wenn kein Leerzeichen
267 folgt) wäre untauglich: Das Thüringer Blatt führt Zitate, die mit einem
268 Leerzeichen beginnen, und umgekehrt schließende Zeichen, die unmittelbar am
269 Folgewort kleben.
270
271
272Artikel 7
273Bereichsweise Umnummerierung von Paragraphen
274
275(1) Der Befehl „Die bisherigen §§ 9 bis 12 werden die §§ 8 bis 10“ nennt vier
276 Ausgangs- und drei Zielbezeichnungen. Das ist kein Widerspruch: Der Bereich
277 nennt Bezeichnungen, gezählt werden aber Einheiten, und ein aufgehobener
278 Platzhalter darin ist keine Einheit — er trägt keinen Inhalt.
279
280(2) Welche Einheiten ein Bereich trägt, weiß erst das Gesetz. Ein solcher Befehl
281 bleibt deshalb bis zur Anwendung ungeteilt (Aenderungsbefehl.
282 BereichsUmnummerierung) und wird dort entfaltet (BefehlAnwender.
283 entfalteBereiche): Die vorhandenen Einheiten des Bereichs werden der Reihe
284 nach den neuen Bezeichnungen zugeordnet. Geht die Zählung auch dann nicht
285 auf, bleibt der Befehl manuell zu prüfen — mit Angabe des Grundes.
286
287(3) Geht die Zählung der Bezeichnungen schon im Wortlaut auf, so bleibt es bei
288 der bisherigen paarweisen Zuordnung.
289
290
291Artikel 8
292Weitere Befehlsformen und Satzbefunde
293
294(1) Die Verweisung tritt als Gegenstand einer Wortoperation neben Wort, Wörter,
295 Angabe und Zahl (BefehlErkenner): „In Satz 2 wird die Verweisung „X“ durch
296 die Verweisung „Y“ ersetzt.“
297
298(2) Der Rahmen einer Umnummerierung darf sich auf eine Untereinheit der
299 umnummerierten Einheit verengen: „Der bisherige § 8 wird § 7 und Absatz 1
300 wird wie folgt geändert:“. Die Unterpunkte meinen dann diesen Absatz des neu
301 bezeichneten Paragraphen.
302
303(3) Die Bereichs-Neufassung („Die §§ 1 bis 3 erhalten folgende Fassung:“) wird
304 fortan allein an den Bezeichnungen des angekündigten Bereichs geteilt, nicht
305 mehr an jedem Paragraphenzeichen des Zitats. Der neue Wortlaut zitiert
306 reihenweise andere Vorschriften; an diesen zu schneiden erfand Normen, die es
307 nicht gibt. Nennt der Bereich einen Normkopf, den das Zitat nicht führt, so
308 sagen Ankündigung und Wortlaut Verschiedenes — dann wird nicht geraten.
309
310(4) Ob ein Trennstrich vor einem Großbuchstaben eine Silbentrennung war,
311 entscheidet fortan der Wortbestand des Dokuments (TextBereiniger.
312 warTrennung): Trägt es das Wort auch ohne Strich, so war es eine Trennung.
313 Der Satz trennt auch binnengroßgeschriebene Kürzel („Thür-“ + „KigaG“),
314 während echte Bindestriche („Ton-Bild-Übertragung“) unangetastet bleiben.
315
316(5) Die Überschrift einer zitierten Neufassung darf über mehrere Zeilen laufen
317 (BefehlAnwender.parseNorm); fortgesetzt wird sie über klein beginnende
318 Zeilen. Steht sie in derselben Zeile wie die Bezeichnung, so gehört sie in
319 den Titel und nicht zusätzlich in den Normtext.
320
321(6) Der laufende Kolumnentitel und der Seitenfuß des Thüringer Blattes werden
322 entfernt (TextBereiniger). Sie stehen im Inhaltsstrom mitten im Text und
323 zerschneiden sogar getrennte Wörter; sie sind daher herauszuschneiden und
324 nicht als eigene Zeile zu entfernen.
325
326
327Artikel 9
328Belegfall Thüringen
329
330(1) Aufgenommen wird die Vierte Verordnung zur Änderung der Thüringer
331 Kindergartenfinanzierungsverordnung (GVBl. Nr. 2/2026 S. 77) als voller
332 Akzeptanzfall (EndToEndTest.thuerKiGaFinVOAendVO): zehn Befehle, kein Rest.
333
334(2) Die Stammfassung (Thueringen/ThuerKigaFinVO-alt.txt) ist aus vier
335 Gesetzblättern zusammengesetzt, da das Landesrechtportal Thüringens dieselbe
336 anmeldepflichtige Anwendung ist wie die Portale Schleswig-Holsteins, Berlins,
337 Baden-Württembergs und Hessens. Die Hefte gibt die Parlamentsdatenbank des
338 Landtags frei aus, der das Blatt herausgibt. Herkunft und Aufbereitung sind
339 in Thueringen/SOURCES niedergelegt.
340
341(3) Der Gesamtbestand beträgt nunmehr 325 Prüfungen; keine der gepinnten Zahlen
342 der übrigen Belegfälle hat sich geändert.
343
344
Matthias Andreas Benkard14ec52a2026-08-22 16:41:57 +0200345════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkard2d33bf72026-08-16 06:40:07 +0200346 Fassung vom 16. August 2026,
347 zuletzt geändert durch die am 16. August 2026 vorgenommenen Änderungen
348════════════════════════════════════════════════════════════════════════════════
349
350Die Browserfassung war bislang für den öffentlichen Betrieb gesperrt: Die
351Anbieterkennzeichnung und die Datenschutzerklärung führten Platzhalter, und der
352Verweis auf den Quelltext, den die Lizenz des Erzeugnisses beim Netzbetrieb
353verlangt, zeigte auf keine Adresse. Mit dieser Fassung wird die Sperre
354aufgehoben; zugleich wird die Auslieferung auf den Betrieb unter einem Unterpfad
355einer bestehenden Domain eingerichtet.
356
Matthias Andreas Benkard06da70e2026-08-16 07:34:12 +0200357Die nunmehr öffentlich erreichbare Startseite setzte sodann voraus, was
358Neuankömmlinge gerade nicht haben: geeignete Dateien. Sie erhält deshalb eine
359Einführung mit Verweisen auf zwei durchgerechnete Fälle. Dabei hat sich ergeben,
360dass die Fundstelle des Bundesrechts das Norm-XML ausschließlich als Archiv
361ausgibt; ohne dessen Auspacken bliebe die Einführung eine Anleitung zum
362Zwischenschritt von Hand.
363
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200364Endlich wird das Erscheinungsbild demjenigen angeglichen, was das Erzeugnis
Matthias Andreas Benkard75583b22026-08-16 10:57:26 +0200365darstellt: Es tritt fortan schwarzweiß auf wie ein Gesetzblatt. Farbe verbleibt,
366wo sie eine Aussage trägt — im Diff und an den Balken der Hinweiskästen —, und
367bedeutet dort überall dasselbe. Bei der Erprobung einer gänzlich farblosen
368Fassung hat sich ergeben, dass die Farbe im Diff nicht bloß schmückte, sondern
369allein trug; das hat einen Mangel der Auszeichnung offengelegt, der nunmehr auch
370neben der wiederhergestellten Farbe behoben bleibt.
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200371
Matthias Andreas Benkard2d33bf72026-08-16 06:40:07 +0200372
373Artikel 1
374Anbieterkennzeichnung und Datenschutzerklärung
375
376(1) Die Anbieterkennzeichnung (impressum.html) wird mit den Angaben nach § 5 DDG
377 versehen; hinzu treten die Bezeichnung des nach § 18 Abs. 2 MStV
378 Verantwortlichen sowie ein Hinweis darauf, dass der Dienst unentgeltlich und
379 nichtkommerziell erbracht wird und die Synopsen ohne Gewähr ergehen.
380
381(2) Die Datenschutzerklärung (datenschutz.html) wird um die Bezeichnung des
382 Verantwortlichen (Art. 4 Nr. 7 DSGVO) und um die Rechte der betroffenen
383 Personen (Art. 15 bis 21, Art. 77 DSGVO) ergänzt. Für die Zugriffsprotokolle
384 werden die Rechtsgrundlage (Art. 6 Abs. 1 lit. f DSGVO) und die
385 Aufbewahrungsfrist (vierzehn Tage) benannt.
386
387(3) Die Aussage über die Dateien der Nutzer:innen bleibt unverändert; sie trifft
388 zu, weil die Verarbeitung ausschließlich im Browser stattfindet.
389
390
391Artikel 2
392Beilegung des Quelltextes
393
394(1) Es wird das Skript deploy/webpaket.sh eingeführt. Es tritt in der Phase
395 „package“ des Profils -Pwasm hinter den Übersetzer und macht aus dessen
396 Ergebnis ein auslieferbares Verzeichnis:
397 a) Der Textzwischenschritt (aendggner.js.wat) wird entfernt.
398 b) Der Quelltext der gebauten Fassung wird als aendggner-quelltext.tar.gz
399 nebst der Kennung der Fassung (quelltext-fassung.txt) beigelegt.
400 c) Die großen Dateien werden nach .gz und .br vorkomprimiert.
401
402(2) Trägt der Arbeitsbaum uneingecheckte Änderungen, so bricht der Bau ab. Der
403 Grund ist folgender: Der beigelegte Quelltext wäre alsdann nicht derjenige
404 der ausgelieferten Fassung, und die Auflage des § 13 AGPLv3 wäre verfehlt.
405 Für Probeläufe kann die Prüfung durch QUELLTEXT_UNGEPRUEFT=1 abbedungen
406 werden.
407
408(3) Der Fuß der Startseite (index.html) verweist fortan auf den beigelegten
409 Quelltext; die fortlaufende Quelle wird als Zweitverweis daneben genannt.
410
411
412Artikel 3
413Auslieferungsvorlage
414
415Die Vorlage (deploy/nginx-aendggner.conf) wird vom eigenen server-Block auf ein
416location-Schnipsel umgestellt, das in den bestehenden Server eingefügt wird. Sie
417wird wie folgt geändert:
418
4191. Aufgenommen wird die Weiterleitung des Pfades ohne abschließenden
420 Schrägstrich; ohne sie zielten sämtliche relativen Verweise der Seite auf die
421 Wurzel der Domain.
422
4232. Die Dateien werden über „root“ statt über „alias“ zugeordnet, weil try_files
424 in einer Präfix-Location gegen den root auflöst und mit alias fehlgeht.
425
4263. Die Haltefrist von sieben Tagen entfällt und wird durch Revalidierung
427 ersetzt. Der Grund ist folgender: Die Dateinamen tragen keine
428 Fassungskennung; ein Browser mit altem Steuerskript und neuem Rechenwerk
429 erhielte sonst eine Mischfassung, die es nie gegeben hat.
430
4314. Die vorkomprimierten Dateien werden ausgeliefert, statt das Rechenwerk je
432 Abruf neu zu packen.
433
4345. Aufgenommen werden die Sicherheitskopfzeilen nebst einer Inhaltsrichtlinie.
435 Zwei ihrer Freigaben sind unvermeidlich und in der Vorlage begründet:
436 diejenige für die Instanziierung des Moduls und diejenige für eingebettete
437 Stile, weil die Synopse als blob:-Dokument die Richtlinie der erzeugenden
438 Seite erbt, ihr Stylesheet aber eingebettet trägt.
439
440
441Artikel 4
442Ergänzungen der Oberfläche
443
4441. Die Startseite erhält einen Hinweis für den Fall abgeschalteten JavaScripts;
445 bislang blieb das Formular alsdann wortlos wirkungslos.
446
4472. Es wird ein Sinnbild (favicon.svg) eingeführt und in allen Seiten relativ
448 verwiesen; unter einem Unterpfad griffe der Abruf der Wurzel ins Leere.
449
4503. Die Startseite erhält eine Kurzbeschreibung und die Angabe ihrer kanonischen
451 Adresse; das Stilblatt wird um die Auszeichnung der Überschriften zweiter
452 Ordnung, der Anschriften und der Hinweise ergänzt.
453
454
Matthias Andreas Benkard06da70e2026-08-16 07:34:12 +0200455Artikel 5
456Annahme von Archiven als Stammgesetz
457
458(1) Die Fundstelle des Bundesrechts (gesetze-im-internet.de) gibt das Norm-XML
459 nicht als solches, sondern allein als Archiv aus (…/<Kurzbezeichnung>/
460 xml.zip). Ein solches Archiv wird künftig unmittelbar als Stammgesetz
461 angenommen; der darin enthaltene XML-Eintrag wird ausgepackt.
462
463(2) Es wird die Klasse ZipAuspacker eingeführt. Sie liest das Zentralverzeichnis
464 am Dateiende — nicht die örtlichen Vorspanne, deren Größenangaben bei
465 nachgestellten Beschreibern erst hinter den Daten stehen —, wählt daraus den
466 einzigen auf „.xml“ endenden Eintrag und packt ihn aus. Verzeichniseinträge
467 und das von manchen Betriebssystemen beigefügte Beiwerk bleiben außer
468 Betracht; die Auswahl ist erforderlich, weil die Fundstelle den Gesetzen mit
469 Anlagen deren Bilddateien mit ins Archiv legt.
470
471(3) Das Format wird von Hand gelesen. Der Grund ist folgender: Von den
472 Archivklassen der Laufzeitumgebung trägt in der Browserfassung allein der
473 Entpacker (Inflater), den die Ersetzung InflaterErsatz auf eine reine
474 Java-Umsetzung zurückführt; die übrigen (ZipInputStream, ZipFile, CRC32)
475 beruhen auf Bindungen, die das Übersetzungswerkzeug nicht kennt. Auch die
476 Prüfsumme wird deshalb im Erzeugnis selbst berechnet.
477
478(4) Die Erkennung (DateiTyp) wird um die Art ZIP ergänzt. Ihre Prüfung geht der
479 Prüfung auf PDF voran, weil sie am ersten Byte verankert ist, während jene
480 ein Vorschaufenster durchsucht; ein Archiv mit der Zeichenfolge „%PDF-“ in
481 seinen gepackten Daten wäre sonst als PDF angesprochen worden.
482
483(5) Das Auspacken tritt in Pipeline.ladeStammgesetz vor die Erkennung. Die
484 Änderungsdokumente bleiben unberührt: Gesetzblätter und Drucksachen kommen
485 nirgends als Archiv. Die Quellenzeile der Synopse nennt weiterhin die
486 angegebene Datei (xml.zip), damit der Weg zur Fundstelle zurück erkennbar
487 bleibt.
488
489
490Artikel 6
491Einführung in der Browserfassung
492
493(1) Die Startseite erhält über dem Formular einen zugeklappten Block
494 („Noch keine Dateien? Zwei Beispiele zum Ausprobieren“). Zugeklappt nimmt er
495 eine Zeile ein; das Formular bleibt an seinem Platz.
496
497(2) Der Block nennt die drei Schritte und bietet zwei Fälle mit Verweisen auf die
498 amtlichen Fundstellen an:
499 a) ein verkündetes Änderungsgesetz — das Gesetz gegen den unlauteren
500 Wettbewerb nebst dem Dritten Gesetz zu seiner Änderung (BGBl. 2026 I
501 Nr. 43), neunzehn Befehle an sechs Normen, nichts manuell zu prüfen;
502 b) einen Gesetzentwurf — das Allgemeine Gleichbehandlungsgesetz nebst dem
503 Regierungsentwurf BT-Drs. 21/6178, dreiundzwanzig Befehle an vierzehn
504 Normen, einer zur manuellen Prüfung markiert.
505
506(3) Mitausgeliefert wird nichts; die Seite ruft von sich aus nichts ab. Die
507 Verweise öffnen ein eigenes Fenster, weil ein im selben Fenster geöffnetes
508 Schriftstück die bereits gewählten Dateien aus dem Formular nähme.
509
510(4) Der Hinweis am Feld „Stammgesetz“ nennt nunmehr auch das Archiv. Das
511 Stilblatt wird um die Auszeichnung des Blockes ergänzt; neue Farben treten
512 nicht hinzu, sodass Hell- und Dunkelfassung ohne Zutun stimmen.
513
514
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200515Artikel 7
Matthias Andreas Benkard75583b22026-08-16 10:57:26 +0200516Gestaltung
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200517
Matthias Andreas Benkard75583b22026-08-16 10:57:26 +0200518(1) Das Stilblatt der Seiten (style.css) wird auf Schwarzweiß umgestellt. Die
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200519 bisherige Schmuckfarbe — ein warmes Braun — entfällt ersatzlos; an ihre Stelle
520 tritt die Textfarbe. Die Abrundung der Kästen, Felder und Knöpfe entfällt
521 gleichfalls; gedrucktes Papier trägt keine runden Ecken.
522
523(2) Weil die Schmuckfarbe bislang kenntlich machte, was anklickbar ist, werden die
524 Verweise fortan unterstrichen. Der Knopf kehrt beim Überfahren Grund und
525 Schrift um; die bisherige Aufhellung wäre an einem schwarzen Knopf ohne
526 Wirkung geblieben.
527
Matthias Andreas Benkard75583b22026-08-16 10:57:26 +0200528(3) Farbe verbleibt allein dort, wo sie eine Aussage trägt, und bedeutet überall
529 dasselbe: Rot warnt, Grün bestätigt. Die Hinweiskästen erhalten dazu einen
530 Balken am linken Rand — der Hinweis bei abgeschaltetem JavaScript und die
531 Fehlermeldung einen roten, die Fertigmeldung einen grünen, die Meldung
532 während der Arbeit einen grauen, weil noch nichts feststeht. Die
533 Beschriftungen bleiben, wie sie waren, und benennen den Zustand ohnehin; der
534 Balken hebt den Kasten hervor, er trägt nicht allein.
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200535
Matthias Andreas Benkard75583b22026-08-16 10:57:26 +0200536(4) Das eingebettete Stilblatt der Synopse (HtmlRenderer) behält die Scheidung von
537 Streichung und Einfügung nach Rot und Grün; sie ist am Bildschirm die
538 schnellste. Zu ihr tritt jedoch die Form — durchgestrichen gegen
539 unterstrichen —, dazu die Spalte, in der die Marke steht.
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200540
Matthias Andreas Benkard75583b22026-08-16 10:57:26 +0200541(5) Damit wird ein Mangel behoben: Die Einfügung hob die ihr vom Browser
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200542 zugedachte Unterstreichung bisher ausdrücklich auf. Damit war der grüne Grund
543 das einzige Merkmal, an dem sie zu erkennen war; wer Farben nicht oder anders
544 wahrnimmt oder die Synopse schwarzweiß ausdruckte, sah eine Einfügung
545 überhaupt nicht. Die Unterstreichung wird wiederhergestellt.
546
Matthias Andreas Benkard75583b22026-08-16 10:57:26 +0200547(6) Die Abzeichen an den Normköpfen behalten ihre Farben nach derselben Regel,
548 werden aber in Versalien mit Sperrung gesetzt. Sie sind ohnehin beschriftet;
549 die Farbe bestätigt dort nur, was dasteht.
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200550
551(7) Dem Körper der Synopse werden Schrift- und Grundfarbe ausdrücklich zugewiesen.
552 Der klebende Spaltenkopf übernahm seinen Grund bisher durch Vererbung und
Matthias Andreas Benkard75583b22026-08-16 10:57:26 +0200553 hatte mithin keinen verlässlichen. Für den Druck werden die farbigen Flächen
554 von der Sparschaltung der Browser ausgenommen, damit sie nicht fortfallen.
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200555
556(8) Das Tabellenzeichen (favicon.svg) wird nachgezogen. Es führt die Werte
557 ausgeschrieben, weil ein Tabellenzeichen keine Stilblattgrößen erbt.
558
559
Matthias Andreas Benkard2d33bf72026-08-16 06:40:07 +0200560Schlussbestimmung
561
562Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle
Matthias Andreas Benkard06da70e2026-08-16 07:34:12 +0200563(dreihundertzwölf an der Zahl, darunter acht neue zum Auspacken) bestätigt
564worden. Das Auspacken ist überdies gegen die Fundstelle selbst erprobt worden:
565Das unmittelbar bezogene Archiv des Gesetzes gegen den unlauteren Wettbewerb
566ergibt mit dem Regelungstext des Bundesgesetzblattes dieselbe Synopse wie die
567entpackte Fassung — die Ausfertigungen unterscheiden sich allein in der
568Quellenzeile. Die Inhaltsrichtlinie ist gegen
Matthias Andreas Benkard2d33bf72026-08-16 06:40:07 +0200569die laufende Anwendung erprobt worden: Der Lauf des IfSG-Falles im Browser hat
570unter ihr achtundvierzig angewandte Befehle, siebenundzwanzig zur manuellen
571Prüfung und einundzwanzig geänderte Normen ergeben, mithin dasselbe wie die
572Befehlszeile, und keine Beanstandung hinterlassen; die Erforderlichkeit der
573Freigabe für eingebettete Stile ist dadurch belegt, dass die Synopse ohne sie
574unformatiert erscheint.
575
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200576Die Umstellung des Erscheinungsbildes ist in Augenschein genommen worden, und
577zwar in Hell- und in Dunkelfassung: die Startseite nebst den drei Zuständen der
578Meldung, die Anbieterkennzeichnung sowie eine über die Befehlszeile erzeugte
579Synopse des Gebäudeenergiegesetzes (achtundsechzig angewandte Befehle,
580einundfünfzig zur manuellen Prüfung, siebenundvierzig geänderte Normen, mithin
581dasselbe wie zuvor). Streichung, Einfügung und die drei Abzeichen sind dabei
Matthias Andreas Benkard75583b22026-08-16 10:57:26 +0200582auch dann auseinanderzuhalten, wenn man von ihren Farben absieht.
Matthias Andreas Benkard13c71c52026-08-16 10:12:01 +0200583
Matthias Andreas Benkard2d33bf72026-08-16 06:40:07 +0200584
585════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkard74a84c52026-08-16 06:08:42 +0200586 Fassung vom 15. August 2026,
587 zuletzt geändert durch die am 15. August 2026 vorgenommenen Änderungen
588════════════════════════════════════════════════════════════════════════════════
589
590Das Erzeugnis hat die mehrschrittige Umnummerierungssequenz bislang als eine ihm
591wesenseigene Grenze behandelt und ihre Folgeänderungen dem Abschnitt „Manuell
592prüfen“ zugewiesen. Die Prüfung des bayerischen Belegfalls (Art. 56 des
593Bayerischen Jagdgesetzes, Neunummerierung des Bußgeldkatalogs durch § 1 Nr. 48
594des Gesetzes vom 31. März 2026) hat ergeben, dass es sich um keine Grenze der
595Sache, sondern um drei voneinander unabhängige Mängel gehandelt hat. Sie werden
596mit dieser Fassung behoben.
597
598
599Artikel 1
600Ordnung der Anwendung nach Schritten
601
602(1) Der Anwender (BefehlAnwender) faltet die Befehlsliste vor der Anwendung zu
603 einer Liste von Schritten auf; ein Verbund (Sammelbefehl) liefert je
604 Teilbefehl einen Schritt, jeder andere Befehl einen einzigen. Geordnet
605 werden fortan die Schritte, protokolliert wird unverändert je Befehl.
606
607(2) Der Grund der Trennung ist folgender: Ein Verbund aus einer Umnummerierung
608 und einer Begleitänderung trägt zwei gegenläufige zeitliche Ansprüche. Die
609 Umnummerierung gehört vor denjenigen Befehl, der ihre Bezeichnung neu
610 besetzt; die Begleitänderung gehört an ihre Stelle im Dokument, denn sie
611 setzt die vorangegangenen Punkte als vollzogen voraus. Bislang setzte sich
612 der erste Anspruch für die ganze Einheit durch und zog die Begleitänderung
613 mit sich; sie traf dann auf einen Stand, den das Änderungsgesetz nicht
614 voraussetzt.
615
616(3) Die Ordnungsregel selbst bleibt unverändert („wer eine Bezeichnung räumt,
617 kommt vor demjenigen, der sie neu besetzt“), wird aber nunmehr vollständig
618 durchgesetzt: Vor jedem Schritt laufen erst diejenigen Schritte, die ihm
619 eine Bezeichnung räumen, und vor diesen wiederum die ihren. Eine ringförmige
620 Abhängigkeit bricht ab; die beteiligten Schritte behalten dann ihre
621 Dokumentreihenfolge.
622
623
624Artikel 2
625Erkennung der abgekürzten lokativen Folgeklausel
626
627Das Muster der lokativen Klausel (BefehlErkenner) schloss mit einer Wortgrenze.
628Hinter einem abgekürzten Bezeichnungswort steht jedoch bereits der
629Abkürzungspunkt, und zwischen ihm und dem folgenden Leerzeichen liegt keine
630Wortgrenze; der Klausel entging deshalb jede Kurzform („in Abs. 2 …“, „in
631Buchst. b …“). An die Stelle der Wortgrenze tritt die Bedingung, dass kein
632Buchstabe folgt.
633
634
635Artikel 3
636Auflösung der Aufzählungseinheit ohne eigenen Text
637
638Der Stellenaufloeser (StellenAufloeser) verlangte hinter der Aufzählungsmarke
639Text auf derselben Zeile. Eine Einheit, die sich vollständig in ihre
640Untergliederung ergießt, führt ihre Marke aber allein auf der Zeile (Art. 56
641Abs. 2 Nr. 12 des Bayerischen Jagdgesetzes, darunter nur die Buchstaben a und
642b); sie galt deshalb als nicht auffindbar. Der Text hinter der Marke ist fortan
643wahlfrei.
644
645
646Schlussbestimmung
647
648(1) Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle
649 (dreihundertvier an der Zahl) sowie durch die vollständige Erstellung
650 (mvnw verify) bestätigt worden.
651
652(2) Der bayerische Belegfall weist nunmehr sämtliche einhundertvierundfünfzig
653 Anweisungen als angewandt aus (zuvor einhunderteinundfünfzig); die
654 Ausschussfassung der Beschlussempfehlung zum Gebäudeenergiegesetz weist
655 achtundsechzig statt siebenundsechzig aus. Die übrigen Bezugszahlen des
656 Bundes und der Länder sind unverändert geblieben.
657
658(3) Nicht behoben ist die Stellung eines eingefügten Blocks: Die Anweisung „Nach
659 Nr. 4 werden die folgenden Nrn. 5 bis 7 eingefügt“ (Art. 56 Abs. 1 des
660 Bayerischen Jagdgesetzes) wird angewandt, ihr Block tritt aber an das Ende
661 des Absatzes statt hinter die Nummer 4; ebenso verbleibt der leere
662 Platzhalter „7. (aufgehoben)“ der Altfassung zwischen den Nummern 9 und 10.
663 Beides bestand schon vor dieser Fassung und ist im Belegfall festgehalten.
664
665(4) Ferner ist festgehalten: Die Heilung doppelter Leerzeichen nach einer
666 Streichung (BefehlAnwender) wirkt auf den gesamten Zieltext und verkürzt
667 dabei die Einrückung der Aufzählungszeilen. Auch dies bestand schon zuvor.
668
669
670════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkard7235b342026-08-14 18:58:25 +0200671 Fassung vom 14. August 2026,
672 zuletzt geändert durch die am 14. August 2026 vorgenommenen Änderungen
673════════════════════════════════════════════════════════════════════════════════
674
675Das Erzeugnis nimmt bislang zwei Sorten von Änderungsdokumenten entgegen und
676behandelt sie gleich: verkündete Artikelgesetze und Gesetzentwürfe. Damit fehlt
677ihm die zweite Hälfte des Gesetzgebungsverfahrens — die Dokumente, die einen
678Entwurf ändern statt ein Gesetz. Diese Fassung führt den Begriff der Dokumentart
679ein, wendet Änderungsanträge auf den Entwurf an, auf den sie zielen, und trennt
680die Spalten einer Zusammenstellung.
681
682
683Artikel 1
684Erkennung der Dokumentart
685
686(1) Die Art eines Änderungsdokuments wird nunmehr aus seinem Kopf erschlossen
687(DokumentErkenner, DokumentArt, DokumentKopf). Unterschieden werden das
688verkündete Artikelgesetz, der Gesetzentwurf, der Änderungsantrag, die
689Beschlussempfehlung sowie das Dokument ohne Änderungsbefehle
690(Entschließungsantrag, schlichter Antrag, Plenarprotokoll, Bericht).
691
692(2) Maßgeblich ist allein der Text; der Dateiname bleibt außer Betracht. Die
693Beispieldaten belegen die Notwendigkeit: Die Datei mit dem Namen
694„BT-Drs-21-7071_Beschlussempfehlung.pdf“ enthält einen Entschließungsantrag.
695
696(3) Die Erkennung arbeitet auf dem unbereinigten Extraktionstext, da der
697Textbereiniger gerade diejenigen Drucksachenköpfe entfernt, aus denen Art und
698Nummer hervorgehen. Erfasst werden dabei auch die eigene Drucksachennummer und
699die Nummern der in Bezug genommenen Drucksachen.
700
701(4) Ein Dokument ohne Änderungsbefehle wird übergangen und in der Synopse
702gemeldet; bisher führte es stillschweigend zu keinem Befehl.
703
704(5) Ist an einer Synopse ein Entwurf, ein Antrag oder eine Beschlussempfehlung
705beteiligt, so trägt sie den Hinweis, dass sie eine Entwurfsfassung und nicht
706geltendes Recht zeigt (HtmlRenderer). Die Quellenzeile nennt je Datei die
707erkannte Art.
708
709(6) Die Grenze des Begründungsteils wird für Entwürfe und Anträge um die dort
710üblichen Überschriften erweitert („A. Allgemeiner Teil“, „Zu Artikel 1“); für
711verkündete Gesetze bleibt es bei der schlichten Marke, damit ein Gesetzblatt
712nicht an einem gleichlautenden Wort abbricht (AenderungsgesetzParser).
713
714
715Artikel 2
716Änderungsanträge
717
718(1) Ein Änderungsantrag ändert nicht das Stammgesetz, sondern eine Drucksache.
719Sein Rahmensatz benennt daher zwei Ebenen zugleich: die Stelle in der Drucksache
720und die Stelle in dem Text, den der dort stehende Befehl zitiert. Beide werden
721gesondert geführt (AenderungsantragParser mit den Sätzen DrucksachenStelle und
722MetaBefehl); die Drucksachenstelle wird bewusst nicht als Stelle modelliert, da
723diese eine Fundstelle im Gesetz bezeichnet und ein anderes Bezugssystem meint.
724
725(2) Die Befehle werden auf den Lineartext des Entwurfs angewandt
726(EntwurfsPatcher). Der Gesetzesanwender bleibt unberührt: Ein Entwurf ist kein
727Gesetz, sondern eine Folge von Befehlen, deren Zitate erst künftig Gesetz werden
728sollen; der Antrag greift in eben diese Zitate ein.
729
730(3) Bei der Suche nach der Drucksachenstelle werden die Zitate zeichengleich
731ausgeblendet. Andernfalls gälten die Aufzählungen des zitierten Gesetzestextes
732(„1. Haarwild:“) als Gliederungspunkte der Drucksache und ließen den gesuchten
733Punkt vorzeitig enden.
734
735(4) Welcher Entwurf gemeint ist, entscheidet die vom Antrag genannte
736Drucksachennummer, nicht die Reihenfolge der Argumente (Pipeline). Fehlt der
737Entwurf, bleibt der Antrag unangewandt und wird gemeldet; eine ersatzweise
738Anwendung auf das Stammgesetz unterbleibt, da die Stellenangaben auf die
739Drucksache zielen.
740
741(5) Erkannt wird die elliptische Antragsform, die das Hilfsverb nur einmal in
742der Beschlussformel führt („In Nr. 1.29 die Angabe „,“ am Ende durch die Angabe
743„;“ ersetzt.“). Das fehlende Hilfsverb wird an der Stelle ergänzt, an der es im
744vollständigen Satz stünde (BefehlErkenner).
745
746(6) Das allgemeine Ersetzungsmuster lässt nunmehr den Zusatz „am Ende“ zwischen
747Ziel und „durch“ zu und führt ihn als solchen. Bisher kannte diesen Zusatz nur
748das Muster für Satzzeichen.
749
750(7) Der Stellenparser nimmt gestufte Nummern an („Nr. 1.29“), wie sie in
751dezimal durchgezählten Listen vorkommen.
752
753
754Artikel 3
755Zusammenstellung einer Beschlussempfehlung
756
757(1) Die Zusammenstellung stellt links den Entwurf und rechts die Beschlüsse des
758Ausschusses gegenüber. Anders als beim alten Bundesgesetzblatt und beim Gesetz-
759und Verordnungsblatt für Berlin stehen die Spalten nicht nacheinander im
760Inhaltsstrom, sondern zeilenweise verschränkt; sie werden daher erstmals anhand
761der Koordinaten getrennt (FontgroessenFilter, PatchTextExtraktor).
762
763(2) Geschnitten wird an der Blattmitte, jedoch nur dort, wo ein tatsächlicher
764Spaltensteg vorliegt. Eine über die Blattmitte durchlaufende Zeile ist
765ganzseitenbreit (Vorblatt, Bericht, Seitenkopf); sie bleibt ungeschnitten und
766wird der linken Spalte zugeschlagen, damit sie genau einmal erscheint.
767
768(3) Der gesperrt gesetzte Vermerk der Ausschussspalte wird auf seine Normalform
769gebracht, der laufende Spaltenkopf als Kolumnentitel entfernt (TextBereiniger).
770
771(4) Die Auflösung der rechten Spalte unterbleibt einstweilen. Sie druckt
772Unverändertes nicht ab, sondern vermerkt es — und zwar nicht nur je
773Gliederungspunkt, sondern auch zeilenweise innerhalb zitierter Blöcke. Die
774rechte Spalte ist damit für sich genommen kein vollständiges Dokument; ihre
775Anführungszeichen gehen nicht auf. Eine Auflösung über die Gliederungspfade
776allein wurde erprobt und ist daran gescheitert; erforderlich ist die zeilenweise
777Zuordnung beider Spalten über ihre gemeinsame Grundlinie im Satzspiegel. Bis
778dahin wird eine Beschlussempfehlung erkannt und unter Angabe des Grundes
779übergangen, verbunden mit dem Hinweis auf die Drucksachennummer des Entwurfs,
780der sich stattdessen eignet.
781
782
783Artikel 4
784Prüffälle
785
786(1) Es treten hinzu: die Einordnung von zwölf Beispieldokumenten nach ihrer Art
787(DokumentErkennerTest), das Lesen und Anwenden eines Änderungsantrags
788(AenderungsantragParserTest, EntwurfsPatcherTest) sowie vier Fälle in
789EndToEndTest — der Antrag der Fraktion BÜNDNIS 90/DIE GRÜNEN zum bayerischen
790Jagdgesetz (Ltg.-Drs. 19/10365), die Unberührtheit des Stammgesetzes durch
791ebendiesen Antrag, die Spaltentrennung der Zusammenstellung zur Drucksache
79220/7619 und die Behandlung eines Entschließungsantrags.
793
794(2) Der Antragsfall belegt beides: Der Antrag streicht den Goldschakal aus der
795Artenliste des neuen § 18 der Ausführungsverordnung und schließt die Aufzählung
796mit einem Semikolon ab; die Synopse des Bayerischen Jagdgesetzes bleibt dabei
797zu Recht unverändert, weil der Antrag auf einen Paragraphen des Entwurfs zielt,
798der die Verordnung und nicht das Gesetz ändert.
799
800(3) Die Spaltentrennung wird daran gemessen, dass die linke Spalte der
801Zusammenstellung Befehl für Befehl den Regierungsentwurf ergibt, aus dem sie
802gebaut ist (117 Befehle, wie aus Drucksache 20/6875).
803
804
805Artikel 5
806Handbuch
807
808Das Handbuch (README.adoc) erhält den Abschnitt „Quellformate: Gesetz, Entwurf,
809Antrag“. Die bisherige Angabe, Meta-Änderungen an Drucksachen seien bewusst
810nicht abgedeckt, entfällt. Das Hinweisfeld der Web-Anwendung nennt die nunmehr
811zulässigen Dokumentarten.
812
813
814════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkardc86a73a2026-07-26 08:02:10 +0200815 Fassung vom 26. Juli 2026,
816 zuletzt geändert durch die am 26. Juli 2026 vorgenommenen Änderungen
817════════════════════════════════════════════════════════════════════════════════
818
819Der zweispaltige Belegfall Berlin (Gesetz zur Änderung des Allgemeinen
820Sicherheits- und Ordnungsgesetzes und des LAF-Errichtungsgesetzes vom 3. Juni
8212026, GVBl. S. 234) wird untersucht. Der Befund widerlegt die bisherige Annahme:
822Die Reihenfolge des Inhaltsstroms ist bereits die Lesereihenfolge; eine
823koordinatenbasierte Spaltenerkennung ist nicht erforderlich. Die tatsächlichen
Matthias Andreas Benkard81777012026-07-26 08:53:10 +0200824Hindernisse liegen anderswo — davon werden vier behoben. Von den sechs Befehlen
825des Heftes werden danach fünf erkannt.
Matthias Andreas Benkardc86a73a2026-07-26 08:02:10 +0200826
827
828Artikel 1
829Eingebettetes Rahmenziel in Paragraphenform
830
831Der Änderungsgesetz-Parser (AenderungsgesetzParser) übernahm ein in der
832Änderungsformel selbst genanntes Ziel („§ 2 Satz 1 des Gesetzes zur Errichtung
833eines Landesamtes … wird wie folgt geändert:“) nicht als Kontext der
834nachfolgenden Gliederungspunkte. Ursache war die vordere Wortgrenze des Musters
835EINGEBETTETES_ZIEL: „§“ ist selbst kein Wortzeichen, eine Wortgrenze davor
836verlangte also ein vorangehendes Wortzeichen. Der §-Zweig des Musters war damit
837unerreichbar und allein der bayerische „Art.“-Zweig wirksam. An die Stelle der
838Wortgrenze tritt nunmehr die Bedingung, dass kein Buchstabe und keine Ziffer
839vorangeht.
840
841
842Artikel 2
843Laufender Seitenkopf des Gesetz- und Verordnungsblatts für Berlin
844
845Der laufende Seitenkopf des GVBl. für Berlin („235Gesetz- und Verordnungsblatt
846für Berlin 82. Jahrgang Nr. 17 11. Juni 2026“) steht im Inhaltsstrom nicht auf
847einer eigenen Zeile, sondern klebt samt Seitenzahl mitten im Fließtext der
848folgenden Spalte. Er ist deshalb nicht als Kolumnentitel zu entfernen, sondern
849aus dem laufenden Text herauszuschneiden (TextBereiniger, Muster
850GVBL_BERLIN_KOPF).
851
852
853Artikel 3
854Prüffall Berlin
855
856Ein Test bis einschließlich der Befehlserkennung tritt hinzu
857(EndToEndTest.asogLafAendGBerlin). Er hält das Ergebnis des Spaltenspikes fest —
858die Befehle beider Artikel stehen unverschränkt in Lesereihenfolge — und prüft,
859dass die beiden Punkte des Artikels 2 ihr Ziel aus der Änderungsformel erben.
860
861Ein voller Akzeptanztest ist nicht möglich: gesetze.berlin.de ist wie das
Matthias Andreas Benkard81777012026-07-26 08:53:10 +0200862schleswig-holsteinische Portal eine anmeldepflichtige juris-Anwendung.
863
864
865Artikel 4
866Unnummerierte, benannte Anlagen
867
868Ein Gesetz mit einer einzigen Anlage benennt sie nach der Vorschrift, zu der sie
869gehört („Die Anlage zu § 2 Absatz 4 Satz 1“). Der Stellenparser (StellenParser)
870verlangte hinter „Anlage“ stets eine Nummer und wies solche Angaben zurück; der
871Rahmenbefehl des Artikels 1 blieb deshalb unerkannt und seine Unterpunkte ohne
872Kontext. Die Anlage trägt nunmehr — wie der „Anhang“ — die Bezeichnung „Anlage“.
873Der benennende Zusatz wird übersprungen: Er reicht bis zum Ende der
874Stellenangabe, und würde er mitgelesen, so läse der Parser das darin genannte
875„§ 2“ als Änderungsziel und änderte die falsche Norm.
876
877Damit ist zugleich die Annahme der Fassung vom 26. Juli 2026 richtigzustellen:
878Anlagen sind als Änderungsziel unterstützt (im gii-XML sind sie eigene Normen,
879Stelle.anlagenEnbez() löst sie auf). Offen bleibt allein, dass der
880Landesrecht-Textparser keine Anlagen-Normköpfe kennt, eine handgepflegte
881Stammfassung also keine Anlage tragen kann.
882
883
884Artikel 5
885Steuerzeichen und zerrissene Befehlsvokabeln
886
887Der Textbereiniger (TextBereiniger) entfernt nunmehr C0-Steuerzeichen außer
888Tabulator und Zeilenumbruch (Muster STEUERZEICHEN). Im GVBl. für Berlin trägt
889der Einzug der Aufzählungsglieder ein U+0007; es steht unsichtbar vor dem Befehl
890und ließ dessen Zeilenanfangs-Anker ins Leere greifen. Ebenso werden
891Befehlsvokabeln zusammengeführt, die der amtliche Satz durch ein Leerzeichen
892zerreißt („ein gefügt“ statt „eingefügt“) — beschränkt auf Fügungen, die als
893Wortfolge im Deutschen nicht vorkommen.
894
895Von den vier Befehlen des Artikels 1 werden damit drei erkannt. Der vierte
896bestimmt die Einfügestelle über einen Wortanker („Vor den Wörtern „Aus dem
897Bereich Verkehr:“ wird folgender Absatz 5 eingefügt“); eine Struktureinfügung
898trägt bislang nur eine Stellenangabe. Beides ist in
899sampledata/Landesrecht-Beispiele.adoc vermerkt.
Matthias Andreas Benkardc86a73a2026-07-26 08:02:10 +0200900
901
902════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkard519c1e72026-07-25 09:11:56 +0200903 Fassung vom 25. Juli 2026,
904 zuletzt geändert durch die am 25. Juli 2026 vorgenommenen Änderungen
905════════════════════════════════════════════════════════════════════════════════
906
Matthias Andreas Benkard35e90f42026-07-25 10:00:36 +0200907Der Abschluss der sechsten und der Beginn der siebten Ertüchtigungswelle: Zwei
908weitere Belegfälle treten hinzu.
909
910Schleswig-Holstein (Artikel 1 bis 4): das Gesetz zur Änderung des Gesetzes zur
911Änderung kommunalrechtlicher Vorschriften vom 26. März 2026 (GVOBl. Schl.-H.
9122026/27). Es führt drei bislang unbekannte Eigenheiten ein — den laufenden Seiten-
913kopf des GVOBl. Schleswig-Holstein, hochgestellte Fußnotenmarker an den Artikel-
914Überschriften und einen Flattersatz, in dem die geometrische Randerkennung
915versagt. Ein voller Akzeptanztest bleibt vorerst aus, weil die konsolidierte
916Gemeindeordnung aus freien Quellen nicht in der maßgeblichen Fassung zu
917beschaffen ist.
918
919Nordrhein-Westfalen (Artikel 5 bis 7): Artikel 3 des 22. Rundfunkänderungsgesetzes
920vom 24. März 2026 (GV. NRW. S. 202) ändert das Telemedienzuständigkeitsgesetz.
921Alle vier Befehle werden erkannt und angewandt; das Ergebnis ist gegen die
922amtliche Fassung vom 1. April 2026 abgeglichen. Dazu werden die Trennung von
923Kurztitel und Abkürzung im Klammerzusatz und eine Strukturgrenze für unbalancierte
924Anführungszeichen nötig.
Matthias Andreas Benkard519c1e72026-07-25 09:11:56 +0200925
Matthias Andreas Benkard83ba9f02026-07-25 10:35:45 +0200926Schließlich (Artikel 8 bis 10) werden die beiden niedersächsischen Einfügeformen
927ertüchtigt, die bislang als Grenze dokumentiert waren; das Niedersächsische
928ELER-Fördergesetz wird damit ohne Rest umgesetzt.
929
Matthias Andreas Benkard519c1e72026-07-25 09:11:56 +0200930
931Artikel 1
932Seitenkopf des Gesetz- und Verordnungsblatts für Schleswig-Holstein
933
934Der Textbereiniger (TextBereiniger.istKolumnentitel) entfernt nunmehr auch den
935zweizeiligen Titelkopf und den laufenden Seitenkopf des Gesetz- und Verordnungs-
936blatts für Schleswig-Holstein („Gesetz- und Verordnungsblatt für Schleswig-
937Holstein“ nebst „2026/27 vom 30. März“, Muster GVOBL_SH_KOPF, GVOBL_SH_LAND und
938GVOBL_SH_HEFT). Der laufende Kopf steht zwischen zwei Artikeln und klebte sonst
939an der folgenden Artikel-Überschrift.
940
941
942Artikel 2
943Fußnotenmarker an Artikel-Überschriften
944
945Schleswig-Holstein verweist an der Artikel-Überschrift eines Änderungsgesetzes
946mit einer hochgestellten Ziffer auf die Gliederungsnummer-Fußnote am Seitenfuß
947(„Artikel 1 ¹)“). Solche Überschriften genügten dem Muster der Artikel-Teilung
948(AenderungsgesetzParser.ARTIKEL_UEBERSCHRIFT) nicht. Der Textbereiniger streift
949den Marker nunmehr ab (TextBereiniger.loeseArtikelFussnoten, Muster
950ARTIKEL_FUSSNOTE) und trennt dabei eine in derselben Zeile stehende Einleitung
951wieder ab.
952
953
954Artikel 3
955Silbentrennung bei hartem Zeilenende
956
957Der Textbereiniger (TextBereiniger.verbindeUmbrueche) zog eine Silbentrennung am
958Zeilenende bislang nie zusammen, wenn die geometrische Randerkennung des
959Fontgrößenfilters ein hartes Zeilenende meldete. Im Flattersatz — wie ihn das
960GVOBl. Schl.-H. verwendet — findet diese Erkennung jedoch keinen Ausrichtungs-
961Cluster und stuft auch volle Zeilen als hart ein. Klebt der Trennstrich ohne
962Trailing-Whitespace am Zeilenende, ist er deshalb nunmehr auch dort als
963Silbentrennung zu lesen; bewusst gesetzte Suspensivstriche tragen den Trailing-
964Whitespace des Extraktors und bleiben unberührt.
965
966
967Artikel 4
968Belegfall Kommunalrecht-Änderungsgesetz Schleswig-Holstein
969
970Als weiterer Prüffall tritt ein Test bis einschließlich der Befehlserkennung
971hinzu (EndToEndTest.kommunalrechtAendGSchleswigHolstein): Artikel 1 trifft die
972Gemeindeordnung, Artikel 2 die Kreisordnung, Artikel 3 ein anderes Änderungs-
973gesetz; je Zielgesetz wird genau ein Neufassungsbefehl („§ 34a Absatz 1 erhält
974folgende Fassung“, „§ 29a Absatz 1 …“) erkannt, kein Befehl bleibt unbekannt.
975Ein voller Akzeptanztest ist nicht möglich: Das Landesportal
976gesetze-rechtsprechung.sh.juris.de gibt seine Dokumentinhalte nur über eine
977anmeldepflichtige Schnittstelle aus, und die letzte frei archivierte Gesamt-
978ausgabe der Gemeindeordnung (14. November 2022) kennt den geänderten § 34a noch
979nicht. Die Fundstelle ist in sampledata/Landesrecht-Beispiele.adoc vermerkt.
980
981
Matthias Andreas Benkard35e90f42026-07-25 10:00:36 +0200982Artikel 5
983Kurztitel und Abkürzung im Klammerzusatz
984
985Der Landesrecht-Textparser (LandesRechtTextParser) las den Klammerzusatz der
986Titelzeile stets als Abkürzung. Landesgesetze führen dort jedoch häufig Kurztitel
987und Abkürzung nebeneinander („(Telemedienzuständigkeitsgesetz – TMZ-Gesetz)“,
988„(Gemeindeordnung – GO –)“), und das Änderungsgesetz zitiert das Stammgesetz mit
989dem Kurztitel, nicht mit der Abkürzung; die Artikelauswahl
990(AenderungsgesetzParser.betrifft) griff deshalb nicht. Der Parser trennt den
991Klammerzusatz nunmehr am Gedankenstrich (Muster KURZTITEL_TRENNER) und führt den
992Kurztitel als Kurzüberschrift des Gesetzes.
993
994
995Artikel 6
996Strukturgrenze bei unbalancierten Anführungszeichen
997
998Der Zitatextraktor (ZitatExtraktor) schlug den gesamten Folgetext einem Zitat zu,
999wenn im amtlichen Satz ein schließendes Anführungszeichen fehlte. Im 22. Rundfunk-
1000änderungsgesetz (Artikel 2 Nr. 11) ist das der Fall; das offene Zitat verschlang
1001dort die Artikel 3 bis 5, sodass überhaupt kein Änderungsbefehl mehr gefunden
1002wurde. Ein Änderungsgesetz zitiert jedoch nie über eine Artikel-Überschrift
1003hinweg. Der Extraktor schließt ein offenes Zitat deshalb vor einer Zeile, die nur
1004aus „Artikel N“ besteht, und meldet dies als Warnung. Zitierte Paragraphen bleiben
1005unberührt, weil das bayerische Landesrecht seine Normköpfe als „Art. N“ führt.
1006
1007
1008Artikel 7
1009Belegfall Telemedienzuständigkeitsgesetz
1010
1011Als weitere Beispieldaten treten die konsolidierte Vorfassung des TMZ-Gesetzes
1012(sampledata/NRW/TMZ-Gesetz-alt.txt, kanonischer Klartext, Fassung vom 27. April
10132022 aus der Fassungshistorie von recht.nrw.de) und ein End-to-End-Akzeptanztest
1014(EndToEndTest.tmzGesetzAcceptance) hinzu: Von den vier Befehlen des Artikels 3
1015werden alle angewandt — die Neufassung der Gesetzesüberschrift, die Neufassung des
1016§ 1 Absatz 2, die Fundstellen-Ersetzung im Satzteil vor Nummer 1 des § 2 und die
1017Neufassung der Nummern 1 und 2 des § 2. Die Artikel 1, 2 und 4 desselben Heftes
1018(WDR-Gesetz, Landesmediengesetz, Siebzehnter Rundfunkänderungsstaatsvertrag
1019Ausführungsgesetz) werden zutreffend nicht gewählt.
1020
1021
Matthias Andreas Benkard83ba9f02026-07-25 10:35:45 +02001022Artikel 8
1023Sachnummern mit Leerzeichen
1024
1025Niedersachsen zitiert eingeschobene Paragraphen mit einem Leerzeichen vor der
1026Sachnummer („§ 2 a“), die übrige Rechtssprache ohne („§ 2a“). Stellen- und
1027Ebenenparser erkannten die niedersächsische Form nicht. Der Textbereiniger zieht
1028sie nunmehr auf die kanonische Form zusammen (Muster SACHNUMMER_MIT_LEERZEICHEN);
1029ein folgender Aufzählungsmarker des Änderungsgesetzes („… nach § 8 c) In Absatz 2
1030…“) bleibt ausgenommen.
1031
1032
1033Artikel 9
1034Gliederungsbezogene Einfügung eines Paragraphen
1035
1036Der Befehlserkenner (BefehlErkenner) erkannte die Einfügung eines Paragraphen nur
1037in der ankergeführten Form („Nach § 12 wird der folgende § 13 angefügt“). Die
1038gliederungsbezogene Form „In Kapitel 4 wird nach § 12 der folgende neue § 13
1039angefügt“ tritt hinzu (Muster STRUKTUR_EINFUEGUNG_IN_GLIEDERUNG); die
1040Gliederungsangabe nennt nur den Abschnitt, maßgeblich für die Position bleibt der
1041Anker. Zugleich wird das Beiwort „neu“ in beiden Formen zugelassen.
1042
1043
1044Artikel 10
1045Vorrang der Umnummerierung vor der Neubesetzung
1046
1047Der Befehlsanwender (BefehlAnwender) wandte die Befehle stets in der Reihenfolge
1048des Änderungsgesetzes an. Besetzt eine Einfügung einen Paragraphen neu, dessen
1049bisheriger Träger erst durch einen nachfolgenden Befehl umnummeriert wird („In
1050Kapitel 4 wird nach § 12 der folgende neue § 13 angefügt“ vor „Der bisherige § 13
1051wird § 14“), so führte das auf zwei Paragraphen gleicher Bezeichnung und die
1052Einfügung wurde zurückgewiesen. Das Wort „bisherig“ bezeichnet den Stand vor der
1053Änderung; die Umnummerierung geht der Neubesetzung sachlich voraus und wird
1054deshalb vorgezogen (BefehlAnwender.anwendungsReihenfolge). Protokolliert wird
1055weiterhin in der Reihenfolge des Änderungsgesetzes.
1056
1057
Matthias Andreas Benkard519c1e72026-07-25 09:11:56 +02001058════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkard3f81add2026-07-24 05:34:32 +02001059 Fassung vom 24. Juli 2026,
1060 zuletzt geändert durch die am 24. Juli 2026 vorgenommenen Änderungen
1061════════════════════════════════════════════════════════════════════════════════
1062
1063Die sechste Ertüchtigungswelle wird um den ersten nichtbayerischen Landesrecht-
1064Belegfall ergänzt: das paragraphengegliederte Sächsische Beamtenversorgungsgesetz
1065(SächsBeamtVG) in seiner Fassung vom 1. Februar 2025 nebst dem Gesetz zur Änderung
1066des SächsBeamtVG vom 13. April 2026 (SächsGVBl. S. 134). Alle fünf Befehle werden
1067erkannt und angewandt. Dazu wird der Landesrecht-Textparser um die in den meisten
1068Ländern übliche arabische Gliederungsform ertüchtigt und die Fußzeile der revosax-
1069Volltextausgabe als Kolumnentitel entfernt.
1070
1071
1072Artikel 1
1073Arabische, schlüsselwort-erste Gliederungs-Überschriften
1074
1075Der Landesrecht-Textparser (LandesRechtTextParser) erkannte Gliederungs-
1076Überschriften bislang allein in der bayerischen Form „I. Abschnitt Titel“ (römische
1077Zählung, nachgestelltes Schlüsselwort). Die übrigen Länder gliedern in der Form
1078„Abschnitt 1“, „Unterabschnitt 2“, „Teil 3“ (arabische Zählung, vorangestelltes
1079Schlüsselwort, Titel auf der Folgezeile). Der Parser wird um ein entsprechendes
1080Muster (GLIEDERUNG_ARABISCH) ergänzt, das solche Überschriften — nach der
1081kanonischen Zusammenführung von Schlüsselwort, Nummer und Titel auf eine Zeile —
1082als Gliederungsgrenzen erkennt. Das bayerische Verhalten bleibt unberührt.
1083
1084
1085Artikel 2
1086Fußzeile der revosax-Volltextausgabe
1087
1088Der Textbereiniger (TextBereiniger.istKolumnentitel) entfernt nunmehr auch die
1089Fußzeile der Volltextausgaben des sächsischen Rechtsportals revosax
1090(„https://www.revosax.sachsen.de Fassung vom 13.04.2026 Seite 1 von 1“, Muster
1091REVOSAX_FUSS), die Herausgeber-URL, Fassungsdatum und Seitenangabe trägt.
1092
1093
1094Artikel 3
1095Belegfall Sächsisches Beamtenversorgungsgesetz
1096
1097Als Beispieldaten treten die konsolidierte Vorfassung des SächsBeamtVG
1098(sampledata/Sachsen/SaechsBeamtVG-alt.txt, kanonischer Klartext, aus der
1099archivierten revosax-Volltextfassung abgeleitet) und ein End-to-End-Akzeptanztest
1100(EndToEndTest.saechsBeamtVgAcceptance) hinzu: Die Ersetzungen in § 47 (Einmalige
1101Unfallentschädigung) und die Neufassung des § 80 Absatz 1 Satz 2 (Allgemeine
1102Anpassung) werden vollständig angewandt, ohne Rest.
1103
1104
Matthias Andreas Benkard43e91612026-07-24 22:29:35 +02001105Artikel 4
1106Normköpfe tragen keine ganzen Sätze
1107
1108Der Landesrecht-Textparser (LandesRechtTextParser) las einen am Zeilenanfang
1109stehenden Querverweis-Satz („§ 7 GAPInVeKoSG findet entsprechend Anwendung.“) als
1110Normkopf „§ 7“, wodurch die dazwischenliegenden Normen der Monotonie-Prüfung zum
1111Opfer fielen. Ein Normkopf trägt jedoch eine Überschrift, keinen ganzen Satz;
1112deshalb schließt das Normkopf-Muster nunmehr Titel aus, die auf einen Punkt enden.
1113
1114
1115Artikel 5
1116Fußzeile und Herausgeberzeile des Niedersächsischen GVBl
1117
1118Der Textbereiniger (TextBereiniger.istKolumnentitel) entfernt nunmehr auch die
1119laufende Fußzeile des Niedersächsischen Gesetz- und Verordnungsblatts („Nds. GVBl.
11202026 Nr. 10 vom 4. Februar 2026 Seite 2“) und die Herausgeberzeile. Die zwischen
1121zwei Aufzählungsgliedern stehende Fußzeile hängte sich sonst an das voranstehende
1122Neufassungs-Zitat, sodass dessen Satzende-Anker nicht mehr griff.
1123
1124
1125Artikel 6
1126Belegfall Niedersächsisches ELER-Fördergesetz
1127
1128Als weitere Beispieldaten treten die konsolidierte Fassung des seit 2022
1129unveränderten NEFG (sampledata/Niedersachsen/NEFG-alt.txt, kanonischer Klartext,
1130aus dem zweispaltig gesetzten Nds. GVBl 2022 Nr. 33 abgeleitet) und ein
1131End-to-End-Akzeptanztest (EndToEndTest.nefgAcceptance) hinzu: Von den sieben
1132Befehlen werden fünf angewandt — darunter zwei Neufassungen „erhält folgende
1133Fassung“ (§ 1 Abs. 1, § 2), die Angaben-Ersetzung in § 1 Abs. 5, die
1134Wörter-Einfügung in § 6 Abs. 1 und die Umnummerierung § 13 → § 14. Zwei
1135Einfügeformen bleiben als „manuell prüfen“ stehen (bewusst dokumentierte Grenze):
1136die Einfügung eines §-Blocks mit durch Leerzeichen getrennter Sachnummer („§ 2 a“)
1137sowie die kapitelbezogene §-Block-Einfügung („In Kapitel 4 wird nach § 12 …
1138angefügt“).
1139
1140
Matthias Andreas Benkard3f81add2026-07-24 05:34:32 +02001141════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkardc2b57de2026-07-19 10:15:00 +02001142 Fassung vom 19. Juli 2026,
1143 zuletzt geändert durch die am 19. Juli 2026 vorgenommenen Änderungen
1144════════════════════════════════════════════════════════════════════════════════
1145
1146In einer sechsten Ertüchtigungswelle wird das Erzeugnis über das bayerische
1147Landesrecht hinaus für das Landesrecht der übrigen Länder vorbereitet. Da diese
1148ihre Stammgesetze — anders als Bayern — in Paragraphen gliedern, wird der
1149bayerische Lader zu einem gemeinsamen Landesrecht-Lader verallgemeinert, der das
1150Sigel (§ oder Art.) je Norm aus dem Text ableitet; der Superskript-Modus folgt
1151nunmehr datengetrieben der Schreibweise des Stammgesetzes. Ferner wird die in
1152mehreren Ländern übliche Neufassungsform „erhält folgende Fassung“ erkannt. Als
1153Beispieldaten sind bereits Änderungsgesetze aus acht Ländern hinterlegt
1154(sampledata: Berlin, Schleswig-Holstein, Hessen, Niedersachsen, Baden-Württem-
1155berg, Nordrhein-Westfalen, Sachsen, Thüringen); ihre konsolidierten Stammfassungen
1156und die dazugehörigen Akzeptanzfälle folgen in weiteren Fassungen dieser Welle.
1157
1158
1159Artikel 1
1160Verallgemeinerung des bayerischen Laders zu einem Landesrecht-Lader
1161
1162Die Klassen BayRechtLoader und BayRechtTextParser (Paket gesetz.bayern) werden zu
1163LandesRechtLoader und LandesRechtTextParser (Paket gesetz.land) verallgemeinert.
1164Der Normkopf erkennt statt allein „Art. N“ nunmehr „§ N“ wie „Art. N“ und leitet
1165das Sigel je Norm aus dem Treffer ab (Norm.enbez), sodass die Gliederung des
1166jeweiligen Landes ohne ein eigenes Land-Merkmal folgt. Das Querverweis-
1167Schlüsselwort im Normkopf wird nur noch als ganzes Wort ausgeschlossen, damit ein
1168Normtitel wie „Satzungen“ nicht am Verweis-Wort „Satz“ scheitert; die
1169Juris-Abkürzung darf mehrteilig sein („(GO NRW)“). Das bayerische Verhalten
1170bleibt unverändert.
1171
1172
1173Artikel 2
1174Datengetriebener Superskript-Modus aus der Stammfassung
1175
1176Ob ein Änderungsgesetz mit Erhalt der hochgestellten amtlichen Satznummern
1177extrahiert wird, richtet sich nicht mehr danach, ob das Stammgesetz als gii-XML
1178vorliegt, sondern danach, ob die geladene Stammfassung selbst amtliche Satznummern
1179am Satzanfang trägt (Superskript.traegtSatznummern). Damit erhalten das bayerische
1180Landesrecht und das niedersächsische Recht ihre Superskripte, das Bundesrecht und
1181die Länder ohne amtliche Satzzählung verwerfen sie wie bisher.
1182
1183
1184Artikel 3
1185Erkennung der Neufassungsform „erhält folgende Fassung“
1186
1187Der Befehlserkenner erkennt die Neufassung nunmehr auch in der in Schleswig-
1188Holstein und Niedersachsen üblichen Form „… erhält (erhalten) folgende Fassung:“,
1189neben der bisherigen Form „… wird (werden) wie folgt gefasst:“. Die Erweiterung
1190ist rein zusätzlich (Verb-Baustein NEUFASSUNG_VERB) und lässt die Muster des
1191Bundes- und des bayerischen Rechts unberührt.
1192
1193
1194════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkard63112272026-07-17 05:10:53 +02001195 Fassung vom 17. Juli 2026,
1196 zuletzt geändert durch die am 17. Juli 2026 vorgenommenen Änderungen
1197════════════════════════════════════════════════════════════════════════════════
1198
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +02001199Auf Grund eines gemeldeten Wiedergabefehlers wird der Textbereiniger um eine
1200geometrische Zeilenend-Klassifikation auf Basis von PDFBox-Koordinaten ergänzt;
1201ferner wird die Strukturierung hängend eingerückter Definitionslisten (z.B. im
1202UWG-Anhang) sowohl im PDF-Extraktor als auch im XML-Flattener vereinheitlicht.
Matthias Andreas Benkard63112272026-07-17 05:10:53 +02001203
Matthias Andreas Benkard65eff082026-07-18 12:24:32 +02001204Sodann wird das Erzeugnis in einer fünften Ertüchtigungswelle für das Landes-
1205recht des Freistaates Bayern ertüchtigt (Artikel 4 bis 10): Stammgesetze in
1206Artikel-Gliederung aus der konsolidierten Fassung von gesetze-bayern.de,
1207paragraphengegliederte Änderungsgesetze aus dem Bayerischen Gesetz- und
1208Verordnungsblatt und aus Landtags-Drucksachen, amtliche Satznummern als
1209Superskripte sowie die bayerischen Befehlsformen. Belegfall ist das Gesetz zur
1210Änderung des Bayerischen Jagdgesetzes und weiterer Rechtsvorschriften vom
121126. März 2026 (GVBl. S. 113) nebst Regierungsentwurf (Ltg-Drs. 19/9707).
1212
Matthias Andreas Benkard63112272026-07-17 05:10:53 +02001213
1214Artikel 1
Matthias Andreas Benkardf20828f2026-07-18 08:57:22 +02001215Geometrische Klassifikation der Zeilenenden nach Ausrichtungs-Clustern
Matthias Andreas Benkard63112272026-07-17 05:10:53 +02001216
1217Der Textbereiniger (TextBereiniger.verbindeUmbrueche) zog eine Zeile, die ohne
1218Leerraum am Ende mit einem Buchstaben schließt und deren Folgezeile klein
1219beginnt, bislang stets ohne Trennzeichen mit der Folgezeile zusammen, in der
1220Annahme, es handle sich um eine bei der PDF-Extraktion um den Bindestrich
1221gebrachte Silbentrennung. Diese Annahme trifft auf einen bewussten Wortgrenzen-
1222Umbruch (etwa das Stichwort einer hängend eingerückten Definition, wie er im
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +02001223Anhang zum UWG vorkommt) nicht zu. Zur Behebung bestimmt der PDF-Vorverarbeiter
Matthias Andreas Benkardf20828f2026-07-18 08:57:22 +02001224(FontgroessenFilter) das geometrische End-X jeder Zeile (unter Flush auch am
1225Seitenende, damit die letzte Zeile einer Seite nicht die erste der Folgeseite
1226verfälscht) und klassifiziert die Zeilenenden anhand von Ausrichtungs-Clustern
1227in einem Fenster von 20 Zeilen davor/danach: Ein Zeilenende ist weich, wenn
1228mindestens fünf Fensterzeilen (auf vier Punkt genau) gleich ausgerichtet enden
1229(Satzspiegelrand des Blocksatzes), und hart, wenn ein solcher Rand mindestens
1230zehn Punkt oberhalb des Zeilenendes verläuft — dort wäre noch Platz gewesen,
1231der Umbruch ist mithin gewollt. Cluster statt eines Fenster-Perzentils, weil am
1232Spaltenwechsel des zweispaltigen alten Bundesgesetzblatts beide Spaltenränder
1233in ein Fenster fallen; maßgeblich ist der Rand, an dem die Zeile selbst
1234ausgerichtet ist. Der Textbereiniger zieht markerlose Umbrüche nur noch bei
1235weichen Zeilenenden zusammen (in Ermangelung von Geometriedaten näherungsweise
1236nach Zeichenzahl wie bisher), nie jedoch vor einer Folgezeile, die mit einem
1237Aufzählungsmarker („d)“, „3.“) beginnt.
Matthias Andreas Benkard63112272026-07-17 05:10:53 +02001238
1239
1240Artikel 2
Matthias Andreas Benkardf20828f2026-07-18 08:57:22 +02001241Zusammenzug weicher und Erhaltung harter Umbrüche
1242
1243Nach den Einzelzusammenzügen fügt der Textbereiniger geometrisch weiche
1244Zeilenenden mit einem Leerzeichen zu Fließtext zusammen (Reflow); harte und
1245unklassifizierte Umbrüche bleiben erhalten. Nach der Bereinigung ist damit
1246jeder verbleibende Zeilenumbruch nach bester Einschätzung beabsichtigt, weshalb
1247die Zitat-Normalisierung des Befehlsanwenders (normalisiereZitatText) Umbrüche
1248nicht mehr zu Leerzeichen faltet. Ausgenommen vom Reflow sind Strukturzeilen
1249(„Artikel 2“, „§ 19“, allein stehende Gliederungs-Bezeichnungen): Gleich
1250breite, zentrierte Überschriften in Serie bilden ein Schein-Cluster, der Parser
1251benötigt sie jedoch allein auf der Zeile.
1252
1253
1254Artikel 3
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +02001255Strukturierung und Normalisierung hängend eingerückter Definitionslisten
Matthias Andreas Benkard63112272026-07-17 05:10:53 +02001256
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +02001257Damit die nunmehr erhaltenen hängenden Zeilenenden in Definitionslisten (wie
Matthias Andreas Benkardf20828f2026-07-18 08:57:22 +02001258beim UWG-Anhang oder in § 2 IfSG) korrekt strukturiert werden:
12591. Der XML-Flattener (ContentFlattener) trennt mehrere <LA>-Geschwister innerhalb
1260 eines <DD>-Elements durch Zeilenumbrüche und rückt die Folgezeilen tiefer ein
1261 als die Aufzählungszeile (Kindzeilen der Einheit für die Stellenauflösung).
12622. Der Befehlsanwender rückt beim Einsetzen von Zitattext (rueckeZitatEin)
1263 Fortsetzungszeilen zwei Zeichen tiefer ein als die Aufzählungszeile.
1264Beide Wege erzeugen dieselbe kanonische Zeilenform („ 2a. Stichwort“ nebst
1265„ Definitionstext“), welche für die korrekte Erkennung von Kindzeilen durch
1266die Stellenauflösung (StellenAufloeser.zeilenBlock) erforderlich ist.
Matthias Andreas Benkard63112272026-07-17 05:10:53 +02001267
1268
Matthias Andreas Benkard65eff082026-07-18 12:24:32 +02001269Artikel 4
1270Verallgemeinerung der Normbezeichnung auf das Artikel-Sigel
1271
1272Die Stellenkomponente des Paragraphen (Stelle.Paragraph) führt neben der Nummer
1273nunmehr das Sigel („§“ oder „Art.“) und bildet daraus die Einzelnormbezeichnung
1274(enbez). Der Stellenparser (StellenParser) nimmt „Art.“ als Normbezeichnung
1275sowie durchgehend die abgekürzten und deklinierten Einheitenwörter an („Abs.“,
1276„Nr.“, „Nrn.“, „Buchst.“, „Sätzen“, „Absätzen“); ferner wird die Komponente des
1277Halbsatzes eingeführt (Auflösung durch Teilung des Satzes am Semikolon) und
1278werden koordinierte Stellen mit nachgestellten Komponenten („Art. 18 Satz 2,
1279Art. 19 und 20 Satz 1“) entfaltet. Befehlserkenner und Befehlsanwender bilden
1280sämtliche bisher auf das „§“-Zeichen festgelegten Muster auf beide Sigel ab;
1281das Verhalten gegenüber Bundesrecht bleibt unverändert.
1282
1283
1284Artikel 5
1285Amtliche Satznummern als Superskripte
1286
1287Bayerische Normtexte führen amtliche Satznummern als hochgestellte Ziffern.
1288Der PDF-Vorverarbeiter (FontgroessenFilter) erhält einen Superskript-Modus:
1289Ziffernfolgen, die kleiner gesetzt und gegenüber der Grundlinie ihres Laufs um
1290zwei bis sechs Punkt gehoben sind, werden als Unicode-Superskripte (¹ ² ³)
1291übernommen statt verworfen — im selben Lauf klebende Satznummern und Fußnoten-
1292marker („Enteignung⁶)“) eingeschlossen. Der Satzteiler (SatzTeiler) teilt
1293nummerierte Texte exakt an den Satznummern und stellt die Nummer eines Satzes
1294bereit; die Stellenauflösung löst Satzangaben in nummerierten Texten nach dem
1295amtlichen Label statt nach der Position auf. Die Satz-Umnummerierung schreibt
1296die Satznummer im Text um („Satz 5 wird Satz 4“ → „⁵“ wird „⁴“). Für Bundes-
1297recht (Modus „Entfernen“) bleibt das Verhalten unverändert.
1298
1299
1300Artikel 6
1301Kolumnentitel des GVBl und des Bayerischen Landtags; geschützte Leerzeichen
1302
1303Der Textbereiniger entfernt die Kolumnentitel des Bayerischen Gesetz- und
1304Verordnungsblatts (mit links- oder rechtsstehender, auch an die Jahreszahl
1305geklebter Seitenzahl: „… Nr. 6/202676“) sowie die Titel- und Seitenköpfe der
1306Landtags-Drucksachen; eine am Seitenwechsel unterbrochene Silbentrennung heilt
1307nach der Kopfentfernung („kurz-“ + „fristige“). Geschützte Leerzeichen des
1308GVBl-Satzes („§ 1“, „Abs. 2“) werden früh auf gewöhnliche Leerzeichen
1309normalisiert, da sie für die Muster des Parsers unsichtbar sind. Die Struktur-
1310zeilen-Ausnahme des Reflows erfasst nunmehr auch „Art. N“.
1311
1312
1313Artikel 7
1314Paragraphengegliederte Änderungsgesetze; Rahmenbefehl im Vorspann;
1315Fortführungszeichen
1316
1317Bayerische Änderungsgesetze gliedern sich in Paragraphen. Der Parser
1318(AenderungsgesetzParser) teilt ein Dokument ohne Artikel-Überschriften an
1319freistehenden „§ N“-Zeilen; die Auswahl über den Einleitungssatz (betrifft)
1320bleibt maßgeblich und wählt auch die „Weitere Änderung“ desselben Stamm-
1321gesetzes. Nennungen des Stammgesetzes als Genitiv-Attribut eines Ausführungs-
1322oder Durchführungstitels („Verordnung zur Ausführung des Bayerischen Jagd-
1323gesetzes“) zählen nicht als Treffer. Trägt der Vorspann nach der gesetzesweiten
1324Änderungsformel einen Rahmenbefehl („… wird wie folgt geändert: Art. 28 Abs. 1
1325wird wie folgt geändert:“) oder das Ziel eingebettet in der Formel selbst
1326(„Art. 7 Abs. 2 des X-Gesetzes … wird wie folgt geändert:“), so wird dieses
1327Ziel Kontext aller Gliederungspunkte. Der Zitatextraktor behandelt das
1328Fortführungszeichen des GVBl (jedes neugefasste Aufzählungsglied öffnet am
1329Zeilenanfang erneut mit „, geschlossen wird einmal am Blockende) als
1330Typografie statt als geschachteltes Zitat; der Begründungs-Abschneider nimmt
1331auch „Begründung:“ an. Ein GVBl-Heft, das zugleich ein artikelgegliedertes
1332Änderungsgesetz enthielte, unterdrückte die Paragraphen-Teilung — Ausweg ist
1333die Handkorrektur über --extract-only.
1334
1335
1336Artikel 8
1337Stammgesetz-Lader für das bayerische Landesrecht
1338
1339Das neue Paket gesetz/bayern liest ein Stammgesetz aus der konsolidierten
1340Fassung von gesetze-bayern.de — als PDF (über den Superskript-erhaltenden
1341Extraktionsweg) oder als kanonischen Klartext im Format der --extract-only-
1342Ausgabe (BayRechtLoader, BayRechtTextParser). Erfasst werden Titelblock,
1343Gliederungs-Überschriften samt nummerierten Unter-Überschriften (synthetische
1344Kennzahlen), Normköpfe „Art. N“ (Querverweise am Zeilenanfang werden über eine
1345Negativliste und die Monotonie der Artikelnummern ausgeschlossen; vom Reflow an
1346ein Satzende geklebte Normköpfe werden am doppelten Leerzeichen erkannt und
1347wieder abgetrennt), aufgehobene Artikel sowie Fußnotenzeilen („⁶) [Amtl.
1348Anm.:] …“), die superskript-normalisiert im tragenden Absatz verbleiben. Die
1349Befehlszeile (AendGgner) wählt den Lader nach dem Dateityp des Stammgesetzes
1350(XML → gii, PDF/Klartext → Bayern) und extrahiert Änderungsgesetze dann im
1351Superskript-Modus.
1352
1353
1354Artikel 9
1355Bayerische Befehlsformen
1356
1357Der Befehlserkenner und der Befehlsanwender werden ergänzt um: die Aufhebung
1358von Fußnoten („Fußnote 1 wird aufgehoben“, auch mehrere — entfernt Fußnoten-
1359zeile und Inline-Marker der Kontextnorm), die Streichung der Satznummerierung
1360(„In Satz 1 wird die Satznummerierung „1“ gestrichen“), die Wortlaut-Formen
1361(„Der Wortlaut wird Satz 1“, „Der bisherige Wortlaut wird Abs. 5“ — erhält nur
1362der einzige unnummerierte Absatz die Nummer —, „Dem Wortlaut werden die
1363folgenden Abs. 1 bis 4 vorangestellt“ nebst lokativer Folgeklausel auf den
1364nummerierten Absatz), stellenlose und koordinierte Streichungen („Die Angabe
1365„X“ wird gestrichen“, „werden die Angabe „X“ und die Angabe „Y“ gestrichen“),
1366Ersetzungspaare mit „sowie“ und Einfügepaare mit Komma-Reihung, Bereichs- und
1367Koordinations-Umnummerierungen in abgekürzter Form („Die bisherigen Abs. 1
1368bis 3 werden die Abs. 2 bis 4“) sowie Klauselketten mit gemeinsamem Schluss-
1369verb („… wird durch … und … wird durch … ersetzt“). Die Absatz-Umnummerierung
1370greift nur noch, wenn der Absatz selbst das Ziel ist (bei „Satz 5 wird Satz 4“
1371stammt die Absatzangabe aus dem Kontextrahmen und der Satz-Zweig ist
1372zuständig).
1373
1374
1375Artikel 10
1376Feinbehandlung von Satzgrenzen, Fußnoten und mehrschrittigen Aufhebungen bei
1377der Anwendung
1378
1379Aus der vollständigen Anwendung der bayerischen Belegnovelle auf die (nach
1380Artikel 8 wiederhergestellte) alte Jagdgesetz-Fassung ergeben sich folgende
1381Verfeinerungen des Satzteilers, des Befehlserkenners und des Befehlsanwenders:
1382
13831. Der Satzteiler (SatzTeiler) bestimmt die Satzgrenzen fortan als Textanfang
1384 zuzüglich der Fundstelle jeder amtlichen Satznummer ab „²“. Eine allein
1385 stehende Nummer ≥ 2 — sei es, weil der erste Satz keine Nummer trägt, sei es,
1386 weil seine Nummer zuvor gestrichen wurde („Verboten ist … ²Art. 33 …“) —
1387 bildet damit eine eigene Grenze. Als Satzanfang gilt eine Satznummer auch vor
1388 einem Paragraphzeichen („³§ 23 …“).
1389
13902. Fußnoten-Definitionszeilen („⁶) [Amtl. Anm.:] …“) sind für die wortweisen
1391 Operationen (Streichen, Ersetzen, Einfügen) kein Inhalt: Sie werden vor der
1392 Operation abgetrennt und danach unverändert wieder angefügt, sodass die
1393 Streichung eines Fußnotenmarkers („die Angabe „¹)“ wird gestrichen“) den in
1394 den Text eingebetteten Marker trifft, nicht aber den gleichlautenden Kopf der
1395 Definitionszeile (deren Beseitigung der Fußnoten-Aufhebung vorbehalten bleibt).
1396
13973. Die Aufhebung eines durch seine Bezeichnung benannten Absatzes markiert
1398 diesen — unter Beibehaltung seiner Nummer — als weggefallen. Eine nachfolgende
1399 Absatz-Umnummerierung auf eine Zielnummer, die bereits von einem leeren Platz-
1400 halter (weggefallen oder gegenstandslos) belegt ist, überschreibt diesen
1401 (in Entsprechung zur Umnummerierung auf eine weggefallene Zielnorm), sodass
1402 Folgen wie „Abs. 2 wird aufgehoben; Abs. 3 wird Abs. 2 …“ vollständig aufgehen.
1403
14044. In einem Verbund erbt eine reine Wortoperation ohne eigenen Lokativ den Skopus
1405 der linken Klausel („In Abs. 2 Satz 1 wird „A“ ersetzt und die Angabe „B“ wird
1406 gestrichen“ wirkt für beide Klauseln auf Abs. 2 Satz 1); das gemeinsame Verb
1407 wird hierzu in die grammatische Normalform vorgezogen.
1408
1409
Matthias Andreas Benkard63112272026-07-17 05:10:53 +02001410Schlussbestimmung
1411
Matthias Andreas Benkard65eff082026-07-18 12:24:32 +02001412Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle (zwei-
1413hundertelf an der Zahl) sowie durch die vollständige Erstellung (mvnw verify)
1414bestätigt worden. Die Behebung des eingangs genannten Wiedergabefehlers wurde
1415anhand der Beispieldaten (UWG-Anhang, Nummern 2a, 4c sowie 22; § 2 IfSG)
1416verifiziert; die Anwendungs- und Prüfzahlen der bundesrechtlichen Beispiele (UWG,
1417AGG, ProdHaftG, GEG, IfSG) bleiben durchgehend unverändert. Die Ertüchtigung für
1418das bayerische Landesrecht ist durch die vollständige Anwendung der Belegnovelle
1419(GVBl. 2026 S. 113, §§ 1 und 2) auf die wiederhergestellte alte Fassung des
1420Bayerischen Jagdgesetzes belegt: Von einhundertvierundfünfzig Änderungsanweisungen
1421werden einhundertneunundvierzig selbsttätig angewandt; keine bleibt unerkannt.
1422Die fünf verbleibenden Anweisungen sind Folgeänderungen innerhalb zweier mehr-
1423schrittiger Umnummerierungssequenzen (Neunummerierung des Bußgeldkatalogs in
1424Art. 56 sowie die Absatzverschiebung in Art. 29a) und werden — statt fehlerhaft
1425gedeutet zu werden — mit Begründung dem Abschnitt „Manuell prüfen“ zugewiesen.
1426Der Regierungsentwurf (Ltg-Drs. 19/9707) wird auf derselben Grundlage verarbeitet.
Matthias Andreas Benkard63112272026-07-17 05:10:53 +02001427
1428
1429════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkardb7e9f0f2026-07-16 21:12:08 +02001430 Fassung vom 16. Juli 2026,
1431 zuletzt geändert durch die am 16. Juli 2026 vorgenommenen Änderungen
1432════════════════════════════════════════════════════════════════════════════════
1433
1434Auf Grund der vierten Ertüchtigungswelle werden Anhänge und Anlagen als Norm-Ziele,
1435die Angabe-Befehle der Inhaltsübersicht sowie die Einfügung und Ersetzung von
1436Gliederungs-Überschriften einer Verarbeitung zugänglich gemacht; ferner wird der
1437Befehlserkenner um weitere Verbund- und Bereichsformen sowie die Neufassung der
1438Gesetzesüberschrift ergänzt und die Brotschriftbestimmung des PDF-Vorverarbeiters
1439seitenweise gefasst.
1440
1441
1442Artikel 1
1443Anhänge und Anlagen als Norm-Ziele
1444
1445Die Stelle (Stelle) wird um die Unterscheidung zwischen echten Gliederungseinheiten
1446(Teil, Abschnitt, Unterabschnitt und dergleichen) und Anhängen/Anlagen ergänzt
1447(betrifftEchteGliederung, anlagenEnbez); Anhänge und Anlagen sind im gii-XML eigene
1448Normen mit Text und werden fortan wie Paragraphen behandelt. Der Stellenaufloeser
1449löst hierbei Nummer- und Buchstabe-Ketten verschachtelt und blockweise auf: die
1450Aufzählungszeile einer Nummer oder eines Buchstabens wird um ihre tiefer
1451eingerückten Kindzeilen erweitert, und eine Angabe ohne Absatzbezeichnung wird
1452norm-weit gesucht, sofern sie in genau einem Absatz auffindbar ist.
1453
1454
1455Artikel 2
1456Selbsttätige Anwendung der Inhaltsübersichts-Angaben
1457
1458Es wird der Anwender InhaltsuebersichtAnwender eingeführt, der die Angabe-Befehle
1459(gefasst, ersetzt, eingefügt, gestrichen sowie die Neufassung der gesamten
1460Übersicht) auf das Zeilenmodell der Inhaltsübersichts-Norm anwendet. Eine adressierte
1461Zeile wird anhand der Gliederungs- und Paragraphen-Kette der Stelle verschachtelt
1462gesucht, wobei gleichrangige Gliederungseinheiten als Fenstergrenzen dienen. Bei der
1463Neufassung der gesamten Übersicht schützt eine Plausibilitätssperre vor der
1464Übernahme eines Zitats, das durch ein unbalanciertes Anführungszeichen Befehlssprache
1465nachfolgender Anweisungen mitgerissen hat; ein solcher Fall wird dem Abschnitt
1466„Manuell prüfen“ zugewiesen.
1467
1468
1469Artikel 3
1470Einfügung und Ersetzung von Gliederungs-Überschriften
1471
1472Es wird der Befehl „GliederungsUeberschriften“ eingeführt; die Anweisungen „Nach
1473§ N werden die folgenden Überschriften zu ... eingefügt: „…““ sowie „Die bisherigen
1474Überschriften zu ... werden durch die folgende Überschrift zu ... ersetzt: „…““
1475legen neue Einheiten im Gliederungsbaum an beziehungsweise ersetzen bisherige
1476Einheiten durch neue. Der Befehlsanwender (BefehlAnwender.wendeGliederungsUeberschriftenAn)
1477zieht die Titel der neuen Einheiten aus dem Zitat und ordnet sie an der Stelle der
1478ersetzten Einheiten beziehungsweise hinter dem Einfügeanker ein. Ferner wird die
1479Neufassung der Gesetzesüberschrift selbst („Die Überschrift wird wie folgt gefasst“
1480ohne weitere Stellenangabe) erkannt und auf den Langtitel des Gesetzes angewandt.
1481
1482
1483Artikel 4
1484Weitere Erweiterungen des Befehlserkenners
1485
1486Der Befehlserkenner (BefehlErkenner) wird um Voranstellungen, Mehrfach-Ersetzungs-
1487und -Einfügepaare, Bereichsziele auf Nummern und Buchstaben, zusammengesetzte
1488Komma-Mehrfachpaare sowie Umnummerierungs-Verbünde („§ 50 wird zu § 38 und wird wie
1489folgt geändert: ...“) ergänzt.
1490
1491
1492Artikel 5
1493Seitenweise Brotschriftbestimmung
1494
1495Der Fontgrößenfilter (FontgroessenFilter) bestimmt die Brotschrift fortan seitenweise
1496statt dokumentweit: Auf jeder Seite gilt die größte Fontgröße mit mindestens 25 vom
1497Hundert Seitenanteil als Brotschrift, wobei eine absolute Mehrheit ab 60 vom Hundert
1498sofort entscheidet; Fußnoten werden als Kleingedrucktes unterhalb der letzten
1499Brotschriftzeile erkannt, Seitenfüße bleiben hiervon ausgenommen. Der Textbereiniger
1500(TextBereiniger) wird um die Toleranz weiterer Drucksachen-Artefakte (Seitenköpfe
1501und -füße, Vorabfassungs-Wasserzeichen, vertauschte oder gerade Anführungszeichen,
1502verklebte Wortgrenzen) ergänzt.
1503
1504
1505Schlussbestimmung
1506
1507Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle (einhundert-
1508dreiundsiebzig an der Zahl) sowie durch die vollständige Erstellung (mvnw verify)
1509bestätigt worden. Auf den Beispieldaten werden nunmehr sämtliche Befehle der
1510BGBl-Fassungen sowie der geprüften Entwürfe angewandt (UWG, AGG und ProdHaftG:
15110 manuell). Nicht selbsttätig verarbeitbar bleiben einstweilen Befehle gegen eine
1512ältere, im XML-Bestand nicht mehr vorhandene Gesetzesfassung sowie vereinzelte,
1513durch Extraktionsverluste im Quell-PDF verursachte Zitatlücken; diese werden
1514weiterhin, mit Begründung versehen, dem Abschnitt „Manuell prüfen“ zugewiesen. Die
1515Unterstützung des bayerischen Landesrechts bleibt einem späteren Zeitpunkt
1516vorbehalten.
1517
1518
1519════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkardebd5a7b2026-07-15 20:54:27 +02001520 Fassung vom 15. Juli 2026,
1521 zuletzt geändert durch die am 15. Juli 2026 vorgenommenen Änderungen
1522════════════════════════════════════════════════════════════════════════════════
1523
1524Auf Grund der weiteren Ertüchtigung des Befehlserkenners und des Befehlsanwenders
1525werden Bereichs- und Koordinationsziele bei Struktur-Ersetzungen, die Streichung
1526und Umnummerierung ganzer Struktureinheiten (Paragraphen und Gliederungs-
1527einheiten) sowie das Einfügen und Ersetzen ganzer Paragraphenblöcke einer
1528Verarbeitung zugänglich gemacht.
1529
1530
1531Artikel 1
1532Erweiterung der Struktur-Ersetzung um Ziel-Bereiche
1533
1534Der Aenderungsbefehl (Aenderungsbefehl.StrukturErsetzung) wird um das Feld
1535„bisStelle“ ergänzt, welches bei einem zusammenhängenden, koordinierten Ziel-
1536Bereich („Die Absätze 8 und 9 werden durch die folgenden Absätze 8 bis 10
1537ersetzt: „…““, „Die bisherigen Sätze 4 und 5 werden wie folgt gefasst: „…““)
1538das letzte Ziel bezeichnet; bei einem Einzelziel bleibt es unbesetzt. Der
1539Befehlsanwender (BefehlAnwender) löst den Bereich für Absätze, Sätze und
1540Paragraphen auf und ersetzt ihn durch den zitierten Block.
1541
1542
1543Artikel 2
1544Aufnahme struktureller Streichungen und Umnummerierungen
1545
1546Der Befehlserkenner wird wie folgt geändert:
1547
15481. Die Streichung ganzer Struktureinheiten („§ 9 wird gestrichen.“, „Die §§ 34
1549 bis 39 werden gestrichen.“, „Der bisherige Teil 3 wird gestrichen.“) wird als
1550 Aufhebung erkannt.
1551
15522. Die Umnummerierung wird auf Paragraphen und Gliederungseinheiten (Teil,
1553 Abschnitt, Unterabschnitt, Buch, Kapitel, Anlage) erstreckt sowie um die
1554 paarweise §-Umnummerierung („Die §§ 46 und 47 werden zu den §§ 34 und 35.“)
1555 ergänzt. Der Befehlsanwender benennt hierbei die betroffene Norm oder
1556 Gliederungseinheit um; eine bereits weggefallene Zielnorm wird überschrieben.
1557
15583. Die Neufassung eines §-Bereichs wird auf die Form ohne „bisherige“ erstreckt
1559 und liefert bei mehrgliedrigem Ziel nunmehr eine bereichsbezogene Struktur-
1560 Ersetzung statt eines Einzelbefehls.
1561
15624. Die Neufassung der Überschrift einer benannten Einheit („In Anlage 7 wird die
1563 Überschrift durch die folgende Überschrift ersetzt: „…““) sowie der Inhalts-
1564 übersicht werden erkannt; letztere wird stets der manuellen Prüfung
1565 zugewiesen.
1566
15675. Die Entwurfsform der Struktur-Ersetzung, bei der die Aufzählungsbezeichnung
1568 außerhalb des Zitats steht („… ersetzt: 3. „…““), wird abgefangen und dem
1569 Ersatztext wieder vorangestellt.
1570
15716. Der Chapeau-Qualifier („Im Satzteil vor Nummer 1 …“, „In der Angabe vor
1572 Nummer 1 …“) wird auf weitere Einleitungen erstreckt; steht er allein, ohne
1573 eigene Stelle, so bezieht sich die Operation auf die Kontextstelle.
1574
1575
1576Artikel 3
1577Einfügung und Ersetzung ganzer Paragraphenblöcke
1578
15791. Die Einfügung mehrerer Paragraphen in einem Zuge („Nach § 60a werden die
1580 folgenden §§ 60b und 60c eingefügt: „…““) sowie die Ersetzung eines §-Bereichs
1581 durch einen §-Block werden erkannt.
1582
15832. Der Befehlsanwender zerlegt den zitierten Block anhand der §-Überschriften
1584 (unter Ausschluss bloßer Querverweise wie „§ 71 Absatz 1“) in die einzelnen
1585 Paragraphen und fügt sie geschlossen ein oder setzt sie an die Stelle des
1586 ersetzten Bereichs.
1587
1588
1589Schlussbestimmung
1590
1591Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle
1592(einhundertvierundvierzig an der Zahl) sowie durch die vollständige Erstellung
1593(mvnw verify) bestätigt worden. Nicht selbsttätig verarbeitbar bleiben
1594einstweilen die mehrquellige Struktur-Ersetzung über mehrere Gesetze hinweg
1595sowie vereinzelte Sonderfälle der Entwurfsfassung (Drucksachen); diese werden
1596dem Abschnitt „Manuell prüfen“ zugewiesen. Die Unterstützung des bayerischen
1597Landesrechts bleibt einem späteren Zeitpunkt vorbehalten.
1598
1599
1600════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkard73c5dba2026-07-13 21:42:38 +02001601 Fassung vom 13. Juli 2026,
1602 zuletzt geändert durch die am 13. Juli 2026 vorgenommenen Änderungen
1603════════════════════════════════════════════════════════════════════════════════
1604
1605Auf Grund der fortdauernden Ertüchtigung des Befehlserkenners werden die bis zu
1606diesem Tage nicht selbsttätig verarbeitbaren Änderungsanweisungen nach näherer
1607Maßgabe der nachstehenden Abschnitte einer Verarbeitung zugänglich gemacht. Die
1608Zahl der nicht erkannten Anweisungen (nachfolgend: „unbekannte Befehle“) ver-
1609ringert sich hierdurch nach den vorliegenden Feststellungen wie folgt: im
1610Datensatz GEG von fünfzig (50) auf fünf (5), im Datensatz IfSG von elf (11) auf
1611drei (3), im Datensatz AGG von zwei (2) auf null (0) sowie im Datensatz UWG von
1612zwei (2) auf null (0).
1613
1614
1615Artikel 1
1616Übernahme des vorbefindlichen Bearbeitungsstandes
1617
1618Der zum Stichtag im Arbeitsverzeichnis vorgehaltene, noch nicht in die Versions-
1619verwaltung überführte Bearbeitungsstand wird eingecheckt. Erfasst werden ins-
1620besondere der Sammelbefehl (mehrere Teilbefehle als ein Protokolleintrag), die
1621mehrfache Stellenauflösung (StellenParser.parseMehrfach) sowie die Auflösung von
1622Bereichs-Umnummerierungen in absteigender Reihenfolge.
1623
1624
1625Artikel 2
1626Erkennung verbundener und mehrgliedriger Ersetzungsanweisungen
1627
1628Der Befehlserkenner (BefehlErkenner) wird wie folgt geändert:
1629
16301. Die Erkennung wird in eine Einzelbefehls-Stufe (erkenneEinzeln) und eine nach-
1631 geordnete Auffangstufe (erkennePaarErsetzung, erkenneVerbund) gegliedert. Trifft
1632 ein Muster zwar auf den Wortlaut, nicht aber auf eine auflösbare Stelle zu, so
1633 steht dies der Prüfung der nachfolgenden Muster und Auffangstufen nicht mehr
1634 entgegen.
1635
16362. Anweisungen der Form „In <Stelle> werden die Wörter „A“ durch die Wörter „B“
1637 und die Angabe „C“ durch die Wörter „D“ ersetzt“ werden erkannt; für jedes
1638 Ersetzungspaar wird eine Ersetzung gebildet und, im Falle koordinierter Stellen,
1639 das Kreuzprodukt aus Stellen und Paaren gebildet.
1640
16413. Anweisungen der Form „... und wird/werden ...“ werden an der Verbindungsstelle
1642 versuchsweise zerlegt; wird jede Teilklausel als eigenständiger Befehl erkannt –
1643 unverändert, mit großem Anfangsbuchstaben oder unter Voranstellung des lokativen
1644 Präfixes der linken Klausel –, so entsteht ein Sammelbefehl.
1645
16464. Ergänzend werden die Einfügung eines Satzzeichens („... ein Komma eingefügt“)
1647 sowie die anker-voranstehende Einfügung („Nach der Angabe „...“ wird ...
1648 eingefügt“) als Muster aufgenommen.
1649
1650Der Stellenparser (StellenParser) wird dahin geändert, dass eine bloße Nummer oder
1651ein bloßer Buchstabe die Komponentenart der jeweils vorangehenden Stelle erbt
1652(„Absatz 1 und 5“).
1653
1654
1655Artikel 3
1656Erkennung von Bereichs-, Wortlaut- und Satzzeichenanweisungen
1657
16581. Der Stellenparser wird um die Entfaltung von „bis“-Bereichen (ganzzahlig sowie
1659 für Einzelbuchstaben) und um die Pluralformen der Komponentenbezeichnungen
1660 (Absätze, Sätze, Nummern, Buchstaben) ergänzt.
1661
16622. Die Aufhebung wird auf bereichs- und koordinierte Angaben erstreckt („Die
1663 Nummern 1 bis 3 werden aufgehoben“, „Die Absätze 4 und 5 werden aufgehoben“).
1664
16653. Die Bereichs-Umnummerierung wird auf Nummern und Buchstaben sowie auf die Form
1666 ohne „zu den“ erstreckt („Die bisherigen Nummern 4 bis 6 werden die Nummern
1667 8 bis 10“); die Einzel-Umnummerierung wird auf Nummern und Buchstaben sowie auf
1668 die Einleitung „Die bisherige“ erstreckt.
1669
16704. Die Neufassung eines Paragraphen-Bereichs („Die §§ 52 bis 56 werden wie folgt
1671 gefasst: ...“) wird durch Zerlegung des zitierten Blocks an den „§ N“-Grenzen
1672 erkannt.
1673
16745. Es wird der Befehl „WortlautZuAbsatz“ eingeführt; die Anweisung „Der Wortlaut
1675 wird Absatz N“ versieht den bislang unnummerierten Normtext mit der Absatznummer.
1676
16776. Die Ersetzung eines Wortes durch ein Satzzeichen („... das Wort „oder“ am Ende
1678 durch ein Komma ersetzt“) sowie die zusammengesetzten Kommaformen werden erkannt.
1679
1680
1681Artikel 4
1682Aufnahme der Gliederungs- und Inhaltsübersichts-Anweisungen
1683
16841. Das Datenmodell wird wie folgt geändert:
1685 a) Die Gliederung (Gliederung) wird um die Gliederungskennzahl ergänzt.
1686 b) Das Gesetz (Gesetz) führt fortan die geordnete Liste der Gliederungs-
1687 einheiten mit; der Lader (GiiXmlLoader) erhebt diese aus dem gii-XML.
1688
16892. Die Stelle (Stelle) wird um die Komponenten „Gliederungseinheit“ (Teil,
1690 Abschnitt, Unterabschnitt, Anlage und dergleichen) sowie „Absatzbezeichnung“
1691 ergänzt. Der Stellenparser erkennt diese Komponenten, ferner die Wendung
1692 „Überschrift von <Gliederung>“, und lässt die verfeinernden Zusätze „Satzteil
1693 vor Nummer N“ und „Angabe vor Nummer N“ außer Betracht.
1694
16953. Die Neufassung sowie die Streichung von Gliederungs-Überschriften werden auf den
1696 Gliederungsbaum angewandt und in der Synopse als gesonderter Abschnitt
1697 „Geänderte Gliederungs-Überschriften“ dargestellt. Die Streichung einer
1698 Absatzbezeichnung entfernt die betreffende Absatznummer. Die die Inhaltsübersicht
1699 betreffenden Anweisungen („Die Angabe(n) zu ...“) werden erkannt.
1700
1701
1702Schlussbestimmung
1703
1704Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle
1705(einhundertneunzehn an der Zahl) sowie durch die vollständige Erstellung (mvnw
1706verify) bestätigt worden. Nicht selbsttätig verarbeitbar bleiben einstweilen die
1707mehrquelligen Struktur-Ersetzungen, die Einfügung und Bereichsersetzung ganzer
1708Paragraphenfolgen (§§), die Neufassung von Satzbereichen sowie die stellenlosen
1709Chapeau-Anweisungen; diese werden dem Abschnitt „Manuell prüfen“ zugewiesen. Die
1710Unterstützung des bayerischen Landesrechts bleibt einem späteren Zeitpunkt
1711vorbehalten.