Support the digital BGBl format and bill drafts as inputs.

The Bundesgesetzblatt has been published digitally via recht.bund.de
since 2023 in a new single-column layout, and pending amendment acts
are only available as Referenten-/Regierungsentwuerfe or Bundestag
printed papers.  Both now work as patch inputs:

* PDF extraction filters out small print by font size (two-pass
  PDFTextStripper): in the new BGBl format, footnote blocks and
  superscript footnote markers would otherwise land in the middle of
  the statutory text, even inside quoted passages.
* TextBereiniger recognizes the new page headers (BGBl "Seite N von
  M", draft page markers " - N - ", Bundestag printed-paper headers)
  and joins markerless end-of-line hyphenation (BT-Drs PDFs break
  words without a hyphen character; regular wraps carry a trailing
  space, so its absence is the signal -- gated on the source using
  the trailing-space convention at all, protecting hand-written
  plain-text inputs).  BMJV draft templates draw the hanging opening
  quote after the paragraph marker ("(1) „" / "§ 19„"); this
  inversion is repaired.
* Drafts embed the statutory text between a cover sheet and a
  Begruendung section; article scanning now stops at the Begruendung
  heading.  Articles without numbered items (single-command articles
  like ProdHaftG-RegE Artikel 2) are parsed from the preamble rest.
* Target-law matching is declension-tolerant ("Das Allgemeine
  Gleichbehandlungsgesetz" matches "Allgemeines
  Gleichbehandlungsgesetz") via rough word-stem comparison.
* New command form StrukturErsetzung ("§ 2 Absatz 2 wird durch die
  folgenden Absätze 2 und 3 ersetzt"); "durch die folgende
  Überschrift/den folgenden § N ersetzt" map to Neufassung; plural
  insertions ("die folgenden Absätze 6 und 7"), triple-letter outline
  markers (aaa), the compound punctuation replacement ("durch ein
  Komma und die Wörter ... ersetzt"), and Inhaltsuebersicht-Angaben
  inside a context frame are recognized.

End-to-end smoke tests cover the four new datasets: UWG (new BGBl
format, footnote-filter assertion), GEG 2023 ("Heizungsgesetz",
121 commands), AGG (BT-Drs draft against an unconsolidated base --
the first dataset with real diffs, spot-checked against the official
BMJV synopsis), and ProdHaftG (draft whose Artikel 1 is a replacement
law and only Artikel 2 amends the base).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Change-Id: Id1b12bc0bee4178bd1a5c55b3a83f6e13944af69
13 files changed
tree: 1712c78dbf321a0c671425cfbbd4c9a7a5a7106b
  1. .mvn/
  2. src/
  3. .gitignore
  4. COPYING
  5. mvnw
  6. mvnw.cmd
  7. pom.xml
  8. README.adoc