Skip to content

Should john v read V as the family name, as JOHN V and john x do? #721

Closed

Description

@derek73

In a name written wholly in lower case, a final v is still read as a generational suffix even when no word is left for the family name:

>>> parse("john v")    # given 'john', suffix 'v', family ''   (reports given-or-family)
>>> parse("JOHN V")    # given 'JOHN', family 'V'               (reports suffix-or-name)
>>> parse("john x")    # given 'john', family 'x'               (reports suffix-or-name)
>>> parse("john i")    # given 'john', family 'i'               (reports conjunction-or-initial)

rules/S10 (the trailing roman numeral, #718/#719) says a one-letter numeral needs a word to spare, and that a name written in one case says nothing about any letter in it. john v is the one spelling that skips the count. Lowercase v is a listed suffix word and isn't initial-shaped, so the trailing walk takes it as an ordinary suffix word before the numeral fork is reached. i reaches the fork because a one-case i is tagged as an initial (it's also P3's connective). x reaches it because it's in no vocabulary.

The same cause means john smith v reports nothing, while JOHN SMITH V reports suffix-or-name.

Proposed: in a one-case name, send a one-letter numeral to the numeral fork before the suffix-word test, so john v reads family v and john smith v reports. This would retire S10's first Accepted clause. The population that moves is still to be measured.

Activity

  1. added this to the 2.5 milestone on Oct 18, 2026
  2. self-assigned this
    on Oct 18, 2026
  3. derek73 commented on Oct 18, 2026

    @derek73
    OwnerAuthor

    "john i" reporting conjunction-or-initial seems wrong too because there's nothing for a conjunction to join to there. it should probably report suffix-or-name like the other examples.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions