diff options
| author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2026-07-28 06:00:16 +0200 |
|---|---|---|
| committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2026-07-28 06:00:16 +0200 |
| commit | 5f30f566873c313b554f087c0f7e132efa54d64a (patch) | |
| tree | 4f6c33a0a1e9a6b2b1ad29bffef4defd0990fef2 /README.adoc | |
| parent | 79b88e0a8cb4dfc9c33fe219045f3da7f64256c4 (diff) | |
Recognise word-anchored insertions; close quotes at the next item
The documented next step was the word-anchored structural insertion
("Vor den Wörtern „Aus dem Bereich Verkehr:“ wird folgender Absatz 5
eingefügt", Berlin Artikel 1 Nr. 2 b) bb)). StrukturEinfuegung now
carries an optional WortAnker, the recogniser has a pattern for the form
— placed before STRUKTUR_EINFUEGUNG, which bails out of recognition
entirely when the StellenParser cannot read "den Wörtern «0»" — and the
applier positions the new unit at the anchor line instead of a structural
boundary.
Two blockers turned up next to it, both measured on the corpus rather
than assumed:
The command was not cleanly recognisable at all. Its closing quotation
mark is missing in the official text, so the quote swallowed items cc)
and c); an anchor alone would have made the command look applicable with
a huge foreign quote as its payload. The docs called a boundary at
enumeration markers impossible, and that holds for the unguarded form: a
quoted amendment provision carries command language itself. Guarded by
four conditions together — the article's quotation marks demonstrably do
not balance, the next line's marker is at the same or a shallower level
than the one the quote opened on, that line carries command language, and
closing here leaves the rest of the article balanced — it fires exactly
twice in the whole sample corpus, both times where the missing mark
belongs: Berlin before cc), and GV. NRW. Artikel 2 before 12. Without the
guards it also fires inside quoted amendment provisions in the BayJG and
GModG documents; the balance gate rules those out.
The GV.-NRW. gazette encodes part of its umlauts decomposed (u + U+0308,
79 places, dozens of them "eingefügt:"/"angefügt:"). Invisible in the
text, but a different word to every command pattern, so those commands
could never match. TextBereiniger now normalises to NFC first — not
NFKC, which would flatten the official sentence numbers ¹²³ and take
SatzTeiler and Superskript their basis. Every other sample document,
every gii-XML stem and every hand-kept plain-text stem is already NFC, so
the pinned figures stay bit-identical.
Berlin Artikel 1 is thereby fully recognised (6 of 6 commands, none
unknown). One pinned statement changed for a stated reason: the NRW
acceptance test asserted the article-heading warning, which is now
preempted by the item boundary inside Artikel 2 — Nr. 12 survives
instead of being swallowed. 241 tests green.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Change-Id: Ic579bec6fecc2495a61b3dcf87c9ad71b42f34ae
Diffstat (limited to 'README.adoc')
| -rw-r--r-- | README.adoc | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/README.adoc b/README.adoc index d3a8eb5..dc1893d 100644 --- a/README.adoc +++ b/README.adoc @@ -107,13 +107,20 @@ ersetzt, eingefügt, gestrichen — sie werden auf die Inhaltsübersichts-Norm angewandt), das Einfügen und Ersetzen von Gliederungs-Überschriften („Nach § 33 werden die folgenden Überschriften zu Teil 3 … eingefügt“), Voranstellungen, Mehrfach-Ersetzungs- und --Einfügepaare, Verbünde aus Umnummerierung und Folgeänderung („§ 50 wird -zu § 38 und wird wie folgt geändert“) sowie die Neufassung der -Gesetzesüberschrift. Die PDF-Aufbereitung toleriert dabei +-Einfügepaare, Einfügungen, deren Position ein Wortanker statt einer +Stellenangabe bestimmt („Vor den Wörtern „Aus dem Bereich Verkehr:“ wird +folgender Absatz 5 eingefügt“), Verbünde aus Umnummerierung und +Folgeänderung („§ 50 wird zu § 38 und wird wie folgt geändert“) sowie die +Neufassung der Gesetzesüberschrift. Die PDF-Aufbereitung toleriert dabei Drucksachen-Artefakte (Seitenköpfe und -füße, Vorabfassungs-Wasserzeichen, -vertauschte oder gerade Anführungszeichen, verklebte Wortgrenzen) und -bestimmt die Brotschrift seitenweise, sodass auch Ministeriumsentwürfe -mit gemischten Layouts vollständig extrahiert werden. Auf den +vertauschte oder gerade Anführungszeichen, verklebte Wortgrenzen, zerlegt +kodierte Umlaute) und bestimmt die Brotschrift seitenweise, sodass auch +Ministeriumsentwürfe mit gemischten Layouts vollständig extrahiert +werden. Fehlt im amtlichen Satz ein schließendes Anführungszeichen, endet +das Zitat an der nächsten Strukturgrenze — an einer Artikel-Überschrift +oder, wo die Anführungszeichen eines Artikels nachweislich nicht +aufgehen, am nächsten Aufzählungspunkt des Änderungsgesetzes; gemeldet +wird das als Warnung. Auf den Beispieldaten werden damit alle Befehle der BGBl-Fassungen und der aktuellen Entwürfe angewandt (UWG/AGG/ProdHaftG: 0 manuell); was unsicher bleibt — etwa Befehle gegen eine ältere Gesetzesfassung, deren @@ -141,9 +148,9 @@ Paragraphen; die Unterschiede liegen im Gesetzblatt-Satz und in Befehlsidiomen. Belegt sind Sachsen (SächsBeamtVG), Niedersachsen (NEFG) und Nordrhein-Westfalen (Telemedienzuständigkeitsgesetz) mit vollen Akzeptanztests ohne Rest; für Schleswig-Holstein und Berlin -reicht die Prüfung bis zur Befehlserkennung, weil deren Landesportale -ihre Stammfassungen nur über eine anmeldepflichtige Schnittstelle -ausgeben. Welche Konvention welches Land beisteuert, welche +reicht die Prüfung bis zur Befehlserkennung — dort vollständig, aber ohne +Anwendung —, weil deren Landesportale ihre Stammfassungen nur über eine +anmeldepflichtige Schnittstelle ausgeben. Welche Konvention welches Land beisteuert, welche Stammfassungen woher stammen und was noch offen ist, verzeichnet `src/main/resources/sampledata/Landesrecht-Beispiele.adoc`. |
