Repository navigation
Read a semicolon between post-nominals as a comma (D15) - #871
Merged
Merged
Conversation
The semicolon is a suffix delimiter every policy has, beside the comma (rules/C10). A delimiter written without a letter or digit, glued to one end of a word after the first comma, leaves the word read as the word without it, its text kept: "John Smith, MD; PhD" reads given John, family Smith, suffix "MD; PhD", where 1.4.0 through 2.5.0 reversed the name. One predicate, _vocab.glued_stem, serves classify's tags, _comma.decide's shape tests, is_wholly_suffix and segment's C2 title test; a glued connective or bound given name joins nothing across the delimiter. A semicolon before the first comma stays a word (rules/T1's question, out of scope). ClinicalTrials.gov officials: 443 of 494 semicolon names move, 431 a reversed name put right; nothing moves in the committed corpora, CLDR, GND, FEC, TSE or PSC (decisions/C10). 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 #871 +/- ##
==========================================
+ Coverage 99.05% 99.06% +0.01%
==========================================
Files 47 47
Lines 4669 4730 +61
==========================================
+ Hits 4625 4686 +61
Misses 44 44 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rder
glued_stem stopped at the first core the frozenset yielded, so a word
holding one core inside and another at its end ('MD/PhD;' under '/')
read two ways by hash seed. It now tries every gluable core in sorted
order; decide's flag loop no longer stops at the first core, and
segment's title test pre-checks for a core before calling glued_stem.
Found by the second review of #871.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Kept, a particle with a semicolon glued after it chained forward across
it ('Berg, de; Smith' read family 'Berg de; Smith'). Dropping the tags
also drops P6's backward attachment, so 'Berg, Jan van; MD' reads middle
'van;' as every release from 1.4.0 did; recorded as accepted in
rules/C10 (Derek, 2026-10-24).
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.
D15 of the vocabulary phase 2 spec (#752): the semicolon becomes a default suffix delimiter, and a delimiter glued to a suffix word counts.
Behavior
John Smith, MD; PhDMD;, familyJohn Smith, suffixPhDJohn, familySmith, suffixMD; PhDJohn Smith, MD;PhDMD;PhDMD;PhDSmith, MD; PhDMD;Smith, suffixMD; PhDJohn Smith, MA; PhDMA;MA; PhD(reported, asMA PhDis)John Smith, MD ; PhDMD, given;(2.5.0)MD, PhD(the lone delimiter is dropped, as a declared one is)Berg, Jan van; MDvan;John Smith MD; PhDMD;Design
_vocab.delimiter_cores, not aPolicy.extra_suffix_delimitersdefault. That field is a set callers replace (the facade'ssuffix_delimiterreplaces it too), so a default inside it would vanish for anyone declaring their own delimiter. No policy removes the semicolon, as none removes the comma._vocab.glued_stem, answers it, and four sites ask it:_comma.decideuses the stem in its shape tests;is_wholly_suffixuses it in the run test;MBBS;) to 431.Smith, V; MDkeeps givenV;, asSmith, V MDdoes.Berg, de; Smithkeeps givende;); P6's backward attachment goes with it, an accepted cost.MD/PhD;reads the same whatever the hash seed." and ",Standis notStwithandglued on.Measured against 638685b
test_a_glued_semicolon_reads_as_its_space_twin(990 texts, 726 disagreed at base) andtest_a_semicolon_standing_alone_in_a_tail_reads_as_its_comma_twin(129 texts, all disagreed at base).Smith, John161 → 158.Docs
Standunder" and ", andBerg, Jan van; MD), all addressed. A second review of those fixes found a hash-seed-dependent reading (MD/PhD;), fixed, and a forward join across a glued particle, resolved by the decision above.Decided
Berg, Jan van; MDkeeps 1.4.0's middlevan;(Derek, 2026-10-24; rules/C10's Accepted bullet).Left for release
migrate.rstentries are left for the 2.6.0 release step, as with the cycle's other PRs.🤖 Generated with Claude Code