Mapping the entire Disease Ontology onto twenty PubMed abstracts by asking one question per term — a quarter-million judgments, in about five minutes, for roughly a dollar.
Tagging a document with ontology terms usually means a pipeline: dictionary matching, entity linkers, maybe an embedding index. There is a dumber approach that turns out to be practical. Take every term in the ontology and ask, for each document, a single yes/no question — “does this document mention or clearly imply this concept?” — and let a model answer all of them.
The tool is Jev, TypeSafe’s System One
decision model: each question is a noul and comes back with a probability,
and ~100 questions ride in a single API call, evaluated in parallel. So
“map the Disease Ontology onto this abstract” stops being an infrastructure project
and becomes 12,284 nouls batched a hundred at a time.
Twenty PubMed abstracts on rare genetic disease and clinical phenotyping, fetched with NCBI E-utilities. Against them, the full Disease Ontology — 12,284 terms — at batch size 100, four calls in flight at a time:
Eleven retries out of 2,460 calls, p95 call latency 0.74s. Every one of the twenty abstracts came back with at least a handful of matches at probability ≥ 0.5 — 393 matches in all.
The counts track how phenotypically dense the abstract is — a 251-patient genotype–phenotype series lights up more of the ontology than a methods paper — and the top hit is usually the paper’s actual subject. Cystinuria gets cystinuria (0.99). The primary ciliary dyskinesia review gets primary ciliary dyskinesia. Every abstract also picks up the boring ancestors — genetic disease, disease — which is correct, and which a post-order tree walk would let you collapse.
A separate scaling run varied how many questions share one call. Call latency is flat from batch 5 to batch 100 — the fixed cost of the request dominates — so the per-judgment marginal cost keeps falling until the prompt itself gets heavy:
Ontology grounding has always been the unglamorous prerequisite of clinical data work — the thing you need before cohort definitions, phenotype risk scores, or any FAIR-adjacent plumbing. The historical barrier was never the ontology; it was the linker pipeline. If a quarter-million term-level judgments cost a dollar and five minutes, the barrier is mostly gone, and the interesting questions move up a level: how do you calibrate the probability cutoff, how do you aggregate term hits up the is-a hierarchy, and what does a document × ontology score matrix let you build when it’s this cheap to recompute?