Repository navigation
Read a one-case one-letter numeral as its capital does (#721) - #722
Merged
Merged
Conversation
…at a part's end (#721) 'john v' read suffix 'v' with no family while 'JOHN V' read family V: the capital carries the initial tag every trailing reader honors, and a lowercase 'v' was a plain suffix word. In a name written wholly in one case, classify now tags a one-letter roman numeral an initial as its capital is tagged (the name-level one-case fact, so a maiden clause's 'v' is one too). A lower/upper invariant over 1,197 one-case pairs (comma shapes, orders, clause, chain, credential) disagreed on 171 on master and on none now; it is a property test, control recorded. And, per Derek on the issue, a connective letter that ends its part is not reported conjunction-or-initial (rules/P3: it connects nothing); 'john i' reports suffix-or-name from the numeral fork instead, which retires #718's stand-down for a letter already reported as an initial. Docs: S10's Accepted clause for 'v' goes; P3 gains its exception and a boundary; S7's 'doe, jane v phd do' example reads middle 'v' as its capital twin does; decisions/S10 and decisions/P3 (the off switch no longer restores 2.3.0's one-case readings) record it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ront (#721) Both reviews found the stand-down this branch had removed as dead was not: a trailing period-marked title leaves a marked letter its part's last own word to classify but not the walk's, so 'john i dr.' carried conjunction-or-initial and suffix-or-name on one token. Restored, with S10's sentence and its precedence (P3's report is the one). The numeral fork's test of the word in front was case-dependent: a bare lowercase letter is never initial-shaped, so 'john j v' read suffix 'v' where 'JOHN J V' reads family 'V'. In a one-case name a bare cased letter in front now counts as written as an initial. The one-case grid gains the shapes both reviews found missing (a bare letter in front, a trailing title, a doubled numeral, a trailing period): master disagrees on 288 of 1,575 pairs, the branch on none, with a recorded control per guard. Also: classify builds `ends` only when a marked letter reaches the emitter, and asks `_ROMAN` at C level for the one-case initial, so no ordinary name pays a frame; the stale reasoning in classify, the public `initial` tag and CONJUNCTION_OR_INITIAL docstrings, P3's pointer, decisions/P3's exemption claim and pointer, and decisions/S10 (unreproducible figures replaced, `john nee smith i` recorded) are corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #722 +/- ##
=======================================
Coverage 99.03% 99.04%
=======================================
Files 46 46
Lines 4575 4585 +10
=======================================
+ Hits 4531 4541 +10
Misses 44 44 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Derek on the PR: 'john i phd' reports suffix-or-name as 'john i, phd' does, and 'John Smith V PhD' keeps family V with the report. Assign, once the trailing read is known, withdraws classify's connective report on the part's last name word when only post-nominals or titles follow it (rules/P3: "unless no name word of its part stands to its right"), and reports a roman numeral there. Fields do not move. Two stricter rules Derek weighed are declined with evidence: 'Hardie Leannon V' (#36) and John W. Ingram V (#136; also written 'John W Ingram V' and 'John Ingram V') write the generation without a comma. Both spellings are now case rows. The review's other defect: the one-case test of the word in front took any cased letter, moving 'IVAN Ж V' and splitting NFD from composed; it now asks whether the letter's capital is initial-shaped. The grid gains a non-ASCII letter in front and 'vii' (master 315 of 1,872 pairs; controls 225 and 117). Comment-review fixes: classify's honorific-peel and own-words claims, the public `initial` tag and CONJUNCTION_OR_INITIAL docstrings, Lexicon and config wording, the predicate's stale caller list, a case note, and the facade test's name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ot see (#721 review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The last review found P3's broadened exception honored only where the
part's last name word was one token on the no-comma path: a letter
ending a particle chain ('john van e phd'), the given part after a
family comma ('smith, john e phd') and an empty head kept their
connective report, and 'freiherr von i dr.' reached #718's stand-down
and lost the numeral's report. One role-based pass at the end of
assign now withdraws classify's report on a marked letter that is its
segment's last name-role word with only suffixes and titles after it;
the numeral's report is emitted before, so the stand-down is gone.
The maiden clause gains the numeral report's twin ('Jane Doe nee Smith
V PhD').
Records: option B moves 19, not 18 (recipe stated); #36/#136 are not
shown to be real people (the sheriff is); 1.4.0 parity holds for the
capital spellings only; AGENTS.md's count names its commit; P3 no
longer says such a letter "is read as an initial"; S10 records the
split 'Ph. D.' reading. And Derek's correction that generational
markers are common, so #718's lone-numeral reading rests on the count.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ays no frame (#722 review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lify) /simplify pass over PR #722. Reuse, simplification and altitude reviews agreed: rules/P3's exception was answered twice, by classify's positional end-of-part set and by assign's end-of-stage pass. Both go; assemble, which already withdrew this report kind where the letter was roled SUFFIX or TITLE, withdraws it where no given, middle or family word follows the letter in its segment. Same readings, and the position cut's one wrong silence goes: 'jose e nee' and 'smith, e nee smith', where the marker is a name word, report again as master did. The two reports on a numeral a post-nominal follows share `_vocab.reads_as_a_reported_numeral`; `is_trailing_numeral_suffix`'s `one_case` is required, the superset passing None explicitly. History moved out of comments, case notes and test docstrings; the facade off-switch rows collapse to one field set; the v/j asymmetry is an S10 Open question. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… at #723 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Closes #721.
What changes
A name written entirely in lower case now reads exactly as the same name in capitals does.
john vv, no familyv, reportssuffix-or-nameJOHN V→ familyVjohn smith vv, silentv, reportsJOHN SMITH Vreportsjohn j vj, suffixvj, familyvJOHN J V→ middleJ, familyVjohn iconjunction-or-initialsuffix-or-nameJOHN I(same)doe, jane v phd dov phd dov, suffixphd doDOE, JANE V PHD DOjohn i phd/John Smith V PhDconjunction-or-initialsuffix-or-nameJOHN I, PHDreportsinitial, the same way its capital is tagged. Every reader that already treatsVas an initial now treatsvthe same way. The numeral fork's test of the word in front counts a bare letter as an initial in a one-case name, as its capital would be.conjunction-or-initial(rules/P3 now states the exception). "No name word" means nothing at all, or only credentials and titles:john i phd,john i dr.,jose e jr. Where the letter is a roman numeral ending the name, it reportssuffix-or-name. That holds before a credential too, with the fields unchanged:John Smith V PhDkeeps familyVand now reports. A marked letter that isn't a numeral is silent (john e, andjones, john e, a corpus name).Hardie Leannon Vand Problem parsing name with , V #136's John W. Ingram V both write the generation without a comma. The sheriff's own spellings,John W Ingram VandJohn Ingram V, are now case rows.john van e phd), the given part after a family comma (smith, john e phd) and an empty head. The numeral's report is emitted first, so one token never carries both, and Should "John V" and "Malcolm X" read V and X as the family name rather than a generational suffix? #718's stand-down is gone. The maiden clause reports a numeral it keeps before a credential (Jane Doe nee Smith V PhD), as the main name does.Invariant
test_a_one_case_name_reads_as_its_capitalsin tests/v2/test_properties.py runs a 1,872-pair grid. It covers every comma shape, all three orders, a maiden clause, a particle chain, a bare ASCII or non-ASCII letter in front, a trailing title, a doubled numeral, a trailing period and a shape-only three-letter numeral. It checks that each lowercase name matches its capitals twin in fields and report kinds.What moved (snapshot)
Six pre-existing corpus names:
john vanddoe, jane v phd dochange fields.john smith vandlarry james edward johnson vgain a report.john ichanges its report kind.jones, john eloses its report.One former rules example moves too:
john nee smith inow reads maidensmith i. Docs updated:vAccepted clause is gone; the clause on a letter in front is extended; the stand-down's precedence over P3 is stated.721.For Derek
ifrom the conjunctions) no longer restores 2.3.0's three one-case readings (rovira, iand two others). Withino longer a conjunction, it's a one-letter numeral and reads asIdoes. The switch still unjoinsJosep Carod i Rovira.suffix-or-name:rovira, iandmaier, amy i, jr.. The comma path has never reported the numeral (decisions/C1).Follow-up
j nee smithread likeJ NEE SMITH? A lowercase single letter isn't an initial in a one-case name #723: in a one-case name, a lowercase single letter other thanv,iandxstill isn't an initial, soj nee smithreads familyjwhileJ NEE SMITHreads givenJ. This predates this PR and is recorded in decisions/S10.Review
john j v)._ROMANtest), so ordinary names pay no extra frames. The reference row reads 366 frames on both master and the branch.Checks
/simplify(reuse, simplification, efficiency, altitude), in 053f0e7. The "connects nothing" check had been answered in two places: classify's end-of-part set and an end pass in assign. It's now one check in assemble, with the same readings everywhere except one:jose e neeandsmith, e nee smithreport again, as master did, because the marker there is read as a name word. Removing the check fails 20 tests, and frames match master.🤖 Generated with Claude Code