-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapertium-kmr.kmr.rlx
344 lines (217 loc) · 7.4 KB
/
apertium-kmr.kmr.rlx
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
DELIMITERS = "<.>" "<!>" "<?>" ;
LIST EOS = (<<<) sent ;
LIST BOS = (>>>) sent ;
LIST N = n ;
LIST Prop = np ;
LIST Top = top ;
LIST Inf = inf;
LIST Ant = ant;
LIST Pron = prn ;
LIST V = vaux vblex vbser vbcop vbhaver ;
LIST Vaux = vaux ;
LIST Adv = adv ;
LIST Narr = narr ;
LIST Qst = qst ;
LIST Num = num ;
LIST Sent = sent ;
LIST CC = cnjcoo ;
LIST CS = cnjsub ;
LIST Interj = ij ;
LIST Pr = pr ;
LIST Post = post ;
LIST Cop = vbcop ;
LIST Det = det ;
LIST Preadv = preadv ;
LIST Unk = "\*.*"i ;
LIST Emph = emph;
LIST A = adj ;
LIST Apst = (adj pst) ;
LIST Acomp = (adj comp) ;
LIST Asup = (adj sup) ;
LIST Neg = neg ;
LIST Nom = nom ;
LIST Eza = con ;
LIST Obl = obl ;
LIST Voc = voc ;
LIST TV = tv ;
LIST NONTV = iv vbcop vaux vbhaver ;
LIST Previous = past narr pp ;
LIST Def = def ;
LIST Ind = ind ;
LIST Dem = dem ;
LIST PrfPrc = pp ;
LIST Aux = vaux ;
LIST CS = cnjsub ;
LIST Pers = pers ;
LIST Rel = rel ;
LIST Ref = ref ;
LIST Quot = rquot lquot ;
LIST Comma = cm ;
LIST Past = past ;
LIST Fut = fut ;
LIST Prs = prs ;
LIST DÊ = "dê" ;
LIST BI = "bi" ;
LIST SELF = "xwe" ;
LIST SPEECH-VERB = "axaftin" ;
LIST DO-VERB = "kirin";
LIST BUY-VERB = "kirîn";
LIST TEACHER = "mamoste";
LIST LANG = "kurdî" ;
LIST VE = "ve" ;
LIST Bûn = "bûn" ;
LIST Bû = "<bû>"i ;
LIST Di = "<di>"i ;
LIST Jî = "<jî>"i ;
LIST JÊ = "<jê>"i ;
LIST LÊ = "<lê>"i ;
LIST JI = "ji" ;
LIST RE = "re" ;
LIST De = "<de>" ;
LIST Gelo = "<gelo>"i;
LIST Dema = "<dema>";
LIST HETA = "heta" ;
LIST Dash = "-" ;
LIST Pirs = "?";
LIST P1 = p1 ;
LIST P2 = p2 ;
LIST P3 = p3 ;
LIST Pl = pl ;
LIST Sg = sg ;
LIST Pri = pri ;
LIST Hûn = "hûn" ;
LIST Ew = "ew" ;
LIST Em = "em" ;
LIST Gelek = "gelek" ;
LIST Ko = "<ko>"i ;
LIST Ne = "<ne>"i ;
LIST Fin = pri past fut narr ; # Complete
LIST NON-ERG-FIN = pri fut ;
SET NOMEN = N | Prop ;
SET NP-HEAD = N | Prop | Pron + Pers ;
SET NPNHA = N | Num | Prop | Pron | Det | Preadv | A | Eza | Unk | Top ;
SET WORD = N | Num | Prop | V | A | Det | Pron | Preadv | Adv | Unk | Sent | Cop | Aux | CS ;
SET PUNCT = Sent | Comma | Quot ;
SET CLB = Fin | CS | CC ;
SECTION
SELECT Prs IF (0C Prs OR Fut) (NOT -1* Fut);
SELECT CC IF (0C CC OR Voc) (1C Pron);
SELECT N IF (0C V OR N) (-1 Det);
REMOVE Ind IF (-1 Det);
Remove Eza IF (0C Eza OR Cop) (1 EOS);
Remove Eza IF (0C Eza OR Cop) (1 Qst);
REMOVE CC IF (0 LÊ OR CC)(-1* CC BARRIER V);
SELECT CC IF (0 LÊ OR CC) (1C Pron);
SELECT Nom IF (0 TEACHER) (1 Ant);
SELECT Pl IF (0C N) (0 Sg OR Pl) (1 V + Pl);
SELECT Sg IF (0 N + Nom) (0 Sg OR Pl) (1 Ant);
SELECT Sg IF (0C N) (0 Sg OR Pl) (NOT 1* V + Pl BARRIER N + Pl);
SELECT HETA IF (0 HETA OR Eza) ;
REMOVE Voc IF (0 Voc OR Obl) (-1 Eza) ;
SELECT Sg IF (0 Sg OR Pl) (NOT 0 PrfPrc) (NOT 0 Post) (1 Cop + Sg);
SELECT Eza IF (-1 Eza) (NOT 1 Eza) (NOT 1 EOS) (NOT 1 V);
SELECT LANG IF (-1 BI) (1 SPEECH-VERB) ;
SELECT Cop IF (0 Cop OR Eza) (1 EOS) (NOT -1 PrfPrc) ;
SELECT A IF (0C A or V) (-1 Eza);
SELECT Ant IF (0 N OR Ant) (-1 Ant + Eza);
SELECT Ant IF (0 N OR Ant) (1 Ant) (NOT 1 Eza);
REMOVE N + Dem IF (NOT -1 Det) ;
SELECT V IF (1 EOS) (NOT 0 Pron)(NEGATE -1* V) ;
REMOVE NOMEN + Obl IF (Not -1 Dash) (NOT -1 Eza) (NOT -1 Pr) (NOT 1 Post) (NOT 1* TV) (NOT -1 V);
SELECT BI IF (0 BI) ;
SELECT Det IF (0 Det OR Pron) (1 N + Obl + Dem) ;
SELECT VE IF (NOT -1 V LINK -1 BI) ;
SELECT PrfPrc IF (1 Bûn) ;
REMOVE PrfPrc IF (NOT 1 V) ;
REMOVE Voc IF (-1 Pr ) ;
REMOVE Voc IF (1 Post) ;
SELECT Aux IF (-1 PrfPrc) ;
REMOVE Nom IF (-1 Pr) ;
REMOVE Nom IF (-1 Eza) (NOT 1 CC) (NOT 2 Eza) ;
SELECT Ref IF (0C N + Obl OR Ref) (-1 Eza);
SELECT Eza IF (0C N + Voc OR N + Eza) (1 Obl OR Ref);
SELECT Post IF (0 RE) (-1 JÊ) ;
SELECT JI IF (0 JÊ) (1 RE) ;
SELECT Emph IF (0 Jî) (NOT 1 TV);
REMOVE Emph IF (0 Emph OR Pr) (-1C Emph);
SELECT JI IF (0 JI OR N) (1 Obl);
SELECT Eza IF (0C Eza OR Voc) (-1 CC) (-2 N);
SELECT Pers IF (0 Pers OR Dem) ;
SELECT Neg IF ( 0 Neg OR Cop) (NOT 1 EOS) (NEGATE -1* V) (1* V) ;
SELECT Pr IF (0 Di) (1* Post BARRIER WORD - NPNHA) ;
SELECT Post IF (0 De) (-1* Pr BARRIER WORD - NPNHA) ;
SELECT Pr IF (1*C Post BARRIER WORD - NPNHA) ;
SELECT Post IF (-1*C Pr BARRIER WORD - NPNHA) ;
SELECT Pron IF (0 Pron OR Det) (1 Pr) ;
REMOVE Dem IF (0 Prop) (NOT -1 Det) ;
SELECT A IF (0 N OR A) (NOT 0 Obl) (-1 Obl) ;
SELECT P3 IF (0C V) (0 Pri + Pl) (0 P1 OR P2 OR P3) (NOT -1* Hûn + Nom) (NOT -1* Em + Nom) ;
SELECT Preadv IF (0 Gelek) (1C A) ;
SELECT N IF (0 Dema) (-1 Pr);
SELECT Sg IF (0C N + Sg OR N + Pl) (1 TV + Past + Sg);
SELECT Pl IF (0 N + Pl OR N + Pl) (1 TV + Past + Pl);
SELECT P3 IF (0C V) (0 P1 OR P2 OR P3) (NOT -1* Pron + P1) (NOT -1* Pron + P2);
SELECT P3 IF (0C V) (0 P1 OR P2 OR P3) (NOT 0 TV) (NOT -1* Pron + P1 + Nom) (NOT -1* Pron + P1 + Nom) ;
SELECT Cop IF (0 Aux OR Cop) (-1 Pron);
SELECT DO-VERB IF (0 DO-VERB OR BUY-VERB);
REMOVE Voc IF (0 Obl OR Voc) (-1 Eza);
SELECT Eza IF (0C Eza OR Voc) (1 Obl);
SELECT CS IF (0 CS OR Pron + Rel) (1* Prs);
SELECT Prs IF (-1* CS LINK -1* Fin);
REMOVE Voc IF (NOT -1 Comma) (1 EOS);
SELECT Fut IF (-1* DÊ);
SELECT P1 IF (0 V + Pl) (NOT 0 Past OR Narr) (-1* Pron + P1 BARRIER V OR Pron);
SELECT P1 IF (0C V + Pl)(NOT 0 Past OR Narr) (-1* V + P1 BARRIER Pron OR N);
SELECT P3 IF (0C V + Pl) (0 Previous) (Not -1* Pron + P1 + Obl OR Pron + P2 + Obl);
SELECT A IF (0C A OR V) (-1 Eza);
SELECT Fut IF (0C V) (-1C* V + Fut);
SELECT SELF + Pron IF (0C N OR SELF) (-1 Eza) (1* TV BARRIER NONTV);
SELECT Ant IF (0C N OR Ant) (-1 CC) (-2 Pron + Pers);
SELECT Ant IF (0C N OR Ant) (-1 CC) (-2C Ant);
REMOVE Voc IF (0C Voc OR Obl) (-1 V) (1 CC);
SELECT Pr IF (1* CC BARRIER WORD - NPNHA LINK 1* Pr BARRIER WORD - NPNHA);
SECTION
LIST @amod = @amod ;
LIST @nsubj = @nsubj ;
LIST @obj = @obj ;
LIST @csubj = @csubj ;
LIST @qst = @qst ;
LIST @nmod:dat = @nmod:dat ;
LIST @nmod:poss = @nmod:poss ;
LIST @nmod = @nmod ;
LIST @case = @case ;
LIST @punct = @punct ;
LIST @cc = @cc ;
LIST @det = @det ;
LIST @cop = @cop ;
LIST @advmod = @advmod ;
MAP @nsubj TARGET Pron + Obl IF (0C Obl) (1* TV + Past BARRIER CLB OR Pers + Obl) (NOT -1 Pr) (NOT 1 Post) (NOT -1 Eza) ;
#ADD (@qst) FV IF (*1 Pirs) ;
MAP @nmod:dat TARGET NOMEN + Obl IF (NOT -1* Pr BARRIER V) (NOT 1 Post) (NEGATE 0* TV BARRIER V) (NOT -1 Eza);
MAP @nmod:dat TARGET Pron + Obl IF (NOT -1* Pr BARRIER V) (NOT 1 Post) (1* Cop BARRIER (*) - A - Adv) (NOT -1 Eza);
MAP @obj TARGET NOMEN + Obl IF (NOT -1 Eza)(NOT -1* Pr BARRIER V) (NOT 1 Post) (1* TV BARRIER V);
MAP @nmod:poss TARGET Pron + Obl OR Pron + SELF OR NOMEN + Obl IF (-1C Eza) ;
MAP @nmod:poss TARGET NOMEN + Eza IF (-1C Eza);
MAP @amod TARGET A IF (-1C Eza);
MAP @nmod TARGET N IF (-1C Pr);
MAP @case TARGET Pr OR Post ;
MAP @obj TARGET NP-HEAD + Nom IF (-1C* NP-HEAD + Obl) (1C* TV + Past OR TV + Narr) (NOT -1 Pr) ;
MAP @obj TARGET NP-HEAD + Obl IF (-1C* NP-HEAD + Nom) (1C* TV + NON-ERG-FIN) (NOT -1 Pr);
MAP @punct TARGET PUNCT ;
MAP @cc TARGET CC ;
MAP @det TARGET Det ;
MAP @advmod TARGET Adv IF (NOT 0 Ne) ;
MAP @cop TARGET Cop ;
SECTION
SELECT V IF (0C V OR N) (-1 Adv);
SELECT Cop IF (0C Cop OR Vaux) (NOT -1* PrfPrc);
#SELECT Det IF (1 N OR V + Inf LINK 1* NON-ERG-FIN);
SELECT CS IF (0 Gelo) (-1 BOS);
SELECT NONTV IF (0C TV OR NONTV) (NOT 0 Past) (NOT 0 Narr) (NOT -1* Obl);
SELECT V IF (0 Bû) ;
SELECT CS IF (0 Ko) ;
REMOVE Obl IF (-1 BOS) (0 Nom OR Obl) (1 EOS) (1* Pirs);
REMOVE Eza IF (1C Fin) ;
REMOVE Det IF (0 Pron OR Det + Dem) (NOT 1 Dem) ;
SELECT Neg IF (0 Ne) (1 Fin) ;
SELECT Qst IF (1 Pirs) ;