Skip to content

Lowercase after colons in titles; restore MartEtal18; fix 13 entries - #86

Merged
jeremymanning merged 2 commits into
masterfrom
bib-colon-audit-and-fixes
Sep 9, 2026
Merged

Lowercase after colons in titles; restore MartEtal18; fix 13 entries#86
jeremymanning merged 2 commits into
masterfrom
bib-colon-audit-and-fixes

Conversation

@jeremymanning

@jeremymanning jeremymanning commented Sep 9, 2026

Copy link
Copy Markdown
Member

Post-merge audit of #84 and #85, which were merged to master as 0d3b9ff while this
review 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 a Title is now lowercase unless it is a proper noun. Proper
nouns in this file are brace-protected ({C}alifornia, {M}arkov) or listed in
bibcheck/caps.txt; both are left alone, as is Gede24's : I ... (a pronoun).

184 of the 186 were the article "A", and bibcheck could never have flagged them:

  • format_title short-circuits on w.lower() == "a" and appends the word unchanged
    (bibcheck/helpers.py:854), and
  • A is line 1 of bibcheck/caps.txt.

So a capital A after a colon was preserved. It is only ever preserved, never
restored — verified directly:

format_title('Vision: A computational investigation') -> 'Vision: A computational investigation'
format_title('Vision: a computational investigation') -> 'Vision: a computational investigation'

That is why this change is stable under bibcheck and needs no change to bibcheck itself.

Only two of the 186 were not "A": BeckLim03 ("Strategic") and ContPrev24 ("Suicide").

Journal, booktitle, publisher and address fields are untouched — they go through
format_journal_name, not format_title, so Journal of Experimental Psychology: Learning, Memory, and Cognition stays correct.

2. Restored: MartEtal18

Dropped with no replacement by 4376a00 ("remove duplicate FitzEtal, re-add DOIs for
most 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.

Entry Was Now Source
ChanEtal09b title stopped at the main title …eyewitness suggestibility: the reversed testing effect CrossRef subtitle, 10.1111/j.1467-9280.2008.02245.x
Mars07 title stopped at the main title …is not the same as recalling: implications for memory CrossRef subtitle, 10.1111/j.1467-8721.2007.00467.x
NguyEtal19 …shared neural response …shared neural responses CrossRef 10.1016/j.neuroimage.2018.09.010
Schr00b Pages = {96} 96--106 CrossRef 10.1037/0022-0663.92.1.96
XuEtal24a no issue, no DOI Number = {2}, DOI added CrossRef 10.1038/s41928-023-01116-6
Vite67 A Viterbi A J Viterbi OpenAlex — Andrew J. Viterbi
VeraEtal25 two authors read Y Chen 2nd is Y-T Chen arXiv 2509.20354, author 69 = Yi-Ting Chen
BarrEtal13 Doi = {https://doi.org/10.1016/…} bare DOI consistency with the other 64
MatuEtal17 Doi = {https://doi.org/10.1016/…} bare DOI consistency with the other 64
Fodo75 Harvard University Press, Cambridge MA Crowell, New York NY OpenLibrary — the 1975 edition is Crowell; HUP issued it in 1979/80
BeckLim03 whole title inside an extra brace pair unbraced; {C}alifornia; + Number = {6}; + Doi CrossRef 10.1162/089892903322370744
LairEtal87 no DOI 10.1016/0004-3702(87)90050-6 CrossRef record matches every field
Pyly73 no DOI 10.1037/h0034650 CrossRef record matches every field

BeckLim03 is worth calling out: the extra brace pair around the entire title makes
format_title pass the entry through untouched, which is how {c}alifornia survived.

SnijBosk11SnijBosk12, @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 @inbook convention, where Chapter holds the
chapter's name (cf. Bord08, HallGree08). The key change is forced rather than
chosen: bibcheck derives the key from author + year. Pages dropped — the section's
range in the second edition could not be verified. R BoskerR J Bosker.

4. doiDoi

All 66 doi field names capitalized. helpers.write_bib emits k.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 —
ChanEtal09ChanEtal09a, ScheEtal08ScheEtal08a, XuEtal24XuEtal24a,
WangEtal10WangEtal10a, Mann23aMann23, Mann23bMann24,
OwenMann23OwenMann24, XuEtal23XuEtal24b, FitzEtal23FitzEtal26,
MontEtal12MontEtal12a, RumeEtal86RumeEtal86a, Krus98Krus92,
ViswEtal17VaswEtal17 — and no retired key was reused for a different work.

Checks

  • bibcheck/test.py equivalent: 0 errors, 6,422 entries
  • colon audit: 1 remaining hit, Gede24's : I (a pronoun — correct)
  • structural: 0 non-uniform lines, 0 lowercase field names, every entry blank-line separated
  • duplicate audit (suffix-aware keys, author+title, fuzzy titles): clean
  • 157 new/changed entries re-verified against CrossRef after the edits

Also in this PR

Vint68 now cites the Russian original. The entry carried Springer's English-translation
record — 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:

Source Year Journal Vol/iss Pages
CrossRef / OpenAlex (Springer's own deposit) 1972 Cybernetics 4(1) 52–57
Semantic Scholar 1968 Cybernetics 4 52–57
Wikipedia 1968 Kibernetika 4 81–88
arXiv 1001.2267 1968 Kibernetika 4(2) 81–88

Now Kibernetika 4:81–88, 1968 — what the speech-recognition literature cites, and it keeps
the key. The DOI is dropped (it belongs to the translation). Number is omitted deliberately:
Wikipedia gives no issue, arXiv 1001.2267 gives 4(2), so it cannot be asserted.

CrutEtal13 stays deleted, confirmed by @jeremymanning: it was the conference presentation
that became HealEtal14a, and HealEtal14a is the one that should be cited. Not touched here.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MfEdd5PnqDbDppiYGnNNcg

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
jeremymanning force-pushed the bib-colon-audit-and-fixes branch from 41ab301 to 82067a3 Compare September 9, 2026 18:42
…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
@jeremymanning
jeremymanning merged commit 30df0bb into master Sep 9, 2026
1 check 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.

1 participant