tlhIngan-Hol Archive: Wed Feb 27 21:30:24 2002

Back to archive top level

To this year's listing



[Date Prev][Date Next][Thread Prev][Thread Next]

Klingon phonotaxis



Has much work been done on finding interesting patterns in Klingon
phonotaxis?

I threw together a program to see what constraints exist (scanning over
a lexicon file I got off the Net). The results are very preliminary, but
I found these patterns:

* There are no Iy', Iw', or ew' syllables.
* There are no syllables ending in C', where C is any consonant but w
and y.
* MOST syllables are CVC. However, there are some clearly CV syllables
in many words listed below. Many are clearly proper names or words with
otherwise marginal status in the language, but some, like <je>, <'a>,
<ro>, <gho>, <da>, <DI> and <qIvon> are clearly core vocabulary.


I think the simplest explanation of the latter is that at a rather
earlier stage of the language, all syllables were CVC; but some
syllables ended in a phoneme that was (later) deleted. Past experience
with the Earth languages suggests that the phoneme that was most likely
lost was an interdental fricative: /th/ or /dh/ (as in bath or bathe). I
speculate therefore that <je>, <'a>, <ro>, <gho>, <da>, <DI>, and
<qIvon> were regular CVC syllables: *<jeth>, *<'ath>, *<roth>, *<ghoth>,
*<dath>, *<DIth>, and *<qIthvon>. (Or possibly with *-dh instead of
the *-th).

Current words not meeting the CVC pattern:

baQa'=excl$(curse)
bIreqtal=n$Brek'tal ritual
bIreQtagh=n$bregit lung
cha=n$torpedoes
chuQun=n$nobility
Da=v$behave as
DenIb=n$Denebia
DenIbngan=n$Denebian
DenIb Qatlh=n$Denebian slime devil
DI=n$litter, rubble, debris
DIvI'may'Duj=n$Federation battle cruiser
DIvI'=n$federation, organization, association, league, union
Do=n$velocity
Duran lung DIr=n$Durani lizard skins (food, never uses plural suffix)
DuSaQ=n$school
ghIlab ghew=n$glob fly
ghIlaSnoS=n$Glasnost - ancient political movement
ghobe'=excl$no (answer to a question)
gho=n$circle
gho'Do=n$sublight speed
ghu=n$baby
ghuy'cha=excl$*@&% (curse)
HaSta=n$visual display
Ha'DIbaH=n$meat, animal
HeDon=n$parallel course
He=n$course, route
HIDjolev=n$menu
HIja'=excl$yes, true (answer to yes/no question)
Human=n$human
Hu=n$zoo
jabbI'ID=n$data transmission
je=adv$also
je=conj$also, and (joining nouns)
jo=n$resources
lIghon DuQwI' pogh=n$Ligonian Spike Glove
lolSeHcha=n$attitude-control thruster
lulIgh=n$refuge
moHaq=n$prefix
mojaq=n$suffix
moQbara'=n$a type of martial art
mughato'=n$mugato
naDev=n$here, hereabouts
nalqad=n$mate challenge
nIteb=adv$alone, acting alone
nughI'=v$give (someone) a noogie
nural=n$Neural
nuralngan=n$Neuralese
oy=ns1$endearment
peghmey vItlhegh=n$secrecy proverb
petaQ=excl$(epithetical curse)
pIqaD=n$Klingon writing system
po=n$morning
qama'=n$prisoner
qelI'qam=n$kellicam
qevaS=n$kevas
qIvon=n$an unspecified body part
QI'tomer=n$Khitomer
QonoS=n$journal, log
reghuluS=n$Regulus
reghuluSngan=n$Regulan
romuluS=n$Romulus
romuluSngan=n$Romulan
ro=n$trunk (of body)
SanID=nums$thousand
SIbI'=adv$immediately
ta=n$record
tera'=n$Earth
tera'ngan=n$Terran, Earther
tI=n$vegetation
toDuj=n$courage, bravery
tu'HomI'raH=n$T'oohomIrah, something useless
tlhIngan=n$Klingon
va=excl$#'@! (curse)
verengan Ha'DIbaH=n$Ferengi dog - a classic insult
verengan=n$Ferengi
vIno'va' qurgh=n$finova bean(s)
vulqangan=n$Vulcan (person)
wanI'=n$phenomenon, event, occurrence
ya=n$tactical officer
yIrIDngan=n$Yridian
yuQjIjDIvI'=n$United Federation of Planets
yu'egh=n$wave
'a=conj$but, nevertheless, even so, however
'elaS=n$Elas
'orghengan=n$Organian


And the Perl program I used to generate that list:

use strict;
open(IN, "<mutay.txt") or die $!;
  # data file from http://chrisp.de/files/mutay.txt
$/ = "\cj";
my($count, $coverage, @oddities);
while(<IN>) {
  chomp;
  next unless m/^([^\#=][^=]*)=([^\$]+)/s;
  my($k, $type) = ($1, $2);
  next if $type eq 'vp' or $type eq 'name';
  
  ++$count; ++$coverage;
  --$coverage, push @oddities, "$_\n"
   unless $k =~ m/
     ^
       ( # syllable:
         ( # onset C
          y | w | S | q | Q | tlh |
          t | D | ng | gh | ch | n | m | H |
          b | p | ' | j | l | v | r
         )
         
         ( # vowel
          a | e | I | o | u
         )
         
         ( # coda
          b | p | ' | j | l | v | gh | q | Q | D |
          H | m | t | S | n | ch | ng | rgh | tlh | r |
          y' | y | w | w'
         )
         \s*
       )+
     $
   /xs
}
print "\nCount $count;  coverage $coverage\n";
use Sort::ArbBiLex ksort =>
 q{ a b ch D e f gh H I j l m n ng o p q Q r S t tlh u v w y ' };
print "Exceptions:\n", ksort @oddities;
__END__

--
Sean M. Burke    [email protected]    http://www.spinn.net/~sburke/



Back to archive top level