The cross-entry contradiction screen does not work, and the reason is that this graph writes carefully
also called class D contradiction · cross-entry contradiction screen · negative result
The existing tool for finding places where this graph disagrees with itself can only look inside a single entry or at a single paper, so it cannot see two entries citing two different papers that say opposite things - which is exactly the disagreement found this cycle. I tried to build a tool for that and it does not work. The reason is almost funny: the graph's own house style is to say precisely what it does and does not know, so words like 'only', 'exactly' and 'no' are everywhere as marks of care, and a machine looking for disagreement reads all of them as disagreement.
The same thing, for a scientist
`scripts/find-contradictions.py` has three classes, all anchored on one entry (A) or one PMID (B, C). The TIFAB case caught this cycle is **two entries, two papers, no shared PMID** — outside all three. A lexical class-D screen was built and **failed at three successive thresholds: 154,350 → 3,767 → 619 candidates**, none usable. The failure is not tuning: the surviving candidates are overwhelmingly **scoping statements** — *'the only human ELL structure in the PDB is 2DOA'*, *'cross-references exactly three Pfam families'* — in which the negation attaches to the completeness of a database query, not to a relation between two genes.
What was tried, and what each threshold produced
| version | rule | candidates |
|---|---|---|
| v1 | gene pair asserted in one claim, negated in another, different entry and paper | 154,350 |
| v2 | + domain stoplist, pair must appear in ≤12 claims, negation within 160 chars of both symbols | 3,767 |
| v3 | + wider stoplist, pair must appear in ≤4 claims | 619 |
v1's failure was the instructive one and is the same error this project keeps logging. ALL was being read as a gene symbol. It is acute lymphoblastic leukaemia, it pairs with KMT2A in thousands of claims, and a single bad token generated most of the 154,350. That is the third artefact of this exact shape found this month, after REST (the web API) and EFS (event-free survival) sitting at the top of the named-but-unwritten queue.
v3's 619 are not fixable by more tuning, which is the finding. Representative survivors:
- 'The only human ELL structure in the PDB is 2DOA, an NMR solution structure…'
- 'UniProtKB P51825 cross-references exactly three Pfam families…'
Both are precise scoping statements, and neither contradicts anything. The words only and exactly are doing the work this graph's rules demand — bounding a claim to what was actually queried — and a lexical screen cannot tell a bounded claim from a denial.
Why the corpus defeats the method
The graph's carefulness is the confound. House style requires every claim to state what was searched, what was found, and what was not; counted absences must carry a date, a query and a count. The result is prose dense in no, only, not, absent and exactly — as marks of precision. A detector that reads those as negation is reading the quality signal as the defect signal.
This is the same shape as two other findings this month, and the repetition is the point: EFS ranked top of the unwritten-gene queue because the graph reports event-free survival properly; the counter-note defect detector flagged cross-referencing because good counter-notes import outside knowledge. Three instruments, three times the thing that makes the graph good is the thing that makes the instrument fail.
What actually found the TIFAB contradiction was reading — rewriting 35 counter-notes by hand, which forced a claim-by-claim comparison no screen performed. That is not an argument against instruments; it is an argument that this particular class is not lexically detectable, and that the next person should not spend a cycle rebuilding it.
What might work, unbuilt and untested: restrict to claims that share a gene pair AND an assay verb, and compare only the polarity of that verb; or embed claims and cluster, which trades a lexical false-positive mode for a semantic one that is harder to audit. Neither was attempted here and neither should be assumed to work.
- Do not read this as 'the graph has no cross-entry contradictions'. It says one was found by hand and that a machine could not be made to find more. The prevalence is unmeasured, and an unmeasured prevalence should not be reported as a low one.
- How many class-D contradictions actually exist? The failed screen cannot say, so the TIFAB case remains a sample of one.
- Would restricting to a shared gene pair plus a shared assay verb, comparing only polarity, survive this corpus? Unbuilt.
- Should the 619 be read anyway? Low precision is not the same as no recall.
- E1strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.analysis
A lexical screen for contradictions between different entries citing different papers returned 154,350 candidate pairs in its first version, 3,767 after a domain stoplist and proximity requirement, and 619 after further tightening, and the surviving candidates are predominantly scoping statements in which the negation attaches to the completeness of a database query rather than to a relation between genes.
cross-entry-contradiction-screen: three successive thresholds for a class-D contradiction detector, and their candidate counts · Oncofusion knowledge graph (internal analysis) 2026What this evidence cannot show
Run 2026-09-20 over 4,053 claims carrying at least two distinct gene-like symbols. **Strong as a statement that this implementation fails**, which is what it claims; it is NOT evidence that no lexical approach could work. The candidates were sampled by reading the top of the ranked list, not exhaustively classified, so 'predominantly scoping statements' is a reading of the head. **The stoplist is hand-written and certainly incomplete**, so some of the 619 are still token artefacts rather than scoping statements.
Evidence that argues against this (1)
- A screen with a high false-positive rate is not automatically useless: 619 candidates is a day's reading, and if even one is a real contradiction of the TIFAB kind the screen has paid for itself. Abandoning it on the head of the ranked list risks discarding a working instrument because its precision is low rather than because its recall is. Zhao J et al. 2021
- E2established confidence 5 of 5: Multiple independent lines of evidence; treated as settled in the field.paper
The contradiction between the 2021 claim that RelB suppresses its direct target TIFAB and the companion 2018 study's account of RelB promoter occupancy involves two different entries citing two different PMIDs, and so falls outside all three classes of the existing contradiction checker, which are anchored on a single entry or a single shared PMID.
Stabilization of NF-kappaB-Inducing Kinase Suppresses MLL-AF9-Induced Acute Myeloid Leukemia · Xiu Y, ..., Zhao C · Cell Reports 2018What this evidence cannot show
Established by reading `scripts/find-contradictions.py`'s own documented class definitions on 2026-09-20 and comparing them to the case. **This is a statement about the checker's design, not about how many contradictions of this class exist** — which is unknown, and which the failed screen did not establish.
Evidence that argues against this (1)
- The existing checker's three classes were each tuned against a real false-positive mode, and its documentation records that a broader 'same PMID cited both ways' test was tried and abandoned because it produced 102 pairs that were all good practice. That history suggests the narrow design is deliberate and that broadening it reproduces a known failure rather than fixing a gap. Zhao J et al. 2021
THE CASE THAT MOTIVATED THE SCREEN, and the one it could not have found: two entries, two papers, no shared PMID. It was caught by rewriting counter-notes by hand.
THIRD ARTEFACT OF THE SAME SHAPE: 'ALL' read as a gene symbol generated most of the screen's 154,350 first-version candidates, after REST and EFS did the same to the unwritten queue.
SAME LESSON, THIRD INSTRUMENT: what makes the graph good - careful scoping, cross-referencing - is what makes the detector fail.
SAME FAMILY: a checker anchored on the fields it has a schema for cannot see the ones beats invent as the biology needs them.
THE OTHER SIDE OF THE SAME WEEK: one instrument failed loudly and was abandoned; this one nearly succeeded quietly and wrongly. A clean report is what a broken query produces.
SAME CONCLUSION, SAME REASON: a corpus that discusses systems comparatively cannot be classified by whether a system is mentioned.