Abrar2652/articleminer-iswc26

Python

0

10 commits

updated Jul 21, 2026

See the code

README

ArticleMiner — ISWC 2026 Submission Repository (anonymized)

This repository accompanies the ISWC 2026 Research Track submission "ArticleMiner: Ontology-Guided Knowledge Graph Construction from Scientific Publications." It contains the system source, the new GeoChem-28 benchmark (PDFs + curated 209-column ground truth), and all per-paper predictions backing the tables and figures in the paper.

articleminer-iswc26/
├── src/            # pipeline, ontology modules, prompts, evaluator, stats, figure regen
├── data/           # GeoChem-28: PDFs + 209-column ground-truth xlsx + annotation protocol
├── results/        # per-paper predictions for 5 closed + 3 open LLMs (ArticleMiner + few-shot baselines)
└── figures/

ArticleMiner architecture

1. What's here

PathContents
paper/figures/All figures (cross_domain, cross_llm_invariance, ontology_size_vs_f1, precision_recall, shot_scaling, multi_llm) plus the drawio source for the architecture diagram.
src/articleminer/Pipeline: 5-backend extraction, consensus, vision fallback, self-correction, deposit classifier, validator, KG builder.
src/ontology/4 domain modules: ontology_geochemistry.py (220 entries: 90 deposit types, 80 minerals, 50 method synonyms), ontology_chemtables.py (80), ontology_discomat.py (167), ontology_mltables.py (60).
src/prompts/Per-domain prompt templates (paper-intelligence, table mapping, self-correction).
src/eval/4-tier evaluator, deterministic supplementary parser, tuple-level F1, error taxonomy.
src/stats/Bootstrap CIs, paired significance (seed 42, 2k resamples), cross-LLM Jaccard agreement, table generation.
src/figures/Figure regeneration scripts.
data/geochem28/pdfs/26 paper PDFs (two reuse entries derive their gold from a companion paper in the same corpus; see annotation_protocol.md).
data/geochem28/ground_truth/28 curated 209-column {paper_id}.xlsx files.
data/geochem28/annotation_protocol.mdUSGS CMiO-MIN protocol, BDL convention (-99999 sentinel + negative LOD), per-row procedure, license.
results/geochem28/{sonnet,haiku,opus,gpt-4o,gemini}/5 closed-LLM × 28 = 140 per-paper extractions + 4-tier reports.
results/geochem28/{llama31-8b,mistral-7b,qwen25-7b}/3 open-LLM (7--8B) per-paper extractions + per-run summary.
results/{chemtables,mltables,discomat}/articleminer_{sonnet,opus,haiku,gpt-4o,gemini}/ArticleMiner per-paper predictions, 5 closed LLMs.
results/{chemtables,mltables,discomat}/articleminer_{llama31-8b,mistral-7b,qwen25-7b}/ArticleMiner per-paper predictions, 3 open LLMs.
results/{chemtables,mltables,discomat}/fewshot_baseline_*/Matched same-LLM PDF few-shot baselines (Sonnet 4.6 + open backbones).
results/*/v29_t3_*/Backend ablation runs (single-backend + leave-one-out × 5 backends + full), Haiku 4.5.
results/*/abl_no_*/Component ablation runs (no_ontology, no_self_correct, no_validation, no_intelligence, no_vision), Haiku 4.5.

2. Anonymization

All file paths, usernames, email addresses and API-key defaults have been stripped. No authorship metadata remains. The only remaining secret-shaped strings are api_key= parameter names in llm_clients.py; values default to reading from environment variables (ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY).

3. Setup

Python 3.10+. Install the dependencies used by the pipeline:

pip install anthropic openai google-genai \
            docling marker-pdf mineru pdfplumber camelot-py[cv] \
            openpyxl pandas numpy scipy matplotlib seaborn \
            tqdm pyyaml python-dotenv rapidfuzz vllm

Drop an .env at the repo root (or export directly) with:

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-proj-...
GOOGLE_API_KEY=AIza...

Hardware tested: Linux + NVIDIA H100 80GB for open-weight LLM inference (vLLM 0.6.x); API-only runs need no GPU.

Pinned model IDs: claude-sonnet-4-6, claude-opus-4-6, claude-haiku-4-5-20251001, gpt-4o-2024-08-06, gemini-2.5-flash, Qwen/Qwen-2.5-7B-Instruct, mistralai/Mistral-7B-Instruct-v0.2, meta-llama/Llama-3.1-8B-Instruct.

4. Reproducing each paper table / figure

Every reproducible number comes from files already in results/. No rerun of extraction is required to reproduce the tables; the scripts read the predictions in place.

Paper elementCommand
Table 1 (cross-domain raw-PDF P/R/F1, 4 domains × 8 LLMs × ArticleMiner vs. few-shot)python src/stats/gen_paper_tables.py --table main_pdf
Table 1b (cross-domain pre-parsed P/R/F1, 3 domains)python src/stats/gen_paper_tables.py --table main_preparsed
Table 2 (component ablation on Haiku 4.5, 4 domains)python src/stats/gen_paper_tables.py --table ablation
Table 3 (PDF-backend ablation on Haiku 4.5, 4 domains, 11 variants each)python src/stats/gen_paper_tables.py --table backend
Table 4 (significance: paired ΔF1, bootstrap CIs)python src/stats/compute_significance.py --all
Table 5 (cross-LLM Jaccard agreement, 4 domains)python src/stats/cross_llm_agreement.py
Table 6 (runtime / cost per paper, 2 backbone tiers)python src/stats/summarize_runtime_cost.py
Table 7 (benchmark statistics)python src/stats/gen_paper_tables.py --table datasets
Table 8 (error taxonomy, 3 domains × 3 systems)python src/stats/error_taxonomy.py --all
GeoChem detail table (4-tier across iterations)python src/stats/gen_paper_tables.py --table geochem_main
App. Table A1 (Sonnet sensitivity ablation, ChemTables/MLTables)python src/stats/gen_paper_tables.py --table sonnet_ablation
Fig. 1 (architecture)drawio source: paper/figures/ARTICLEMINER.xml
Fig. 2 (cross-domain PDF-path bar)python src/figures/regen_pdf_path_figures.py
Fig. 3 (ontology size vs. F1)python src/figures/regen_nips_figures.py --figure ontology_size
Fig. 4 (multi-LLM PDF-path)python src/figures/regen_nips_figures.py --figure multi_llm
Fig. 5 (cross-LLM invariance on GeoChem)python src/figures/regen_nips_figures.py --figure cross_llm_invariance

5. Re-running extraction end-to-end

To regenerate predictions from scratch (requires PDFs + API keys + ~4h wall time on Sonnet 4.6 for the full cross-domain sweep, or ~1.5h on Haiku 4.5):

# GeoChem-28 (one LLM)
python -m articleminer.main \
    --domain geochemistry \
    --pdfs data/geochem28/pdfs \
    --out results/geochem28/haiku \
    --llm claude-haiku-4-5-20251001

# ChemTables / MLTables / DiSCoMaT
python src/eval/eval_pdf_path.py \
    --benchmark chemtables \
    --llm claude-haiku-4-5-20251001 \
    --mode pipeline

Deterministic runs: temperature=0, seed 42, 4096 input / 8192 output token budget by default (caps documented per stage in src/articleminer/config.yaml).

6. Reproduced Tables

All tables from the paper, in markdown form, for quick reference.

Table 1 — Cross-domain raw-PDF input (P / R / F₁ in %)

ArticleMiner vs. same-LLM PDF few-shot baseline. Bold = per-domain best (Ours rows).

