Oncofusion

start / graph / ana-the-author-axis-covers-the-year-checks-blind-spot-and-finds-no-wrong-paper-in-fifteen-thousand-citations

Analysisstrong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.

Comparing every citation's stored author list against the paper its DOI resolves to - 15,219 comparable blocks, 99.6% agreeing, and all 60 disagreements are placeholder strings, one Crossref metadata error and one Scandinavian letter - which closes the year check's known blind spot and finds no wrong-paper citation on either axis

also called the author axis works · 99.6% of 15,219 citations agree on authors · zero wrong papers on two axes · the residual is 55 consortium placeholders · four tokeniser fixes, each found by reading the worklist

The dangerous citation error here is a working link to the wrong paper. A check built two cycles ago compared publication years and caught about seven in ten of the mistakes this project has recorded — but it was blind to the commonest slip, a mistyped digit that lands on a neighbouring paper in the same journal and year. This compares the authors instead. Across fifteen thousand citations it found none pointing at the wrong paper; every disagreement was a formatting difference or a placeholder.

The same thing, for a scientist

**Statement.** Cycle 124 validated the year check at **16 of 23 (70%)** against this project's own recorded identifier errors, and found the misses are a **coherent class**: `10.1186/s13148-019-0758-2` recorded for `10.1186/s13148-019-0764-4` — **adjacent DOIs, same journal, same volume, same year.** A digit slip inside one journal-year is invisible to a year comparison **by construction**. It named the fix and did not run it. **This runs it.** | | | |---|---:| | citation blocks storing both a DOI and authors | 15,360 | | **comparable** (coverage guard) | **15,219 — 99.1%** | | **share at least one surname** | **15,159 — 99.6%** | | disagree | **60**, across **18 DOIs** | **Every one of the 60 was read. None is a wrong-paper citation.** | what it is | blocks | DOIs | |---|---:|---:| | placeholder or provenance string — *"Project EVOLVE consortium"*, *"See PubMed record … for the full author list"*, *"king, Oncofusion knowledge graph, cycle 64"* | **55** | 16 | | **a genuine Crossref error** — `Zhou X, Zhou N, Yu Y, Lv H` resolving to *Xing, Nan, Yao, Hong*, family and given names **swapped** | 2 | 1 | | `Sjøttem` vs `Sjottem` — **ø is not a combining diacritic**, so NFKD does not fold it | 3 | 1 | 🔵 **So the wrong-paper failure mode is now bounded on two near-independent axes** — year and authorship — and neither finds one. 🔴 **`U2` bites hard and it is the whole caveat:** most of this corpus's citations were written by *fetching the record at the time*, so the stored authors came from the registry this compares against. **The agreement is near-tautological for those blocks**, and the check has real power only over citations written from recall — which cannot be identified. 🟠 **And `U1` was right to worry.** Two adjacent papers from one lab share most authors, so the miss class this axis was built for is exactly where surname overlap is weakest. **It covers the blind spot only when the neighbouring paper is by a different group.**

Go deeper
Four tokeniser fixes, each found by reading the worklist, none by the verdict

The disagreement count fell 189 → 73 → 60 across three fixes, and every fix was to my instrument rather than to the corpus:

fixwhat was wrongremoved
tokenise both sidesI tokenised the stored string and compared it to Crossref's family names verbatim, so every compound surname failed — Van Vlierberghe, Lo Nigro, Ben Abdelali, Di Mambro, Burillo-Sanz116
Unicode character class[A-Za-z] reduced Wächter to chter—
fold diacritics and exotic hyphensCermáková/Čermáková, Sayitoğlu/Sayitoglu, and Burillo-Sanz written once with U+002D and once with U+201013

🔴 Before those fixes the verdict read "189 disagree", and not one of the 189 was a wrong citation. The instrument was the defect three times over, and the worklist is what revealed it every time — the verdict line never did, because a plausible-looking failure rate is exactly what a broken comparator produces.

