orthonym.data.cation_words#

Note

Internal API. Names and behaviour may change between releases.

Element -> cation word table for salt composition (IUPAC 2013.

a phase Plan 04 (CHOKE-01, /).

(verbatim, the Blue Book): “Neutral salts of acids are named

by citing the name of the cation(s) followed by the name of the anion (see

as a separate word. Different cations are cited in alphabetical

order. Formation of salts is a functionalization and not a substitution.”

A salt = cation word(s) (alphabetical) + the anion name as separate words (potassium propanoate; potassium sodium butanedioate). The cation word is the element name for a metal cation, and ammonium for NH4+.

This module is the single source of truth for the metal cation word. It REUSES namer._METAL_NAMES (the existing 50-element element->word lookup — do NOT duplicate the table) and adds the NH4+ -> ammonium case, which is not a metal. Resolves 169.6-RESEARCH open question 3 (the table EXISTS; import/extend it rather than rebuild).

orthonym.data.cation_words.get_cation_word(frag_mol)#

Return the salt-composition cation word for a counter-cation fragment.

(metals) / (ammonium). Handles:
  • a monatomic metal cation ([Na+], [K+], [Ca+2],…) -> the element word from namer._METAL_NAMES (sodium / potassium / calcium /…);

  • the ammonium cation [NH4+] -> ammonium.

Returns the cation word, or None for a cation that is NOT a simple metal/ammonium counter-cation (an organic cation, a coordination complex, etc.) -> the caller composes it via route_charged / honest-fails .

orthonym.data.cation_words.is_simple_cation(frag_mol)#

True iff frag_mol is a simple metal/ammonium counter-cation that get_cation_word can name scope).