forked from apertium/apertium-uzb
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapertium-uzb.uzb.twol
104 lines (75 loc) · 2.85 KB
/
apertium-uzb.uzb.twol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
Alphabet
A B C D E F G H I J K L M N O P Q R S T U V W Y Z X
a b c d e f g h i j k l m n o p q r s t u v w y z x
%0 1 2 3 4 5 6 7 8 9
%{K%}:k %{Q%}:q
%{G%}:g %{G%}:k %{G%}:q
%{D%}:d %{D%}:t
%{l%}:l %{L%}:l %{L%}:n %{M%}:m %{N%}:n ! Cns
%{I%}:i %{u%}:i ! Vow
%{A%}:a
%{E%}:a %{E%}:y
%{i%}:0 %{i%}:i
%{ʻ%}:0 %{ʻ%}:ʻ
%{s%}:s %{s%}:0
%{S%}:s %{K%}:k %{n%}:n
%{a%}:a
%{й%}:y %{й%}:0
%[%+p3pl%]:0 %[%-coop%]:0
ʻ
%>:0 % ;
Sets
Vow = A E I O U
a e i o u
%{A%} %{I%} %{E%} %{u%} ;
Cons = b c d f g h j k l m n p q r s t v z x y ʻ
B C D F G H J K L M N P Q R S T V Z X Y
%{D%} %{K%} %{Q%} %{G%} %{N%} %{L%} %{M%} %{S%} %{n%} ; ! %- ;
Rules
"{D} as t after (some?) voiceless cons"
%{D%}:t <=> [ :p ]/[ :0 | %>: ]* _ ;
"{s} is deleted following a consonant"
%{s%}:0 <=> :Cons %>:/[ :0 | :ʻ ]* _ ;
"{E} becomes y when following a vowel"
%{E%}:y <=> :Vow %>: _ ;
!"{K} becomes g when it is before a vowel"
!%{K%}:g <=> _ %>: (:0) :Vow ;
!"{Q} becomes gʻ when it is before a vowel"
!%{q%}:gʻ <=> _ %>: (:0) :Vow ;
"{i} is null after a vowel"
%{i%}:0 <=> :Vow [ :0 - %{й%}: ]* _ ;
:Vow (%{й%}:0) %>: _ \[ :s :h ] ;
"{a} is null after a vowel"
%{a%}:0 <=> :Vow :0* _ ;
"{й}:y only before -ish"
%{й%}:y <=> _ %>: %{i%}: :s :h ;
"{G} is k/q after {k/q}>"
%{G%}:Cy <=> :Cx %>:/[ :0 - %>: ]* _ ;
where
Cx in ( k q )
Cy in ( k q )
matched ;
"{G} is g everywhere but after k/q"
%{G%}:g <=> _ ;
except
[ :k | :q ] %>:/[ :0 - %>: ]* _ ;
"intervocalic stem-final k & q voice before vowels, but only in N/Adj forms"
Cx:g <=> :Vow _ %>: [ :0 - [ %>: | %{ʻ%}: ] ]* %{ʻ%}: [ :0 - [ %>: | %{ʻ%}: ] ]* :Vow ;
where Cx in ( k q ) ;
!"intervocalic stem-final q voices before vowels, but only in N/Adj forms"
!q:g <=> :Vow _ %>: [ :0 - [ %>: | %{ʻ%}: ] ]* %{ʻ%}: [ :0 - [ %>: | %{ʻ%}: ] ]* :Vow ;
"{ʻ}:ʻ only when q:gʻ"
%{ʻ%}:ʻ <=> :Vow q: %>: [ :0 - [ %>: | %{ʻ%}: ] ]* _ [ :0 - [ %>: | %{ʻ%}: ] ]* :Vow ;
!%{ʻ%}:ʻ <=> _ ;
! except
! :Vow q: %>: [ :0 - [ %>: | %{ʻ%}: ] ]* _ [ :0 - [ %>: | %{ʻ%}: ] ]* :Vow ;
!"Voicing assimilation of front G"
!%{G%}:k <=> :k %>: _ ; ! "from "Учебник узбекского языка для стран СНГ" there only -k and -g endings transfer to k" ! should be only for k/q final words for now - will update if I find contrary examples.
!"Voicing assimilation of front G"
!%{G%}:q <=> :q %>: _ ; ! "from "Учебник узбекского языка для стран СНГ" there only -k and -g endings transfer to k" ! should be only for k/qfinal words for now - will update if I find contrary examples.
!"{u} deletion"
!%{u%}:0 <=> _ Cons: %>: (:0) :Vow ;
!"{a} is null after a vowel"
!%{a%}:0 <=> :Vow :0* _ ;
"{L} as n in passive"
%{L%}:n <=> [ :l :Vow ]/:0* _ ;