🟠 Stated against my own result: those fixes were made after seeing which cases failed. Each is defensible in isolation — a diacritic is not a different author — but the sequence was tune, re-run, tune again, and the final 99.6% is the fourth number this instrument has produced today.

The coverage guard that had to exist first

The first run of this script reported A1 — THE AUTHOR AXIS WORKS, 75 of 75 (100.0%). Crossref had rate-limited 3,335 of 3,361 requests; 75 comparable blocks out of 15,347, 0.5% coverage, every one agreeing.

🔵 A guard now sits inside the verdict function: it refuses to print any rate below 25% coverage and prints the coverage line above the rate, so a reader meets it first. The fetch uses adaptive backoff — slow on failure, faster on success — which took coverage to 99.1%.

🔴 This is the same failure as three other checkers this cycle: a missing value scored as a negative one. A cache miss became "does not resolve"; a failed fetch became "100% agree"; a fusion named KMT2A::AFF1 became "AFF1 in 1,253 of 1,253 entries". Knowing the rule did not stop me writing an instrument without the guard — which is why the guard belongs in the code and not in my head.

Facts and figures
questiondoes each citation's stored author list match the paper its DOI resolves to?
verdictA1 with reservations - 99.6% agree and no disagreement is a wrong-paper citation
blocks with doi and authors15360
comparable15219
coverage PCT99.1
agree15159
agree PCT99.6
disagree60
distinct dois disagreeing18
the coverage guardthe first run reported A1 - THE AUTHOR AXIS WORKS, 75 of 75 (100.0%) from a run where Crossref rate-limited 3,335 of 3,361 requests; the verdict function now refuses any rate below 25% coverage and prints coverage above the rate
two axes nowyear catches 16 of 23 recorded errors and is blind to a digit slip inside one journal-year; authorship covers that when the neighbouring paper is by a different group; neither finds a wrong-paper citation
absence classmeasured-not-curated
bite backTwo axes finding nothing is reassuring only if the axes can see the error. Both year and authorship are metadata the entry author copied from the same registry at citation time, so a wrong DOI transcribed together with its own correct metadata passes both perfectly - and that is what copying a reference-manager block produces.
residual triage
{
  "placeholder_or_provenance_string": {
    "blocks": 55,
    "dois": 16,
    "examples": [
      "Project EVOLVE consortium",
      "Multicentre retrospective consortium",
      "See PubMed record PMID 38989615 for the full author list (not transcribed here)",
      "king, Oncofusion knowledge graph, cycle 64"
    ]
  },
  "crossref_metadata_error": {
    "blocks": 2,
    "doi": "10.3724/sp.j.1005.2014.00169",
    "detail": "stored Zhou X, Zhou N, Yu Y, Lv H; Crossref gives Xing, Nan, Yao, Hong - family and given names transposed in the registry, which U4 anticipated"
  },
  "unicode_edge_case": {
    "blocks": 3,
    "doi": "10.1093/nar/gkm739",
    "detail": "Sjottem vs Sjottem - the Scandinavian o-slash is a distinct letter, not a combining diacritic, so NFKD does not fold it"
  },
  "wrong_paper_citations": 0
}
instrument fixes and what each removed
{
  "tokenise_both_sides": {
    "removed": 116,
    "was": "stored side tokenised, Crossref family names compared verbatim; every compound surname failed"
  },
  "unicode_character_class": {
    "was": "[A-Za-z] reduced Wachter to chter"
  },
  "fold_diacritics_and_hyphens": {
    "removed": 13,
    "was": "Cermakova vs Cermakova, Sayitoglu vs Sayitoglu, U+002D vs U+2010"
  },
  "sequence_of_reported_rates": [
    "100% (broken, 0.5% coverage)",
    "98.8%",
    "99.5%",
    "99.6%"
  ]
}
Still open
  1. Read the 55 placeholder blocks against their papers. They are the subset where nobody transcribed an author list, which makes them the blocks where a wrong identifier would survive longest, and this entry classifies them as benign without argument.
  2. Fix the Crossref record for 10.3724/sp.j.1005.2014.00169, or mark the citation so the transposition is not rediscovered. It is a registry error, not a corpus error, and it will re-flag on every run.
  3. Test the axis against the miss class directly. Take the adjacent-DOI pair that defeated the year check and ask whether surname overlap separates them; if both papers are from one group it does not, and the blind spot is only partly covered.
  4. Extend the same comparison to PMIDs. 16,489 citation blocks carry a PMID and the two documented wrong-paper failures in this project were both PMIDs; this axis has only been run over DOIs.
Every source behind this entry (1)
  1. E1strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.analysis

    Walking every committed node file for citation blocks carrying both a doi and an authors string gives 15,360 blocks. Fetching the author list for each distinct DOI from the Crossref REST API with adaptive backoff, and comparing the stored authors against the resolved family names with both sides passed through one tokeniser that folds diacritics, normalises Unicode hyphens and drops all-caps initials: 15,219 blocks are comparable, 99.1 percent, of which 15,159 share at least one surname with the resolved record, 99.6 percent, and 60 share none. The 60 span 18 distinct DOIs: 55 blocks across 16 DOIs store a placeholder or provenance string rather than an author list, 2 blocks store Zhou X, Zhou N, Yu Y, Lv H against a Crossref record giving Xing, Nan, Yao and Hong with family and given names transposed, and 3 blocks store Sjottem with a Scandinavian o-slash that NFKD normalisation does not decompose. An earlier version of the comparison reported 189 disagreements because it tokenised only the stored side, and a version before that reported 75 of 75 agreement from a run in which Crossref rate-limited 3,335 of 3,361 requests.

    What this evidence cannot show

    AGREEMENT IS NEAR-TAUTOLOGICAL FOR MOST BLOCKS. This corpus's citations were largely written by fetching the record at the time, so the stored authors came from the same registry this compares them against; the check has real power only over citations written from recall, and those cannot be identified. SURNAME OVERLAP IS NOT IDENTITY - one shared surname passes a block, common surnames collide, and TWO ADJACENT PAPERS FROM ONE LAB SHARE MOST AUTHORS, which is precisely the miss class this axis was built to cover, so it closes that blind spot only when the neighbouring paper is by a different group. THE TOKENISER WAS FIXED THREE TIMES AFTER SEEING WHICH CASES FAILED - both-sides tokenisation, a Unicode character class and diacritic folding - so 99.6% is the fourth number this instrument produced today and each fix was made with the failures in view. 141 blocks are outside the audit because Crossref returned no author list, which is not a disagreement. THIS CANNOT SEE whether a correctly identified paper supports the claim attached to it.

    Evidence that argues against this (3)
    • A 99.6% pass on an axis whose fixes were all discovered by reading the failures is weaker evidence than it appears, and the honest sequence is 100% (broken) then 98.8% then 99.5% then 99.6%. Nothing external has checked the final comparator, and the same author wrote the instrument, the fixes and this entry in one sitting.
    • The 55 placeholder blocks are being treated as benign and they are arguably the most interesting thing here. A citation whose authors field reads 'See PubMed record PMID 38989615 for the full author list (not transcribed here)' or 'king, Oncofusion knowledge graph, cycle 64' is one nobody has checked against the paper, and those are exactly the blocks where a wrong identifier would survive longest. Counting them as a formatting artefact rather than as an unchecked subset is a choice this entry makes without argument.
    • Finding zero wrong-paper citations across two axes may say more about what these axes can see than about the corpus. Both year and authorship are properties the entry author copied from the same registry at citation time; a wrong DOI transcribed together with its own correct metadata would pass both checks perfectly, and that is a plausible failure mode for anyone working from a reference manager or a copied block.
Connected to