Overview

I have adopted the phonetic structure documented here at Wikipedia for representing phonemes.  The sections below give the details of the feature structures I have chosen to represent this.

Feature Structure for Consonants

The code fragment below shows the built-in feature structure assumed for consonants.  This is defined by a library file and a user-defined feature structure can be implemented by modifying this file.

// Feature structures for Consonants
bool lateral, sonorant, voiced, aspirated;
enum manner   { plosive, nasal, trill, tap, flap, fricative, approximant, affricate };
enum position { bilabial, labiodental, dental, alveolar, postalveolar,
                retroflex, palatal, velar, uvular, pharyngeal, glottal,
                epiglottal, dental_alveolar, alveolo_palatal, labial_velar,
                labial_palatal };
enum mechanism { pulmonic, click, ejective, implosive };

feature phonation    constraint { voiced, aspirated };    // add tone and loudness later
feature articulation constraint { manner, mechanism, sonorant, lateral };
feature consonant    constraint { articulation, position, phonation };

position #bilabial     is <position bilabial>;
position #labiodental  is <position labiodental>;
position #dental       is <position dental>;
position #alveolar     is <position alveolar>;
position #postalveolar is <position postalveolar>;
position #retroflex    is <position retroflex>;
position #palatal      is <position palatal>;
position #velar        is <position velar>;
position #uvular       is <position uvular>;
position #pharyngeal   is <position pharyngeal>;
position #glottal      is <position glottal>;
position #epiglottal   is <position epiglottal>;

position #dental_alveolar is <position dental_alveolar>;
position #labial_velar    is <position labial_velar>;
position #alveolo_palatal is <position alveolo_palatal>;
position #labial_palatal  is <position labial_palatal>;

articulation #plosive      is <articulation <manner plosive>     <mechanism pulmonic> -sonorant -lateral>;
articulation #nasal        is <articulation <manner nasal>       <mechanism pulmonic> +sonorant -lateral>;
articulation #trill        is <articulation <manner trill>       <mechanism pulmonic> -sonorant -lateral>;
articulation #tap          is <articulation <manner tap>         <mechanism pulmonic> -sonorant -lateral>;
articulation #flap         is <articulation <manner flap>        <mechanism pulmonic> -sonorant -lateral>;
articulation #lat_flap     is <articulation <manner flap>        <mechanism pulmonic> -sonorant +lateral>;
articulation #fricative    is <articulation <manner fricative>   <mechanism pulmonic> -sonorant -lateral>;
articulation #approximant  is <articulation <manner approximant> <mechanism pulmonic> -sonorant +lateral>;
articulation #lat_fric     is <articulation <manner fricative>   <mechanism pulmonic> -sonorant -lateral>;
articulation #lat_approx   is <articulation <manner approximant> <mechanism pulmonic> -sonorant +lateral>;
articulation #affricate    is <articulation <manner affricate>   <mechanism pulmonic> -sonorant -lateral>;
articulation #click        is <articulation <mechanism click>     -sonorant -lateral>;
articulation #lat_click    is <articulation <mechanism click>     -sonorant +lateral>;
articulation #implosive    is <articulation <mechanism implosive> -sonorant -lateral>;
articulation #ejective     is <articulation <mechanism ejective>  -sonorant -lateral>;

phonation #voiced       is <phonation +voiced>;
phonation #voiceless    is <phonation -voiced>;

Blah blah.

Feature Structure for Vowels

The code fragment below shows the built-in feature structure assumed for vowels.  This is defined by a library file and a user-defined feature structure can be implemented by modifying this file.

// Feature Structures for vowels
bool open, raised, mid, close, long;
bool front, near, central, back;
bool exolabial, rounded;

feature height    constraint { open, raised, mid, close };
feature backness  constraint { front, near, central, back };
feature roundness constraint { exolabial, rounded};
feature vowel     constraint { height, backness, roundness, long };

 
height #open       is <height +open -mid -raised -close>;
height #near_open  is <height +open -mid +raised -close>;
height #open_mid   is <height +open +mid -raised -close>;
height #mid        is <height -open +mid -raised -close>;
height #close_mid  is <height -open +mid -raised +close>;
height #near_close is <height -open -mid +raised +close>;
height #close      is <height -open -mid -raised +close>;

backness #front      is <backness +front -near -central -back>;
backness #near_front is <backness +front +near -central -back>;
backness #central    is <backness -front -near +central -back>;
backness #near_back  is <backness -front +near -central +back>;
backness #back       is <backness -front -near -central +back>;

roundness #rounded   is <roundness +rounded>;
roundness #unrounded is <roundness -rounded>;
		

Blah

Phonetic Alphabets

The fragment below shows the syntax for defining a phonetic alphabet.  By default, Languid uses the International Phonetic Alphabet, where each consonant and vowel implement the feature structures defined above.

phonemes myPhoneticAlphabet
{
    "p" => <consonant #voiceless #bilabial #plosive>
    "b" => <consonant #voiced    #bilabial #plosive>
    "t" => <consonant #voiceless #dental   #plosive>
    "d" => <consonant #voiced    #dental   #plosive>
}

Blah

User Defined Alphabets

The fragment below shows the syntax for defining an alphabet for a language.

alphabet Eikridet
{
// phoneme ascii representation "a" => "ä"
"ɑ" => "a"; }

Blah


Copyright © 2005 Tony Jebson