Skip to content

Use local DBLP XML dump instead of per-entry live fetches - #18

Merged
michelabdalla merged 2 commits into
cryptobib:masterfrom
thomwiggers:use-offline-dblp
Aug 10, 2026
Merged

Use local DBLP XML dump instead of per-entry live fetches#18
michelabdalla merged 2 commits into
cryptobib:masterfrom
thomwiggers:use-offline-dblp

Conversation

@thomwiggers

@thomwiggers thomwiggers commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • DBLP is overloaded; the old flow fetched one .xml per publication over the network, which gets the import script rate-limited/blocked (hit a live 503 from DBLP while testing this).
  • import.py now looks records up in a local copy of the official DBLP XML dump (dblp.xml.gz), streamed with iterparse (no full decompress to disk), with named XML entities resolved from dblp.dtd.
  • Falls back to a live per-entry fetch only for keys missing from the dump (e.g. published after the last nightly dump build).
  • New fetch_dblp_dump.py helper downloads/refreshes the dump (checksum-verified, skips redownload if already current).
  • Conference overview page is still fetched live (one cheap request), unchanged — only the N per-publication requests are replaced.
  • See also Document DBLP dump setup for db_import cryptobib#1 for the related docs update

Test plan

  • Unit-verified entity resolution + key lookup against a synthetic fixture built from the real dblp.dtd
  • End-to-end against the real, freshly-downloaded dblp.xml.gz: looked up real CRYPTO'24 keys (GupteV24, Ostrovsky24, HulsingJMN24, WatersZ24), correct bib keys/titles/entities produced
  • Missing-key fallback path verified (logs warning, would hit live fetch)
  • Full import.py confYYYY run against a real conference by a maintainer

DBLP is overloaded and per-publication live fetches were getting the
import script rate-limited/blocked. Look records up in a local copy
of the official DBLP XML dump instead; fall back to a live fetch only
for keys missing from the dump (e.g. too recent). Add
fetch_dblp_dump.py to download/refresh the dump.
@thomwiggers

Copy link
Copy Markdown
Contributor Author

This works really well and makes stuff much more reliable and faster—though it does cost a gigabyte on local disk 😬

@michelabdalla

Copy link
Copy Markdown
Member

Thank you, @thomwiggers, for making these changes! Merging it.

@michelabdalla
michelabdalla merged commit 62bea49 into cryptobib:master Aug 10, 2026
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.

2 participants