LLMSystemChem PChem RChem F₁ML PML RML F₁DiSC PDiSC RDiSC F₁Geo PGeo RGeo F₁
Sonnet 4.6Ours30.434.032.152.651.752.298.266.479.358.082.960.8
Sonnet 4.6Few-shot41.79.715.854.835.643.282.752.964.53.00.50.8
Opus 4.6Ours30.633.131.857.054.955.997.069.581.058.183.560.6
Opus 4.6Few-shot43.79.715.954.133.841.680.447.259.58.02.13.0
Haiku 4.5Ours19.339.425.945.759.451.697.057.872.450.583.254.3
Haiku 4.5Few-shot42.19.715.852.329.938.073.744.955.814.03.14.1
GPT-4oOurs28.232.530.255.038.945.687.347.961.962.282.963.1
GPT-4oFew-shot62.09.516.541.827.032.863.044.151.97.72.83.6
Gemini 2.5 FlashOurs16.535.922.644.740.842.792.964.175.954.983.157.6
Gemini 2.5 FlashFew-shot24.010.214.344.540.542.462.544.752.13.20.20.3
Qwen-2.5-7B (open)Ours11.913.212.549.251.350.288.343.057.855.074.856.2
Qwen-2.5-7B (open)Few-shot37.75.08.838.713.520.033.822.527.03.10.20.3
Mistral-7B (open)Ours22.317.719.842.821.528.681.138.251.955.074.856.2
Mistral-7B (open)Few-shot6.76.56.636.912.718.911.52.84.50.00.00.0
Llama-3.1-8B (open)Ours18.614.916.651.950.451.179.010.318.255.074.856.2
Llama-3.1-8B (open)Few-shot15.48.711.131.618.323.215.426.019.44.61.92.6

Table 2 — Cross-domain pre-parsed input (P / R / F₁ in %)

Pre-parsed table text from each benchmark's release. GeoChem is omitted (per-paper sample-row aggregation has no per-table pre-parsed analog). Bold = per-domain best.

LLMSystemChem PChem RChem F₁ML PML RML F₁DiSC PDiSC RDiSC F₁
Sonnet 4.6Ours57.860.259.070.994.981.291.591.191.3
Sonnet 4.6Few-shot48.339.243.268.892.178.892.194.793.4
Opus 4.6Ours59.961.560.772.195.482.195.194.294.7
Opus 4.6Few-shot50.950.950.975.675.975.891.285.588.3
Haiku 4.5Ours55.057.156.170.892.880.392.891.292.0
Haiku 4.5Few-shot48.445.947.179.975.477.692.490.191.2
GPT-4oOurs55.052.453.778.292.484.792.488.690.4
GPT-4oFew-shot45.443.144.280.991.585.988.290.889.5
Gemini 2.5 FlashOurs61.361.361.363.992.275.485.488.787.0
Gemini 2.5 FlashFew-shot47.644.846.275.599.085.789.391.890.5
Qwen-2.5-7B (open)Ours79.053.964.175.379.377.380.878.579.6
Qwen-2.5-7B (open)Few-shot44.728.634.976.459.767.073.413.623.0
Mistral-7B (open)Ours16.919.017.958.563.761.060.254.157.0
Mistral-7B (open)Few-shot36.020.826.353.637.344.00.00.00.0
Llama-3.1-8B (open)Ours49.954.352.059.980.268.669.373.871.5
Llama-3.1-8B (open)Few-shot45.330.536.569.559.964.360.026.036.3
Published baselineDiSCoMaT GNN————————70.04

Table 3 — Component ablation on Haiku 4.5 (P / R / F₁ in %)

Per-domain effect of disabling each pipeline stage. Bold = largest F₁ drop per domain; ↑ = ablation improves over the full pipeline.

VariantChem PChem RChem F₁ML PML RML F₁DiSC PDiSC RDiSC F₁Geo PGeo RGeo F₁
Full pipeline19.339.425.945.759.451.697.057.872.450.583.254.3
w/o ontology18.034.623.742.245.843.988.341.156.149.283.353.6
w/o self-correction16.041.823.139.567.249.891.053.267.149.283.353.6
w/o validation15.834.421.736.547.641.390.858.571.249.283.353.6
w/o intelligence21.825.123.448.444.346.394.864.176.5 ↑49.283.353.6
w/o vision17.132.322.339.562.648.490.159.471.651.683.355.4 ↑

Sonnet 4.6 sensitivity for the small ChemTables / MLTables benchmarks is in the supplementary appendix.

Table 4 — PDF backend ablation on Haiku 4.5 (P / R / F₁ in %)

Single-backend (one parser only), leave-one-out (full minus one), and full 5-backend pipeline. Bold = per-domain best F₁.

