Repository navigation
Description
#1266 and #1202 made every member of the comma set (_state.COMMA_CHARS) read as the ASCII comma does, and the corpus property test_every_comma_reads_as_the_ascii_comma_does holds that. There is one position where the members still differ: glued after a full stop inside a bracketed clause.
Measured on master 670b349, 2026-11-12. "nick." is the nickname, holding the clause as written.
| Comma | (Jr.·MD) |
(Jr.·III) |
(Ph.D·MD) |
(MD·Ph.D) |
(MD·PhD) |
(MD· PhD) |
Jr.·MD bare |
, Ph.D·MD |
|---|---|---|---|---|---|---|---|---|
U+002C , |
suffix Jr.,MD |
suffix Jr.,III |
nick. | nick. | nick. | suffix MD, PhD |
suffix Jr., MD |
suffix Ph.D, MD |
U+060C ، |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
U+07F8 ߸ |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
U+104A ၊ |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
U+1363 ፣ |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
U+1802 ᠂ |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
U+1808 ᠈ |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
U+A4FE ꓾ |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
U+A60D ꘍ |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
U+A6F5 ꛵ |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
U+FF0C , |
nick. | nick. | nick. | nick. | nick. | suffix | suffix | suffix |
The patterns, column by column:
- A comma with a full stop inside the word on either side (
(Ph.D·MD),(MD·Ph.D)) gives nickname for every member, the ASCII comma included. - Spaced in brackets, and outside brackets, every member reads alike.
- Only
(Jr.·MD)and(Jr.·III), a full stop then a comma glued to the next word, split the ASCII comma from the rest.
Where: _vocab._period_chunks reads a word whole through its chunks (rules/S3). Its docstring says: "ASCII punctuation beside an interior period is no part of the chunk". It strips string.punctuation, so Jr.,MD chunks into Jr and MD, both credentials. The other ten commas are not ASCII, so Jr.᠈MD keeps ᠈MD as a chunk no vocabulary knows. rules/S1's Accepted bullet since #1342 names this reach: "a word with one inside it may be read whole through its chunks (S3)". So the ASCII reading is documented and the other commas are the gap.
How often (2026-11-12, all 26 corpora):
- This position: no name holds a non-ASCII comma after a full stop inside a clause, and none holds the ASCII
X.,Ythere. - Any non-ASCII comma at all: 1,678 names.
The corpus property cannot see this position for that reason. It surfaced when #1342 tried (Jr.,MD) as a rule example and the property failed on U+1808.
Options:
- (A) Strip every comma there.
- When: a member of the comma set stands beside an interior full stop of a word read through its chunks.
- Then: it is no part of the chunk, as the ASCII comma is (
(Jr.᠈MD)→ suffixJr.᠈MD). - Because: the commas read alike everywhere else (Read every script's comma, in a name and inside a set-apart clause #1266).
- Except: none.
- Accepted: none measured.
- Change:
_period_chunksstripsstring.punctuation + COMMA_STRIP. A rule example and a sweep row per member follow.
- (B) Stop stripping the ASCII comma there, so
(Jr.,MD)reads nickname like(MD,PhD). This is ShouldJohn Smith (MD,PhD)read the credentials when the comma has no space beside it? It gives nicknameMD,PhDtoday #1268's glued-comma reading applied without the full-stop exception. decisions/S1's 2026-11-11 entry records(Jr.,MD)reading as one suffix word, which (B) would reverse. - (C) Record the difference as Accepted. No name holds it.
Open:
- A, B or C?
- Should
test_regex_syncor the comma sweep test gain this position, so a member added later is held to it?
🤖 Generated with Claude Code
Activity