Lowercase after colons in titles; restore MartEtal18; fix 13 entries - #86
Merged
Conversation
jeremymanning
added a commit
that referenced
this pull request
Sep 9, 2026
…classes Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MfEdd5PnqDbDppiYGnNNcg
Post-merge audit of PRs #84 and #85 (both merged to master in a parallel session as 0d3b9ff). Colon rule (186 titles) ----------------------- Lowercase the word after every ':' in a Title unless it is a proper noun. Proper nouns in this file are brace-protected ({C}alifornia, {M}arkov) or listed in bibcheck/caps.txt, and both are left alone; Gede24's "I" is a pronoun and is also left alone. 184 of the 186 were the article "A". bibcheck could never have caught these: format_title short-circuits on `w.lower() == "a"` (helpers.py:854) and "A" is line 1 of caps.txt, so a capital "A" after a colon was preserved rather than lowered. It is only ever preserved, never restored, so this rewrite is stable under bibcheck and needs no change to bibcheck itself. Restored entry -------------- MartEtal18 was dropped with no replacement by 4376a00 ("remove duplicate FitzEtal, re-add DOIs for most missing") and was not mentioned in PR #84. Restored, with the surname corrected from Martinez-Rodrigues to Martinez-Rodriguez and the DOI added (CrossRef 10.1016/j.eswa.2018.07.017). Corrections, each against the publisher's own record ---------------------------------------------------- ChanEtal09b title += ": the reversed testing effect" (CrossRef subtitle) Mars07 title += ": implications for memory" (CrossRef subtitle) NguyEtal19 "neural response" -> "neural responses" Schr00b Pages 96 -> 96--106 XuEtal24a + Number = {2}, + Doi (10.1038/s41928-023-01116-6) Vite67 "A Viterbi" -> "A J Viterbi" (Andrew J. Viterbi) VeraEtal25 2nd "Y Chen" -> "Y-T Chen" (arXiv 2509.20354 author 69 is Yi-Ting Chen; #85 had this right, #84 did not, the merge took #84) BarrEtal13 Doi stored as a URL -> bare DOI MatuEtal17 Doi stored as a URL -> bare DOI Fodo75 Publisher Harvard University Press/Cambridge MA -> Crowell/New York NY; the 1975 edition is Crowell, HUP issued it in 1979/80 BeckLim03 title was wrapped in an extra brace pair, which makes format_title skip the entry outright -- which is why "{c}alifornia" survived. Unbraced, {C}alifornia, + Number = {6}, + Doi SnijBosk11 -> SnijBosk12, @incollection -> @inBook. "More powerful tests for variance parameters" is a SECTION inside chapter 6, whose title is "Testing and Model Specification"; the authors state the official 2nd-edition year is 2012. The key change is forced: bibcheck derives the key from author + year. Pages dropped as unverifiable. LairEtal87 + Doi (10.1016/0004-3702(87)90050-6), record matches exactly Pyly73 + Doi (10.1037/h0034650), record matches exactly Also normalizes the 66 `doi` field names to `Doi`, matching what helpers.write_bib emits for every other field. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MfEdd5PnqDbDppiYGnNNcg
jeremymanning
force-pushed
the
bib-colon-audit-and-fixes
branch
from
September 9, 2026 18:42
41ab301 to
82067a3
Compare
…ranslation The entry carried Springer's English-translation record -- Cybernetics 4(1):52--57, DOI 10.1007/BF01074755 -- under the Russian original's 1968 date. CrossRef and OpenAlex both date that translation 1972, so no single source matched the entry as written, and the DOI resolved to a record whose year contradicted it. Sources consulted: CrossRef / OpenAlex (Springer's own deposit) 1972 Cybernetics 4(1):52-57 Semantic Scholar 1968 Cybernetics 4:52-57 Wikipedia (Taras Vintsiuk) 1968 Kibernetika 4:81-88 arXiv 1001.2267 (speech recognition review) 1968 Kibernetika 4(2):81-88 Now cites the Russian original, which is what the speech-recognition literature cites and what keeps the key: Kibernetika 4:81--88, Jan-Feb 1968. The DOI is dropped -- it belongs to the translation, not to this. Number is omitted deliberately: Wikipedia gives no issue and arXiv 1001.2267 gives 4(2), so it cannot be asserted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MfEdd5PnqDbDppiYGnNNcg
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.
Post-merge audit of #84 and #85, which were merged to master as
0d3b9ffwhile thisreview was in progress. This PR is the result of that review: the colon rule applied
across the file, one entry restored that a merge dropped, and thirteen entries corrected
against their publishers' own records.
1. Colon rule — 186 titles
The word after a
:in aTitleis now lowercase unless it is a proper noun. Propernouns in this file are brace-protected (
{C}alifornia,{M}arkov) or listed inbibcheck/caps.txt; both are left alone, as isGede24's: I ...(a pronoun).184 of the 186 were the article "A", and
bibcheckcould never have flagged them:format_titleshort-circuits onw.lower() == "a"and appends the word unchanged(
bibcheck/helpers.py:854), andAis line 1 ofbibcheck/caps.txt.So a capital
Aafter a colon was preserved. It is only ever preserved, neverrestored — verified directly:
That is why this change is stable under
bibcheckand needs no change to bibcheck itself.Only two of the 186 were not "A":
BeckLim03("Strategic") andContPrev24("Suicide").Journal, booktitle, publisher and address fields are untouched — they go through
format_journal_name, notformat_title, soJournal of Experimental Psychology: Learning, Memory, and Cognitionstays correct.2. Restored:
MartEtal18Dropped with no replacement by
4376a00("remove duplicate FitzEtal, re-add DOIs formost missing") and not mentioned in #84's description. Restored, with the surname
corrected from Martinez-Rodrigues to Martinez-Rodriguez and the DOI added
(CrossRef
10.1016/j.eswa.2018.07.017).3. Corrections
Each verified against CrossRef, DataCite, arXiv, OpenLibrary or the publisher directly.
ChanEtal09b…eyewitness suggestibility: the reversed testing effect10.1111/j.1467-9280.2008.02245.xMars07…is not the same as recalling: implications for memory10.1111/j.1467-8721.2007.00467.xNguyEtal19…shared neural response…shared neural responses10.1016/j.neuroimage.2018.09.010Schr00bPages = {96}96--10610.1037/0022-0663.92.1.96XuEtal24aNumber = {2}, DOI added10.1038/s41928-023-01116-6Vite67A ViterbiA J ViterbiVeraEtal25Y ChenY-T Chen2509.20354, author 69 = Yi-Ting ChenBarrEtal13Doi = {https://doi.org/10.1016/…}MatuEtal17Doi = {https://doi.org/10.1016/…}Fodo75BeckLim03{C}alifornia;+ Number = {6};+ Doi10.1162/089892903322370744LairEtal8710.1016/0004-3702(87)90050-6Pyly7310.1037/h0034650BeckLim03is worth calling out: the extra brace pair around the entire title makesformat_titlepass the entry through untouched, which is how{c}aliforniasurvived.SnijBosk11→SnijBosk12,@incollection→@inbook"More powerful tests for variance parameters" is a section inside chapter 6; chapter 6
is titled Testing and Model Specification. Snijders also states the official publication
year of the second edition is 2012 (it appeared November 2011) —
mlbook.htm,
table of contents.
Recast to match the repo's existing
@inbookconvention, whereChapterholds thechapter's name (cf.
Bord08,HallGree08). The key change is forced rather thanchosen:
bibcheckderives the key from author + year.Pagesdropped — the section'srange in the second edition could not be verified.
R Bosker→R J Bosker.4.
doi→DoiAll 66
doifield names capitalized.helpers.write_bibemitsk.capitalize()(
bibcheck/helpers.py:729), so every other field in the file is already capitalized;these 66 were the only exceptions.
No citation key was re-pointed
Checked mechanically across all 6,301 keys shared with the pre-#84/#85 master: for every
key present in both, the title and author set still denote the same work. Every rename
from those two PRs was confirmed to carry its referent with it —
ChanEtal09→ChanEtal09a,ScheEtal08→ScheEtal08a,XuEtal24→XuEtal24a,WangEtal10→WangEtal10a,Mann23a→Mann23,Mann23b→Mann24,OwenMann23→OwenMann24,XuEtal23→XuEtal24b,FitzEtal23→FitzEtal26,MontEtal12→MontEtal12a,RumeEtal86→RumeEtal86a,Krus98→Krus92,ViswEtal17→VaswEtal17— and no retired key was reused for a different work.Checks
bibcheck/test.pyequivalent: 0 errors, 6,422 entriesGede24's: I(a pronoun — correct)Also in this PR
Vint68now cites the Russian original. The entry carried Springer's English-translationrecord — Cybernetics 4(1):52–57, DOI
10.1007/BF01074755— under the original's 1968 date,so no source matched it as written and the DOI resolved to a record whose year contradicted it:
Now
Kibernetika4:81–88, 1968 — what the speech-recognition literature cites, and it keepsthe key. The DOI is dropped (it belongs to the translation).
Numberis omitted deliberately:Wikipedia gives no issue, arXiv 1001.2267 gives 4(2), so it cannot be asserted.
CrutEtal13stays deleted, confirmed by @jeremymanning: it was the conference presentationthat became
HealEtal14a, andHealEtal14ais the one that should be cited. Not touched here.🤖 Generated with Claude Code
https://claude.ai/code/session_01MfEdd5PnqDbDppiYGnNNcg