ConfigurationChem PChem RChem F₁ML PML RML F₁DiSC PDiSC RDiSC F₁Geo PGeo RGeo F₁
docling23.429.926.256.456.256.396.357.171.743.969.347.9
marker22.723.823.248.454.951.495.050.866.244.069.448.0
mineru22.723.823.248.654.951.695.251.166.541.769.746.3
pdfplumber22.224.723.452.249.851.095.250.966.341.669.646.3
camelot20.533.825.542.643.843.292.828.643.744.169.448.0
w/o docling18.534.824.242.541.341.992.428.543.541.369.446.0
w/o marker13.836.820.140.947.744.190.059.972.043.169.447.3
w/o mineru14.236.820.545.045.545.390.659.171.644.069.448.0
w/o pdfplumber15.336.821.635.253.442.491.160.572.741.469.446.0
w/o camelot18.936.124.846.867.655.397.457.772.543.969.347.9
Full (5 backends)14.536.820.835.671.847.690.258.671.050.583.254.3

Table 5 — Statistical significance: ArticleMiner vs. same-LLM PDF few-shot

Sonnet 4.6, paired bootstrap on per-paper F₁ (seed 42, 2k resamples). Bold = winning median.

Domain (n)Ours mean [95% CI]Baseline mean [95% CI]Ours medianBase. medianΔ F₁p
ChemTables (n = 9)36.4 [10.8, 66.6]27.6 [5.9, 54.8]6.32.5+8.80.342
MLTables (n = 15)52.2 [36.2, 68.1]37.8 [25.5, 51.4]55.835.6+14.40.074 ⁎
DiSCoMaT (n = 111)66.5 [58.1, 73.8]51.1 [43.3, 59.2]96.760.0+15.5<0.001 ⁂
GeoChem (n = 25)63.2 [49.9, 76.1]0.8 [0.3, 1.6]65.70.0+62.3<0.001 ⁂

Table 6 — Cross-LLM agreement (Jaccard %)

Pairwise Jaccard of predicted tuples between backbones, plus the three-way intersection (Sonnet ∩ Opus ∩ GPT-4o).

LLM pairChemTablesMLTablesDiSCoMaTGeoChem
Sonnet vs. Opus99.484.979.289.6
Sonnet vs. GPT-4o71.757.274.179.0
Opus vs. GPT-4o71.960.163.881.5
3-way intersection57.552.851.675.3

Table 7 — Per-benchmark statistics

DatasetPDFsTablesGold tuples
GeoChem (ours)28~805,307
ChemTables914462
MLTables15682,060
DiSCoMaT1111754,755

MLTables excludes "Other"-typed cells per the published convention.

Table 8 — Cost / runtime per paper (mean)

Same ArticleMiner pipeline at two backbone tiers (Sonnet 4.6 — $3/M input, $15/M output; Haiku 4.5 — $1/M input, $5/M output) plus the same-LLM PDF few-shot baseline (Sonnet 4.6).

DomainnAM-Sonnet (s/paper)AM-Sonnet ($/paper)AM-Haiku (s/paper)AM-Haiku ($/paper)FS-Sonnet (s/paper)FS-Sonnet ($/paper)
ChemTables960$0.1086$0.0317$0.05
MLTables15120$0.10118$0.0362$0.05
DiSCoMaT111140$0.1040$0.0325$0.05
GeoChem28180$0.30120$0.1021$0.05

Table 9 — Error distribution (% of total error events)

Error categories: over-extraction (predicted tuple absent from gold, FP), omission (gold tuple missed, FN), attribute mismatch (value matches but type/unit/target wrong), near miss (numeric value within 5% of gold but formatting differs). N = absolute total error count for that row. GeoChem errors are characterized by the four-tier breakdown ($T_1$/$T_2$/$T_3$/$T_4$) instead, since the sample-row schema does not map to cell-tuple categories.

DomainSystemOver-extractionOmissionAttr. mismatchNear missN
ChemTablesOurs-Sonnet57.016.126.60.4704
ChemTablesOurs-GPT4o5.262.731.20.9346
ChemTablesFew-shot-Sonnet10.570.918.00.7440
MLTablesOurs-Sonnet59.930.73.95.52,163
MLTablesOurs-GPT4o27.159.30.113.52,020
MLTablesFew-shot-Sonnet27.649.85.816.71,679
DiSCoMaTOurs-Sonnet2.792.15.20.01,721
DiSCoMaTOurs-GPT4o5.882.710.01.42,788
DiSCoMaTFew-shot-Sonnet12.175.56.52.52,697

7. Licences

