You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Should a lone dash be a separator, so John Smith - Jr. reads family 'Smith' rather than '-'? #820
A dash standing alone between words is read as a name word. Every release since 1.4.0 reads it that way:
input
reads
John Smith - Jr.
middle 'Smith', family '-', suffix 'Jr.'
Jane Doe - MA
middle 'Doe', family '-', suffix 'MA'
Jane Doe - Smith
middle 'Doe -', family 'Smith'
Jane Doe nee Smith - MA
maiden 'Smith -', suffix 'MA'
Jane Doe nee Smith – MA (en dash)
maiden 'Smith –', suffix 'MA'
Declaring the dash with Policy(extra_suffix_delimiters={' - '}) changes none of these. C10 (a declared delimiter parts a trailing suffix part) applies only after a comma, and in the part before the first comma a declared delimiter is a word.
The maiden case was recorded rather than fixed in decisions/M2's 2026-09-19 #533 review entry, "left for its own issue". It is one symptom of the shape here.
Proposal, in rule shape
When: a token consists only of a dash (hyphen-minus, en dash, em dash) standing between words, as in "John Smith - Jr.".
Then, one of:
(A) It is a separator (T1). It splits like whitespace and is dropped: John Smith - Jr. → family 'Smith', suffix 'Jr.'.
(B) It is a suffix delimiter, as a comma would be. It parts the name there: Jane Doe - MA reads as Jane Doe, MA.
(C) It stays a word. The rule states this as an Accepted cost.
Because: a lone dash carries no name content, so it can't be a family name. A dash inside a word (Smith-Jones) stays a hyphen; this question is only about a dash with spaces around it.
Boundaries that stay as they are:Smith-Jones (one word); Smith, RN - CRNA (C10's Accepted bullet keeps the core a word there for v1 parity, and the answer here would have to say whether that changes).
Open questions
A, B or C?
Should one answer cover every dash (hyphen-minus, en dash, em dash), and other lone punctuation such as / or ·?
Does the answer change the comma path, where C10 already reads a declared delimiter as a comma?
Corpus survey, 2026-10-24: what a lone dash is in real data
I scanned every committed corpus and the eight cached local corpora for a dash (-, –, —) standing alone between words. The ClinicalTrials.gov contact notes ("Call 1-877-CTLILLY … Mon - Fri") are left out. Counts are distinct strings.
corpus
name word after the dash
credential after the dash
psc-individuals
454
1 (Camellus Law Llp - Trustee - I.O.M. …)
ctgov-officials
212 before a comma, 20 after
26 after a comma (Alessandro Armuzzi, MD - PhD), 1 before
test rows only (Smith, RN - CRNA; CLDR's фон Брюль — мл.)
The shape this issue opens with, a credential after a dash with no comma before it (John Smith - Jr.), does not appear as a real name in any corpus. What people actually type is a hyphen with spaces around it inside a compound name.
PSC shows which box the filer put each part in. Of its 454 names, 364 have the dash in the surname box (Barnabas - Wood, Al - Kufi), 73 in the middle name and 17 in the forename (Alexandru - Ionut). Over the 364, family matches the surname box (comparing with dash spacing ignored):
reading
match
today
17 / 364: Mr Adam John Holland - Edwards → middle 'John Holland -', family 'Edwards'
(A) separator, dropped
0 / 364
(B) suffix delimiter
worse than A: it parts the surname itself
(D) a spaced hyphen, joined
349 / 364
The 15 misses under D, all of them:
4 are not names (Wise - As Trustee, Watson - The Estate, Blake - Executor Of …, Cartwright - As Nominee For …).
6 get the dashed pair right but not a surname word in front of it (Mrs Annette Erica Hinds Tia - Okwee → 'Tia-Okwee', box 'Hinds Tia - Okwee'; also Manzanaro Fernandez - Montes, Olugu Ikechi - Iro, Hameedi Shah - Jan, A A Al - Kuwari, Amobi Kesse - Adu). That is the ordinary multi-word-surname limit, the same without any dash.
5 have more than one word after the dash, and the join takes only the first (Kuijpers - Van Den Bos → 'Den Bos', Short - Van Der Laan, Dickhoff - D'Eimar De Jabrun, Schwagele - Fan Moniz, Sanchez - Osorio Nicolas).
So the data suggests a fourth answer: (D) a lone dash between two name words is a hyphen with spaces around it, and joins them (Spindler - Vesel → family 'Spindler-Vesel', Doru - Liviu Constantinescu → given 'Doru-Liviu'). Whether the rendering keeps the spaces is a separate question.
D cannot be a blanket rewrite. A naive join breaks two shapes the corpora hold:
Credentials after a comma.Alessandro Armuzzi, MD - PhD reads correctly today: suffix 'MD - PhD', which is C10's Accepted bullet. Joined into MD-PhD, the run is no longer suffix vocabulary, and the comma flips to a family comma (family 'Alessandro Armuzzi', given 'MD-PhD'). The 26 ctgov rows show this is typed. The join must not reach a credential run, which also settles open question 3: the comma path stays as it is.
A dash standing in for an empty field. In Mr - Ibraheem the filer typed - as the forename. Joined, it reads given 'Mr-Ibraheem'. Today it reads title 'Mr', given '-', family 'Ibraheem'. A join must not take a title.
Names in surname-comma form (NOEL - BLAGROVE, DIONNE) already get the whole family right; only the spacing would change.
On open question 2: / comes up too (ctgov MD / PhD, 55 strings; nepal Laxmi Sarki / Acchami, 91), but it means "or" or names an alternate surname, which is a different question, so I'd keep it out of this rule. • and · show up only in jrc-names news extraction.
Recipe: PSC rows come from psc-individuals/raw.jsonl, keeping each record whose surname holds a whitespace-flanked [-–—]+ token. Compare parse(name).family with the surname field, after folding \s*[-–—]+\s* to - and lowercasing both. D is re.sub(r'\s+([-–—]+)\s+', r'\1', name) applied before the parse.
Activity
Narrow C3's and C10's Accepted bullets; point C9 and M2 at #819 and #820
derek73 commentedon Oct 25, 2026
Corpus survey, 2026-10-24: what a lone dash is in real data
I scanned every committed corpus and the eight cached local corpora for a dash (
-,–,—) standing alone between words. The ClinicalTrials.gov contact notes ("Call 1-877-CTLILLY … Mon - Fri") are left out. Counts are distinct strings.Camellus Law Llp - Trustee - I.O.M. …)Alessandro Armuzzi, MD - PhD), 1 beforeNOEL - BLAGROVE, DIONNE)Kamala Rokaya - Bohara)Chelsea - Everton)Peter - I)Smith, RN - CRNA; CLDR'sфон Брюль — мл.)The shape this issue opens with, a credential after a dash with no comma before it (
John Smith - Jr.), does not appear as a real name in any corpus. What people actually type is a hyphen with spaces around it inside a compound name.PSC shows which box the filer put each part in. Of its 454 names, 364 have the dash in the surname box (
Barnabas - Wood,Al - Kufi), 73 in the middle name and 17 in the forename (Alexandru - Ionut). Over the 364,familymatches the surname box (comparing with dash spacing ignored):Mr Adam John Holland - Edwards→ middle'John Holland -', family'Edwards'The 15 misses under D, all of them:
Wise - As Trustee,Watson - The Estate,Blake - Executor Of …,Cartwright - As Nominee For …).Mrs Annette Erica Hinds Tia - Okwee→'Tia-Okwee', box'Hinds Tia - Okwee'; alsoManzanaro Fernandez - Montes,Olugu Ikechi - Iro,Hameedi Shah - Jan,A A Al - Kuwari,Amobi Kesse - Adu). That is the ordinary multi-word-surname limit, the same without any dash.Kuijpers - Van Den Bos→'Den Bos',Short - Van Der Laan,Dickhoff - D'Eimar De Jabrun,Schwagele - Fan Moniz,Sanchez - Osorio Nicolas).So the data suggests a fourth answer: (D) a lone dash between two name words is a hyphen with spaces around it, and joins them (
Spindler - Vesel→ family'Spindler-Vesel',Doru - Liviu Constantinescu→ given'Doru-Liviu'). Whether the rendering keeps the spaces is a separate question.D cannot be a blanket rewrite. A naive join breaks two shapes the corpora hold:
Alessandro Armuzzi, MD - PhDreads correctly today: suffix'MD - PhD', which is C10's Accepted bullet. Joined intoMD-PhD, the run is no longer suffix vocabulary, and the comma flips to a family comma (family'Alessandro Armuzzi', given'MD-PhD'). The 26 ctgov rows show this is typed. The join must not reach a credential run, which also settles open question 3: the comma path stays as it is.Mr - Ibraheemthe filer typed-as the forename. Joined, it reads given'Mr-Ibraheem'. Today it reads title'Mr', given'-', family'Ibraheem'. A join must not take a title.Names in surname-comma form (
NOEL - BLAGROVE, DIONNE) already get the whole family right; only the spacing would change.On open question 2:
/comes up too (ctgovMD / PhD, 55 strings; nepalLaxmi Sarki / Acchami, 91), but it means "or" or names an alternate surname, which is a different question, so I'd keep it out of this rule.•and·show up only in jrc-names news extraction.Recipe: PSC rows come from
psc-individuals/raw.jsonl, keeping each record whosesurnameholds a whitespace-flanked[-–—]+token. Compareparse(name).familywith thesurnamefield, after folding\s*[-–—]+\s*to-and lowercasing both. D isre.sub(r'\s+([-–—]+)\s+', r'\1', name)applied before the parse.