Proposer metadata: classify OEIS conjecture proposers by occupation - #20
Merged
Conversation
tadamcz
added a commit
that referenced
this pull request
Aug 11, 2026
PR #20's files land in this branch's metadata/ layout: the wiki-page scrape under metadata/snapshots/, the derived profiles under metadata/derived/; scripts/extract_proposers.py's paths follow (incl. conjecture_provenance.jsonl -> metadata/derived/provenance.jsonl) and the metadata README lists the new files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Classifies the 123 unique conjecture proposers in
conjecture_provenance.jsonlby occupation, so we can report how the benchmark's conjectures split between professional mathematicians and amateurs.Approach
Every registered OEIS contributor has a self-written wiki user page, fetchable as raw wikitext from
https://oeis.org/wiki/User:<Name>?action=raw(needs a browser user-agent; the default gets 403'd). Only 9 of 123 proposers have no page at all, so this gets most of the way on its own.scripts/extract_proposers.pyfetches those pages, caches them, and asks gpt-5.5 (strict structured output) to classify each proposer intoacademic_mathematician/academic_other/industry_professional/student/amateur/unknown, plus occupation, affiliation, a verbatim evidence quote, evidence source, and confidence. Resumable; parallel fetch and classification.Data files
Three layers, deliberately kept separate so judgements stay auditable rather than overwritten in place:
apn/data/oeis/raw/proposer_pages.jsonl— immutable snapshot of each wiki page's wikitext, so a classification's input survives later edits to the wiki.apn/data/oeis/proposer_metadata.jsonl— the wiki-page classification, 123 rows.apn/data/oeis/proposer_metadata_web.jsonl— a web-search pass over the 15 highest-weightunknowns (they were 75% of the unknown mass; Peter Bala alone was 36%). Each row carries the verdict, the facts found,source_urls, andmethod/model/date.Consumers merge with one rule: a web row overrides a stage-1
unknown, nothing else. That drops unknown from 32% to 7% of conjectures.Results
Conjecture-weighted over all 492 conjectures, fractional credit for joint proposals:
The academic mass is highly concentrated: Zhi-Wei Sun accounts for 180 of the 241 academic-proposed conjectures.
Caveats
unknown; that variant reads 46% academic-math / 21% amateur / 13% unknown.source_urlsare agent-reported and not archived, so they're exposed to link rot. Snapshotting the cited pages the way we snapshot wiki pages would fix that if we want the trail hardened.proposer_metadata.jsonlclassified asacademic_mathematicianfrom wiki text alone look shaky to me and were not web-verified: Klaus Brockhaus and Jonathan Vos Post (6 conjectures between them, so no aggregate moves).