Run the NRW mass test: WDR-Gesetz and LMG NRW
The 22nd Rundfunkänderungsgesetz amends five laws in one gazette issue.
Article 3 (TMZ-Gesetz) was already an acceptance case; this adds the two
big ones — Article 1 (WDR-Gesetz, 101 commands across 31 norms) and
Article 2 (LMG NRW, 18 commands). Both stem versions come from
recht.nrw.de, whose URLs address a version by its date of entry into
force, so the results could be checked norm by norm against the official
1 April 2026 consolidations.
Applying them turned up work at every layer:
Order of application. Renumbering always refers to the original count,
not to the state after the preceding items, so a cascade („Absatz 3 wird
Absatz 4“, „Absatz 4 wird Absatz 5“, …) applied in document order leaves
the law carrying two units of the same name. BefehlAnwender now derives,
for each command, which designations it vacates and which it newly
occupies, and pulls a vacating command ahead of the first one it
collides with. That single rule subsumes the previous §-only special
case, orders a cascade descending, and — inside a Sammelbefehl too —
keeps a range renumbering from colliding with itself. Bayern's Art. 29a
sequence now resolves as well (5 manual residues down to 3).
Renumbering an enumeration item. Unlike an Absatz, a Nummer carries its
designation as a marker in the text; the applier silently reported
success without touching it. It now rewrites the marker and lets a
struck placeholder with the target designation give way.
Sentence splitting. Gazette citations („(BGBl. I S. 1982)“) and
line-initial enumeration markers were splitting sentences, so Satz
locators pointed into the wrong place; a sentence may also open with §.
Command language: „wie folgt neu gefasst“ and the missing „wird“, a
split location („In Absatz 2 wird Satz 1 wie folgt gefasst“), an
insertion behind a location prefix, the standalone „Der Punkt am Ende
wird durch … ersetzt“, „Dem Wortlaut des Absatzes 3 …“, the verb frame
„Es werden ersetzt:“ whose items carry only the location, coordination
at „sowie“ and before a punctuation clause, and a stray closing quote at
the end of a sentence.
Stem format: LandesRechtTextParser reads an „Inhaltsübersicht“ line as
the norm of that name (which is what the Angabe commands address) and
recognises keyword-less Roman section headings.
Everything the two acceptance tests do not apply is named: one command
in the WDR-Gesetz whose „Punkt am Ende des Satzes“ is not unambiguous in
a two-sentence Nummer. The remaining differences from the official
consolidations are places where the official text itself departs from
the command wording; SOURCES lists them.
Change-Id: I261cf89cd5820f7597bc5db734f322d94b84828e
diff --git a/src/main/resources/sampledata/NRW/SOURCES b/src/main/resources/sampledata/NRW/SOURCES
new file mode 100644
index 0000000..09cca21
--- /dev/null
+++ b/src/main/resources/sampledata/NRW/SOURCES
@@ -0,0 +1,46 @@
+Änderungsgesetz:
+- Gesetz zur Änderung des Gesetzes über den „Westdeutschen Rundfunk
+ Köln“, des Landesmediengesetzes Nordrhein-Westfalen und zur Änderung
+ weiterer Gesetze (22. Rundfunkänderungsgesetz) vom 24.03.2026,
+ verkündet am 31.03.2026 (GV. NRW. 2026 Nr. 7 S. 202), in Kraft seit
+ 01.04.2026
+- https://recht.nrw.de/gvnrw/2026-7
+ (GV-NRW-2026-S202_22-Rundfunkaenderungsgesetz.pdf)
+- Das Heft ändert fünf Gesetze; Artikel 1 (WDR-Gesetz), Artikel 2
+ (Landesmediengesetz) und Artikel 3 (Telemedienzuständigkeitsgesetz)
+ sind als Akzeptanzfälle hinterlegt, Artikel 4 (17. RÄStV-AusfG) und
+ Artikel 5 (Inkrafttreten) nicht.
+
+Stammfassungen (jeweils die vor dem Änderungsgesetz geltende Fassung):
+- recht.nrw.de gibt jede Fassung unter
+ recht.nrw.de/lrgv/gesetz/<TTMMJJJJ>-<Kurztitel-Slug> aus; der
+ Datumspräfix ist der Gültigkeitsbeginn. Die Seiten sind serverseitig
+ gerendertes HTML (keine Single-Page-Anwendung); die Slugs stehen im
+ Sitemap-Index (robots.txt → sitemap/page/1..47/sitemap.xml), die
+ Suchmaske findet sie nicht.
+- WDR-Gesetz-alt.txt: Gesetz über den „Westdeutschen Rundfunk Köln“
+ (WDR-Gesetz) in der Fassung der Bekanntmachung vom 25.04.1998
+ (GV. NRW. S. 265), Stand 01.01.2025, aus
+ .../01012025-gesetz-ueber-den-westdeutschen-rundfunk-koeln-wdr-gesetz-bekanntmachung-der
+- LMG-NRW-alt.txt: Landesmediengesetz Nordrhein-Westfalen (LMG NRW) vom
+ 02.07.2002 (GV. NRW. S. 334), Stand 01.01.2025, aus
+ .../01012025-landesmediengesetz-nordrhein-westfalen-lmg-nrw
+- TMZ-Gesetz-alt.txt: Telemedienzuständigkeitsgesetz vom 29.03.2007
+ (GV. NRW. S. 137), Stand 27.04.2022, aus
+ .../27042022-gesetz-zur-regelung-der-zustaendigkeit-fuer-die-ueberwachung-von-telemedien
+- Aufbereitung ins kanonische Klartextformat des LandesRechtLoaders:
+ je <section class="legaldoc-article"> ein Normkopf aus
+ field_num + field_headline, darunter die <p>-Absätze; die
+ Inhaltsübersicht der ersten Sektion wird zur Norm „Inhaltsübersicht“
+ mit Zeilen „§ N | Titel“. Einzelne Normen führen auf recht.nrw.de
+ keinen Kopf (WDR § 3a, LMG § 33e) — ihre Bezeichnung stammt dann aus
+ der Inhaltsübersicht.
+
+Abgleich:
+- Die Nachfassungen vom 01.04.2026 (Datumspräfix 01042026) dienten als
+ Sollwert; verglichen wurde normweise der Gesamttext. Es bleiben nur
+ Abweichungen, in denen die amtliche Nachfassung selbst über den
+ Befehlswortlaut hinausgeht (WDR-Gesetz § 15: „des“ vor
+ „Bundesreisekostengesetzes“ entfallen; §§ 7 und 21: ein überzähliges
+ Anführungszeichen aus dem Änderungsgesetz übernommen; LMG NRW § 93
+ Absatz 3 Nummer 11: zusätzlich die Wörter „Film (“ gestrichen).