Skip to content

Portmanteau

portmanteau · word · validated

A coinage that carries one word inside another, so that the host stays recognisable while a second word shows through it.

Provenance

  • Source: Lewis Carroll, Through the Looking-Glass (1871)
  • Attribution: reference — attested in a standard reference rather than traced to an origin
  • Checkability: source — decidable against the source text it was made from
  • Attested: codified — formulated as a rule by a tradition rather than declared by an author

Details

  • Kind: both
  • Languages: en, de, fr
  • Requires: tokens, phonemes, lexicon.words
  • Deterministic: yes
  • Also known as: blend, Kofferwort
  • In other languages: Kofferwort (de), Mot-valise (fr)

Notes

This row checks a narrower figure than Carroll's, and is filed as reference/codified rather than primary/author-stated for that reason. Carroll's own portmanteaux are fusions — slithy from lithe and slimy, chortle from chuckle and snort — where neither word survives whole and there is no host left standing. This row checks a splice: one word placed inside another that stays readable behind it, which is what the shopfront tradition actually does. Every one of Carroll's examples fails here with splice_not_present, and a golden case records it rather than leaving a reader to find out. Calling that author-stated would be claiming Carroll stated this rule; he stated a wider one, and ADR 0018 is explicit that using or naming a form is not stating it. The half of the punning shopfront paronomasia cannot reach — Haarmonie, Hairitage, Föhnix — and it needs no phonemes.g2p after all. A blend is never arbitrary: the host and the word spliced into it are both ordinary dictionary words, so the coinage is verified as a derived form rather than pronounced directly, and nothing unknown has to be sounded out. What the row cannot reach is a host the lexicon does not carry, which for these names is usually a proper noun — Barbarella is absent from CMUdict — and the cross-lingual blend, which needs phonemes.bilingual exactly as homophonic_translation does. apply generates by proposing splices and letting check dispose: every way of putting each domain word into the host is proposed, and what survives is ranked closest-sounding first. It needs a vocabulary to splice from — domain names a trade, domain_words supplies the list — and raises InvalidParams naming both rather than inventing one.

Prompt hint

Splice one word into another so that both stay audible and the host is still recognisable.

Parameters

Name Type Default Description
max_distance number 0.7 The furthest the spliced word may sound from the stretch it covers.
max_host_distance number 0.5 How far the coinage may travel from its host in spelling before the host stops being recoverable behind it.
min_distance number 0.0 The closest the spliced word may sound to the stretch it covers.
source string — The text this one was made from.
splice string — The word made visible inside the coinage.
splice_lang — None The language the spliced word belongs to, when it is not the host's. Imagin'hair is English inside French.
unknown_word string undecidable How to read a word absent from the pronouncing dictionary: report it, accept it unchecked, or refuse it.

Examples

hairitage

en — this text satisfies the procedure.

Hairitage

Parameters: source='heritage', splice='hair'

Source: constructed example; hair is HH EH R and heritage opens on the same three phonemes, so the splice is a homophone of the stretch it covers

no-word-showing-through

en — this text does not satisfy the procedure.

Heritage

Parameters: source='heritage', splice='hair'

Source: constructed counterexample; splice_not_present

splice-is-not-a-word

en — this text does not satisfy the procedure.

Hairitage

Parameters: source='heritage', splice='airit'

Source: constructed counterexample; splice_not_a_word. Without this any run of letters could be declared the joke after the fact

host-not-recoverable

en — this text does not satisfy the procedure.

Hairitage

Parameters: source='bicycle', splice='hair'

Source: constructed counterexample; host_unrecoverable

proper-noun-host-is-undecidable

en — this text does not satisfy the procedure.

Barberella

Parameters: source='Barbarella', splice='barber'

Source: constructed counterexample, and the measured limit of the whole approach: Barbarella is not in CMUdict, so the pair cannot be judged and is reported rather than guessed at

haarmonie

de — this text satisfies the procedure.

Haarmonie

Parameters: source='Harmonie', splice='Haar'

Source: constructed example, and the case the equivalence table exists for. Haar is h aː ɐ̯ and Harmonie opens h a ʁ: German vocalises a coda r, so the same segment is spelled two ways. Unfolded the distance is 0.667 and out of band; folded it is 0.333

foehnix

de — this text satisfies the procedure.

Föhnix

Parameters: source='Phönix', splice='Föhn'

Source: constructed example; Föhn and the opening of Phönix are one pronunciation

haarmonie-outside-a-narrow-band

de — this text does not satisfy the procedure.

Haarmonie

