Elamur Groupants⌕
☰

mova-topic-corpus-missing

The groupant beside tools/topic-corpus/src/missing.rs in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.

Facts

Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.

Components

componentlabelwhere
approximantpartialForward approximant
astpartialsyntax.json
compositionpartialComposition
costpartialCost
descriptantpresentDescriptant
invariantpartialInvariant
testsfinite evidencetests.md

Obernants

The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.

idtypelabelwhere
behavior_complementbehavior_complementpartial source derived modelbehavior_complement
reverse_reconstructionreverse_reconstructionpartial source derived modelreverse_reconstruction

Model text

Descriptant

Stage 2: the cited works the library lacks (ids, else titles), looked up in the local OpenAlex snapshot by the library's papers openalex lookup, ranked by citations, routed to a legal open copy (ACL Anthology PDF, arxiv.org/pdf, OpenAlex best-OA PDF outside shadow libraries) and written as a new request run directory for the library's stream driver (manifest chunk, list-only works, ranking, run.sh with ROBOTS=1 HOST_SKIP=1 PDFDROP=1). Nothing is started. Source: tools/topic-corpus/src/missing.rs.

Forward approximant

external(paper bibliography + bibliographies of library references and similar works) -> keys acl/arxiv/doi/title -> one lookup call -> title keys re-keyed by the record's ids when the year agrees -> route -> sort by (cited_by, neighbourhood count, by paper, key) -> write_request (disk guard >= 300 GB, new dir only, at most max_requests rows).

Invariant

No shadow-library host is ever queued; a request directory is never rewritten; ACL licence by year (CC BY 4.0 from 2016, CC BY-NC-SA 3.0 before).

Cost

One snapshot scan (~10-20 s, 12 threads in the papers binary) plus linear work in candidates.

Composition

Parent: topic-corpus.

behavior_complement

Does not download, does not start or resume streams, does not touch stopped streams, does not use the OpenAlex API. Evidence status: source-derived model with finite checks, not a proof.

reverse_reconstruction

request.json keeps every candidate with its route and reason; the original bibliography lines are in the library. No unique inverse is claimed.

tests.md

missing::tests (ranking, routes incl. a title-keyed arXiv record, request dir, never rewritten, disk guard refusal; a shadow-library copy never queued; civil date). Negative control 2026-11-04: shadow() always false turns two tests red. Live 2026-11-04 bryant-2017: 201 candidates, 23 queued, 174 list-only, two identical dry runs.

cargo test --manifest-path tools/topic-corpus/Cargo.toml --offline with WORLD_EN_MODEL=$MOVA_DATA/download/0/0.4/en.bin (18 unit tests; fixture library, fake papers binary, fake terminal, local Sea Spider store; two identical runs on 2026-11-04). Without the model the model-dependent tests report a skip.

Negative controls 2026-11-04 (each red, then restored): public admission without the origin condition; assert_public without the Sea Spider/draft/note refusals; seeding without the learner lock; shadow-library filter off; public citing that ignores refusals; cache eviction ignoring the hot pin.

These are finite fixtures and live samples; not a proof.

This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/tools/topic-corpus/src/missing.rs.groupant/