# Parsing and Chunking ## Parserrouter - Plain text/Markdown/JSON/YAML/TOML/logs: lichte veilige parser. - Broncode: language-aware symbol parser waar beschikbaar, veilige fallback per file/section. - PDF/DOCX/PPTX/XLSX/HTML: Docling-adapter. - OCR: alleen bij ontbrekende of aantoonbaar defecte text layer. **Shipped gedrag (1.2.0):** het gelockte docling-slim image bevat geen OCR-engine (`easyocr`); een PDF zonder tekstlaag wordt dus niet geOCR'd maar eindigt als `failed` (`parse_failed`/`no_indexable_content`) en is zo zichtbaar in Documents/Jobs. Born-digital PDF/DOCX/PPTX/XLSX/HTML worden wel geparsed, met paginanummers. - Executables, macro's en scripts worden nooit uitgevoerd. ## Canonical blocks Heading, paragraph, list, table, code, formula, caption, page break en asset reference met stable structure path en source location. ## Chunkprofielen - `prose-v1`: 600–900 targettokens, max 1200, sectiegrens respecteren. - `runbook-v1`: probleem/symptomen/prerequisites/stappen/validatie/rollback bijeenhouden. - `code-v1`: module/class/function/method/config resource; parentcontext voor symbolscope. - `table-v1`: headers aan row groups toevoegen en volledige tabel als parent bewaren. ## Deterministische identiteit `UUIDv5(document_version_id + structure_path + content_hash + chunk_profile_version)`. ## Parent-child Kleine childchunks dienen retrievalprecisie; ruimere parentchunks dienen context. Parentexpansie mag contextbudget en ACL nooit omzeilen.