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.