blob: d3195bb867111f6570f52ada0e4784003d41e02b [file] [log] [blame]
╔══════════════════════════════════════════════════════════════════════════════╗
V E R Z E I C H N I S D E R F A S S U N G E N
des Softwareerzeugnisses „ÄndGgner
(Werkzeug zur Erstellung von Synopsen für Änderungsgesetze)
╚══════════════════════════════════════════════════════════════════════════════╝
Vorbemerkung zur Führung dieses Verzeichnisses
──────────────────────────────────────────────
(1) Dieses Verzeichnis dokumentiert nach Maßgabe der nachstehenden Bestimmungen
den jeweiligen Stand des Quelltextes des vorbezeichneten Erzeugnisses.
(2) Für jeden Kalendertag, an dem Änderungen am Quelltext vorgenommen werden, ist
ein gesonderter Abschnitt nach dem Muster der nachfolgenden Fassungen anzu-
legen; die Abschnitte sind in absteigender zeitlicher Reihenfolge (jüngste
Fassung zuerst) zu führen.
(3) Die Änderungen sind in sachlich gegliederter Form, unter fortlaufender
Nummerierung und unter Angabe der betroffenen Bestandteile (Klassen, Dateien)
zu bezeichnen. Maßgeblich ist die im Handbuch der Rechtsförmlichkeit nieder-
gelegte Ausdrucksweise entsprechend.
════════════════════════════════════════════════════════════════════════════════
Fassung vom 17. Juli 2026,
zuletzt geändert durch die am 17. Juli 2026 vorgenommenen Änderungen
════════════════════════════════════════════════════════════════════════════════
Auf Grund eines gemeldeten Wiedergabefehlers wird der Textbereiniger um eine
geometrische Zeilenend-Klassifikation auf Basis von PDFBox-Koordinaten ergänzt;
ferner wird die Strukturierung hängend eingerückter Definitionslisten (z.B. im
UWG-Anhang) sowohl im PDF-Extraktor als auch im XML-Flattener vereinheitlicht.
Artikel 1
Geometrische Spaltenbreiten-Klassifikation für markerlose Zeilenumbrüche
Der Textbereiniger (TextBereiniger.verbindeUmbrueche) zog eine Zeile, die ohne
Leerraum am Ende mit einem Buchstaben schließt und deren Folgezeile klein
beginnt, bislang stets ohne Trennzeichen mit der Folgezeile zusammen, in der
Annahme, es handle sich um eine bei der PDF-Extraktion um den Bindestrich
gebrachte Silbentrennung. Diese Annahme trifft auf einen bewussten Wortgrenzen-
Umbruch (etwa das Stichwort einer hängend eingerückten Definition, wie er im
Anhang zum UWG vorkommt) nicht zu. Zur Behebung bestimmt der PDF-Vorverarbeiter
(FontgroessenFilter) das geometrische End-X der Zeilenläufe und klassifiziert
die Zeilenenden anhand des lokalen rechten Randes (90. Perzentil in einem
Fenster von 20 Zeilen davor/danach) in weiche (am Rand endende), harte (deutlich
davor endende) oder unklassifizierte Umbrüche. Der Textbereiniger zieht nur noch
geometrisch weiche oder (in Ermangelung von Geometriedaten als Rückfalloption)
zeichenzahlnäherungsweise am Rand liegende markerlose Umbrüche zusammen. Harte
Umbrüche bleiben als gewollte Wortgrenzen-Umbrüche erhalten.
Artikel 2
Strukturierung und Normalisierung hängend eingerückter Definitionslisten
Damit die nunmehr erhaltenen hängenden Zeilenenden in Definitionslisten (wie
beim UWG-Anhang) korrekt strukturiert werden:
1. Der Befehlsanwender (BefehlAnwender.normalisiereZitatText) unterwirft nunmehr
auch die stellenlose Neufassung (z.B. eines Satzes) der Zitat-Normalisierung
und rückt fortlaufende Zeilen innerhalb eines Aufzählungspunktes tiefer
(vier Leerzeichen) ein als den Aufzählungspunkt selbst (zwei Leerzeichen).
2. Der XML-Flattener (ContentFlattener) trennt mehrere <LA>-Geschwister innerhalb
eines <DD>-Elements durch Zeilenumbrüche und rückt sie tiefer ein.
Beide Wege erzeugen dieselbe kanonische Zeilenform, welche für die korrekte
Erkennung von Kindzeilen durch die Stellenauflösung erforderlich ist.
Schlussbestimmung
Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle (einhun-
dertvierundsiebzig an der Zahl) sowie durch die vollständige Erstellung (mvnw
verify) bestätigt worden. Anlass war ein anhand der UWG-Novelle 2026 gemeldeter
Wiedergabefehler; die Behebung wurde anhand der Beispieldaten (UWG-Anhang,
Nummern 2a sowie 4a bis 4c) verifiziert.
════════════════════════════════════════════════════════════════════════════════
Fassung vom 16. Juli 2026,
zuletzt geändert durch die am 16. Juli 2026 vorgenommenen Änderungen
════════════════════════════════════════════════════════════════════════════════
Auf Grund der vierten Ertüchtigungswelle werden Anhänge und Anlagen als Norm-Ziele,
die Angabe-Befehle der Inhaltsübersicht sowie die Einfügung und Ersetzung von
Gliederungsberschriften einer Verarbeitung zugänglich gemacht; ferner wird der
Befehlserkenner um weitere Verbund- und Bereichsformen sowie die Neufassung der
Gesetzesüberschrift ergänzt und die Brotschriftbestimmung des PDF-Vorverarbeiters
seitenweise gefasst.
Artikel 1
Anhänge und Anlagen als Norm-Ziele
Die Stelle (Stelle) wird um die Unterscheidung zwischen echten Gliederungseinheiten
(Teil, Abschnitt, Unterabschnitt und dergleichen) und Anhängen/Anlagen ergänzt
(betrifftEchteGliederung, anlagenEnbez); Anhänge und Anlagen sind im gii-XML eigene
Normen mit Text und werden fortan wie Paragraphen behandelt. Der Stellenaufloeser
löst hierbei Nummer- und Buchstabe-Ketten verschachtelt und blockweise auf: die
Aufzählungszeile einer Nummer oder eines Buchstabens wird um ihre tiefer
eingerückten Kindzeilen erweitert, und eine Angabe ohne Absatzbezeichnung wird
norm-weit gesucht, sofern sie in genau einem Absatz auffindbar ist.
Artikel 2
Selbsttätige Anwendung der Inhaltsübersichts-Angaben
Es wird der Anwender InhaltsuebersichtAnwender eingeführt, der die Angabe-Befehle
(gefasst, ersetzt, eingefügt, gestrichen sowie die Neufassung der gesamten
Übersicht) auf das Zeilenmodell der Inhaltsübersichts-Norm anwendet. Eine adressierte
Zeile wird anhand der Gliederungs- und Paragraphen-Kette der Stelle verschachtelt
gesucht, wobei gleichrangige Gliederungseinheiten als Fenstergrenzen dienen. Bei der
Neufassung der gesamten Übersicht schützt eine Plausibilitätssperre vor der
Übernahme eines Zitats, das durch ein unbalanciertes Anführungszeichen Befehlssprache
nachfolgender Anweisungen mitgerissen hat; ein solcher Fall wird dem Abschnitt
Manuell prüfen zugewiesen.
Artikel 3
Einfügung und Ersetzung von Gliederungsberschriften
Es wird der Befehl GliederungsUeberschriften eingeführt; die Anweisungen Nach
§ N werden die folgenden Überschriften zu ... eingefügt: „…““ sowie Die bisherigen
Überschriften zu ... werden durch die folgende Überschrift zu ... ersetzt: „…““
legen neue Einheiten im Gliederungsbaum an beziehungsweise ersetzen bisherige
Einheiten durch neue. Der Befehlsanwender (BefehlAnwender.wendeGliederungsUeberschriftenAn)
zieht die Titel der neuen Einheiten aus dem Zitat und ordnet sie an der Stelle der
ersetzten Einheiten beziehungsweise hinter dem Einfügeanker ein. Ferner wird die
Neufassung der Gesetzesüberschrift selbst („Die Überschrift wird wie folgt gefasst
ohne weitere Stellenangabe) erkannt und auf den Langtitel des Gesetzes angewandt.
Artikel 4
Weitere Erweiterungen des Befehlserkenners
Der Befehlserkenner (BefehlErkenner) wird um Voranstellungen, Mehrfach-Ersetzungs-
und -Einfügepaare, Bereichsziele auf Nummern und Buchstaben, zusammengesetzte
Komma-Mehrfachpaare sowie Umnummerierungs-Verbünde („§ 50 wird zu § 38 und wird wie
folgt geändert: ...“) ergänzt.
Artikel 5
Seitenweise Brotschriftbestimmung
Der Fontgrößenfilter (FontgroessenFilter) bestimmt die Brotschrift fortan seitenweise
statt dokumentweit: Auf jeder Seite gilt die größte Fontgröße mit mindestens 25 vom
Hundert Seitenanteil als Brotschrift, wobei eine absolute Mehrheit ab 60 vom Hundert
sofort entscheidet; Fußnoten werden als Kleingedrucktes unterhalb der letzten
Brotschriftzeile erkannt, Seitenfüße bleiben hiervon ausgenommen. Der Textbereiniger
(TextBereiniger) wird um die Toleranz weiterer Drucksachen-Artefakte (Seitenköpfe
und -füße, Vorabfassungs-Wasserzeichen, vertauschte oder gerade Anführungszeichen,
verklebte Wortgrenzen) ergänzt.
Schlussbestimmung
Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle (einhundert-
dreiundsiebzig an der Zahl) sowie durch die vollständige Erstellung (mvnw verify)
bestätigt worden. Auf den Beispieldaten werden nunmehr sämtliche Befehle der
BGBl-Fassungen sowie der geprüften Entwürfe angewandt (UWG, AGG und ProdHaftG:
0 manuell). Nicht selbsttätig verarbeitbar bleiben einstweilen Befehle gegen eine
ältere, im XML-Bestand nicht mehr vorhandene Gesetzesfassung sowie vereinzelte,
durch Extraktionsverluste im Quell-PDF verursachte Zitatlücken; diese werden
weiterhin, mit Begründung versehen, dem Abschnitt Manuell prüfen zugewiesen. Die
Unterstützung des bayerischen Landesrechts bleibt einem späteren Zeitpunkt
vorbehalten.
════════════════════════════════════════════════════════════════════════════════
Fassung vom 15. Juli 2026,
zuletzt geändert durch die am 15. Juli 2026 vorgenommenen Änderungen
════════════════════════════════════════════════════════════════════════════════
Auf Grund der weiteren Ertüchtigung des Befehlserkenners und des Befehlsanwenders
werden Bereichs- und Koordinationsziele bei Struktur-Ersetzungen, die Streichung
und Umnummerierung ganzer Struktureinheiten (Paragraphen und Gliederungs-
einheiten) sowie das Einfügen und Ersetzen ganzer Paragraphenblöcke einer
Verarbeitung zugänglich gemacht.
Artikel 1
Erweiterung der Struktur-Ersetzung um Ziel-Bereiche
Der Aenderungsbefehl (Aenderungsbefehl.StrukturErsetzung) wird um das Feld
bisStelle ergänzt, welches bei einem zusammenhängenden, koordinierten Ziel-
Bereich („Die Absätze 8 und 9 werden durch die folgenden Absätze 8 bis 10
ersetzt: „…““, Die bisherigen Sätze 4 und 5 werden wie folgt gefasst: „…““)
das letzte Ziel bezeichnet; bei einem Einzelziel bleibt es unbesetzt. Der
Befehlsanwender (BefehlAnwender) löst den Bereich für Absätze, Sätze und
Paragraphen auf und ersetzt ihn durch den zitierten Block.
Artikel 2
Aufnahme struktureller Streichungen und Umnummerierungen
Der Befehlserkenner wird wie folgt geändert:
1. Die Streichung ganzer Struktureinheiten („§ 9 wird gestrichen.“, Die §§ 34
bis 39 werden gestrichen.“, Der bisherige Teil 3 wird gestrichen.“) wird als
Aufhebung erkannt.
2. Die Umnummerierung wird auf Paragraphen und Gliederungseinheiten (Teil,
Abschnitt, Unterabschnitt, Buch, Kapitel, Anlage) erstreckt sowie um die
paarweise §-Umnummerierung („Die §§ 46 und 47 werden zu den §§ 34 und 35.“)
ergänzt. Der Befehlsanwender benennt hierbei die betroffene Norm oder
Gliederungseinheit um; eine bereits weggefallene Zielnorm wird überschrieben.
3. Die Neufassung eines §-Bereichs wird auf die Form ohne bisherige erstreckt
und liefert bei mehrgliedrigem Ziel nunmehr eine bereichsbezogene Struktur-
Ersetzung statt eines Einzelbefehls.
4. Die Neufassung der Überschrift einer benannten Einheit („In Anlage 7 wird die
Überschrift durch die folgende Überschrift ersetzt: „…““) sowie der Inhalts-
übersicht werden erkannt; letztere wird stets der manuellen Prüfung
zugewiesen.
5. Die Entwurfsform der Struktur-Ersetzung, bei der die Aufzählungsbezeichnung
außerhalb des Zitats steht („… ersetzt: 3. „…““), wird abgefangen und dem
Ersatztext wieder vorangestellt.
6. Der Chapeau-Qualifier („Im Satzteil vor Nummer 1 …“, In der Angabe vor
Nummer 1 …“) wird auf weitere Einleitungen erstreckt; steht er allein, ohne
eigene Stelle, so bezieht sich die Operation auf die Kontextstelle.
Artikel 3
Einfügung und Ersetzung ganzer Paragraphenblöcke
1. Die Einfügung mehrerer Paragraphen in einem Zuge („Nach § 60a werden die
folgenden §§ 60b und 60c eingefügt: „…““) sowie die Ersetzung eines §-Bereichs
durch einen §-Block werden erkannt.
2. Der Befehlsanwender zerlegt den zitierten Block anhand der §-Überschriften
(unter Ausschluss bloßer Querverweise wie „§ 71 Absatz 1“) in die einzelnen
Paragraphen und fügt sie geschlossen ein oder setzt sie an die Stelle des
ersetzten Bereichs.
Schlussbestimmung
Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle
(einhundertvierundvierzig an der Zahl) sowie durch die vollständige Erstellung
(mvnw verify) bestätigt worden. Nicht selbsttätig verarbeitbar bleiben
einstweilen die mehrquellige Struktur-Ersetzung über mehrere Gesetze hinweg
sowie vereinzelte Sonderfälle der Entwurfsfassung (Drucksachen); diese werden
dem Abschnitt Manuell prüfen zugewiesen. Die Unterstützung des bayerischen
Landesrechts bleibt einem späteren Zeitpunkt vorbehalten.
════════════════════════════════════════════════════════════════════════════════
Fassung vom 13. Juli 2026,
zuletzt geändert durch die am 13. Juli 2026 vorgenommenen Änderungen
════════════════════════════════════════════════════════════════════════════════
Auf Grund der fortdauernden Ertüchtigung des Befehlserkenners werden die bis zu
diesem Tage nicht selbsttätig verarbeitbaren Änderungsanweisungen nach näherer
Maßgabe der nachstehenden Abschnitte einer Verarbeitung zugänglich gemacht. Die
Zahl der nicht erkannten Anweisungen (nachfolgend: unbekannte Befehle“) ver-
ringert sich hierdurch nach den vorliegenden Feststellungen wie folgt: im
Datensatz GEG von fünfzig (50) auf fünf (5), im Datensatz IfSG von elf (11) auf
drei (3), im Datensatz AGG von zwei (2) auf null (0) sowie im Datensatz UWG von
zwei (2) auf null (0).
Artikel 1
Übernahme des vorbefindlichen Bearbeitungsstandes
Der zum Stichtag im Arbeitsverzeichnis vorgehaltene, noch nicht in die Versions-
verwaltung überführte Bearbeitungsstand wird eingecheckt. Erfasst werden ins-
besondere der Sammelbefehl (mehrere Teilbefehle als ein Protokolleintrag), die
mehrfache Stellenauflösung (StellenParser.parseMehrfach) sowie die Auflösung von
Bereichs-Umnummerierungen in absteigender Reihenfolge.
Artikel 2
Erkennung verbundener und mehrgliedriger Ersetzungsanweisungen
Der Befehlserkenner (BefehlErkenner) wird wie folgt geändert:
1. Die Erkennung wird in eine Einzelbefehls-Stufe (erkenneEinzeln) und eine nach-
geordnete Auffangstufe (erkennePaarErsetzung, erkenneVerbund) gegliedert. Trifft
ein Muster zwar auf den Wortlaut, nicht aber auf eine auflösbare Stelle zu, so
steht dies der Prüfung der nachfolgenden Muster und Auffangstufen nicht mehr
entgegen.
2. Anweisungen der Form In <Stelle> werden die Wörter A durch die Wörter B
und die Angabe C durch die Wörter D ersetzt werden erkannt; für jedes
Ersetzungspaar wird eine Ersetzung gebildet und, im Falle koordinierter Stellen,
das Kreuzprodukt aus Stellen und Paaren gebildet.
3. Anweisungen der Form „... und wird/werden ...“ werden an der Verbindungsstelle
versuchsweise zerlegt; wird jede Teilklausel als eigenständiger Befehl erkannt
unverändert, mit großem Anfangsbuchstaben oder unter Voranstellung des lokativen
Präfixes der linken Klausel –, so entsteht ein Sammelbefehl.
4. Ergänzend werden die Einfügung eines Satzzeichens („... ein Komma eingefügt“)
sowie die anker-voranstehende Einfügung („Nach der Angabe „...“ wird ...
eingefügt“) als Muster aufgenommen.
Der Stellenparser (StellenParser) wird dahin geändert, dass eine bloße Nummer oder
ein bloßer Buchstabe die Komponentenart der jeweils vorangehenden Stelle erbt
(„Absatz 1 und 5“).
Artikel 3
Erkennung von Bereichs-, Wortlaut- und Satzzeichenanweisungen
1. Der Stellenparser wird um die Entfaltung von bis“-Bereichen (ganzzahlig sowie
für Einzelbuchstaben) und um die Pluralformen der Komponentenbezeichnungen
(Absätze, Sätze, Nummern, Buchstaben) ergänzt.
2. Die Aufhebung wird auf bereichs- und koordinierte Angaben erstreckt („Die
Nummern 1 bis 3 werden aufgehoben“, Die Absätze 4 und 5 werden aufgehoben“).
3. Die Bereichs-Umnummerierung wird auf Nummern und Buchstaben sowie auf die Form
ohne zu den erstreckt („Die bisherigen Nummern 4 bis 6 werden die Nummern
8 bis 10“); die Einzel-Umnummerierung wird auf Nummern und Buchstaben sowie auf
die Einleitung Die bisherige erstreckt.
4. Die Neufassung eines Paragraphen-Bereichs („Die §§ 52 bis 56 werden wie folgt
gefasst: ...“) wird durch Zerlegung des zitierten Blocks an den „§ N“-Grenzen
erkannt.
5. Es wird der Befehl WortlautZuAbsatz eingeführt; die Anweisung Der Wortlaut
wird Absatz N versieht den bislang unnummerierten Normtext mit der Absatznummer.
6. Die Ersetzung eines Wortes durch ein Satzzeichen („... das Wort oder am Ende
durch ein Komma ersetzt“) sowie die zusammengesetzten Kommaformen werden erkannt.
Artikel 4
Aufnahme der Gliederungs- und Inhaltsübersichts-Anweisungen
1. Das Datenmodell wird wie folgt geändert:
a) Die Gliederung (Gliederung) wird um die Gliederungskennzahl ergänzt.
b) Das Gesetz (Gesetz) führt fortan die geordnete Liste der Gliederungs-
einheiten mit; der Lader (GiiXmlLoader) erhebt diese aus dem gii-XML.
2. Die Stelle (Stelle) wird um die Komponenten Gliederungseinheit (Teil,
Abschnitt, Unterabschnitt, Anlage und dergleichen) sowie Absatzbezeichnung
ergänzt. Der Stellenparser erkennt diese Komponenten, ferner die Wendung
„Überschrift von <Gliederung>“, und lässt die verfeinernden Zusätze Satzteil
vor Nummer N und Angabe vor Nummer N außer Betracht.
3. Die Neufassung sowie die Streichung von Gliederungsberschriften werden auf den
Gliederungsbaum angewandt und in der Synopse als gesonderter Abschnitt
Geänderte Gliederungsberschriften dargestellt. Die Streichung einer
Absatzbezeichnung entfernt die betreffende Absatznummer. Die die Inhaltsübersicht
betreffenden Anweisungen („Die Angabe(n) zu ...“) werden erkannt.
Schlussbestimmung
Die vorstehenden Änderungen sind durch die Prüfung sämtlicher Testfälle
(einhundertneunzehn an der Zahl) sowie durch die vollständige Erstellung (mvnw
verify) bestätigt worden. Nicht selbsttätig verarbeitbar bleiben einstweilen die
mehrquelligen Struktur-Ersetzungen, die Einfügung und Bereichsersetzung ganzer
Paragraphenfolgen (§§), die Neufassung von Satzbereichen sowie die stellenlosen
Chapeau-Anweisungen; diese werden dem Abschnitt Manuell prüfen zugewiesen. Die
Unterstützung des bayerischen Landesrechts bleibt einem späteren Zeitpunkt
vorbehalten.