Skip to content

Commit 0659524

Browse files
derek73claude
andcommitted
docs(C1): review round for #554 -- clearer clause, pinned report and scope
- rules.md#C1: the clause now leads with what it decides (a word's particle reading does not take it out of the run) and names the two runs plainly; "such a part" gets an explicit antecedent. - New C1 examples pin the uniform-case report and the clause's scope: 'John Smith, Jr vd' is silent, 'John Smith, Jr do' reports (do is a word of the ambiguous class, so the clause does not reach it). - decisions.md#C1: PR #552's split was an intermediate state, never released; 1.4.0 read these names as (a) does (verified against the wheel); do's membership shown by a recompute; shorter Open: handle. - Ledgers: comments carry the "unambiguous" qualifier and quote the new clause; 'John Smith, Jr do' joins the #544 run rule at 2.0.0-2.3.0, with each baseline's own reading. Moved corpus claims re-recorded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 3ad584e commit 0659524

8 files changed

Lines changed: 96 additions & 55 deletions

File tree

‎docs/design/decisions.md‎

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

‎docs/design/rules.md‎

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1703,15 +1703,17 @@ C1. Rationale: a credential run after the comma means the name is in
17031703
case: one letter is the shape a middle initial is written in,
17041704
and S3 retires single-character matches for the same reason,
17051705
while a multi-letter numeral or generational word stands in a
1706-
run like any suffix word ('John Smith, III Ma'). A word of both
1707-
the particle and the unambiguous suffix vocabulary counts as a
1708-
suffix word there too ('John Smith, vd Ma'): membership in this
1709-
part asks what the word is, while S2's company asks whether it
1710-
speaks for the word behind it, which a particle never does, so
1711-
the company run it ends is S2's and not this one. A word of both
1712-
the title and the suffix vocabulary opening such a part counts as
1713-
a suffix word there, the name before the comma being complete,
1714-
except as the titles of paired initials, above. Where every word
1706+
run like any suffix word ('John Smith, III Ma'). A word's
1707+
particle reading does not take it out of the run: a word of both
1708+
the particle and the unambiguous suffix vocabulary is a suffix
1709+
word there too ('John Smith, vd Ma'). Run membership asks what
1710+
the word is, and S2's company asks whether it speaks for the word
1711+
behind it, which a particle never does; the run S2 says such a
1712+
word ends is the company's, not this count's. A word of both the
1713+
title and the suffix vocabulary opening a part the count reads as
1714+
a run counts as a suffix word there, the name before the comma
1715+
being complete, except as the titles of paired initials, above.
1716+
Where every word
17151717
of this class in the part is a LISTED word written in capitals in
17161718
a mixed-case name, the writing has already made each of them the
17171719
credential (S2), and the part reads as the credential run on that
@@ -1819,6 +1821,9 @@ C1. Rationale: a credential run after the comma means the name is in
18191821
"John Smith, PhD vd DO" → suffix="PhD vd DO"
18201822
"John Smith, vd Ma" → suffix="vd Ma"
18211823
"JOHN SMITH, VD MA" → suffix="VD MA"
1824+
"JOHN SMITH, VD MA" → ambiguities=("suffix-or-name",)
1825+
"John Smith, Jr vd" → ambiguities=()
1826+
"John Smith, Jr do" → ambiguities=("suffix-or-name",) · boundary
18221827
"John Smith, X.Y.Z." → suffix="X.Y.Z."
18231828
"John Smith, X.Y.Z." → ambiguities=()
18241829
"John Smith, X.Y.Z." unlisted_dotted_suffixes-off → given="X.Y.Z."

‎tests/v2/test_ledger_guards.py‎

