Skip to content

Renunciate honorifics (Swami, Guru, Baba) put the monastic name in last #346

Description

@derek73

swami, guru and baba ship in TITLES but not in FIRST_NAME_TITLES, so a title plus one name resolves that name to last:

>>> from nameparser import parse
>>> n = parse("Swami Vivekananda")
>>> n.title, n.given, n.family
('Swami', '', 'Vivekananda')

Vivekananda is not a family name. He was born Narendranath Datta and took the monastic name on renunciation — as a monk he has no surname at all. The same holds for Guru Nanak and Baba Ramdev.

Structurally this is the Sister Mary class, classed the opposite way:

Sister Mary        -> title='Sister' given='Mary'  family=''             ✅
Swami Vivekananda  -> title='Swami'  given=''      family='Vivekananda'  ❌

FIRST_NAME_TITLES already holds sister, brother, father, mother, pope, sir, king, master — titles addressed to a personal name rather than a family name. Renunciate honorifics belong there on the same reasoning, and with a stronger justification than most: renunciation does not merely make the personal name the polite form of address, it abolishes the family name outright, so family='' is the correct output rather than a degraded one.

Proposal

Add to FIRST_NAME_TITLES (all already in TITLES):

entry example why
swami Swami Vivekananda monastic name replaces the birth name
guru Guru Nanak Nanak is the personal name
baba Baba Ramdev monastic name
lama Lama Zopa Tibetan Buddhist religious name
venerable Venerable Ananda Buddhist monastic name

lama and venerable are the same class and I am reasonably but not equally confident in them — worth a second opinion before they go in. The first three are the clear cases.

Deliberately not included

rabbi and imam are in TITLES and not in FIRST_NAME_TITLES, which is correct and should stay: rabbis and imams have surnames, and Rabbi Cohen / Imam Khomeini resolve to family today, which is right. The distinction is not "religious title" — it is whether the tradition retains a family name.

Verified at 2.1.0

input today with proposal
Swami Vivekananda family=Vivekananda given=Vivekananda, family=''
Guru Nanak family=Nanak given=Nanak
Baba Ramdev family=Ramdev given=Ramdev
Lama Zopa family=Zopa given=Zopa
Venerable Ananda family=Ananda given=Ananda
Rabbi Cohen family=Cohen unchanged ✅
Imam Khomeini family=Khomeini unchanged ✅
Swami Vivekananda Saraswati given=Vivekananda, family=Saraswati unchanged ✅
Guru Gobind Singh given=Gobind, family=Singh unchanged ✅

The rule fires only on title plus ONE name (_post_rules rule 1), so multi-token names are untouched.

Note on scope

This is a classification call about vocabulary that already ships, not a claim about a script the parser never covered — unlike #343 and #344. It is filed as a bug on that basis, but relabel if the current behavior reads as an acceptable default rather than a defect.

Related: #344 proposes the Devanagari spellings स्वामी/गुरु/बाबा in the same class, and #343 defers the Bengali গুরু/বাবা to #344 so the class is decided once. Whatever is settled here should match.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions