Morphology of Khalkha/АА vowel harmony issue
Jump to navigation
Jump to search
There is a rule (or set of rules?) that's acting up in the Khalkha transducer.
The main rule involved is that which turns the second {А}
archiphoneme in {А}{А}
to one of a series of vowels that isn't the default {А}
. There is another series of rules which then adjust the first {А}
based on the second {А}
and are sensitive to segments which may precede the {А}
s as well.
Expected behaviour[edit]
нүд
<n>
<abl>
→нүд>{Н}{А}{А}с
→нүднээс
- i.e.,
н:н ү:ү д:д >:0 {Н}:н {А}:э {А}:э с:с
By "the rule doesn't work", I mean that the transducer outputs the defaults of {А}
: нүднаас
.
The main rule[edit]
In this form, the rule "works" for the example above. See below for variants that do and don't work, as well as some assumptions and other potentially relevant rules.
"{A} vowel harmony for second {А} in {А}{А}"
%{А%}:Vy <=> [ :Vx - %{А%}: ] [ :NonVow* %>: :NonVow ]/[ %>: | :0* | :% ] [ %{А%}: - :0 ] _ ;
except
_ %{А%}: ; ! if {A}{A}, only do second {A}
where Vx in ( ү э ө о )
Vy in ( э э ө о )
matched ;
Variants of the crucial line[edit]
That work[edit]
Specifically with the example above.
%{А%}:Vy <=> [ :Vx - %{А%}: ] [ :NonVow* %>: :NonVow ]/[ :0* | :% ] [ %{А%}: - :0 ] _ ;
%{А%}:Vy <=> [ :Vx - %{А%}: ] [ :NonVow* %>:* :NonVow ]/[ %>: | :0* | :% ] [ %{А%}: - :0 ] _ ;
That don't work[edit]
Specifically with the example above.
%{А%}:Vy <=> [ :Vx - %{А%}: ] [ :NonVow* :NonVow ]/[ %>: | :0* | :% ] [ %{А%}: - :0 ] _ ;
%{А%}:Vy <=> [ :Vx - %{А%}: ] [ :NonVow* :NonVow ]/[ %>:* | :0* | :% ] [ %{А%}: - :0 ] _ ;
%{А%}:Vy <=> [ :Vx - %{А%}: ] [ :NonVow* %>: :NonVow ]/[ :0 | :% ] [ %{А%}: - :0 ] _ ;
%{А%}:Vy <=> [ :Vx - %{А%}: ] [ :NonVow* :NonVow ]/[ [ :0 - %{А%}: ]* | :% ] [ %{А%}: - :0 ] _ ;
Some assumptions[edit]
- By using
/[ :0 | :% ]
, I should have any number of %>:0
interspersed in all locations in [ :NonVow* :NonVow ]
, though this doesn't seem to be the case, since [ :NonVow* %>: :NonVow ]
behaves differently from [ :NonVow* :NonVow ]/[ :0 ]
. It doesn't seem to matter whether the things after /
have *
after them or not.
- The point of the rule is to change the second
{А}
(when there are two {А}
s in a row) to a certain vowel based on the last vowel seen before the series of {А}
s. That previous vowel, by the language's phonotactics, must occur with at least one non-vowel (up to 4 or so) intervening between the previous vowel and the {А}
. However, when I make the rule as %{А%}:Vy <=> :Vx [ :NonVow* :NonVow ]/[ [ :0 - %{А%}: ] | :% ] %{А%}:Vow _ ;
, I get conflicts like/including the following:
There is a <=-rule conflict between "{A} vowel harmony for second {А} in {А}{А} SUBCASE: Vx=ү Vy=э" and "{A} vowel harmony for second {А} in {А}{А} SUBCASE: Vx=э Vy=э".
E.g. in context {У}:ү г:г {I}: {А}:э г:г _
There is a <=-rule conflict between "{A} vowel harmony for second {А} in {А}{А} SUBCASE: Vx=ү Vy=э" and "{A} vowel harmony for second {А} in {А}{А} SUBCASE: Vx=ө Vy=ө".
E.g. in context {У}:ү г:г {I}: {А}:ө г:г _
- In these cases, the
{А}
should harmonise to the previous {А}
(which surfaces as a vowel). But what's weirder is that the context does not require that an {А}:
precede _
.
Other potentially relevant rules[edit]
"{А} vowel harmony for first {А} in {A}{A}"
%{А%}:Vy <=> _ %{А%}:Vx ;
except
ь:/:0 _ %{А%}: ;
:и/:0 _ %{А%}: ;
where Vx in ( э ө о )
Vy in ( э ө о )
matched ;
!! ёс>{А}{А}c:ёсоос, жил>{А}{А}c:жилээс
"{А} vowel harmony for Y ''vowels''"
%{А%}:Vy <=> .#. (:NonVow) [ :Vx - %{А%}: ] [ [ :NonVow - Y: ] ( [ :NonVow - Y: ]*) ]/[ :0 | :% ] %{А%}: _ ;
except
_ %{А%}: ; ! if {A}{A}, only do second {A}
where Vx in ( е ё и )
Vy in ( э о э )
matched ;
!! анги>{А}{А}с:ангиас, морь>{А}{А}с:мориос
"first {А} deletes after и or ь:и"
%{А%}:0 <=> [ :и | ь:и ]/:0 _ %{А%}: ;
Some defaults[edit]
%{ң%}:н %{В%}:в %{Т%}:т %{Д%}:д %{Н%}:н ! consonants
%{г%}:0 %{й%}:0 %{а%}:0 %{ь%}:0 %{н%}:0 ! disappearing stuff
%{ъ%}:0 ! "
%{А%}:а %{I%}:ы %{У%}:у ! Vowels
° %% %, %. %- %>:0 %
NonVow = Б В Г Д Е Ж З Й К Л М Н П Р С Т Ф Х Ц Ч Ш Ь Ъ Я
б в г д е ж з й к л м н п р с т ф х ц ч ш ь ъ я ;
Y = е я ё ;