Lines changed: 45 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3071,7 +3071,8 @@ class _LatinCopy(NamedTuple):
30713071
# suffix examples, a vocabulary word in front of a member, which
30723072
# copies no set either.
30733073
frozenset({"JOHN SMITH, VD MA", "John Smith, Ed Ma",
3074-
"John Smith, Ms Ma", "John Smith, PhD Ma",
3074+
"John Smith, Jr do", "John Smith, Ms Ma",
3075+
"John Smith, PhD Ma",
30753076
r"John Smith, X\.Y\.Z\. MA", "John Smith, vd Ma",
30763077
"john smith, md ma"}),
30773078
frozenset({"Doe, Jane PhD MEng", "Doe, Jane nee Smith PhD MEng",
@@ -3655,10 +3656,15 @@ def _claim(rule: dict) -> _Claim:
36553656
# 2026-10-01, #562: 27 -> 29, 'John Smith, PhD DO DO'
36563657
# and 'John Smith, PhD vd DO', #562's rules.md#C1 examples
36573658
# and case rows. Reach, verified name by name.
3659+
# 2026-10-01, #554: 29 -> 31, 'John Smith, Jr vd' and 'John
3660+
# Smith, Jr do', #554's rules.md#C1 examples. Reach, verified
3661+
# name by name.
36583662
"fix(#379) a tussenvoegsel after a family comma attaches to the family":
3659-
_Claim(29, ('family', 'middle'), "36879da9fc51", None),
3663+
_Claim(31, ('family', 'middle'), "233aa8786b15", None),
3664+
# 2026-10-01, #554: 2 -> 3, 'John Smith, Jr vd', #554's
3665+
# rules.md#C1 example. Reach, verified by name.
36603666
"fix(#380) a trailing vd after a family comma is the tussenvoegsel, not a post-nominal":
3661-
_Claim(2, ('family', 'suffix'), "ec0d45289dc1", None),
3667+
_Claim(3, ('family', 'suffix'), "d5cd77f5b24b", None),
36623668
# 279 -> 280 with #371, and the growth is corpus, not behavior:
36633669
# that PR added `Ph. D., John` as a rules.md example, so the
36643670
# regex matches one more corpus name. The name does not diff at
@@ -3765,11 +3771,12 @@ def _claim(rule: dict) -> _Claim:
37653771
# 2026-10-01, #562: 408 -> 410, 'John Smith, PhD DO DO'
37663772
# and 'John Smith, PhD vd DO', #562's rules.md#C1 examples
37673773
# and case rows. Reach, verified name by name.
3768-
# 2026-10-01, #554: 410 -> 412, 'John Smith, vd Ma' and
3769-
# 'JOHN SMITH, VD MA', #554's rules.md#C1 examples. Reach,
3770-
# verified name by name.
3774+
# 2026-10-01, #554: 410 -> 414, 'John Smith, vd Ma',
3775+
# 'JOHN SMITH, VD MA', 'John Smith, Jr vd' and 'John Smith,
3776+
# Jr do', #554's rules.md#C1 examples. Reach, verified name by
3777+
# name.
37713778
"fix(comma-family) lone post-comma piece routes to suffix/title, not first":
3772-
_Claim(412, ('given', 'suffix', 'title'), "d9217453f0df", None),
3779+
_Claim(414, ('given', 'suffix', 'title'), "46663c4aa90a", None),
37733780
"fix(comma-family) a comma followed only by titles keeps the given/family split":
37743781
_Claim(2, ('family', 'given'), "5bd9c6d96c38", None),
37753782
"fix(comma-family) a comma followed only by titles keeps the given/family split, the C1 example":
@@ -3864,11 +3871,12 @@ def _claim(rule: dict) -> _Claim:
38643871
# 2026-10-01, #562: 408 -> 410, 'John Smith, PhD DO DO'
38653872
# and 'John Smith, PhD vd DO', #562's rules.md#C1 examples
38663873
# and case rows. Reach, verified name by name.
3867-
# 2026-10-01, #554: 410 -> 412, 'John Smith, vd Ma' and
3868-
# 'JOHN SMITH, VD MA', #554's rules.md#C1 examples. Reach,
3869-
# verified name by name.
3874+
# 2026-10-01, #554: 410 -> 414, 'John Smith, vd Ma',
3875+
# 'JOHN SMITH, VD MA', 'John Smith, Jr vd' and 'John Smith,
3876+
# Jr do', #554's rules.md#C1 examples. Reach, verified name by
3877+
# name.
38703878
"fix(comma-precomma-family) pre-comma run reads as family, not given":
3871-
_Claim(412, ('family', 'given'), "d9217453f0df", None),
3879+
_Claim(414, ('family', 'given'), "46663c4aa90a", None),
38723880
# 2026-09-20, #397: retitled in place, reach and digest
38733881
# unchanged -- the rule keeps 'Carod i', which the landing
38743882
# leaves byte-identical.
@@ -4658,7 +4666,10 @@ def _claim(rule: dict) -> _Claim:
46584666
# 2026-10-01, #562: 27 -> 29, 'John Smith, PhD DO DO'
46594667
# and 'John Smith, PhD vd DO', #562's rules.md#C1 examples
46604668
# and case rows. Reach, verified name by name.
4661-
_Claim(29, ('_ambiguities', 'family', 'middle'), "36879da9fc51", None),
4669+
# 2026-10-01, #554: 29 -> 31, 'John Smith, Jr vd' and 'John
4670+
# Smith, Jr do', #554's rules.md#C1 examples. Reach, verified
4671+
# name by name.
4672+
_Claim(31, ('_ambiguities', 'family', 'middle'), "233aa8786b15", None),
46624673
# 2026-09-18: 126 -> 131. Five corpus names arrived with
46634674
# #289/#516's own case rows -- 'J.씨', 'John Smith 田.中.',
46644675
# '毛泽东, MA', '田中 太郎, MA', '마틴 킹, MA' -- all of them
@@ -4693,8 +4704,10 @@ def _claim(rule: dict) -> _Claim:
46934704
_Claim(1, ('_ambiguities', 'family', 'given'), "ca7b37af6cf8", None),
46944705
"fix(#367) a title no longer displaces a leading particle out of the leading position":
46954706
_Claim(3, ('family', 'given'), "724967a4a117", None),
4707+
# 2026-10-01, #554: 2 -> 3, 'John Smith, Jr vd', #554's
4708+
# rules.md#C1 example. Reach, verified by name.
46964709
"fix(#380) a trailing vd after a family comma is the tussenvoegsel, not a post-nominal":
4697-
_Claim(2, ('_ambiguities', 'family', 'suffix'), "ec0d45289dc1", None),
4710+
_Claim(3, ('_ambiguities', 'family', 'suffix'), "d5cd77f5b24b", None),
46984711
"fix(#399) a maiden marker bounds the particle chain that swallowed it":
46994712
_Claim(6, ('family', 'maiden'), "89e1f4afdd2a", ('DEFAULT',)),
47004713
"fix(#360) mc moved into the never-given particles, so it folds into the family":
@@ -5200,10 +5213,10 @@ def _claim(rule: dict) -> _Claim:
52005213
# 2026-09-27, #544: new, 4; gains 'John Smith, Ed Ma', 'John
52015214
# Smith, Ms Ma', 'John Smith, X.Y.Z. MA', 'john smith, md ma'.
52025215
# 2026-09-28, #544: 4 -> 5; gains 'John Smith, PhD Ma'.
5203-
# 2026-10-01, #554: 5 -> 7; gains 'John Smith, vd Ma' and
5204-
# 'JOHN SMITH, VD MA'.
5216+
# 2026-10-01, #554: 5 -> 8; gains 'John Smith, vd Ma',
5217+
# 'JOHN SMITH, VD MA' and 'John Smith, Jr do'.
52055218
"fix(#544) a run of ambiguous members after a suffix comma reads by the name-word count":
5206-
_Claim(7, ('_ambiguities', 'family', 'given', 'middle', 'suffix', 'title'), "890e7723c601", ('DEFAULT',)),
5219+
_Claim(8, ('_ambiguities', 'family', 'given', 'middle', 'suffix', 'title'), "ac1125df8691", ('DEFAULT',)),
52075220
# 2026-09-27, #544: new, 4; gains 'Doe, Jane PhD MEng', 'Doe,
52085221
# Jane nee Smith PhD MEng', 'Jane Doe nee Smith PhD MEng',
52095222
# 'John Smith PhD MEng'. Relabelled the same day
@@ -5652,10 +5665,10 @@ def _claim(rule: dict) -> _Claim:
56525665
# 2026-09-27, #544: new, 4; gains 'John Smith, Ed Ma', 'John
56535666
# Smith, Ms Ma', 'John Smith, X.Y.Z. MA', 'john smith, md ma'.
56545667
# 2026-09-28, #544: 4 -> 5; gains 'John Smith, PhD Ma'.
5655-
# 2026-10-01, #554: 5 -> 7; gains 'John Smith, vd Ma' and
5656-
# 'JOHN SMITH, VD MA'.
5668+
# 2026-10-01, #554: 5 -> 8; gains 'John Smith, vd Ma',
5669+
# 'JOHN SMITH, VD MA' and 'John Smith, Jr do'.
56575670
"fix(#544) a run of ambiguous members after a suffix comma reads by the name-word count":
5658-
_Claim(7, ('_ambiguities', 'family', 'given', 'middle', 'suffix', 'title'), "890e7723c601", ('DEFAULT',)),
5671+
_Claim(8, ('_ambiguities', 'family', 'given', 'middle', 'suffix', 'title'), "ac1125df8691", ('DEFAULT',)),
56595672
# 2026-09-27, #544: new, 4; gains 'Doe, Jane PhD MEng', 'Doe,
56605673
# Jane nee Smith PhD MEng', 'Jane Doe nee Smith PhD MEng',
56615674
# 'John Smith PhD MEng'. Relabelled the same day
@@ -5837,13 +5850,18 @@ def _claim(rule: dict) -> _Claim:
58375850
# 2026-10-01, #562: 27 -> 29, 'John Smith, PhD DO DO'
58385851
# and 'John Smith, PhD vd DO', #562's rules.md#C1 examples
58395852
# and case rows. Reach, verified name by name.
5840-
_Claim(29, ('_ambiguities', 'family', 'middle'), "36879da9fc51", None),
5853+
# 2026-10-01, #554: 29 -> 31, 'John Smith, Jr vd' and 'John
5854+
# Smith, Jr do', #554's rules.md#C1 examples. Reach, verified
5855+
# name by name.
5856+
_Claim(31, ('_ambiguities', 'family', 'middle'), "233aa8786b15", None),
58415857
"fix(#424) an unlisted abbreviation is as transparent as a listed title to the leading particle":
58425858
_Claim(1, ('_ambiguities', 'family', 'given'), "ca7b37af6cf8", None),
58435859
"fix(#367) a title no longer displaces a leading particle out of the leading position":
58445860
_Claim(3, ('family', 'given'), "724967a4a117", None),
5861+
# 2026-10-01, #554: 2 -> 3, 'John Smith, Jr vd', #554's
5862+
# rules.md#C1 example. Reach, verified by name.
58455863
"fix(#380) a trailing vd after a family comma is the tussenvoegsel, not a post-nominal":
5846-
_Claim(2, ('_ambiguities', 'family', 'suffix'), "ec0d45289dc1", None),
5864+
_Claim(3, ('_ambiguities', 'family', 'suffix'), "d5cd77f5b24b", None),
58475865
"fix(#399) a maiden marker bounds the particle chain that swallowed it":
58485866
_Claim(6, ('family', 'maiden'), "89e1f4afdd2a", ('DEFAULT',)),
58495867
"fix(#360) mc moved into the never-given particles, so it folds into the family":
@@ -6338,10 +6356,10 @@ def _claim(rule: dict) -> _Claim:
63386356
# 2026-09-27, #544: new, 4; gains 'John Smith, Ed Ma', 'John
63396357
# Smith, Ms Ma', 'John Smith, X.Y.Z. MA', 'john smith, md ma'.
63406358
# 2026-09-28, #544: 4 -> 5; gains 'John Smith, PhD Ma'.
6341-
# 2026-10-01, #554: 5 -> 7; gains 'John Smith, vd Ma' and
6342-
# 'JOHN SMITH, VD MA'.
6359+
# 2026-10-01, #554: 5 -> 8; gains 'John Smith, vd Ma',
6360+
# 'JOHN SMITH, VD MA' and 'John Smith, Jr do'.
63436361
"fix(#544) a run of ambiguous members after a suffix comma reads by the name-word count":
6344-
_Claim(7, ('_ambiguities', 'family', 'given', 'middle', 'suffix', 'title'), "890e7723c601", ('DEFAULT',)),
6362+
_Claim(8, ('_ambiguities', 'family', 'given', 'middle', 'suffix', 'title'), "ac1125df8691", ('DEFAULT',)),
63456363
# 2026-09-27, #544: new, 4; gains 'Doe, Jane PhD MEng', 'Doe,
63466364
# Jane nee Smith PhD MEng', 'Jane Doe nee Smith PhD MEng',
63476365
# 'John Smith PhD MEng'. Relabelled the same day
@@ -6639,10 +6657,10 @@ def _claim(rule: dict) -> _Claim:
66396657
# 2026-09-27, #544: new, 4; gains 'John Smith, Ed Ma', 'John
66406658
# Smith, Ms Ma', 'John Smith, X.Y.Z. MA', 'john smith, md ma'.
66416659
# 2026-09-28, #544: 4 -> 5; gains 'John Smith, PhD Ma'.
6642-
# 2026-10-01, #554: 5 -> 7; gains 'John Smith, vd Ma' and
6643-
# 'JOHN SMITH, VD MA'.
6660+
# 2026-10-01, #554: 5 -> 8; gains 'John Smith, vd Ma',
6661+
# 'JOHN SMITH, VD MA' and 'John Smith, Jr do'.
66446662
"fix(#544) a run of ambiguous members after a suffix comma reads by the name-word count":
6645-
_Claim(7, ('_ambiguities', 'family', 'given', 'middle', 'suffix', 'title'), "890e7723c601", ('DEFAULT',)),
6663+
_Claim(8, ('_ambiguities', 'family', 'given', 'middle', 'suffix', 'title'), "ac1125df8691", ('DEFAULT',)),
66466664
# 2026-09-27, #544: new, 4; gains 'Doe, Jane PhD MEng', 'Doe,
66476665
# Jane nee Smith PhD MEng', 'Jane Doe nee Smith PhD MEng',
66486666
# 'John Smith PhD MEng'.

‎tools/differential/corpus_rules.jsonl‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@
206206
"John Smith, Ed"
207207
"John Smith, Ed Ma"
208208
"John Smith, Jones"
209+
"John Smith, Jr do"
210+
"John Smith, Jr vd"
209211
"John Smith, LEED AP"
210212
"John Smith, MA"
211213
"John Smith, MD, Bart"

‎tools/differential/expected_since_2.0.0.toml‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3769,15 +3769,19 @@ issue = "fix(#544) a run of ambiguous members after a suffix comma reads by the
37693769
# like the rest.
37703770
#
37713771
# 2026-10-01, #554: 'John Smith, vd Ma' and 'JOHN SMITH, VD MA' join,
3772-
# rules.md#C1's examples for a word of both the particle and the suffix
3773-
# vocabulary, which "counts as a suffix word there too". This baseline
3774-
# read the whole name as the family ('John Smith vd Ma').
3772+
# rules.md#C1's examples for a word of both the particle and the
3773+
# unambiguous suffix vocabulary: "A word's particle reading does not
3774+
# take it out of the run". This baseline read the whole name as the
3775+
# family ('John Smith vd Ma'). 'John Smith, Jr do' joins as C1's
3776+
# boundary for that clause: `do` is a word of the ambiguous class, so
3777+
# the count flips the part and reports, where this baseline read
3778+
# title 'Jr', given 'do'.
37753779
#
37763780
# Literal; `fields` is the union the names move ('title' is the duals').
37773781
# Probes: 'Smith, Ed Ma' (one name word before the comma keeps the
37783782
# listing form), 'Smith, Ms Ma' (a dual opening the given part is a
37793783
# title) and the superstring 'Dr. John Smith, Ed Ma' are _MUST_NOT_MATCH.
3780-
name_regex = "^(?:JOHN SMITH, VD MA|John Smith, Ed Ma|John Smith, Ms Ma|John Smith, PhD Ma|John Smith, X\\.Y\\.Z\\. MA|John Smith, vd Ma|john smith, md ma)$"
3784+
name_regex = "^(?:JOHN SMITH, VD MA|John Smith, Ed Ma|John Smith, Jr do|John Smith, Ms Ma|John Smith, PhD Ma|John Smith, X\\.Y\\.Z\\. MA|John Smith, vd Ma|john smith, md ma)$"
37813785
fields = ["given", "middle", "family", "suffix", "title", "_ambiguities"]
37823786
orders = ["DEFAULT"]
37833787

‎tools/differential/expected_since_2.1.0.toml‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3680,15 +3680,19 @@ issue = "fix(#544) a run of ambiguous members after a suffix comma reads by the
36803680
# like the rest.
36813681
#
36823682
# 2026-10-01, #554: 'John Smith, vd Ma' and 'JOHN SMITH, VD MA' join,
3683-
# rules.md#C1's examples for a word of both the particle and the suffix
3684-
# vocabulary, which "counts as a suffix word there too". This baseline
3685-
# read the whole name as the family ('John Smith vd Ma').
3683+
# rules.md#C1's examples for a word of both the particle and the
3684+
# unambiguous suffix vocabulary: "A word's particle reading does not
3685+
# take it out of the run". This baseline read the whole name as the
3686+
# family ('John Smith vd Ma'). 'John Smith, Jr do' joins as C1's
3687+
# boundary for that clause: `do` is a word of the ambiguous class, so
3688+
# the count flips the part and reports, where this baseline read
3689+
# title 'Jr', given 'do'.
36863690
#
36873691
# Literal; `fields` is the union the names move ('title' is the duals').
36883692
# Probes: 'Smith, Ed Ma' (one name word before the comma keeps the
36893693
# listing form), 'Smith, Ms Ma' (a dual opening the given part is a
36903694
# title) and the superstring 'Dr. John Smith, Ed Ma' are _MUST_NOT_MATCH.
3691-
name_regex = "^(?:JOHN SMITH, VD MA|John Smith, Ed Ma|John Smith, Ms Ma|John Smith, PhD Ma|John Smith, X\\.Y\\.Z\\. MA|John Smith, vd Ma|john smith, md ma)$"
3695+
name_regex = "^(?:JOHN SMITH, VD MA|John Smith, Ed Ma|John Smith, Jr do|John Smith, Ms Ma|John Smith, PhD Ma|John Smith, X\\.Y\\.Z\\. MA|John Smith, vd Ma|john smith, md ma)$"
36923696
fields = ["given", "middle", "family", "suffix", "title", "_ambiguities"]
36933697
orders = ["DEFAULT"]
36943698

‎tools/differential/expected_since_2.2.0.toml‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2078,15 +2078,19 @@ issue = "fix(#544) a run of ambiguous members after a suffix comma reads by the
20782078
# like the rest.
20792079
#
20802080
# 2026-10-01, #554: 'John Smith, vd Ma' and 'JOHN SMITH, VD MA' join,
2081-
# rules.md#C1's examples for a word of both the particle and the suffix
2082-
# vocabulary, which "counts as a suffix word there too". This baseline
2083-
# read the whole name as the family ('John Smith vd Ma').
2081+
# rules.md#C1's examples for a word of both the particle and the
2082+
# unambiguous suffix vocabulary: "A word's particle reading does not
2083+
# take it out of the run". This baseline read the whole name as the
2084+
# family ('John Smith vd Ma'). 'John Smith, Jr do' joins as C1's
2085+
# boundary for that clause: `do` is a word of the ambiguous class, so
2086+
# the count flips the part and reports, where this baseline read
2087+
# given 'Jr', family 'do John Smith'.
20842088
#
20852089
# Literal; `fields` is the union the names move ('title' is the duals').
20862090
# Probes: 'Smith, Ed Ma' (one name word before the comma keeps the
20872091
# listing form), 'Smith, Ms Ma' (a dual opening the given part is a
20882092
# title) and the superstring 'Dr. John Smith, Ed Ma' are _MUST_NOT_MATCH.
2089-
name_regex = "^(?:JOHN SMITH, VD MA|John Smith, Ed Ma|John Smith, Ms Ma|John Smith, PhD Ma|John Smith, X\\.Y\\.Z\\. MA|John Smith, vd Ma|john smith, md ma)$"
2093+
name_regex = "^(?:JOHN SMITH, VD MA|John Smith, Ed Ma|John Smith, Jr do|John Smith, Ms Ma|John Smith, PhD Ma|John Smith, X\\.Y\\.Z\\. MA|John Smith, vd Ma|john smith, md ma)$"
20902094
fields = ["given", "middle", "family", "suffix", "title", "_ambiguities"]
20912095
orders = ["DEFAULT"]
20922096

‎tools/differential/expected_since_2.3.0.toml‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1345,15 +1345,19 @@ issue = "fix(#544) a run of ambiguous members after a suffix comma reads by the
13451345
# like the rest.
13461346
#
13471347
# 2026-10-01, #554: 'John Smith, vd Ma' and 'JOHN SMITH, VD MA' join,
1348-
# rules.md#C1's examples for a word of both the particle and the suffix
1349-
# vocabulary, which "counts as a suffix word there too". This baseline
1350-
# read the whole name as the family ('John Smith vd Ma').
1348+
# rules.md#C1's examples for a word of both the particle and the
1349+
# unambiguous suffix vocabulary: "A word's particle reading does not
1350+
# take it out of the run". This baseline read the whole name as the
1351+
# family ('John Smith vd Ma'). 'John Smith, Jr do' joins as C1's
1352+
# boundary for that clause: `do` is a word of the ambiguous class, so
1353+
# the count flips the part and reports, where this baseline read
1354+
# given 'Jr', family 'do John Smith'.
13511355
#
13521356
# Literal; `fields` is the union the names move ('title' is the duals').
13531357
# Probes: 'Smith, Ed Ma' (one name word before the comma keeps the
13541358
# listing form), 'Smith, Ms Ma' (a dual opening the given part is a
13551359
# title) and the superstring 'Dr. John Smith, Ed Ma' are _MUST_NOT_MATCH.
1356-
name_regex = "^(?:JOHN SMITH, VD MA|John Smith, Ed Ma|John Smith, Ms Ma|John Smith, PhD Ma|John Smith, X\\.Y\\.Z\\. MA|John Smith, vd Ma|john smith, md ma)$"
1360+
name_regex = "^(?:JOHN SMITH, VD MA|John Smith, Ed Ma|John Smith, Jr do|John Smith, Ms Ma|John Smith, PhD Ma|John Smith, X\\.Y\\.Z\\. MA|John Smith, vd Ma|john smith, md ma)$"
13571361
fields = ["given", "middle", "family", "suffix", "title", "_ambiguities"]
13581362
orders = ["DEFAULT"]
13591363

0 commit comments

Comments
 (0)