The Sound Changes section allows both Phonological Rule Notation (PRN) and RegEx notation, which are quite different from each other.
PRN was invented by linguists to describe sound changes. It is the notation that looks like m > n / _i, where
- > means “changes to”
- / means “in the environment of”
- _ denotes where the m would be
Thus, m > n / _i means m changes to n before any i. One big advantage of this system is the syntax for doing “in the environment of” is very simple compared to RegEx.
RegEx, on the other hand, was invented by computer programmers for general pattern finding in text, and has nothing specifically to do with linguistics. It is, however, significantly better standardized and bug tested. One problem with PRN it is not officially standardized, and there are occasionally small inconsistencies in the way linguists transcribe some rules. (In fact, doesn't even have an official name; "Phonological Rule Notation" is something we have coined just for this article.)
For this reason, RegEx is the only option for Spelling rules and Illegal combination rules. See full guide to RegEx here. The Sound Changes section uses PRN by default. If you need to use RegEx, write "re " before the rule, eg: re m(?=V) > n
In plain English | Phonological notation | RegEx |
---|---|---|
m changes to n in all environments | m > n | m > n |
m changes to n at the beginning of a word | m > n / #_ | ^m > n |
m changes to n at the end of a word | m > n / _# | m$ > n |
m changes to n before e | m > n / _e | m(?=e) > n |
m changes to n after e | m > n / e_ | (?<=e)m > n |
m or ŋ changes to n before e | {m,ŋ} > n / _e | [mŋ](?=e) > n |
all consonants change to n before e | C > n / _e | [bdfghjklmnŋpɹstvwzʃʒʧʤθð](?=e) > n |
all consonants change to stops before e | C > [+stop] / _e | Requires individual rules for each consonant |
m changes to n before any vowel | m > n / _V | m(?=[aeiou]) > n |
delete m before e | m > Ø / _e | m(?=e) > |
m, optionally followed by s, changes to n before e | m(s) > n / _e | ms?(?=e) > n |
m changes to n before another syllable | m > n / _σ | Requires a complex definition of what a syllable is |
m changes to n before syllable boundary* | m > n / _% | Requires a complex definition of what the syllable boundary is |
m changes to n everywhere except before e** | m > n / !_e | m(?!e) > n |
m changes to n everywhere except after e | m > n / !e_ | (?<!e)m > n |
* % differs from σ in that % includes word boundaries, where as σ doesn't.
** Exception rules can also be added to the end of a normal rule, eg: m > n / _e !s_ means m changes n before e, except after s.
Other shorthand symbols
These shorthand symbols work in phonological rules, and anywhere RegEx can be used. However, be aware they are NOT a part of standard RegEx, and some bugs may arise using them in more complex rules.
Shorthand code | Category |
---|---|
A or C[+affricate] | Affricates |
B or V[+back] | Back vowels |
C | Consonants |
C[+voice] | Voiced consonants |
C[-voice] | Voiceless consonant |
C[+alveolar] | Alveolar consonants |
C[+alveolo-palatal] | Alveolo-palatal consonants |
C[+bilabial] | Bilabial consonants |
C[+dental] | Dental consonants |
C[+flap] | Flap/tap consonants |
C[+glottal] | Glottal consonants |
C[+labiodental] | Labiodental consonants |
C[+post-alveolar] | Post-alveolar consonants |
C[+retroflex] | Retroflex consonants |
C[+palatal] | Palatal consonants |
C[+pharyngeal] | Pharyngeal consonants |
C[+trill] | Trill consonants |
D | Any IPA letter (does not match diacritics) |
ᴰ (superscript D) | Any diacritic symbol |
E or V[+front] | Front vowels | F or C[+fricative] | Fricatives |
H or C[+laryngeal] | Laryngeals |
K or C[+velar] | Velars |
L or C[+liquid] | Liquids |
M | Diphthongs | N or C[+nasal] | Nasal consonants | O | Obstruent | P or C[+labial] | Labials |
Q or C[+uvular] | Uvulars |
R | Sonorant/resonant |
S or C[+stop] | Stops |
U or σ | Syllable |
V | Vowels, including diphthongs |
V[+high] | High vowels |
V[+low] | Low vowels |
V[+round] | Rounded vowels | V[-round] | Unrounded vowels |
W | Semivowels |
X | Any phoneme |
Z | Continuant |
Note: In the “changes to” section (between > and / symbols), the uppercase letter is redundant, thus both C[+stop] > [+nasal] / _# and C[+stop] > C[+nasal] / _# are valid rules.