Skip to content

feat: fill in the cross-field works the field cites - #58

Merged
hedmana merged 3 commits into
mainfrom
feat/fill-in-cited-works
Sep 29, 2026
Merged

hedmana merged 3 commits into
mainfrom
feat/fill-in-cited-works

Conversation

@hedmana

@hedmana hedmana commented Sep 29, 2026

Copy link
Copy Markdown
Owner

Closes #57

What

  • crawl.fill_cited_by adds a third crawl phase. After the forward phase, the crawler counts in its own journal how often crawled works cite each work it never fetched. It fetches those cited at least that often, records their references, but doesn't follow them. The phase runs once (filled in the crawl state), so a later run doesn't cascade from the new works' own references.
  • gnn.yaml sets it to 20.

Why

Neither direction of the crawl reaches a work from outside the field that the field builds on. On the served crawl, the fill found 1,282 candidates, 827 of them alive, and grew the raw crawl from 9,505 to 10,332 works. Semantic Scholar recovery then matches 10,344 lost citations, up from 6,808.

served ranking, learned dev reachable dev found / nDCG test reachable test found / nDCG
before 28/32 24/32 / 0.756 30/31 17/31 / 0.561
after 31/32 23/32 / 0.695 31/31 17/31 / 0.542

All four gold originators the crawl was missing are now reachable: Bahdanau, Interaction Networks, Kearnes and DistMult. Kearnes and the Transformer paper make their papers' top 10s, while Bahdanau (18th for GAT), Interaction Networks (13th) and DistMult (21st) come close.

Found holds on test and drops one on dev. The fill also brings in heavily cited datasets and baselines, such as Planetoid, QM9, TransE and RESCAL, which compete for the same places. Telling "built on" from "compared against" needs how a paper cites a work, not whether it does. The graph is now more faithful to what the field cites, so the fill is served. The pre-fill raw crawl and snapshot are backed up under data/gnn/backup/.

Verify

uv run pytest tests/test_crawler.py
uv run python -m graph.crawler --field gnn   # resumes into the fill: about 25 seconds

Generated with Claude Code

@hedmana
hedmana merged commit 8b25d07 into main Sep 29, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cross-field works the field builds on are never fetched

1 participant