blob: d3195bb867111f6570f52ada0e4784003d41e02b [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 Benkard63112272026-07-17 05:10:53 +020024 Fassung vom 17. Juli 2026,
25 zuletzt geändert durch die am 17. Juli 2026 vorgenommenen Änderungen
26════════════════════════════════════════════════════════════════════════════════
27
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +020028Auf Grund eines gemeldeten Wiedergabefehlers wird der Textbereiniger um eine
29geometrische Zeilenend-Klassifikation auf Basis von PDFBox-Koordinaten ergänzt;
30ferner wird die Strukturierung hängend eingerückter Definitionslisten (z.B. im
31UWG-Anhang) sowohl im PDF-Extraktor als auch im XML-Flattener vereinheitlicht.
Matthias Andreas Benkard63112272026-07-17 05:10:53 +020032
33
34Artikel 1
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +020035Geometrische Spaltenbreiten-Klassifikation für markerlose Zeilenumbrüche
Matthias Andreas Benkard63112272026-07-17 05:10:53 +020036
37Der Textbereiniger (TextBereiniger.verbindeUmbrueche) zog eine Zeile, die ohne
38Leerraum am Ende mit einem Buchstaben schließt und deren Folgezeile klein
39beginnt, bislang stets ohne Trennzeichen mit der Folgezeile zusammen, in der
40Annahme, es handle sich um eine bei der PDF-Extraktion um den Bindestrich
41gebrachte Silbentrennung. Diese Annahme trifft auf einen bewussten Wortgrenzen-
42Umbruch (etwa das Stichwort einer hängend eingerückten Definition, wie er im
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +020043Anhang zum UWG vorkommt) nicht zu. Zur Behebung bestimmt der PDF-Vorverarbeiter
44(FontgroessenFilter) das geometrische End-X der Zeilenläufe und klassifiziert
45die Zeilenenden anhand des lokalen rechten Randes (90. Perzentil in einem
46Fenster von 20 Zeilen davor/danach) in weiche (am Rand endende), harte (deutlich
47davor endende) oder unklassifizierte Umbrüche. Der Textbereiniger zieht nur noch
48geometrisch weiche oder (in Ermangelung von Geometriedaten als Rückfalloption)
49zeichenzahlnäherungsweise am Rand liegende markerlose Umbrüche zusammen. Harte
50Umbrüche bleiben als gewollte Wortgrenzen-Umbrüche erhalten.
Matthias Andreas Benkard63112272026-07-17 05:10:53 +020051
52
53Artikel 2
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +020054Strukturierung und Normalisierung hängend eingerückter Definitionslisten
Matthias Andreas Benkard63112272026-07-17 05:10:53 +020055
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +020056Damit die nunmehr erhaltenen hängenden Zeilenenden in Definitionslisten (wie
57beim UWG-Anhang) korrekt strukturiert werden:
581. Der Befehlsanwender (BefehlAnwender.normalisiereZitatText) unterwirft nunmehr
59 auch die stellenlose Neufassung (z.B. eines Satzes) der Zitat-Normalisierung
60 und rückt fortlaufende Zeilen innerhalb eines Aufzählungspunktes tiefer
61 (vier Leerzeichen) ein als den Aufzählungspunkt selbst (zwei Leerzeichen).
622. Der XML-Flattener (ContentFlattener) trennt mehrere <LA>-Geschwister innerhalb
63 eines <DD>-Elements durch Zeilenumbrüche und rückt sie tiefer ein.
64Beide Wege erzeugen dieselbe kanonische Zeilenform, welche für die korrekte
65Erkennung von Kindzeilen durch die Stellenauflösung erforderlich ist.
Matthias Andreas Benkard63112272026-07-17 05:10:53 +020066
67
68Schlussbestimmung
69
70Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle (einhun-
Matthias Andreas Benkard99511a92026-07-17 07:16:51 +020071dertvierundsiebzig an der Zahl) sowie durch die vollständige Erstellung (mvnw
Matthias Andreas Benkard63112272026-07-17 05:10:53 +020072verify) bestätigt worden. Anlass war ein anhand der UWG-Novelle 2026 gemeldeter
73Wiedergabefehler; die Behebung wurde anhand der Beispieldaten (UWG-Anhang,
74Nummern 2a sowie 4a bis 4c) verifiziert.
75
76
77════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkardb7e9f0f2026-07-16 21:12:08 +020078 Fassung vom 16. Juli 2026,
79 zuletzt geändert durch die am 16. Juli 2026 vorgenommenen Änderungen
80════════════════════════════════════════════════════════════════════════════════
81
82Auf Grund der vierten Ertüchtigungswelle werden Anhänge und Anlagen als Norm-Ziele,
83die Angabe-Befehle der Inhaltsübersicht sowie die Einfügung und Ersetzung von
84Gliederungsberschriften einer Verarbeitung zugänglich gemacht; ferner wird der
85Befehlserkenner um weitere Verbund- und Bereichsformen sowie die Neufassung der
86Gesetzesüberschrift ergänzt und die Brotschriftbestimmung des PDF-Vorverarbeiters
87seitenweise gefasst.
88
89
90Artikel 1
91Anhänge und Anlagen als Norm-Ziele
92
93Die Stelle (Stelle) wird um die Unterscheidung zwischen echten Gliederungseinheiten
94(Teil, Abschnitt, Unterabschnitt und dergleichen) und Anhängen/Anlagen ergänzt
95(betrifftEchteGliederung, anlagenEnbez); Anhänge und Anlagen sind im gii-XML eigene
96Normen mit Text und werden fortan wie Paragraphen behandelt. Der Stellenaufloeser
97löst hierbei Nummer- und Buchstabe-Ketten verschachtelt und blockweise auf: die
98Aufzählungszeile einer Nummer oder eines Buchstabens wird um ihre tiefer
99eingerückten Kindzeilen erweitert, und eine Angabe ohne Absatzbezeichnung wird
100norm-weit gesucht, sofern sie in genau einem Absatz auffindbar ist.
101
102
103Artikel 2
104Selbsttätige Anwendung der Inhaltsübersichts-Angaben
105
106Es wird der Anwender InhaltsuebersichtAnwender eingeführt, der die Angabe-Befehle
107(gefasst, ersetzt, eingefügt, gestrichen sowie die Neufassung der gesamten
108Übersicht) auf das Zeilenmodell der Inhaltsübersichts-Norm anwendet. Eine adressierte
109Zeile wird anhand der Gliederungs- und Paragraphen-Kette der Stelle verschachtelt
110gesucht, wobei gleichrangige Gliederungseinheiten als Fenstergrenzen dienen. Bei der
111Neufassung der gesamten Übersicht schützt eine Plausibilitätssperre vor der
112Übernahme eines Zitats, das durch ein unbalanciertes Anführungszeichen Befehlssprache
113nachfolgender Anweisungen mitgerissen hat; ein solcher Fall wird dem Abschnitt
114Manuell prüfen zugewiesen.
115
116
117Artikel 3
118Einfügung und Ersetzung von Gliederungsberschriften
119
120Es wird der Befehl GliederungsUeberschriften eingeführt; die Anweisungen Nach
121§ N werden die folgenden Überschriften zu ... eingefügt: „…““ sowie Die bisherigen
122Überschriften zu ... werden durch die folgende Überschrift zu ... ersetzt: „…““
123legen neue Einheiten im Gliederungsbaum an beziehungsweise ersetzen bisherige
124Einheiten durch neue. Der Befehlsanwender (BefehlAnwender.wendeGliederungsUeberschriftenAn)
125zieht die Titel der neuen Einheiten aus dem Zitat und ordnet sie an der Stelle der
126ersetzten Einheiten beziehungsweise hinter dem Einfügeanker ein. Ferner wird die
127Neufassung der Gesetzesüberschrift selbst („Die Überschrift wird wie folgt gefasst
128ohne weitere Stellenangabe) erkannt und auf den Langtitel des Gesetzes angewandt.
129
130
131Artikel 4
132Weitere Erweiterungen des Befehlserkenners
133
134Der Befehlserkenner (BefehlErkenner) wird um Voranstellungen, Mehrfach-Ersetzungs-
135und -Einfügepaare, Bereichsziele auf Nummern und Buchstaben, zusammengesetzte
136Komma-Mehrfachpaare sowie Umnummerierungs-Verbünde („§ 50 wird zu § 38 und wird wie
137folgt geändert: ...“) ergänzt.
138
139
140Artikel 5
141Seitenweise Brotschriftbestimmung
142
143Der Fontgrößenfilter (FontgroessenFilter) bestimmt die Brotschrift fortan seitenweise
144statt dokumentweit: Auf jeder Seite gilt die größte Fontgröße mit mindestens 25 vom
145Hundert Seitenanteil als Brotschrift, wobei eine absolute Mehrheit ab 60 vom Hundert
146sofort entscheidet; Fußnoten werden als Kleingedrucktes unterhalb der letzten
147Brotschriftzeile erkannt, Seitenfüße bleiben hiervon ausgenommen. Der Textbereiniger
148(TextBereiniger) wird um die Toleranz weiterer Drucksachen-Artefakte (Seitenköpfe
149und -füße, Vorabfassungs-Wasserzeichen, vertauschte oder gerade Anführungszeichen,
150verklebte Wortgrenzen) ergänzt.
151
152
153Schlussbestimmung
154
155Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle (einhundert-
156dreiundsiebzig an der Zahl) sowie durch die vollständige Erstellung (mvnw verify)
157bestätigt worden. Auf den Beispieldaten werden nunmehr sämtliche Befehle der
158BGBl-Fassungen sowie der geprüften Entwürfe angewandt (UWG, AGG und ProdHaftG:
1590 manuell). Nicht selbsttätig verarbeitbar bleiben einstweilen Befehle gegen eine
160ältere, im XML-Bestand nicht mehr vorhandene Gesetzesfassung sowie vereinzelte,
161durch Extraktionsverluste im Quell-PDF verursachte Zitatlücken; diese werden
162weiterhin, mit Begründung versehen, dem Abschnitt Manuell prüfen zugewiesen. Die
163Unterstützung des bayerischen Landesrechts bleibt einem späteren Zeitpunkt
164vorbehalten.
165
166
167════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkardebd5a7b2026-07-15 20:54:27 +0200168 Fassung vom 15. Juli 2026,
169 zuletzt geändert durch die am 15. Juli 2026 vorgenommenen Änderungen
170════════════════════════════════════════════════════════════════════════════════
171
172Auf Grund der weiteren Ertüchtigung des Befehlserkenners und des Befehlsanwenders
173werden Bereichs- und Koordinationsziele bei Struktur-Ersetzungen, die Streichung
174und Umnummerierung ganzer Struktureinheiten (Paragraphen und Gliederungs-
175einheiten) sowie das Einfügen und Ersetzen ganzer Paragraphenblöcke einer
176Verarbeitung zugänglich gemacht.
177
178
179Artikel 1
180Erweiterung der Struktur-Ersetzung um Ziel-Bereiche
181
182Der Aenderungsbefehl (Aenderungsbefehl.StrukturErsetzung) wird um das Feld
183bisStelle ergänzt, welches bei einem zusammenhängenden, koordinierten Ziel-
184Bereich („Die Absätze 8 und 9 werden durch die folgenden Absätze 8 bis 10
185ersetzt: „…““, Die bisherigen Sätze 4 und 5 werden wie folgt gefasst: „…““)
186das letzte Ziel bezeichnet; bei einem Einzelziel bleibt es unbesetzt. Der
187Befehlsanwender (BefehlAnwender) löst den Bereich für Absätze, Sätze und
188Paragraphen auf und ersetzt ihn durch den zitierten Block.
189
190
191Artikel 2
192Aufnahme struktureller Streichungen und Umnummerierungen
193
194Der Befehlserkenner wird wie folgt geändert:
195
1961. Die Streichung ganzer Struktureinheiten („§ 9 wird gestrichen.“, Die §§ 34
197 bis 39 werden gestrichen.“, Der bisherige Teil 3 wird gestrichen.“) wird als
198 Aufhebung erkannt.
199
2002. Die Umnummerierung wird auf Paragraphen und Gliederungseinheiten (Teil,
201 Abschnitt, Unterabschnitt, Buch, Kapitel, Anlage) erstreckt sowie um die
202 paarweise §-Umnummerierung („Die §§ 46 und 47 werden zu den §§ 34 und 35.“)
203 ergänzt. Der Befehlsanwender benennt hierbei die betroffene Norm oder
204 Gliederungseinheit um; eine bereits weggefallene Zielnorm wird überschrieben.
205
2063. Die Neufassung eines §-Bereichs wird auf die Form ohne bisherige erstreckt
207 und liefert bei mehrgliedrigem Ziel nunmehr eine bereichsbezogene Struktur-
208 Ersetzung statt eines Einzelbefehls.
209
2104. Die Neufassung der Überschrift einer benannten Einheit („In Anlage 7 wird die
211 Überschrift durch die folgende Überschrift ersetzt: „…““) sowie der Inhalts-
212 übersicht werden erkannt; letztere wird stets der manuellen Prüfung
213 zugewiesen.
214
2155. Die Entwurfsform der Struktur-Ersetzung, bei der die Aufzählungsbezeichnung
216 außerhalb des Zitats steht („… ersetzt: 3. „…““), wird abgefangen und dem
217 Ersatztext wieder vorangestellt.
218
2196. Der Chapeau-Qualifier („Im Satzteil vor Nummer 1 …“, In der Angabe vor
220 Nummer 1 …“) wird auf weitere Einleitungen erstreckt; steht er allein, ohne
221 eigene Stelle, so bezieht sich die Operation auf die Kontextstelle.
222
223
224Artikel 3
225Einfügung und Ersetzung ganzer Paragraphenblöcke
226
2271. Die Einfügung mehrerer Paragraphen in einem Zuge („Nach § 60a werden die
228 folgenden §§ 60b und 60c eingefügt: „…““) sowie die Ersetzung eines §-Bereichs
229 durch einen §-Block werden erkannt.
230
2312. Der Befehlsanwender zerlegt den zitierten Block anhand der §-Überschriften
232 (unter Ausschluss bloßer Querverweise wie „§ 71 Absatz 1“) in die einzelnen
233 Paragraphen und fügt sie geschlossen ein oder setzt sie an die Stelle des
234 ersetzten Bereichs.
235
236
237Schlussbestimmung
238
239Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle
240(einhundertvierundvierzig an der Zahl) sowie durch die vollständige Erstellung
241(mvnw verify) bestätigt worden. Nicht selbsttätig verarbeitbar bleiben
242einstweilen die mehrquellige Struktur-Ersetzung über mehrere Gesetze hinweg
243sowie vereinzelte Sonderfälle der Entwurfsfassung (Drucksachen); diese werden
244dem Abschnitt Manuell prüfen zugewiesen. Die Unterstützung des bayerischen
245Landesrechts bleibt einem späteren Zeitpunkt vorbehalten.
246
247
248════════════════════════════════════════════════════════════════════════════════
Matthias Andreas Benkard73c5dba2026-07-13 21:42:38 +0200249 Fassung vom 13. Juli 2026,
250 zuletzt geändert durch die am 13. Juli 2026 vorgenommenen Änderungen
251════════════════════════════════════════════════════════════════════════════════
252
253Auf Grund der fortdauernden Ertüchtigung des Befehlserkenners werden die bis zu
254diesem Tage nicht selbsttätig verarbeitbaren Änderungsanweisungen nach näherer
255Maßgabe der nachstehenden Abschnitte einer Verarbeitung zugänglich gemacht. Die
256Zahl der nicht erkannten Anweisungen (nachfolgend: unbekannte Befehle“) ver-
257ringert sich hierdurch nach den vorliegenden Feststellungen wie folgt: im
258Datensatz GEG von fünfzig (50) auf fünf (5), im Datensatz IfSG von elf (11) auf
259drei (3), im Datensatz AGG von zwei (2) auf null (0) sowie im Datensatz UWG von
260zwei (2) auf null (0).
261
262
263Artikel 1
264Übernahme des vorbefindlichen Bearbeitungsstandes
265
266Der zum Stichtag im Arbeitsverzeichnis vorgehaltene, noch nicht in die Versions-
267verwaltung überführte Bearbeitungsstand wird eingecheckt. Erfasst werden ins-
268besondere der Sammelbefehl (mehrere Teilbefehle als ein Protokolleintrag), die
269mehrfache Stellenauflösung (StellenParser.parseMehrfach) sowie die Auflösung von
270Bereichs-Umnummerierungen in absteigender Reihenfolge.
271
272
273Artikel 2
274Erkennung verbundener und mehrgliedriger Ersetzungsanweisungen
275
276Der Befehlserkenner (BefehlErkenner) wird wie folgt geändert:
277
2781. Die Erkennung wird in eine Einzelbefehls-Stufe (erkenneEinzeln) und eine nach-
279 geordnete Auffangstufe (erkennePaarErsetzung, erkenneVerbund) gegliedert. Trifft
280 ein Muster zwar auf den Wortlaut, nicht aber auf eine auflösbare Stelle zu, so
281 steht dies der Prüfung der nachfolgenden Muster und Auffangstufen nicht mehr
282 entgegen.
283
2842. Anweisungen der Form In <Stelle> werden die Wörter A durch die Wörter B
285 und die Angabe C durch die Wörter D ersetzt werden erkannt; für jedes
286 Ersetzungspaar wird eine Ersetzung gebildet und, im Falle koordinierter Stellen,
287 das Kreuzprodukt aus Stellen und Paaren gebildet.
288
2893. Anweisungen der Form „... und wird/werden ...“ werden an der Verbindungsstelle
290 versuchsweise zerlegt; wird jede Teilklausel als eigenständiger Befehl erkannt
291 unverändert, mit großem Anfangsbuchstaben oder unter Voranstellung des lokativen
292 Präfixes der linken Klausel –, so entsteht ein Sammelbefehl.
293
2944. Ergänzend werden die Einfügung eines Satzzeichens („... ein Komma eingefügt“)
295 sowie die anker-voranstehende Einfügung („Nach der Angabe „...“ wird ...
296 eingefügt“) als Muster aufgenommen.
297
298Der Stellenparser (StellenParser) wird dahin geändert, dass eine bloße Nummer oder
299ein bloßer Buchstabe die Komponentenart der jeweils vorangehenden Stelle erbt
300(„Absatz 1 und 5“).
301
302
303Artikel 3
304Erkennung von Bereichs-, Wortlaut- und Satzzeichenanweisungen
305
3061. Der Stellenparser wird um die Entfaltung von bis“-Bereichen (ganzzahlig sowie
307 für Einzelbuchstaben) und um die Pluralformen der Komponentenbezeichnungen
308 (Absätze, Sätze, Nummern, Buchstaben) ergänzt.
309
3102. Die Aufhebung wird auf bereichs- und koordinierte Angaben erstreckt („Die
311 Nummern 1 bis 3 werden aufgehoben“, Die Absätze 4 und 5 werden aufgehoben“).
312
3133. Die Bereichs-Umnummerierung wird auf Nummern und Buchstaben sowie auf die Form
314 ohne zu den erstreckt („Die bisherigen Nummern 4 bis 6 werden die Nummern
315 8 bis 10“); die Einzel-Umnummerierung wird auf Nummern und Buchstaben sowie auf
316 die Einleitung Die bisherige erstreckt.
317
3184. Die Neufassung eines Paragraphen-Bereichs („Die §§ 52 bis 56 werden wie folgt
319 gefasst: ...“) wird durch Zerlegung des zitierten Blocks an den „§ N“-Grenzen
320 erkannt.
321
3225. Es wird der Befehl WortlautZuAbsatz eingeführt; die Anweisung Der Wortlaut
323 wird Absatz N versieht den bislang unnummerierten Normtext mit der Absatznummer.
324
3256. Die Ersetzung eines Wortes durch ein Satzzeichen („... das Wort oder am Ende
326 durch ein Komma ersetzt“) sowie die zusammengesetzten Kommaformen werden erkannt.
327
328
329Artikel 4
330Aufnahme der Gliederungs- und Inhaltsübersichts-Anweisungen
331
3321. Das Datenmodell wird wie folgt geändert:
333 a) Die Gliederung (Gliederung) wird um die Gliederungskennzahl ergänzt.
334 b) Das Gesetz (Gesetz) führt fortan die geordnete Liste der Gliederungs-
335 einheiten mit; der Lader (GiiXmlLoader) erhebt diese aus dem gii-XML.
336
3372. Die Stelle (Stelle) wird um die Komponenten Gliederungseinheit (Teil,
338 Abschnitt, Unterabschnitt, Anlage und dergleichen) sowie Absatzbezeichnung
339 ergänzt. Der Stellenparser erkennt diese Komponenten, ferner die Wendung
340 „Überschrift von <Gliederung>“, und lässt die verfeinernden Zusätze Satzteil
341 vor Nummer N und Angabe vor Nummer N außer Betracht.
342
3433. Die Neufassung sowie die Streichung von Gliederungsberschriften werden auf den
344 Gliederungsbaum angewandt und in der Synopse als gesonderter Abschnitt
345 Geänderte Gliederungsberschriften dargestellt. Die Streichung einer
346 Absatzbezeichnung entfernt die betreffende Absatznummer. Die die Inhaltsübersicht
347 betreffenden Anweisungen („Die Angabe(n) zu ...“) werden erkannt.
348
349
350Schlussbestimmung
351
352Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle
353(einhundertneunzehn an der Zahl) sowie durch die vollständige Erstellung (mvnw
354verify) bestätigt worden. Nicht selbsttätig verarbeitbar bleiben einstweilen die
355mehrquelligen Struktur-Ersetzungen, die Einfügung und Bereichsersetzung ganzer
356Paragraphenfolgen (§§), die Neufassung von Satzbereichen sowie die stellenlosen
357Chapeau-Anweisungen; diese werden dem Abschnitt Manuell prüfen zugewiesen. Die
358Unterstützung des bayerischen Landesrechts bleibt einem späteren Zeitpunkt
359vorbehalten.