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.

Activity

  1. added this to the v2.2 milestone on Aug 9, 2026
  2. modified the milestones: v2.2, v2.3 on Aug 30, 2026
  3. derek73 commented on Sep 7, 2026

    @derek73
    OwnerAuthor

    Shipped in 2.3.0 via #513. swami, guru, baba and lama moved from the TITLES-only block into GIVEN_NAME_TITLES, with Devanagari (स्वामी, गुरु, बाबा, संत) and Bengali (স্বামী, শ্রীল, গুরু, বাবা) renunciate sets beside them — three overlapping lists, not one list in three scripts. Swami Vivekananda reads given Vivekananda with an empty family; Guru Nanak, Baba Ramdev and Lama Zopa move the same way, and those four are the only corpus names that move. Two name words behind the title are unchanged (Swami Vivekananda Saraswati keeps family Saraswati), and that boundary is pinned.

    Things worth recording here rather than in the code:

    • venerable was considered and left in TITLES only. It is not a Declined or an Excluded entry: the traditions split on surname retention (Buddhist monastics drop the family name, Anglican archdeacons and Catholic candidates keep it), so neither answer is right for the single-name case, and TITLES has no ambiguous subset to say "sometimes" with. Lexicon.default().add(given_name_titles={"venerable"}) is the per-caller answer.
    • rabbi and imam stay out because they address by TITLE (Rabbi Cohen), which fails the addressing criterion; the surname-retention criterion agrees. Rabbi Cohen is pinned as the control.
    • The known Latin collision is Guru Dutt, whose given name is Guru: family went from Dutt to empty. guru was already a title, so the swallow predates this change; the promotion is what moved the name between fields. Accepted as the pre-existing cost of guru being a title at all, and pinned by a row.
    • Rinpoche shipped as a trailing suffix word (Lama Zopa Rinpoche → title Lama, given Zopa, suffix Rinpoche). Guru Rinpoche alone reads title Guru, given Rinpoche — the existing bare-suffix fallback, not new behavior. The Tibetan prefix titles (Tulku, Khenpo, Geshe, Kyabje, Jetsun) are Should Tulku Urgyen fold like Lama Zopa does? (Tibetan prefix titles: Tulku, Khenpo, Geshe, Kyabje, Jetsun) #514.

    The line citation in this issue (titles.py:769) was stale before the change and was not edited; the entries are now in the GIVEN_NAME_TITLES literal at the top of nameparser/config/titles.py. Rationale: the indic-honorifics entry of docs/design/decisions.md.

  4. self-assigned this
    on Sep 11, 2026
  5. added 3 commits that reference this issue on Oct 8, 2026
    3263a8d
    d4c08d7
    f7db78d
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