Abrar2652/articleminer-iswc26

Python

0

10 commits

updated Jul 21, 2026

See the code

README

ArticleMiner — ISWC 2026 Submission Repository (anonymized)

This repository accompanies the ISWC 2026 Research Track submission "ArticleMiner: Ontology-Guided Knowledge Graph Construction from Scientific Publications." It contains the system source, the new GeoChem-28 benchmark (PDFs + curated 209-column ground truth), and all per-paper predictions backing the tables and figures in the paper.

articleminer-iswc26/
├── src/            # pipeline, ontology modules, prompts, evaluator, stats, figure regen
├── data/           # GeoChem-28: PDFs + 209-column ground-truth xlsx + annotation protocol
├── results/        # per-paper predictions for 5 closed + 3 open LLMs (ArticleMiner + few-shot baselines)
└── figures/

ArticleMiner architecture

1. What's here

PathContents
paper/figures/All figures (cross_domain, cross_llm_invariance, ontology_size_vs_f1, precision_recall, shot_scaling, multi_llm) plus the drawio source for the architecture diagram.
src/articleminer/Pipeline: 5-backend extraction, consensus, vision fallback, self-correction, deposit classifier, validator, KG builder.
src/ontology/4 domain modules: ontology_geochemistry.py (220 entries: 90 deposit types, 80 minerals, 50 method synonyms), ontology_chemtables.py (80), ontology_discomat.py (167), ontology_mltables.py (60).
src/prompts/Per-domain prompt templates (paper-intelligence, table mapping, self-correction).
src/eval/4-tier evaluator, deterministic supplementary parser, tuple-level F1, error taxonomy.
src/stats/Bootstrap CIs, paired significance (seed 42, 2k resamples), cross-LLM Jaccard agreement, table generation.
src/figures/Figure regeneration scripts.
data/geochem28/pdfs/26 paper PDFs (two reuse entries derive their gold from a companion paper in the same corpus; see annotation_protocol.md).
data/geochem28/ground_truth/28 curated 209-column {paper_id}.xlsx files.
data/geochem28/annotation_protocol.mdUSGS CMiO-MIN protocol, BDL convention (-99999 sentinel + negative LOD), per-row procedure, license.
results/geochem28/{sonnet,haiku,opus,gpt-4o,gemini}/5 closed-LLM × 28 = 140 per-paper extractions + 4-tier reports.
results/geochem28/{llama31-8b,mistral-7b,qwen25-7b}/3 open-LLM (7--8B) per-paper extractions + per-run summary.
results/{chemtables,mltables,discomat}/articleminer_{sonnet,opus,haiku,gpt-4o,gemini}/ArticleMiner per-paper predictions, 5 closed LLMs.
results/{chemtables,mltables,discomat}/articleminer_{llama31-8b,mistral-7b,qwen25-7b}/ArticleMiner per-paper predictions, 3 open LLMs.
results/{chemtables,mltables,discomat}/fewshot_baseline_*/Matched same-LLM PDF few-shot baselines (Sonnet 4.6 + open backbones).
results/*/v29_t3_*/Backend ablation runs (single-backend + leave-one-out × 5 backends + full), Haiku 4.5.
results/*/abl_no_*/Component ablation runs (no_ontology, no_self_correct, no_validation, no_intelligence, no_vision), Haiku 4.5.

2. Anonymization

All file paths, usernames, email addresses and API-key defaults have been stripped. No authorship metadata remains. The only remaining secret-shaped strings are api_key= parameter names in llm_clients.py; values default to reading from environment variables (ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY).

3. Setup

Python 3.10+. Install the dependencies used by the pipeline:

pip install anthropic openai google-genai \
            docling marker-pdf mineru pdfplumber camelot-py[cv] \
            openpyxl pandas numpy scipy matplotlib seaborn \
            tqdm pyyaml python-dotenv rapidfuzz vllm

Drop an .env at the repo root (or export directly) with:

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-proj-...
GOOGLE_API_KEY=AIza...

Hardware tested: Linux + NVIDIA H100 80GB for open-weight LLM inference (vLLM 0.6.x); API-only runs need no GPU.

Pinned model IDs: claude-sonnet-4-6, claude-opus-4-6, claude-haiku-4-5-20251001, gpt-4o-2024-08-06, gemini-2.5-flash, Qwen/Qwen-2.5-7B-Instruct, mistralai/Mistral-7B-Instruct-v0.2, meta-llama/Llama-3.1-8B-Instruct.

4. Reproducing each paper table / figure

Every reproducible number comes from files already in results/. No rerun of extraction is required to reproduce the tables; the scripts read the predictions in place.

Paper elementCommand
Table 1 (cross-domain raw-PDF P/R/F1, 4 domains × 8 LLMs × ArticleMiner vs. few-shot)python src/stats/gen_paper_tables.py --table main_pdf
Table 1b (cross-domain pre-parsed P/R/F1, 3 domains)python src/stats/gen_paper_tables.py --table main_preparsed
Table 2 (component ablation on Haiku 4.5, 4 domains)python src/stats/gen_paper_tables.py --table ablation
Table 3 (PDF-backend ablation on Haiku 4.5, 4 domains, 11 variants each)python src/stats/gen_paper_tables.py --table backend
Table 4 (significance: paired ΔF1, bootstrap CIs)python src/stats/compute_significance.py --all
Table 5 (cross-LLM Jaccard agreement, 4 domains)python src/stats/cross_llm_agreement.py
Table 6 (runtime / cost per paper, 2 backbone tiers)python src/stats/summarize_runtime_cost.py
Table 7 (benchmark statistics)python src/stats/gen_paper_tables.py --table datasets
Table 8 (error taxonomy, 3 domains × 3 systems)python src/stats/error_taxonomy.py --all
GeoChem detail table (4-tier across iterations)python src/stats/gen_paper_tables.py --table geochem_main
App. Table A1 (Sonnet sensitivity ablation, ChemTables/MLTables)python src/stats/gen_paper_tables.py --table sonnet_ablation
Fig. 1 (architecture)drawio source: paper/figures/ARTICLEMINER.xml
Fig. 2 (cross-domain PDF-path bar)python src/figures/regen_pdf_path_figures.py
Fig. 3 (ontology size vs. F1)python src/figures/regen_nips_figures.py --figure ontology_size
Fig. 4 (multi-LLM PDF-path)python src/figures/regen_nips_figures.py --figure multi_llm
Fig. 5 (cross-LLM invariance on GeoChem)python src/figures/regen_nips_figures.py --figure cross_llm_invariance

5. Re-running extraction end-to-end

To regenerate predictions from scratch (requires PDFs + API keys + ~4h wall time on Sonnet 4.6 for the full cross-domain sweep, or ~1.5h on Haiku 4.5):

# GeoChem-28 (one LLM)
python -m articleminer.main \
    --domain geochemistry \
    --pdfs data/geochem28/pdfs \
    --out results/geochem28/haiku \
    --llm claude-haiku-4-5-20251001

# ChemTables / MLTables / DiSCoMaT
python src/eval/eval_pdf_path.py \
    --benchmark chemtables \
    --llm claude-haiku-4-5-20251001 \
    --mode pipeline

Deterministic runs: temperature=0, seed 42, 4096 input / 8192 output token budget by default (caps documented per stage in src/articleminer/config.yaml).

6. Reproduced Tables

All tables from the paper, in markdown form, for quick reference.

Table 1 — Cross-domain raw-PDF input (P / R / F₁ in %)

ArticleMiner vs. same-LLM PDF few-shot baseline. Bold = per-domain best (Ours rows).

