Proof-of-concept: 10 wetten handmatig converteren #5
Labels
No labels
component:ai
component:api
component:cli
component:frontend
component:pipeline
prio:critical
type:docs
type:feature
type:infra
type:research
type:task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: wetgit/meta#5
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beschrijving
Handmatig 10 representatieve wetten converteren van BWB XML naar het WetGit Markdown-formaat om het bestandsformaat te valideren.
Doel
Kandidaat-wetten
Acceptatiecriteria
We kunnen nu echte BWB XML gebruiken voor de proof-of-concept — de repository en SRU-interface zijn publiek toegankelijk. Geen mock-data nodig.
Voorbeelddownload voor de Grondwet:
PoC gestart. Grondwet (BWBR0001840) succesvol geparsed:
src/wetgit/pipeline/bwb_parser.pyNog te doen: 9 overige wetten testen voor edge cases (tabellen, bijlagen, vervallen artikelen).
PoC voltooid — 9/10 wetten succesvol geparsed
Edge cases gevonden en opgelost
<boek>element: BW en Wetboek van Strafrecht gebruiken<boek>als top-level structuur ipv<hoofdstuk>. Parser uitgebreid.<kop>element: Boektitels zitten in een<kop>wrapper met<nr>en<titel>. Parser aangepast.Open punt
Conclusie
Het Markdown-formaat en de parser werken. De frontmatter is correct, artikelstructuur klopt, en de parser verwerkt zowel eenvoudige wetten als complexe wetboeken met boek/titel/afdeling nesting.
Uitgebreide edge case analyse — 30 wetten getest
Gevonden en opgeloste edge cases
<boek>als top-level structuur_parse_wettekstuitgebreid<kop>wrapper voor titels_parse_structuurleest<kop><regeling-tekst>ipv<wettekst><bijlage>buiten wettekst_parse_bijlage()toegevoegd<circulaire-tekst>+<circulaire.divisie><redactie>elementen ("Vervallen", "Nog niet in werking")*[tekst]*<tussenkop>subkoppen<gereserveerd>artikelen<vervallen>/<lid-vervallen>Geteste regelingtypen
Open punt
*[tabel]*placeholder weergegeven — echte tabel-naar-Markdown conversie is een apart issue<formule>element gevonden in de test-setitertext()meegenomen in de lopende tekst (acceptabel voor v0.1)Ronde 3 — Diepere edge cases + random sampling
Nieuwe fixes (ronde 2+3)
<nadruk type="cur">cursief*tekst*<nadruk type="vet">vet**tekst**<sup>superscript^nnotatie<sub>/<inf>subscript_nnotatie<table>/<row>/<entry>CALS tabellen in<lid><sub-paragraaf><divisie>in bijlagen<illustratie>*[afbeelding]*placeholder<formule>in<lid>*[formule: tekst]*placeholder<extref>/<intref>inline_collect_text()Random sampling
10 random wetten uit de hele SRU-catalogus (offsets 1-23000) — alle 10 succesvol geparsed, inclusief een Franse wet uit 1821.
Totaalscore
40 wetten getest, 0 parser failures.
Wat de parser nu verwerkt
<table>→ Markdown tabellenBekende beperkingen (acceptabel voor v0.1)
<tabel>wrapper (oud formaat) → placeholder<extref>link-informatie gaat verloren (tekst blijft behouden)