Repository navigation
Fix abstract section ownership and reading order to exclude body and metadata contamination #16
Description
Problem and observed impact
The abstract collector can omit a visible closing heading while appending the body below it. It can also append unrelated text to a paragraph that already exactly matches the abstract, turning a good source alignment into a failure. This affects both recall and accepted-proposal precision.
At commit d5ca636a48e963619f4c89e2958d0bb1a3e72f80, the surviving MinerU false proposal f039 has abstract recall 1.0 but precision approximately 0.561. All six previously correct cases whose first reported blocker is alignment failure—f032, f059, f098, f142, f145 and f146—start with a Docling paragraph that exactly matches the frozen reference and locates successfully in native text. Collection appends unrelated material before final alignment fails. The current integration report records the failed preservation gate.
Confirmed cause and evidence
_collect() anchors its candidate neighborhood to start["bbox"], which can be only the narrow centered word “Abstract.” Its overlap filter excludes a short left-aligned Introduction heading but retains a wider body paragraph beneath it. It then globally sorts remaining regions by y/x despite body_items() already traversing the converter's document tree.
f039 exhibits that mechanism; a later metadata boundary falsely makes the contaminated result appear bounded. f146 shows the reading-order defect: a right-column body region begins above the left-column Introduction heading. Neither source alignment nor final punctuation proves that all collected material belongs to an abstract.
An isolated anchor intervention corrected MinerU f039 and produced 12 boundary-and-text98-correct proposals among the 55 primary losses. A thirteenth, f195, passed historical text98 while retaining a footnote-boundary error. These are separate targeted diagnostics, not a validated algorithm or a recovery count to add to the geometry diagnostic.
Evidence is in validation_v3_private/diagnosis-20260928/selector-causes.json and summary.json beneath the authorized data root; latest results SHA-256: 661964b8db10bf2bd806a95a0119f4492dcabf72e759fff521993f702f016b0d.
Proposed work
Represent abstract content and boundaries as source-referenced regions with explicit section ownership. Derive the abstract extent from its content and layout, not a heading's width. Evaluate plausible closing headings before narrow geometric filtering can discard them. Reconcile hierarchy, local reading order, columns and typography; neither global y-sorting nor unverified tree order is sufficient.
Retain inclusion/exclusion reasons and the source evidence for each boundary. Stop before body, affiliations and metadata; preserve a legitimate full-width abstract above a multi-column body. Coordinate candidate scope with the multi-paragraph/structured-abstract issue, which decides whether a heading is internal to the abstract.
The Docling document model encodes reading order through body-tree children. GROBID coordinates can provide additional located structural candidates. Validate page and coordinate conventions before using any converter's geometry. These are design resources, not empirical evidence of a fix.
Reproduce and verify
Use an authorized external ${TRACE_GC_TEST_DATA_ROOT} containing the original validation_v2/ and validation_expanded200/ caches, frozen labels and the relative original-PDF source map described in the reproduction guide. These artifacts are private: an implementer needs authorized access, and authored fixtures cannot replace this corpus gate. At this pinned commit, the frozen helper still assumes a sibling data directory; setting the environment variable alone does not repair that assumption. Apply the tracked environment/data-root repair or use the original sibling layout, and verify the resolved root before a costly run.
From the repository root, with the validation environment and optional PyMuPDF/Pillow installed, run the existing commands below (Bash syntax). Choose a fresh output suffix on each run.
python -m unittest discover -s tests -p 'test_parallel_source*v4.py' -q
python -m src.parallel_source_v4.extraction regression \
--data-root "${TRACE_GC_TEST_DATA_ROOT}" \
--source-map validation_v3_private/parallel-v4-source-map.json \
--output validation_v3_private/boundaries-development-01
python tools/run_validation.py
python tools/validate_package.pyThe unchanged implementation should fail preservation (exit 1), with source preflight and saved v2 replay passing. A preflight error (exit 2) is not a measured regression run. Preserve immutable existing receipts; record the actual interpreter/dependency versions and source hashes for both comparisons.
Acceptance and delivery
- Add a centered narrow Abstract heading, left-aligned Introduction and wider body paragraph counterexample; f039 must stop before Introduction and match the reviewed abstract boundary.
- Preserve the exact abstract paragraphs in f032/f059/f098/f142/f145/f146 and exclude following nonabstract material. Show source-span readback and the located boundary for each.
- Test mismatched tree/geometric order, staggered two-column starts and a full-width abstract above two columns; no global sort may interleave body text.
- f150 excludes keywords/body. f195 excludes the trailing footnote marker under a boundary-aware check; historical text98 alone cannot mark it correct.
- Negative cases retain holds for unresolved section ownership, repeated source text, footnote-only apparent closure and real first-page continuation. A heading word inside a sentence must not truncate the abstract.
- Run the complete 200-paper/four-method replay; publish every changed case/state and aggregate error/coverage counts, including f039 across applicable methods. Do not silently drop conversion errors, partial pages or absent pages.
- Preserve first-page scope, source alignment, receipt verification and review-only admission. Deliver causal fixtures, implementation/version notes and a compact source/dependency-bound public receipt without private paper content.
Implementation and fixtures can proceed alongside geometry work; integrated qualification must include both. Remaining semantic-structure blockers must be linked and reported rather than recast as success.
Tracking and completion dependencies
Parent: #12. Milestone: Paper extraction and GraphRAG qualification.
Completion prerequisites: #13. These are native blocked-by links; design, fixtures and other independent implementation work may proceed in parallel.
Required by: #17.
Activity
CompleteDotTech commentedon Sep 28, 2026
Merged-tree acceptance audit (d7af957, saved-native 200×4 result SHA-256
0cfb07240426c5df4de077d6ae1091d28e0a2721558724da91ff1f55d75c19ec): the centered-heading/Introduction counterexample and 27 focused boundary tests pass. f039's primary/GROBID/MinerU arms have source-located Introduction closure and reviewed fidelity PASS; f150 excludes keywords/body after its explicit reviewed transition; f195 excludes the terminal footnote marker with a source-reviewed boundary PASS. The complete four-arm corpus run retains changed-case, absent/partial/error and withheld denominators with zero legacy false primary proposals.The six named alignment cases are not all resolved. f032 and f098 pass exact source-reviewed manual closure against current parent seals, and f145 passes all reviewed dimensions. f146 has a located boundary/order but notation FAIL. f059 and f142 remain geometry-held with zero final native abstract spans and no located closing boundary. f059's reviewed-image text handoff is a separate representation and does not prove native recovery. Acceptance checkbox 2 remains open; this issue remains OPEN, with the remaining work tracked through #15/#17/#19. Manual reviewed recovery is kept distinct from automatic proposals.
CompleteDotTech commentedon Sep 28, 2026
Merged PR #47 with verified merge signature and 6 passing PR plus 3 post-merge checks. Pinned local validation passed 995 run / 988 passed / 7 skipped / zero failures or errors; private report SHA-256
203d690c10fce4f6cfd8839d03f06ba8ac51f99ef62d62487668ac13a122ad07.The source-bound collector can now close a narrow inline Introduction boundary obscured by a small opposite-lane figure label, holds sentence-shaped source prose omitted by the lane model, and propagates notation review through composed paragraphs. Exact cached-native f142 changes from a geometry hold to a raw proposal, but it omits √ in the emitted text and is held for scientific fidelity (
math_review_required=true,admission=false). Private diagnostic receiptissue19-combined-f111-f142-20260928-01/receipt-v2.jsonSHA-25654ae33d90df2e1c6bf2bce535fac5c66fb799f49fb7ccaee15bbb421d647f78a. Full 200-case regression is running underissue19-structure-geometry-fresh200-20260928-01. Acceptance remains OPEN until source-faithful boundaries/notation and historical preservation pass; this merge is a bounded repair, not the corpus qualification.CompleteDotTech commentedon Sep 28, 2026
PR #49 merged a bounded native terminal-wrap chain, restoring f142 original radical position (6,0) in all four cached replay arms. Its notation review flag remains set; f059 source recovery and f146 notation fidelity remain open. The full cached 200-paper scores are unchanged, and historical preservation still fails at 75/91. This is raw source-order repair, not scientific-fidelity certification or graph admission. See #49 and the redacted full comparison receipt in review/native_terminal_wrap_v1/full200_cached_comparison.json.
CompleteDotTech commentedon Sep 29, 2026
Merged PR #51 at verified merge
eb2772cd17fb76939406ceb060ad737ede26c140(signed head824a23ff209f33175ccc46981fe29ecdddb0dc85). All six PR checks and three post-merge main checks passed; pinned local validation: 1,029 run / 1,022 passed / 7 skipped / zero failures or errors. The final private six-case source readback isissue15-f059-fraction-seam-20260928-03/READBACK.json, SHA-256ca573042ce6d4929b210af03900de4c1c01634075724adf117639c614ed0b45e.This is an opt-in PDF-bound fraction-seam locator helper. On the exposed f059 source, explicit opt-in retains exact raw native spans
(5,0,88),(6,0,7),(7,0,90), removes the unsupported column transition, and requires notation review. Five other exposed locator cases are unchanged; the default f059 assessor is unchanged. No slash or scientific correction is inserted, and the unheaded body boundary still needs attributed closure review. Consumer integration, current-code reviewed routes, and a fresh combined 200-paper run remain required before #15/#16/#19 acceptance. Automatic graph admission and fallback remain disabled. See source contract.CompleteDotTech commentedon Sep 29, 2026
PR #57 merged opt-in original-PDF geometry context through the V4 consumers; default behavior remains disabled. The redacted public receipt is
review/source_geometry_consumers_v1/receipt.json, with complete 200-paper result SHA-25693a1674991aa0dd6a530d84c87e9def4b2451355c7d3f8f8bbfcecdb680b3c6f.The enabled replay gained correct primary proposals f098, f111 and f142, but newly held f188 for
unowned_source_prose_requires_review. Direct page-one review shows f188 has a left-column abstract and an Introduction heading followed by right-column body prose; the guard located right-column prose at the heading's vertical level despite its later source line IDs. This needs a generic, source-grounded reading-order/ownership proof and authored negative fixtures before changing that hold. f059 still requires section ownership and notation review. The 91-paper preservation gate failed (16 historical losses), so this issue remains open and the geometry policy is not qualified for automatic use.CompleteDotTech commentedon Sep 29, 2026
PR #58 is merged as
1c8af17625d57801dfdf12ae661c33ac694c3a0e; all six PR checks and post-merge main run 36518711504 passed (Python 3.11–3.13). The source-proven column-wrap boundary fixes f188 without changing selected primary/MinerU text: 200 papers × 4 methods changed only f188; primary correct 79→80, GROBID 73→74, MinerU 67→68, olmOCR 64→64; false proposals remain 0. The public redacted receipt isreview/body_column_bridge_v1/receipt.json; private full replay result SHA-256d585675ffbb6f4bb331172047bd93ae5f9e7226ecaac21f43648ffd4899fd03dundervalidation_v3_private/issue16-bodybridge-full200-20260929-01. The historical 91-paper preservation gate still fails, and GROBID text fidelity on f188 requires separate review. This is a partial #16 fix; leave the issue open for the remaining listed cases.CompleteDotTech commentedon Sep 29, 2026
Current six-case section-ownership audit (2026-09-29)
The six cases named in the remaining acceptance checkbox are already complete review-only primary proposals in the fresh 200-paper/four-method run at
validation_v3_private/issue17-figure-closure-full200-20260929-01/results.json(SHA-2569800f5461ea3cc3ceacdb33d683aad22d9a859c6e07b3e5b1a2c8d3305e3b5b9). The original PDF hash matches each assessment, and every selected native span passes mechanical source-offset readback. Internal assistant inspection of the original page images supports the listed boundaries; no independent human or scientific-notation approval is claimed.Current main
9c6be46has the same V4 source/structure SHA-256s as the measured replay:166eb7df0da104d1514a8b3fe878615a80f1b45a5f2def43a43b47a2dc9a99edand4d5765af9cf4e041a1383184e3c1ef246f7b681835950b849c93d080885b575a. Later main commits added unrelated paper-pilot code. The run had zero false proposals across all four methods, but the historical 91 preservation gate still fails on f079/f081/f122/f153. f059/f142 also need scientific-notation review beyond this section-ownership check. This audit updates the six-case evidence only; it does not qualify #16 or parent #17/#19 as complete, and graph admission remains disabled.CompleteDotTech commentedon Sep 29, 2026
Correction to the final sentence of the six-case audit: the audit does complete this issue's section-ownership acceptance criteria. The six named paragraphs have source-located spans and verified closing boundaries. Current f039 MinerU is bounded and complete (precision/recall 1.0). For f195, the current primary assessment explicitly excludes the linked superscript footnote marker at native line 69 offset 28–29, ends the selected span at offset 28, and locates the following Introduction at lines 71–72; the original page image agrees. The earlier comment's broad caveat conflated this issue with separate scientific-notation/fidelity review and four historical preservation holds tracked in #17/#19. No graph admission or parent-epic qualification is implied. The remaining checkbox is now marked complete, and #16 can close.