Assignment:
Problem 3
|
  |
Finish specifiying
the flap rule
described below. Turn in
a revised version of the file
"flap_problem.pl".
In Section 4.1 of Karttunen 91, the flap rule and the contrast
between writer
and rider is discussed.
write + er = rAter ==> rUDer   short vowel
ride + er = rAder ==> rADer   long vowel
I'm using lower case vowels
to represent short unstressed vowels, like the one in "er",
and upper case vowels for dipthongs and long vowels.
So the first vowel-symbol in "write" is "A", which
represents the dipthong sometimes written /ay/, and the dipthong
after shortening is "U", sometimes written as schwa and "y". I'm
also using " D" for the flap.
Think about this example. Think about how the facts would be
captured with ordered rules. And how they would be
represented as twolevel rules.
Then look in the
Karttunen paper (Section 4.1, Karttunen 91) to see if you've got the answer right.
Then write two rules in the notation of "kamman.pl". As your
starting point use:
/usr/local/fsa6/Examples/twolevel/flap_problem.pl
or browse it here.
Here are some hints:
- This file defines 3 transducers, "vs", "fl" ,
and "flap". "flap" is the top level transducer that combines
the other two. "vs" implements the vowel shortening
rule. "fl" the flapping rule. The right and left
contexts are wrong. Your job is to fill them in
correctly.
- The set of pairs has been predefined for you.
So have several useful categories of sound such
as voiceless sounds and vowels.
- Remember, the left and right contexts of
a rule are regular expression. So any expression
that denotes a set of strings can be used as
a right or left context in a rule.
- "macros" defined in the file are additions
to ouyr regular expression language. For
example "pair" can be used to denote
any single pair from the set of feasible
pairs because the macro "pair" is defined
that way in the file. "pair*" denotes
any sequence of 0 or more pairs.
- Test your answers. Load in the file to the fsa tool.
Bring up the "flap" macro. Try the
relevant examples.
- rAder => rADer
- rAter => rUDer
|