LLMSystemChem PChem RChem F₁ML PML RML F₁DiSC PDiSC RDiSC F₁Geo PGeo RGeo F₁
Sonnet 4.6Ours30.434.032.152.651.752.298.266.479.358.082.960.8
Sonnet 4.6Few-shot41.79.715.854.835.643.282.752.964.53.00.50.8
Opus 4.6Ours30.633.131.857.054.955.997.069.581.058.183.560.6
Opus 4.6Few-shot43.79.715.954.133.841.680.447.259.58.02.13.0
Haiku 4.5Ours19.339.425.945.759.451.697.057.872.450.583.254.3
Haiku 4.5Few-shot42.19.715.852.329.938.073.744.955.814.03.14.1
GPT-4oOurs28.232.530.255.038.945.687.347.961.962.282.963.1
GPT-4oFew-shot62.09.516.541.827.032.863.044.151.97.72.83.6
Gemini 2.5 FlashOurs16.535.922.644.740.842.792.964.175.954.983.157.6
Gemini 2.5 FlashFew-shot24.010.214.344.540.542.462.544.752.13.20.20.3
Qwen-2.5-7B (open)Ours11.913.212.549.251.350.288.343.057.855.074.856.2
Qwen-2.5-7B (open)Few-shot37.75.08.838.713.520.033.822.527.03.10.20.3
Mistral-7B (open)Ours22.317.719.842.821.528.681.138.251.955.074.856.2
Mistral-7B (open)Few-shot6.76.56.636.912.718.911.52.84.50.00.00.0
Llama-3.1-8B (open)Ours18.614.916.651.950.451.179.010.318.255.074.856.2
Llama-3.1-8B (open)Few-shot15.48.711.131.618.323.215.426.019.44.61.92.6

Table 2 — Cross-domain pre-parsed input (P / R / F₁ in %)

Pre-parsed table text from each benchmark's release. GeoChem is omitted (per-paper sample-row aggregation has no per-table pre-parsed analog). Bold = per-domain best.

LLMSystemChem PChem RChem F₁ML PML RML F₁DiSC PDiSC RDiSC F₁
Sonnet 4.6Ours57.860.259.070.994.981.291.591.191.3
Sonnet 4.6Few-shot48.339.243.268.892.178.892.194.793.4
Opus 4.6Ours59.961.560.772.195.482.195.194.294.7
Opus 4.6Few-shot50.950.950.975.675.975.891.285.588.3
Haiku 4.5Ours55.057.156.170.892.880.392.891.292.0
Haiku 4.5Few-shot48.445.947.179.975.477.692.490.191.2
GPT-4oOurs55.052.453.778.292.484.792.488.690.4
GPT-4oFew-shot45.443.144.280.991.585.988.290.889.5
Gemini 2.5 FlashOurs61.361.361.363.992.275.485.488.787.0
Gemini 2.5 FlashFew-shot47.644.846.275.599.085.789.391.890.5
Qwen-2.5-7B (open)Ours79.053.964.175.379.377.380.878.579.6
Qwen-2.5-7B (open)Few-shot44.728.634.976.459.767.073.413.623.0
Mistral-7B (open)Ours16.919.017.958.563.761.060.254.157.0
Mistral-7B (open)Few-shot36.020.826.353.637.344.00.00.00.0
Llama-3.1-8B (open)Ours49.954.352.059.980.268.669.373.871.5
Llama-3.1-8B (open)Few-shot45.330.536.569.559.964.360.026.036.3
Published baselineDiSCoMaT GNN————————70.04

Table 3 — Component ablation on Haiku 4.5 (P / R / F₁ in %)

Per-domain effect of disabling each pipeline stage. Bold = largest F₁ drop per domain; ↑ = ablation improves over the full pipeline.

VariantChem PChem RChem F₁ML PML RML F₁DiSC PDiSC RDiSC F₁Geo PGeo RGeo F₁
Full pipeline19.339.425.945.759.451.697.057.872.450.583.254.3
w/o ontology18.034.623.742.245.843.988.341.156.149.283.353.6
w/o self-correction16.041.823.139.567.249.891.053.267.149.283.353.6
w/o validation15.834.421.736.547.641.390.858.571.249.283.353.6
w/o intelligence21.825.123.448.444.346.394.864.176.5 ↑49.283.353.6
w/o vision17.132.322.339.562.648.490.159.471.651.683.355.4 ↑

Sonnet 4.6 sensitivity for the small ChemTables / MLTables benchmarks is in the supplementary appendix.

Table 4 — PDF backend ablation on Haiku 4.5 (P / R / F₁ in %)

Single-backend (one parser only), leave-one-out (full minus one), and full 5-backend pipeline. Bold = per-domain best F₁.

