Click on any symbol to select/deselect; when two
symbols are selected, their differing features are displayed.
Double-click any symbol to move to its row in the table of features and
segments. Symbols that are in the inventory are shown with a border.
Vowels
Front
Near-front
Central
Near-back
Back
Close
i
y
ɨ
ʉ
ɯ
u
Near-Close
ɪ
ʏ
ʊ
Close-mid
e
ø
ɘ
ɵ
ɤ
o
Mid
ə
Open-mid
ɛ
œ
ɞ
ʌ
ɔ
Near-Open
æ
ɶ
Open
a
ɑ
ɒ
Consonants
Bilabial
Labiodental
Dental
Alveolar
Post alveolar
Retroflex
Palatal
Velar
Uvular
Pharyngeal
Glottal
Plosive
p
b
t
d
ʈ
ɖ
c
ɟ
k
g
q
ɢ
ʔ
Implosive
ɓ
ɗ
ʄ
ɠ
ʛ
Nasal
m
ɱ
n
ɳ
ɲ
ŋ
ɴ
Trill
ʙ
r
ʀ
Tap or Flap
ɾ
ɽ
Fricative
ɸ
β
f
v
θ
ð
s
z
ʃ
ʒ
ʂ
ʐ
ç
ʝ
x
ɣ
χ
ʁ
ħ
ʕ
h
ɦ
Lateral fricative
ɬ
ɮ
Approximant
ʋ
ɹ
ɻ
j
ɰ
Lateral approximant
l
ɭ
ʎ
ʟ
Other Symbols
ʍ
Voiceless labial-velar fricative
w
Voiced labial-velar approximant
ɥ
Voiced labial-palatal approximant
ʜ
Voiceless epiglottal fricative
ʢ
Voiced epiglottal fricative
ʡ
Epiglottal plosive
ɕ
Voiceless alveolo-palatal fricative
ʑ
Voiced alveolo-palatal fricative
ɺ
Alveolar lateral flap
ɧ
Simultaneous ʃ and x
ɫ
Simultaneous palatal and
uvular
Affricates
Voiceless
Voiced
ʦ
Alveolar
ʣ
ʧ
Palato-alveolar
ʤ
ʨ
Alveolo-palatal
ʥ
ʈ͡ʂ
Retroflex
ɖ͡ʐ
t͡ɬ
Alveolar-lateral
d͡ɮ
t͡ɬ̠
p͡f
Bilabial-labiodental
b͡v
p͡ɸ
Bilabial-dental
b͡β
t̪͡θ
Dental
d̪͡ð
c͡ç
Palatal
ɉ͡ʝ
k͡x
Velar
g͡ɣ
q͡χ
Uvular
ɢ͡ʁ
Doubly-articulated stops
Voiceless
Voiced
k͡p
Bilabial-velar plosive
g͡b
p͡t
Bilabial-alveolar plosive
b͡d
syllabic
+
–
0
any
consonantal
+
–
0
any
sonorant
+
–
0
any
continuant
+
–
0
any
delayed_release
+
–
0
any
approximant
+
–
0
any
tap
+
–
0
any
trill
+
–
0
any
nasal
+
–
0
any
voice
+
–
0
any
spread_gl
+
–
0
any
constr_gl
+
–
0
any
labial
+
–
0
any
round
+
–
0
any
labiodental
+
–
0
any
coronal
+
–
0
any
anterior
+
–
0
any
distributed
+
–
0
any
strident
+
–
0
any
lateral
+
–
0
any
dorsal
+
–
0
any
high
+
–
0
any
low
+
–
0
any
front
+
–
0
any
back
+
–
0
any
tense
+
–
0
any
Segments and features
Show/hide
Click on rows to see the features in common and not in common.
Segment
syllabic
consonantal
sonorant
continuant
delayed_release
approximant
tap
trill
nasal
voice
spread_gl
constr_gl
labial
round
labiodental
coronal
anterior
distributed
strident
lateral
dorsal
high
low
front
back
tense
a
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
+
-
-
0
b
-
+
-
-
-
-
-
-
-
+
-
-
+
-
-
-
0
0
0
-
-
0
0
0
0
0
b͡d
-
+
-
-
-
-
-
-
-
+
-
-
+
-
-
+
+
-
-
-
-
0
0
0
0
0
b͡v
-
+
-
-
+
-
-
-
-
+
-
-
+
-
+
-
0
0
0
-
-
0
0
0
0
0
b͡β
-
+
-
-
+
-
-
-
-
+
-
-
+
-
-
-
0
0
0
-
-
0
0
0
0
0
c
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
+
-
0
ç
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
+
-
0
c͡ç
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
+
-
0
d
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
-
-
-
-
0
0
0
0
0
d̪͡ð
-
+
-
-
+
-
-
-
-
+
-
-
-
-
-
+
+
+
-
-
-
0
0
0
0
0
d͡ɮ
-
+
-
-
+
-
-
-
-
+
-
-
-
-
-
+
+
-
-
+
-
0
0
0
0
0
e
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
+
-
+
f
-
+
-
+
+
-
-
-
-
-
-
-
+
-
+
-
0
0
0
-
-
0
0
0
0
0
g
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
+
-
0
0
0
g͡b
-
+
-
-
-
-
-
-
-
+
-
-
+
-
-
-
0
0
0
-
+
+
-
0
0
0
g͡ɣ
-
+
-
-
+
-
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
+
-
0
0
0
h
-
-
-
+
+
-
-
-
-
-
+
-
-
-
-
-
0
0
0
-
-
0
0
0
0
0
i
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
+
-
+
-
+
j
-
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
+
-
+
-
+
k
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0
0
0
-
+
+
-
0
0
0
k͡p
-
+
-
-
-
-
-
-
-
-
-
-
+
-
-
-
0
0
0
-
+
+
-
0
0
0
k͡x
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
0
0
0
-
+
+
-
0
0
0
l
-
+
+
+
0
+
-
-
-
+
-
-
-
-
-
+
+
-
-
+
-
0
0
0
0
0
m
-
+
+
-
0
-
-
-
+
+
-
-
+
-
-
-
0
0
0
-
-
0
0
0
0
0
n
-
+
+
-
0
-
-
-
+
+
-
-
-
-
-
+
+
-
-
-
-
0
0
0
0
0
o
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
-
-
-
+
+
p
-
+
-
-
-
-
-
-
-
-
-
-
+
-
-
-
0
0
0
-
-
0
0
0
0
0
p͡f
-
+
-
-
+
-
-
-
-
-
-
-
+
-
+
-
0
0
0
-
-
0
0
0
0
0
p͡t
-
+
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
-
-
-
0
0
0
0
0
p͡ɸ
-
+
-
-
+
-
-
-
-
-
-
-
+
-
-
-
0
0
0
-
-
0
0
0
0
0
q
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
0
q͡χ
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
0
r
-
+
+
+
0
+
-
+
-
+
-
-
-
-
-
+
+
-
-
-
-
0
0
0
0
0
s
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
0
0
0
0
0
t
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
0
0
0
0
0
t̪͡θ
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
0
0
0
0
0
t͡ɬ
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
-
0
0
0
0
0
t͡ɬ̠
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
0
0
0
0
0
u
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
+
-
-
+
+
v
-
+
-
+
+
-
-
-
-
+
-
-
+
-
+
-
0
0
0
-
-
0
0
0
0
0
w
-
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
+
-
-
+
+
x
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
0
0
0
-
+
+
-
0
0
0
y
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
+
-
+
-
+
z
-
+
-
+
+
-
-
-
-
+
-
-
-
-
-
+
+
-
+
-
-
0
0
0
0
0
æ
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
+
+
-
0
ð
-
+
-
+
+
-
-
-
-
+
-
-
-
-
-
+
+
+
-
-
-
0
0
0
0
0
ø
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
-
-
+
-
+
ħ
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
0
0
0
-
+
-
+
-
+
0
ŋ
-
+
+
-
0
-
-
-
+
+
-
-
-
-
-
-
0
0
0
-
+
+
-
0
0
0
œ
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
-
-
+
-
-
ɉ͡ʝ
-
+
-
-
+
-
-
-
-
+
-
-
-
-
-
+
-
+
-
-
+
+
-
+
-
0
ɑ
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
+
-
+
0
ɒ
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
-
+
-
+
0
ɓ
-
+
-
-
-
-
-
-
-
+
-
+
+
-
-
-
0
0
0
-
-
0
0
0
0
0
ɔ
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
-
-
-
+
-
ɕ
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
-
+
-
0
ɖ
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
0
0
0
0
0
ɖ͡ʐ
-
+
-
-
+
-
-
-
-
+
-
-
-
-
-
+
-
-
+
-
-
0
0
0
0
0
ɗ
-
+
-
-
-
-
-
-
-
+
-
+
-
-
-
+
+
-
-
-
-
0
0
0
0
0
ɘ
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
-
-
+
ə
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
-
-
-
ɛ
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
+
-
-
ɞ
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
-
-
-
-
-
ɟ
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
+
-
+
-
-
+
+
-
+
-
0
ɠ
-
+
-
-
-
-
-
-
-
+
-
+
-
-
-
-
0
0
0
-
+
+
-
0
0
0
ɢ
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
0
ɢ͡ʁ
-
+
-
-
+
-
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
0
ɣ
-
+
-
+
+
-
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
+
-
0
0
0
ɤ
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
+
ɥ
-
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
+
-
+
-
+
ɦ
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
-
0
0
0
-
-
0
0
0
0
0
ɧ
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
-
+
+
-
+
+
-
0
0
0
ɨ
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
+
-
-
-
+
ɪ
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
+
-
+
-
-
ɫ
-
+
+
+
0
+
-
-
-
+
-
-
-
-
-
+
+
-
-
+
+
-
-
-
+
0
ɬ
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
-
0
0
0
0
0
ɭ
-
+
+
+
0
+
-
-
-
+
-
-
-
-
-
+
-
-
-
+
-
0
0
0
0
0
ɮ
-
+
-
+
+
-
-
-
-
+
-
-
-
-
-
+
+
-
-
+
-
0
0
0
0
0
ɯ
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
+
-
-
+
+
ɰ
-
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
+
-
0
0
+
ɱ
-
+
+
-
0
-
-
-
+
+
-
-
+
-
+
-
0
0
0
-
-
0
0
0
0
0
ɲ
-
+
+
-
0
-
-
-
+
+
-
-
-
-
-
+
-
+
-
-
+
+
-
+
-
0
ɳ
-
+
+
-
0
-
-
-
+
+
-
-
-
-
-
+
-
-
-
-
-
0
0
0
0
0
ɴ
-
+
+
-
0
-
-
-
+
+
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
0
ɵ
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
-
-
-
-
+
ɶ
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
-
+
+
-
0
ɸ
-
+
-
+
+
-
-
-
-
-
-
-
+
-
-
-
0
0
0
-
-
0
0
0
0
0
ɹ
-
-
+
+
0
+
-
-
-
+
-
-
-
-
-
+
-
+
-
-
-
0
0
0
0
0
ɺ
-
+
+
+
0
+
+
-
-
+
-
-
-
-
-
+
+
-
-
+
-
0
0
0
0
0
ɻ
-
+
+
+
0
+
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
0
0
0
0
0
ɽ
-
+
+
+
0
+
+
-
-
+
-
-
-
-
-
+
-
-
-
-
-
0
0
0
0
0
ɾ
-
+
+
+
0
+
+
-
-
+
-
-
-
-
-
+
+
-
-
-
-
0
0
0
0
0
ʀ
-
+
+
+
0
+
-
+
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
0
ʁ
-
+
-
+
+
-
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
0
ʂ
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
-
-
+
-
-
0
0
0
0
0
ʃ
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
-
+
+
-
-
0
0
0
0
0
ʄ
-
+
-
-
-
-
-
-
-
+
-
+
-
-
-
+
-
+
-
-
+
+
-
+
-
0
ʈ
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
0
0
0
0
0
ʈ͡ʂ
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
-
-
+
-
-
0
0
0
0
0
ʉ
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
+
-
-
-
+
ʊ
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
+
-
-
+
-
ʋ
-
-
+
+
0
+
-
-
-
+
-
-
+
-
+
-
0
0
0
-
-
0
0
0
0
0
ʌ
+
-
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
-
ʍ
-
-
-
+
+
-
-
-
-
-
+
-
+
+
-
-
0
0
0
-
+
+
-
-
+
+
ʎ
-
+
+
+
0
+
-
-
-
+
-
-
-
-
-
+
-
+
-
+
+
+
-
+
-
0
ʏ
+
-
+
+
0
+
-
-
-
+
-
-
+
+
-
-
0
0
0
-
+
+
-
+
-
-
ʐ
-
+
-
+
+
-
-
-
-
+
-
-
-
-
-
+
-
-
+
-
-
0
0
0
0
0
ʑ
-
+
-
+
+
-
-
-
-
+
-
-
-
-
-
+
+
+
+
-
+
+
-
+
-
0
ʒ
-
+
-
+
+
-
-
-
-
+
-
-
-
-
-
+
-
+
+
-
-
0
0
0
0
0
ʔ
-
+
-
-
-
-
-
-
-
-
-
+
-
-
-
-
0
0
0
-
-
0
0
0
0
0
ʕ
-
+
-
+
-
-
-
-
-
+
-
-
-
-
-
-
0
0
0
-
+
-
+
-
+
0
ʙ
-
+
+
+
0
+
-
+
-
+
-
-
+
-
-
-
0
0
0
-
-
0
0
0
0
0
ʛ
-
+
-
-
-
-
-
-
-
+
-
+
-
-
-
-
0
0
0
-
+
-
-
-
+
0
ʝ
-
+
-
+
+
-
-
-
-
+
-
-
-
-
-
+
-
+
-
-
+
+
-
+
-
0
ʟ
-
+
+
+
0
+
-
-
-
+
-
-
-
-
-
-
0
0
0
+
+
+
-
0
0
0
ʣ
-
+
-
-
+
-
-
-
-
+
-
-
-
-
-
+
+
-
+
-
-
0
0
0
0
0
ʤ
-
+
-
-
+
-
-
-
-
+
-
-
-
-
-
+
-
+
+
-
-
0
0
0
0
0
ʥ
-
+
-
-
+
-
-
-
-
+
-
-
-
-
-
+
+
+
+
-
+
+
-
+
-
0
ʦ
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
0
0
0
0
0
ʧ
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
-
+
+
-
-
0
0
0
0
0
ʨ
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
-
+
-
0
β
-
+
-
+
+
-
-
-
-
+
-
-
+
-
-
-
0
0
0
-
-
0
0
0
0
0
θ
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
0
0
0
0
0
χ
-
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
0
0
0
-
+
-
-
-
+
0
Instructions
show/hide
A fuller explanation of the Phonomaton's features is
here.
Enter phonological rules and underlying representations, then click Submit.
If you wish, you can include morphological rules.
Comments
The symbol % and anything following it to the
end of the line.
Metadata
The Metadata region has fields for
Language
Date (format: yyyy-mm-dd)
Family
Code (Glottocode)
Sources (format: Author (year))
Implementation (name of person)
Details (language phenomena depicted)
Complexity (integer, 0 .. 5)
Preamble
Place preamble rules at the start of the Phonological Rules
section. All preamble rules are optional.
Phonemic inventory
A line starting Inventory: and continuing
with a space-separated list of IPA symbols (with diacritics, if
needed) constituting the phonemic inventory.
If the rules only use IPA symbols without diacritics, this specification
is not necessary.
If any segments need diacritics, then this line is
required and must include all segments, including standard IPA symbols,
along with any diacritics, such as
Inventory: a á ã b t x.
Also include in the inventory any unusual punctuation symbols that you
use, such as ✥.
The shorthand <all> introduces
all IPA symbols without diacritics. So one can write
Inventory: <all> á ã.
You may use a shorthand to add diacritics that are associated
with features to a set of IPA symbols.
It has this form:
<a,i,u,ɪ><tone_high,long;tone_low>
The available features include secondary articulations, such as velar.
Spaces are not allowed in this shorthand. All the IPA symbols in the
first delimited section (here a,i,u,ɪ) are
entered into the inventory along with all 3 combinations of
tone_high and long, and then entered with tone_low, resulting in
a á aː áː i í iː íː u ú uː úː ɪ ɪ́ ɪː ɪ́ː à ì ù ɪ̀
.
Custom phonemes
A line starting Define: and continuing
with a space-separated list of capital letters (not including the
special letters XVCSU)
with possible feature modifications.
A custom phoneme
may be followed by a set of features enclosed in square brackets, such
as A[+syllabic,+low].
Any omitted feature is treated as underspecified
(equivalent to polarity ⊗ (\u2297)).
As a convenience, you can copy a set of features to the clipboard by
clicking on a symbol in the
IPA chart and then clicking
on the features that are displayed.
A custom phoneme may be given the features of an existing
phoneme, with some modified features, such as
as A=a[+tense,⊗tone_low].
A custom phoneme with no feature modifications acquires polarity
⊗ for all features.
You may not define a custom phoneme that has already appeared in the
inventory specification.
Redefined phonemes
A line starting Redefine: and continuing
with an IPA symbol (plus any diacritics) representing a segment and then
a set of features with polarities enclosed in square brackets causes
this segment to acquire the specified features. Any features not
mentioned retain their default polarities. For example, Redefine: ɲ[+tense] changes the polarity of
one feature of the segment ɲ.
Disallowed patterns
A line starting Disallow: and continuing
with space-separated patterns causes any rule that would result in one
of those patterns to fail to apply, even if the fault lies in the
current representation, before the rule is applied. The patterns have
the same syntax as the TARGET described below.
Deleted features
A line starting Delete: and continuing
with a set of features (without polarity) enclosed in square brackets
removes those features from consideration.
Geometric features
A line of the form
Geometry: NAME = gfeature ...
defines a new name as a shorthand for the given set of geometric
features. Geometric features can be ordinary features, like labial, geometric features from
previous Geometry definitions, or predefined
geometric features. The predefined geometric features are:
name
feature set
cor
coronal anterior distributed strident
dor
dorsal high low front back tense
lab
labial labiodental round
place
cor dor lab
lar
constr_gl spread_gl voice
We show below how to use geometric features in rules.
Phonological rules
Rules are of the form
RULENAME: TARGET ARROW CHANGE / ENVIRONMENT // OPTIONS .
The Phonomaton executes rules in order, first on the underlying
representation, and then on the results of previous rules (the "current
representation"). Except as noted below, a rule that can target several
places in the current representation applies longest-match (including
the environment) first, left-to-right.
The ENVIRONMENT section is optional; if it is
omitted, so is the / that introduces it.
If present, it must have a single underscore
(_), preceded optionally by a PREVIOUS CONTEXT and
followed optionally by a SUBSEQUENT CONTEXT.
The TARGET and CONTEXT
parts may be multiple "characters", where a
"character" may be
a segment, represented by an IPA symbol (see
table),
optionally followed by one or more diacritics, which can also
be entered via the
keyboards. These are the diacritics:
[+nasal] (nasalized): ̃ (\u0303)
[+syllabic] (syllabic): ̩ (\u0329)
[-voice] (voiceless): ̥ (\u0325)
[+constr_gl] (creaky-voiced):
for vowels, ̰
(\u0330);
for consonants,
ʼ (\u02bc)
[+spread_gl] (breathy-voiced):
for vowels, ̤ (\u0324);
for consonants, ʰ
(\u02b0)
[+distributed]: ̪
(\u032a)
[+front]:
̟ (\u031f)
[+back]:
̠ (\u0320)
[+round]:
ʷ (\u02b7)
and at most one of these mutually exclusive tone marks:
[+tone_top]:
̋ (\u030b)
[+tone_high]:
́ (\u0301)
[+tone_mid]:
̄ (\u0304)
[+tone_low]:
̀ (\u0300)
[+tone_bottom]:
̏ (\u030f)
[+tone_rising]:
̌ (\u030c)
[+tone_falling]:
̂ (\u0302)
[+tone_highRising]:
᷄ (\u1dc4)
[+tone_lowRising]:
᷅ (\u1dc5)
[+tone_highFalling]:
᷇ (\u1dc7)
[+tone_lowFalling]:
᷆ (\u1dc6)
[+tone_peaking]:
᷈ (\u1dc8)
[+tone_dipping]:
᷉ (\u1dc9)
and at most one of these mutually exclusive secondary articulations:
labial ([+labial, +round]):
ʷ (\u02b7)
palatal ([+dorsal, +high, +front]): ʲ (\u02b2)
velar ([+dorsal, +high, +back]): ˠ (\u02e0)
pharyngeal ([+dorsal, +low, +back]): ˤ (\u02e4)
and/or this suprasegmental:
[+long] (long): ː
(\u02d0)
a bracketed, comma-separated list of FEATURES with polarity in brackets.
Available polarities are
+,
-,
0,
α,
-α,
γ,
-γ,
δ,
-δ, and
∀.
The available FEATURES are listed in the table, along with tone marks and
suprasegmentals.
Example: [-syllabic, -long, αtone_top].
The polarity ⊗ (\u2297) in a component of
TARGET or ENVIRONMENT means "must match exactly
⊗", which only applies to underspecified segments, which
are only introduced as custom phonemes.
The polarity
α, γ, or δ introduces a variable, whose value is either
+ or - for the scope of the rule; the corresponding negative
polarity, such as -α, is then either -
or +.
The polarity ∀ (\u2200) may only
appear in the CHANGE and ENVIRONMENT of a rule. It must apply to a
geometric feature (see above). In the ENVIRONMENT it collects the polarities of all
the features that underly the geometric feature. In the
CHANGE it asserts all those
polarities. For example,
V → [∀place] / _[∀place,+syllabic] causes
vowels to assimilate in place of articulation with an
immediately following vowel.
the shorthands V for "vowel", C for "consonant"
X for "any consonant or vowel",
S for "white space", and
U for "subscript" (inserted for
autosegmental phonology by an Associate rule).
any defined custom phoneme.
null, which can be written as ∅
(\u2205),
Ø (\u00d8),
0, or
␀ (\u2400),
a Perl regex combining the items above. Use ^ to mark the start of the word and
$ to mark the end of the word.
Other Perl regex metacharacters, such as
* and {,
are also acceptable.
The symbol #, which marks the start
of a line, the end of a line, the start or end of a fragment
terminated by a space or punctuation.
The symbols < and >, which mark the start (respectively, end) of
a line or a space-terminated word.
Punctuation symbols
=
enclitic
\u21d2
⇒
proclitic
\u2011
‑
affix symbol (not a minus sign)
\u02c8
ˈ
stress
\u27e8
⟨
left infix boundary
\u27e9
⟩
right infix boundary
\u2263
≣
juncture
\u276c
❬
left phrase boundary
\u276d
❭
right phrase boundary
~
reduplicant boundary
IPA marks for stress: ˈ \u(
02c8) and ˌ (\u02cc).
Ellipsis: A form like ❬...❭ is a shorthand for ❬[^❭]*?❭, and
❬...abc❭ is shorthand for ❬[^❭]*?a[^❭]*?b[^❭]*?c[^❭]*?❭. The
brackets can be any pair of bracketing punctuation, particularly
❬❭ and ⟨⟩ . However, the brackets may
not be ordinary parentheses '()' or brackets '{}'.
First occurrence: within TARGET or
SUBSEQUENT CONTEXT: using
ᶠ (\u1da0).
ᶠ(PATTERN1&PATTERN2)
advances to the first segment that matches PATTERN1 but fails if there is no such
segment. It then succeeds only if that segment also matches
PATTERN2. The outer parentheses are
required.
ᶠPATTERN advances just past the
first segment that matches PATTERN
but fails if there is no such segment. PATTERN must be surrounded by ordinary
parentheses or brackets; abbreviations like C and V include
implicit parentheses.
ARROW may be written as
->,
=>, or
→ (\u2192).
CHANGE may be
null, as above
multiple Unicode characters (the character ␣ (\u2423) stands for a space character).
a set of features to apply to the TARGET
(which must be a single
segment). The feature set may use these polarities:
Positive and negative, which indicate a requirement.
±, which means "any polarity of
this feature is acceptable, but only if necessary to find an
acceptable segment in the inventory."
Variable polarities α, γ, and
δ and their negations
⊕ and ⊖, which indicate a preference to
change polarity to + or - if the result is in the inventory.
Within TARGET, a segment or a feature set
may be followed by
any of ¹ ² ³ ⁴ (these are superscript
numerals: \u00b9, \u00b2, \u00b3, and \u2074, respectively) to label
that segment or feature set.
CHANGE may then use any of those labels to refer
to the matched segment.
The OPTIONS section is optional; if it
is omitted, so is the // that
introduces it. If present, it may have one or more of the following
options, separated by spaces.
iterate:
The rule applies repeatedly until it makes no further changes.
once:
The rule applies only once in the current representation, even if it
could apply in multiple places.
exclusive:
The rule applies in all places in the usual order, but later
applications are suppressed if they occur within the region matched
by an earlier application.
For example, the rule intervocalic lenition:
[-continuant,-nasal] → [+continuant,±delayed_release,±distributed] /
V_V // once modifies the left-most non-nasal consonant that is
surrounded by vowels into a continuant version of that consonant,
ignoring the features delayed_release and distributed.
Underlying representations
Place in this section individual words or phrases. You can use the
keyboard to assist with Unicode symbols. Every line is considered a
separate underlying representation; it may include spaces. If a line
contains // followed by more content, the
additional content specifies the expected surface form (if no affix is
applied). The expected surface form is then placed in the results
section, either as agreement or disagrement to indicate whether it conforms to
expectations.
Morphological rules
The phonological rules treat affixed forms, which are the results of
applying morphological rules to underlying representations. So if there
are 4 underlying representations and 3 morphological rules, there are 12
underlying forms for the phonological rules to treat.
If there are morphological rules, the underlying representations are
treated as "stems". The phonological rules also apply to the stems
unless the line
ExcludeStem is present in the morphological
rules.
If there are no morphological rules, the underlying representations are
used directly.
The morphological rules follow the same syntax as phonological rules.
Autosegmental phonology
Tiers: The tier names are «seg» , «tone» , and
«morph»
Underlying representation
A line of the underlying representation may
include multiple tiers; the tier names precede the contents. Sample:
«seg» gaga da bala ma «tone» HL N LH HL
If there are multiple tiers, each must contain the same number of
(space-separated) words.
The «seg» tier is the default; if no
tier is mentioned in a rule, the rule applies to «seg».
The «tone» tier may include any of
THMLBthmlbN, refering to top, high, medium,
low, and bottom, then their floating versions, then "no assigned
tone", as well as spaces separating the tones for each word.
The «morph» tier is intended to contain
morphosyntactic feature sets that guide rules in the other tiers.
Phonological rules
A rule may apply to a single tier or multiple tiers.
If it applies to multiple tiers, it only takes effect if it triggers on
all the tiers. Sample:
deduplicate: «seg» V¹ → ∅ / ¹_ «tone» H → N / _
*H
Special autosegmental rules. These rules take parameters, all
of which which have default values as shown, except as indicated below.
Associate: --tiers=tone-seg --dir=L-R
--features=[+syllabic] --endpoint=# --max=3
This rule indicates which tiers to associate, the direction of
association within a chunk (either L-R or R-L),
to which segments in tier2 to
associate, how to separate the chunks, and
how many elements of tier1 at most to associate with a segment
in tier2.
The result of each association is shown by a subscript linking an
element of tier1 with an element of tier2.
The special tone value N always
associates with subscript 0.
Reassociate: --tiers=tone-seg --dir=L-R
--features=[+syllabic] --endpoint=# --max=1
This rule moves associations that no longer apply to later (if
L-R) or
earlier (if R-L) segments. An
association no longer applies if a rule has
changed its segment so it no longer satisfies the features
parameter.
Spread: --tier=seg --dir=L-R
--endpoint=#
This rule spreads associations in the given tier
in the given direction, with a separator betwen chunks.
Join: --tiers=tone-seg
This rule places information from the first tier into the second
tier, leaving just one tier, called «tone-seg» (for the default
tiers). The purpose is for phonological rules that refer to both
tiers simultaneously.
Split:
This rule undoes the effect of the Join: command, creating the original two
tiers, as far as possible.
Realize: --tiers=tone-seg
--null=tone_low
There is no default for the null parameter.
This rule uses tier1 (typically «tone») to realize the associated
values in tier2 (typically «seg»).
Unassociated segments acquire the default value.
Morphological rules: These rules can also apply to multiple tiers.
If a rule has multiple tiers, and any of the per-tier rules fails because
its TARGET is not found with the given
ENVIRONMENT, then none of the per-tier rules is
executed, even though on their own they might be effective.
Disjunctive rules
Within a tier, a rule can be conditioned on the current form satisfying
a pattern. The format is
IFpatternTHENrule 1ELSErule 2.
The ELSE part is optional; if it is omitted
and pattern fails, the rule does not trigger.
rule 2 may itself be a disjunctive rule.
However, rule 1 must not be disjunctive.
The pattern follows the same syntax as
TARGET.
The rule
components have the usual components:
TARGET ARROW CHANGE / ENVIRONMENT // OPTIONS.
If the pattern matches the current form,
then rule 1 is executed; otherwise,
rule 2 is executed.
The chosen rule might have no effect, just like any ordinary rule,
because its TARGET is not found with the given
ENVIRONMENT.
A similar syntax is
UNLESSpatternDOrule.
The rule triggers only if the pattern fails.
Although disjunctive rules are mostly intended for morphological
rules, they are also valid for phonological rules.
Credits
Design and implementation:
Raphael Finkel (University of Kentucky), Daniel Kaufman (Queens College,
Endangered Language Alliance).
The IPA charts are based on these.
The table of segments and features is based on
Bruce Hayes, 2009, Introductory Phonology, Hoboken, NJ:
Wiley-Blackwell, ISBN: 1405184116, ISBN13: 9781405184113.
The IPA reader is by Katie Linero.
Version 3.06
show/hide
3.06
Advice about missing inventory.
UNLESS-DO conditionals.
3.05
Pop-out results window.
3.04
Full IF-THEN-ELSE syntax.
3.03
Log of requests.
3.02
Define and
Redefine rules implicitly apply all
implications of the given features.
Define rules of the form
A=a[+tense].
3.01
The inventory must show all unusual punctuation marks and all segments
that have diacritics.
2.22
"Upto" syntax with ᶠ.
Button to fill in expected results.
Spectrogram.
AJAX.
2.21
Join and Split
rules.
2.20
Ellipsis.
2.19
Metadata: Date and Complexity fields.
Disjunctive morphological rules.
<<morph>> tier.
2.18
Facility to include expected results in the underlying representations.
Metadata are now visible and editable.
2.17
Geometry rules.
2.16
Disallow rules.
2.15
Explicit rule options: exclusive,
once, and
iterate.
2.14
Order of rule application changed to longest-match first (Paṇini's
Principle).
2.13
Delete rule.
2.12
Modified meaning of ± to mean "change if
necessary". Introduced ⊕ and ⊖ to mean "change if the result is in the
inventory". Introduced ⊗ in target
to mean "underspecified".
2.11
LaTeX output of results. Redefine rule.
2.10
Improved syntax for autosegmental phonology. New < and >
environment patterns.
2.09
Autosegmental phonology.
2.08
Secondary articulations. Download and upload of theories.
2.07
Morphological rules.
2.06
Alpha rules, implemented by complete substitution generating multiple
rules.
2.05
[-sonorant] now licenses delayed_release.
Major revision to applyRule() to detect then later apply changes.
2.04
Define, including phonemes with
underspecified features, and ability to match underspecified features.
2.03
Bug fixes for keyboards and distinguishing features.
2.02
Keyboards for the rules and the underlying representations.
2.01
The user can now toggle the display of the features table.
Clicking a column of the features table no longer has an effect.