Parameters: source='Harmonie', splice='Haar', max_distance=0.3

Source: constructed counterexample; the same pair with the ceiling below 0.333

diminutif

fr — this text satisfies the procedure.

Diminu'tif

Parameters: source='diminutif', splice='tif'

Source: constructed example; the French salon window's own convention. An apostrophe re-segments a real word so a trade fragment surfaces, and -tif is the family the register is full of. paronomasia cannot reach this at all — it displaces whole words — so it is this row that catches the most productive French shape in the tradition

infinitif

fr — this text satisfies the procedure.

Infini'tif

Parameters: source='infinitif', splice='tif'

Source: constructed example; the same family, a second host

cross-lingual-splice-is-not-a-french-word

fr — this text does not satisfy the procedure.

Imagin'hair

Parameters: source='imaginaire', splice='hair'

Source: constructed counterexample, and the limit that is not g2p's fault. Imagin'hair is a real and much-copied salon name, but hair is English inside French: the splice is not a word this lexicon knows, and judging it would need phonemes.bilingual — the capability homophonic_translation is blocked on and no pack provides

carroll-slithy

en — this text does not satisfy the procedure.

slithy

Parameters: source='slimy', splice='lithe'

Source: Lewis Carroll, Through the Looking-Glass (1871), Humpty Dumpty's gloss: slithy is "lithe and slimy ... like a portmanteau — there are two meanings packed up into one word". Rejected: splice_not_present. Carroll's portmanteau is a FUSION, where neither word survives whole and no host is left standing; this row checks a SPLICE, one word placed inside another that stays readable behind it. The row cites him as the ancestor of the family and does not claim to check his rule — see its catalogue notes.

carroll-chortle

en — this text does not satisfy the procedure.

chortle

Parameters: source='chuckle', splice='snort'

Source: Lewis Carroll, Through the Looking-Glass (1871). The same shape and the same rejection, kept because one instance of a limit reads as an accident and two read as a rule.

haarmonie

de — this text satisfies the procedure.

Haarmonie

Parameters: source='Harmonie', splice='Haar'

Source: bedeutungonline.de, "Lustige und kreative Friseurnamen", a list of 300+ German salon names that gives each pun's host in brackets. The best known of them, and the case the German equivalence table exists for.

kammaeleon

de — this text satisfies the procedure.

Kammäleon

Parameters: source='Chamäleon', splice='Kamm'

Source: bedeutungonline.de, "Lustige und kreative Friseurnamen" — listed as "Kammäleon (Chamäleon)".

sahaara

de — this text satisfies the procedure.

SaHaara

Parameters: source='Sahara', splice='Haar'

Source: bedeutungonline.de — listed as "SaHaara (Sahara)". A homophone splice, 0.000.

monhaarlisa

de — this text does not satisfy the procedure.

Monhaarlisa

Parameters: source='Mona Lisa', splice='Haar'

Source: bedeutungonline.de — listed as "Monhaarlisa (Mona Lisa)". Rejected: sound_out_of_band at 1.000. Haar covers the a of Mona and sounds like nothing in it; the joke is carried by the letters and by knowing the painting. This row checks the heard relation, and this is the class of name no phonetic rule reaches — kept as the evidence for that rather than admitted by opening the band until it passes.

international-hairport

en — this text satisfies the procedure.

Hairport

Parameters: source='airport', splice='hair'

Source: Atlas Obscura, "Hair They Are" — International Hairport.

hairaphernalia

en — this text satisfies the procedure.

Hairaphernalia

Parameters: source='paraphernalia', splice='hair'

Source: Atlas Obscura, "Hair They Are" — Hairaphernalia, St. Louis Park, Minnesota.

imaginhair

fr — this text satisfies the procedure.

Imagin'hair

Parameters: source='imaginaire', splice='hair', splice_lang='en'

Source: tif.hair, the INSEE-derived register of punning French salons, which counts roughly 150 salons of this name — the commonest in the whole French register. English inside French, reachable only through the ARPABET-to-IPA bridge of ADR 0043.

atmosphair

fr — this text satisfies the procedure.

Atmosph'air

Parameters: source='atmosphère', splice='air'

Source: tif.hair. The splice here is the FRENCH air, not the English hair: the coinage carries air and the joke is that hair is heard behind it. 0.000.

diminutif

fr — this text satisfies the procedure.

Diminu'tif

Parameters: source='diminutif', splice='tif'

Source: tif.hair, which counts 147 salons in the -tif family. The apostrophe re-segmentation the French register is built on, and a shape paronomasia cannot reach at all.