ConfigurationChem PChem RChem F₁ML PML RML F₁DiSC PDiSC RDiSC F₁Geo PGeo RGeo F₁
docling23.429.926.256.456.256.396.357.171.743.969.347.9
marker22.723.823.248.454.951.495.050.866.244.069.448.0
mineru22.723.823.248.654.951.695.251.166.541.769.746.3
pdfplumber22.224.723.452.249.851.095.250.966.341.669.646.3
camelot20.533.825.542.643.843.292.828.643.744.169.448.0
w/o docling18.534.824.242.541.341.992.428.543.541.369.446.0
w/o marker13.836.820.140.947.744.190.059.972.043.169.447.3
w/o mineru14.236.820.545.045.545.390.659.171.644.069.448.0
w/o pdfplumber15.336.821.635.253.442.491.160.572.741.469.446.0
w/o camelot18.936.124.846.867.655.397.457.772.543.969.347.9
Full (5 backends)14.536.820.835.671.847.690.258.671.050.583.254.3

Table 5 — Statistical significance: ArticleMiner vs. same-LLM PDF few-shot

Sonnet 4.6, paired bootstrap on per-paper F₁ (seed 42, 2k resamples). Bold = winning median.

Domain (n)Ours mean [95% CI]Baseline mean [95% CI]Ours medianBase. medianΔ F₁p
ChemTables (n = 9)36.4 [10.8, 66.6]27.6 [5.9, 54.8]6.32.5+8.80.342
MLTables (n = 15)52.2 [36.2, 68.1]37.8 [25.5, 51.4]55.835.6+14.40.074 ⁎
DiSCoMaT (n = 111)66.5 [58.1, 73.8]51.1 [43.3, 59.2]96.760.0+15.5<0.001 ⁂
GeoChem (n = 25)63.2 [49.9, 76.1]0.8 [0.3, 1.6]65.70.0+62.3<0.001 ⁂

Table 6 — Cross-LLM agreement (Jaccard %)

Pairwise Jaccard of predicted tuples between backbones, plus the three-way intersection (Sonnet ∩ Opus ∩ GPT-4o).

LLM pairChemTablesMLTablesDiSCoMaTGeoChem
Sonnet vs. Opus99.484.979.289.6
Sonnet vs. GPT-4o71.757.274.179.0
Opus vs. GPT-4o71.960.163.881.5
3-way intersection57.552.851.675.3

Table 7 — Per-benchmark statistics

DatasetPDFsTablesGold tuples
GeoChem (ours)28~805,307
ChemTables914462
MLTables15682,060
DiSCoMaT1111754,755

MLTables excludes "Other"-typed cells per the published convention.

Table 8 — Cost / runtime per paper (mean)

Same ArticleMiner pipeline at two backbone tiers (Sonnet 4.6 — $3/M input, $15/M output; Haiku 4.5 — $1/M input, $5/M output) plus the same-LLM PDF few-shot baseline (Sonnet 4.6).

DomainnAM-Sonnet (s/paper)AM-Sonnet ($/paper)AM-Haiku (s/paper)AM-Haiku ($/paper)FS-Sonnet (s/paper)FS-Sonnet ($/paper)
ChemTables960$0.1086$0.0317$0.05
MLTables15120$0.10118$0.0362$0.05
DiSCoMaT111140$0.1040$0.0325$0.05
GeoChem28180$0.30120$0.1021$0.05

Table 9 — Error distribution (% of total error events)

Error categories: over-extraction (predicted tuple absent from gold, FP), omission (gold tuple missed, FN), attribute mismatch (value matches but type/unit/target wrong), near miss (numeric value within 5% of gold but formatting differs). N = absolute total error count for that row. GeoChem errors are characterized by the four-tier breakdown ($T_1$/$T_2$/$T_3$/$T_4$) instead, since the sample-row schema does not map to cell-tuple categories.

DomainSystemOver-extractionOmissionAttr. mismatchNear missN
ChemTablesOurs-Sonnet57.016.126.60.4704
ChemTablesOurs-GPT4o5.262.731.20.9346
ChemTablesFew-shot-Sonnet10.570.918.00.7440
MLTablesOurs-Sonnet59.930.73.95.52,163
MLTablesOurs-GPT4o27.159.30.113.52,020
MLTablesFew-shot-Sonnet27.649.85.816.71,679
DiSCoMaTOurs-Sonnet2.792.15.20.01,721
DiSCoMaTOurs-GPT4o5.882.710.01.42,788
DiSCoMaTFew-shot-Sonnet12.175.56.52.52,697

7. Licences