Skip to content

Should j nee smith read like J NEE SMITH? A lowercase single letter isn't an initial in a one-case name #723

Closed

Description

@derek73

In a name written entirely in one case, the writing says nothing about any letter in it, so the all-lowercase and all-caps spellings should parse alike. For single letters they don't. A bare capital is tagged as an initial; a bare lowercase letter is not, except v, i and x (#721) and the marked connectives e and i (P3). Every rule that consults the initial tag then reads the two spellings differently:

>>> parse("j nee smith")      # family 'j'      -- M4: the lone word before a marker is the family...
>>> parse("J NEE SMITH")      # given 'J'       -- ...unless it is an initial
>>> parse("j")                # given 'j', reports given-or-family
>>> parse("J")                # given 'J', no report (O5 is silenced by an initial)
>>> parse("jose j y lopez")   # given 'jose', family 'j y lopez'
>>> parse("JOSE J Y LOPEZ")   # given 'JOSE', middle 'J Y', family 'LOPEZ'
>>> parse("smith, j y lopez") # given 'j y lopez'
>>> parse("SMITH, J Y LOPEZ") # given 'J', middle 'Y LOPEZ'

These read the same on master before #721, so this isn't a regression. #721 closed the gap for the roman-numeral letters only, the ones that issue was about. An ordinary middle initial already agrees (john b smith / JOHN B SMITH both give middle b).

Proposed: in a one-case name, tag a bare single cased letter as an initial whenever its capital would be, so the lowercase spelling reads as the capitals do. The invariant test test_a_one_case_name_reads_as_its_capitals (tests/v2/test_properties.py) would extend from numerals to every letter.

To settle before implementing:

  • Will tests move? A prototype during Read a one-case one-letter numeral as its capital does (#721) #722's review moved readings and failed two tests, one of them test_a_word_after_the_maiden_marker_reads_as_plain_vocabulary. Measure which readings move and whether each is wanted.
  • Connectives: how a letter that is also a connective (y, e, i) interacts with P3's both-ways marking.

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions