Skip to content

Should a lone dash be a separator, so John Smith - Jr. reads family 'Smith' rather than '-'? #820

Open

Description

@derek73

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

  1. A, B or C?
  2. Should one answer cover every dash (hyphen-minus, en dash, em dash), and other lone punctuation such as / or ·?
  3. Does the answer change the comma path, where C10 already reads a declared delimiter as a comma?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions