-
Notifications
You must be signed in to change notification settings - Fork 1
/
RedTyp.sql
477 lines (451 loc) · 525 KB
/
RedTyp.sql
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
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
-- phpMyAdmin SQL Dump
-- version 4.6.6
-- https://www.phpmyadmin.net/
--
-- Host: 146.148.74.145
-- Generation Time: Jun 13, 2018 at 06:03 PM
-- Server version: 5.6.36-google-log
-- PHP Version: 7.0.14
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `RedTyp`
--
-- --------------------------------------------------------
--
-- Table structure for table `2-way FST`
--
CREATE TABLE `2-way FST` (
`2-way FST ID` varchar(200) NOT NULL COMMENT 'A small descriptive name for the function modeled by the 2-way FST. The ID acts as the primary key of the entity.',
`example data` text NOT NULL COMMENT 'Latex code for a table with example inputs and outputs.',
`description` text NOT NULL COMMENT 'Description of 2-way FST in terms of prose. This is ideally read in latex because of the use of variables and subscripts.',
`FST diagram` text NOT NULL COMMENT 'Latex code for the 2-way FST diagram. It uses the latex packages/settings \\usepackage{tikz} and \\usetikzlibrary{arrows,automata,shapes,positioning} ',
`language specific` tinyint(1) NOT NULL DEFAULT '0' COMMENT ' Some 2-way FSTs are specific to a language (a case study). This specifies if the 2-way FST entry models a reduplicative process that is nuanced enough that it is models a unique morpheme in one language (1) or if it is general enough to model many morphemes in possibly different languages (0).',
`FST recipe` longtext NOT NULL COMMENT ' A text file that describes the alphabet and transitions for the FST in a shorthand that is human-readable and that can be read by our python implementation. ',
`FST code` longtext NOT NULL COMMENT ' A text file that lists the transitions for the 2-way FST based on the shorthand description in the FST recipe. This code was created with our python implementation of 2-way FSTs.'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `2-way FST`
--
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('Echo - Initial C* is replaced ', '| Input | Output |\r\n|---------|----------------|\r\n| C-VX | C-VX-m-VX |\r\n| CC-VX | C-VX-m-VX |\r\n| VX | VX~m-VX |\r\n| CC-VXYX | CC-VXYZ-m-VXYZ |', 'Input=#C\\*VX% where X is a string of segments\r\nOutput=#C\\*VX\\~m-VX%\r\nThe entire string is reduplicated except that the word-initial onset is overwritten by a morphologically-specified segment[m]. If the word doesn\'t start with an onset, [m] is still inserted. ', '\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-2 outputs the base \r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-5 go back to #, ignore the first C*, output m, output rest of reduplicant, and end\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [below of=q1] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state,accepting] (q5) [right of=q4] {$q_5$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,\\#,+1)} (q1)\r\n(q1) edge [loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\epsilon$,-1)} (q2)\r\n(q2) edge [loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q2)\r\n(q2) edge node {(\\#,$\\epsilon$,+1)} (q3)\r\n(q3) edge[loop left] node {(C,$\\epsilon$,+1)} (q3)\r\n(q3) edge node {(V,mV,+1)} (q4)\r\n(q4) edge[loop below] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node {(\\%,\\%,+1)} (q5)\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Echo reduplication -- default Turkic behavior\r\n#The word-initial onset is replaced by [m]. An onsetless word now starts with [m]\r\n#e.g. para --> para~mara, stara --> stara~mara, ara --> ara~mara\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'go back to start\',\'start second copy with replacements\',\'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\alphabet) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'go back to start\', \'\',-1)\r\n(\'go back to start\', \\alphabet) = (\'go back to start\', \'\',-1)\r\n(\'go back to start\', \'#\') = ( \'start second copy with replacements\', \'~\',1)\r\n(\'start second copy with replacements\', \\consonants) = ( \'start second copy with replacements\', \'\', 1)\r\n(\'start second copy with replacements\', \\vowels) = (\'output second copy\', [\'m\' \\ID ] , 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\' , \\ID , 1)\r\n(\'output second copy\', \'%\' ) = (\'end\', \'\', 1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Echo reduplication -- default Turkic behavior\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 go back to start\r\n4 start second copy with replacements\r\n5 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,#,4,~,1\r\n3,+,3,,-1\r\n3,.,3,,-1\r\n3,`a,3,,-1\r\n3,`a:,3,,-1\r\n3,`e,3,,-1\r\n3,`e:,3,,-1\r\n3,`i,3,,-1\r\n3,`i:,3,,-1\r\n3,`o,3,,-1\r\n3,`o:,3,,-1\r\n3,`u,3,,-1\r\n3,`u:,3,,-1\r\n3,`y,3,,-1\r\n3,`y:,3,,-1\r\n3,a,3,,-1\r\n3,a:,3,,-1\r\n3,b,3,,-1\r\n3,c,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,e:,3,,-1\r\n3,f,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,i:,3,,-1\r\n3,j,3,,-1\r\n3,k,3,,-1\r\n3,l,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,o:,3,,-1\r\n3,p,3,,-1\r\n3,q,3,,-1\r\n3,r,3,,-1\r\n3,s,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,u:,3,,-1\r\n3,v,3,,-1\r\n3,w,3,,-1\r\n3,x,3,,-1\r\n3,y,3,,-1\r\n3,y:,3,,-1\r\n3,z,3,,-1\r\n4,`a,5,m`a,1\r\n4,`a:,5,m`a:,1\r\n4,`e,5,m`e,1\r\n4,`e:,5,m`e:,1\r\n4,`i,5,m`i,1\r\n4,`i:,5,m`i:,1\r\n4,`o,5,m`o,1\r\n4,`o:,5,m`o:,1\r\n4,`u,5,m`u,1\r\n4,`u:,5,m`u:,1\r\n4,`y,5,m`y,1\r\n4,`y:,5,m`y:,1\r\n4,a,5,ma,1\r\n4,a:,5,ma:,1\r\n4,b,4,,1\r\n4,c,4,,1\r\n4,d,4,,1\r\n4,e,5,me,1\r\n4,e:,5,me:,1\r\n4,f,4,,1\r\n4,g,4,,1\r\n4,h,4,,1\r\n4,i,5,mi,1\r\n4,i:,5,mi:,1\r\n4,j,4,,1\r\n4,k,4,,1\r\n4,l,4,,1\r\n4,m,4,,1\r\n4,n,4,,1\r\n4,o,5,mo,1\r\n4,o:,5,mo:,1\r\n4,p,4,,1\r\n4,q,4,,1\r\n4,r,4,,1\r\n4,s,4,,1\r\n4,t,4,,1\r\n4,u,5,mu,1\r\n4,u:,5,mu:,1\r\n4,v,4,,1\r\n4,w,4,,1\r\n4,x,4,,1\r\n4,y,5,my,1\r\n4,y:,5,my:,1\r\n4,z,4,,1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n'),
('Echo - Initial C* is replaced + dissimilation in case of homophony', '| Input | Output |\r\n|-------|-----------|\r\n| C-X | C-X-v-X |\r\n| v-X | v-X-s-X |\r\n| C-CX | C-CX-v-CX |', 'Three allomorphs\r\na) Input=#CX% where X is a string of segments and C is a consonant but not [v]\r\nOutput=#CX\\~vX%\r\nb) Input=#VX% where X is a string of segments and V is a vowel\r\nOutput=#VX\\~vVX%\r\nc) Input=#vX% where X is a string of segments \r\nOutput=#vX\\~sX\r\nThe entire string is reduplicated except that the word-initial C\\* is overwritten by a morphologically-specified string [v]. But if C\\* is [v], then use [s] instead \r\n', '\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-2 outputs the base \r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-5 go back to #, ignore the first C*, checks if starts with m, outputs m if no m, otherwise n, output rest of reduplicant, and end\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [below of=q1] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state,accepting] (q5) [right of=q4] {$q_5$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge [loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\epsilon$,-1)} (q2)\r\n(q2) edge [loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q2)\r\n(q2) edge node {(\\#,$\\epsilon$,+1)} (q3)\r\n(q3) edge node {(\\{C-v\\},v,+1)} (q4)\r\n\r\n(q3) edge[bend right=45] node[below] {(v,\\textipa{S},+1)} (q4)\r\n\r\n(q4) edge[loop below] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node {(\\%,$\\epsilon$,+1)} (q5)\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Echo reduplication -- default Turkic behavior\r\n#The word-initial onset is replaced by [m]. An onsetless word now starts with [m]\r\n#e.g. para --> para~mara, stara --> stara~mara, ara --> ara~mara\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'go back to start\',\'start second copy with replacements\',\'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\alphabet) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'go back to start\', \'\',-1)\r\n(\'go back to start\', \\alphabet) = (\'go back to start\', \'\',-1)\r\n(\'go back to start\', \'#\') = ( \'start second copy with replacements\', \'~\',1)\r\n(\'start second copy with replacements\', {\\consonants-\'v\'} ) = ( \'output second copy\', \'v\', 1)\r\n(\'start second copy with replacements\', \'v\' ) = ( \'output second copy\', \'k\', 1)\r\n(\'start second copy with replacements\', \\vowels) = (\'output second copy\', [\'v\' \\ID ] , 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\' , \\ID , 1)\r\n(\'output second copy\', \'%\' ) = (\'end\', \'\', 1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Echo reduplication -- default Turkic behavior\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 go back to start\r\n4 start second copy with replacements\r\n5 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,#,4,~,1\r\n3,+,3,,-1\r\n3,.,3,,-1\r\n3,`a,3,,-1\r\n3,`a:,3,,-1\r\n3,`e,3,,-1\r\n3,`e:,3,,-1\r\n3,`i,3,,-1\r\n3,`i:,3,,-1\r\n3,`o,3,,-1\r\n3,`o:,3,,-1\r\n3,`u,3,,-1\r\n3,`u:,3,,-1\r\n3,`y,3,,-1\r\n3,`y:,3,,-1\r\n3,a,3,,-1\r\n3,a:,3,,-1\r\n3,b,3,,-1\r\n3,c,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,e:,3,,-1\r\n3,f,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,i:,3,,-1\r\n3,j,3,,-1\r\n3,k,3,,-1\r\n3,l,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,o:,3,,-1\r\n3,p,3,,-1\r\n3,q,3,,-1\r\n3,r,3,,-1\r\n3,s,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,u:,3,,-1\r\n3,v,3,,-1\r\n3,w,3,,-1\r\n3,x,3,,-1\r\n3,y,3,,-1\r\n3,y:,3,,-1\r\n3,z,3,,-1\r\n4,`a,5,v`a,1\r\n4,`a:,5,v`a:,1\r\n4,`e,5,v`e,1\r\n4,`e:,5,v`e:,1\r\n4,`i,5,v`i,1\r\n4,`i:,5,v`i:,1\r\n4,`o,5,v`o,1\r\n4,`o:,5,v`o:,1\r\n4,`u,5,v`u,1\r\n4,`u:,5,v`u:,1\r\n4,`y,5,v`y,1\r\n4,`y:,5,v`y:,1\r\n4,a,5,va,1\r\n4,a:,5,va:,1\r\n4,b,5,v,1\r\n4,c,5,v,1\r\n4,d,5,v,1\r\n4,e,5,ve,1\r\n4,e:,5,ve:,1\r\n4,f,5,v,1\r\n4,g,5,v,1\r\n4,h,5,v,1\r\n4,i,5,vi,1\r\n4,i:,5,vi:,1\r\n4,j,5,v,1\r\n4,k,5,v,1\r\n4,l,5,v,1\r\n4,m,5,v,1\r\n4,n,5,v,1\r\n4,o,5,vo,1\r\n4,o:,5,vo:,1\r\n4,p,5,v,1\r\n4,q,5,v,1\r\n4,r,5,v,1\r\n4,s,5,v,1\r\n4,t,5,v,1\r\n4,u,5,vu,1\r\n4,u:,5,vu:,1\r\n4,v,5,k,1\r\n4,w,5,v,1\r\n4,x,5,v,1\r\n4,y,5,vy,1\r\n4,y:,5,vy:,1\r\n4,z,5,v,1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n'),
('Echo - Initial C*V is replaced + length is maintained', '| Input | Output |\r\n|---------|-----------------|\r\n| CV-X | CV-X-gi-X |\r\n| V-X | V-X-gi-X |\r\n| CV:-X | CV:-X-gi:-X |', 'Input=#C\\*V-X% where X is a string of segments\r\nOutput\\=#C\\*V-X~gi-X%\r\nThe entire string is reduplicated except that the word-initial C\\*V is overwritten by a morphologically-specified string [gi]. \r\nLength of the base\'s V is maintained in [gi]', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-2 outputs the base \r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-6 go back to #, ignore the first CV, output gi, output rest of reduplicant, and end\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [below of=q1] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state,accepting] (q6) [right of=q5] {$q_6$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge [loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\epsilon$,-1)} (q2)\r\n(q2) edge [loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q2)\r\n(q2) edge node {(\\#,$\\epsilon$,+1)} (q3)\r\n(q3) edge node {(C,$\\epsilon$,+1)} (q4)\r\n(q3) edge[bend right] node {(V,$\\epsilon$,+1)} (q4)\r\n(q4) edge node {(\\v{V},gi,+1)} (q5)\r\n(q4) edge[bend right] node {(V:,gi:,+1)} (q5)\r\n(q5) edge[loop right] node {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 0, '#Echo reduplication with vowel length maintenance-- default Indic behavior\r\n#The word-initial syllable is replaced with [gi] and its old coda\r\n#If the word-initial syllable had a long vowel, vowel length is transmitted to the reduplicant\r\n#This file requires that the input be broken into a string of symbols separated by space because length is represented as a multicharacter symbol\r\n#e.g. \"p a r a\" --> para~gira, \"s t a r a\" --> stara~gira, \"a r a\" --> ara~gira\r\n#e.g. \"p a: r a\" --> pa:ra~gi:ra, \"s t a: r a\" --> sta:ra~gi:ra, \"a: r a\" --> a:ra~gi:ra\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'go back to start\',\'start second copy with replacements\',\'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\' ) = (\'output first copy\', \'\', 1 )\r\n(\'output first copy\', \\alphabet ) = ( \'output first copy\', \\ID, 1 )\r\n(\'output first copy\', \'%\' ) = ( \'go back to start\', \'\', -1 )\r\n(\'go back to start\', \\alphabet ) = ( \'go back to start\', \'\', -1 )\r\n(\'go back to start\', \'#\' ) = ( \'start second copy with replacements\', \'~\', 1 )\r\n(\'start second copy with replacements\', \\consonants ) = ( \'start second copy with replacements\', \'\', 1 )\r\n(\'start second copy with replacements\', \\short_vowels) = ( \'output second copy\', \'gi\', 1 )\r\n(\'start second copy with replacements\', \\long_vowels) = ( \'output second copy\', \'gi:\', 1 )\r\n(\'output second copy\', \\alphabet) = (\'output second copy\' , \\ID , 1)\r\n(\'output second copy\', \'%\' ) = (\'end\', \'\', 1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Echo reduplication with vowel length maintenance-- default Indic behavior\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 go back to start\r\n4 start second copy with replacements\r\n5 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,#,4,~,1\r\n3,+,3,,-1\r\n3,.,3,,-1\r\n3,`a,3,,-1\r\n3,`a:,3,,-1\r\n3,`e,3,,-1\r\n3,`e:,3,,-1\r\n3,`i,3,,-1\r\n3,`i:,3,,-1\r\n3,`o,3,,-1\r\n3,`o:,3,,-1\r\n3,`u,3,,-1\r\n3,`u:,3,,-1\r\n3,`y,3,,-1\r\n3,`y:,3,,-1\r\n3,a,3,,-1\r\n3,a:,3,,-1\r\n3,b,3,,-1\r\n3,c,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,e:,3,,-1\r\n3,f,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,i:,3,,-1\r\n3,j,3,,-1\r\n3,k,3,,-1\r\n3,l,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,o:,3,,-1\r\n3,p,3,,-1\r\n3,q,3,,-1\r\n3,r,3,,-1\r\n3,s,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,u:,3,,-1\r\n3,v,3,,-1\r\n3,w,3,,-1\r\n3,x,3,,-1\r\n3,y,3,,-1\r\n3,y:,3,,-1\r\n3,z,3,,-1\r\n4,`a,5,gi,1\r\n4,`a:,5,gi:,1\r\n4,`e,5,gi,1\r\n4,`e:,5,gi:,1\r\n4,`i,5,gi,1\r\n4,`i:,5,gi:,1\r\n4,`o,5,gi,1\r\n4,`o:,5,gi:,1\r\n4,`u,5,gi,1\r\n4,`u:,5,gi:,1\r\n4,`y,5,gi,1\r\n4,`y:,5,gi:,1\r\n4,a,5,gi,1\r\n4,a:,5,gi:,1\r\n4,b,4,,1\r\n4,c,4,,1\r\n4,d,4,,1\r\n4,e,5,gi,1\r\n4,e:,5,gi:,1\r\n4,f,4,,1\r\n4,g,4,,1\r\n4,h,4,,1\r\n4,i,5,gi,1\r\n4,i:,5,gi:,1\r\n4,j,4,,1\r\n4,k,4,,1\r\n4,l,4,,1\r\n4,m,4,,1\r\n4,n,4,,1\r\n4,o,5,gi,1\r\n4,o:,5,gi:,1\r\n4,p,4,,1\r\n4,q,4,,1\r\n4,r,4,,1\r\n4,s,4,,1\r\n4,t,4,,1\r\n4,u,5,gi,1\r\n4,u:,5,gi:,1\r\n4,v,4,,1\r\n4,w,4,,1\r\n4,x,4,,1\r\n4,y,5,gi,1\r\n4,y:,5,gi:,1\r\n4,z,4,,1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n'),
('Final C - General ', '| Input | Output |\r\n|-------|--------------|\r\n| X-C | X-C\\~C |\r\n| XYZ-C | XYZ-C$\\~C |', 'Input=#X-C$ where X is any string of symbols\r\nOutput=#X-C\\~C%\r\nThe word-final C string is repeated. I assume there are reasons why this isn\'t just called gemination. \r\n', '\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-7 goes back to the last C, ouputs it as a reduplicant, and then ends.\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [below of=q1] {$q_3$};\r\n\\node[state,accepting] (q4) [right of =q3] {$q_4$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\sim$,-1)} (q2)\r\n(q2) edge node {(C,C,+1)} (q3)\r\n(q3) edge[loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q3)\r\n(q3) edge node[below] {(\\%,$\\epsilon$,+1)} (q4)\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n\r\n', 0, '#Final consonant reduplication\r\n#The final consonant in the input is reduplicated\r\n#The function is not defined for any input which ends with anything other than C\r\n#e.g. par --> par~r, para --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'start second copy with replacements\',\'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\alphabet) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'~\',-1)\r\n(\'return\', \\consonants) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final consonant reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 start second copy with replacements\r\n5 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,~,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,b,5,b,1\r\n3,c,5,c,1\r\n3,d,5,d,1\r\n3,f,5,f,1\r\n3,g,5,g,1\r\n3,h,5,h,1\r\n3,j,5,j,1\r\n3,k,5,k,1\r\n3,l,5,l,1\r\n3,m,5,m,1\r\n3,n,5,n,1\r\n3,p,5,p,1\r\n3,q,5,q,1\r\n3,r,5,r,1\r\n3,s,5,s,1\r\n3,t,5,t,1\r\n3,v,5,v,1\r\n3,w,5,w,1\r\n3,x,5,x,1\r\n3,z,5,z,1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n'),
('Final CV - final coda skiped + RED inside base', '| Input | Output |\r\n|---------|------------|\r\n| X-CV | X-CV-CV |\r\n| X-CVC | X-CV-CVC |\r\n| XYZ-CV | XYZ-CV-CV |\r\n| XYZ-CVC | XYZ-CV-CVC |', 'Two allomorphs\r\nInput=#X-CV-(C~f~)$ where X is any string of symbols\r\nOutput=#X-CV\\~CV-(C~f~)%\r\nIf the word ends in CV, the final string is repeated. Else if the word ends in CVC~f~,then the CV is repeated and placed before the final C\r\n', '\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base once until the last CV\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-3 make sure that C isnt outputed unless nonfinal\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q4 and up handle the last CV(C) both in base and red\r\n\\node[state] (q4) [below of=q0] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state] (q7) [right of=q6] {$q_7$};\r\n\\node[state] (q8) [below of=q6] {$q_8$};\r\n\\node[state] (q9) [right of=q8] {$q_9$};\r\n\\node[state] (q10) [right of=q9] {$q_{10}$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {(V,V,+1)} (q1)\r\n(q1) edge node {(C,$\\epsilon$,+1)} (q2)\r\n(q2) edge node {($\\Sigma$,$\\epsilon$,-1)} (q3)\r\n(q3) edge[bend right=45] node[above] {(C,C,+1)} (q1)\r\n\r\n\r\n\r\n(q1) edge node[left] {(\\%,$\\epsilon$,-1)} (q4)\r\n(q2) edge node {(\\%,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(C,$\\epsilon$,-1)} (q5)\r\n(q4) edge[bend right] node {(V,$\\epsilon$,-1)} (q6)\r\n(q5) edge node {(V,$\\epsilon$,-1)} (q6)\r\n(q6) edge node {(C,$\\sim$C,+1)} (q7)\r\n(q7) edge node {(V,V,+1)} (q8)\r\n(q8) edge node {(C,C,+1)} (q9)\r\n(q8) edge[bend right] node[below] {(\\%,\\%,+1)} (q10)\r\n(q9) edge node {(\\%,$\\epsilon$,+1)} (q10)\r\n\r\n\r\n\r\n\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\nQ', 1, '#Final CV reduplication without coda and within the syllable\r\n#The final CV syllable is reduplicated. If it has a (simplex) coda, then the simplex coda is placed after both copies\r\n#The function is not defined for words which end in anything other than CV or CVC\r\n#e.g. kipar --> kipa~par, kipa --> kipa~pa, kipart --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'check if reached final C\',\'wasnt final C\',\'return\',\'skipping final C in reduplicant\',\'skipping final V in reduplicant\',\'output second copys C\',\'output second copys CV\',\'output second copys CVC\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\vowels) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \\consonants) = (\'check if reached final C\', \'\', 1)\r\n(\'check if reached final C\', \\alphabet ) = (\'wasnt final C\', \'\',-1)\r\n(\'wasnt final C\', \\consonants) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'\',-1)\r\n(\'check if reached final C\',\'%\') = (\'return\', \'\',-1) \r\n(\'return\', \\consonants) = (\'skipping final C in reduplicant\', \'\',-1)\r\n(\'return\', \\vowels) = (\'skipping final V in reduplicant\',\'\', -1)\r\n(\'skipping final C in reduplicant\', \\vowels )=( \'skipping final V in reduplicant\', \'\',-1)\r\n(\'skipping final V in reduplicant\', \\consonants) = (\'output second copys C\', [\'~\'+\\ID], 1)\r\n(\'output second copys C\' , \\vowels) = (\'output second copys CV\' ,\\ID, 1))\r\n(\'output second copys CV\' , \\consonants) = (\'output second copys CVC\',\\ID,1)\r\n(\'output second copys CV\', \'%\') = (\'end\', \'\', 1)\r\n(\'output second copys CVC\', \'%\') = (\'end\', \'\', 1) ', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final CV reduplication without coda and within the syllable\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 check if reached final C\r\n4 wasnt final C\r\n5 return\r\n6 skipping final C in reduplicant\r\n7 skipping final V in reduplicant\r\n8 output second copys C\r\n9 output second copys CV\r\n10 output second copys CVC\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,%,1,,1\r\n2,%,5,,-1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,3,,1\r\n2,c,3,,1\r\n2,d,3,,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,3,,1\r\n2,g,3,,1\r\n2,h,3,,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,3,,1\r\n2,k,3,,1\r\n2,l,3,,1\r\n2,m,3,,1\r\n2,n,3,,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,3,,1\r\n2,q,3,,1\r\n2,r,3,,1\r\n2,s,3,,1\r\n2,t,3,,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,3,,1\r\n2,w,3,,1\r\n2,x,3,,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,3,,1\r\n3,%,5,,-1\r\n3,+,4,,-1\r\n3,.,4,,-1\r\n3,`a,4,,-1\r\n3,`a:,4,,-1\r\n3,`e,4,,-1\r\n3,`e:,4,,-1\r\n3,`i,4,,-1\r\n3,`i:,4,,-1\r\n3,`o,4,,-1\r\n3,`o:,4,,-1\r\n3,`u,4,,-1\r\n3,`u:,4,,-1\r\n3,`y,4,,-1\r\n3,`y:,4,,-1\r\n3,a,4,,-1\r\n3,a:,4,,-1\r\n3,b,4,,-1\r\n3,c,4,,-1\r\n3,d,4,,-1\r\n3,e,4,,-1\r\n3,e:,4,,-1\r\n3,f,4,,-1\r\n3,g,4,,-1\r\n3,h,4,,-1\r\n3,i,4,,-1\r\n3,i:,4,,-1\r\n3,j,4,,-1\r\n3,k,4,,-1\r\n3,l,4,,-1\r\n3,m,4,,-1\r\n3,n,4,,-1\r\n3,o,4,,-1\r\n3,o:,4,,-1\r\n3,p,4,,-1\r\n3,q,4,,-1\r\n3,r,4,,-1\r\n3,s,4,,-1\r\n3,t,4,,-1\r\n3,u,4,,-1\r\n3,u:,4,,-1\r\n3,v,4,,-1\r\n3,w,4,,-1\r\n3,x,4,,-1\r\n3,y,4,,-1\r\n3,y:,4,,-1\r\n3,z,4,,-1\r\n4,b,2,b,1\r\n4,c,2,c,1\r\n4,d,2,d,1\r\n4,f,2,f,1\r\n4,g,2,g,1\r\n4,h,2,h,1\r\n4,j,2,j,1\r\n4,k,2,k,1\r\n4,l,2,l,1\r\n4,m,2,m,1\r\n4,n,2,n,1\r\n4,p,2,p,1\r\n4,q,2,q,1\r\n4,r,2,r,1\r\n4,s,2,s,1\r\n4,t,2,t,1\r\n4,v,2,v,1\r\n4,w,2,w,1\r\n4,x,2,x,1\r\n4,z,2,z,1\r\n5,`a,7,,-1\r\n5,`a:,7,,-1\r\n5,`e,7,,-1\r\n5,`e:,7,,-1\r\n5,`i,7,,-1\r\n5,`i:,7,,-1\r\n5,`o,7,,-1\r\n5,`o:,7,,-1\r\n5,`u,7,,-1\r\n5,`u:,7,,-1\r\n5,`y,7,,-1\r\n5,`y:,7,,-1\r\n5,a,7,,-1\r\n5,a:,7,,-1\r\n5,b,6,,-1\r\n5,c,6,,-1\r\n5,d,6,,-1\r\n5,e,7,,-1\r\n5,e:,7,,-1\r\n5,f,6,,-1\r\n5,g,6,,-1\r\n5,h,6,,-1\r\n5,i,7,,-1\r\n5,i:,7,,-1\r\n5,j,6,,-1\r\n5,k,6,,-1\r\n5,l,6,,-1\r\n5,m,6,,-1\r\n5,n,6,,-1\r\n5,o,7,,-1\r\n5,o:,7,,-1\r\n5,p,6,,-1\r\n5,q,6,,-1\r\n5,r,6,,-1\r\n5,s,6,,-1\r\n5,t,6,,-1\r\n5,u,7,,-1\r\n5,u:,7,,-1\r\n5,v,6,,-1\r\n5,w,6,,-1\r\n5,x,6,,-1\r\n5,y,7,,-1\r\n5,y:,7,,-1\r\n5,z,6,,-1\r\n6,`a,7,,-1\r\n6,`a:,7,,-1\r\n6,`e,7,,-1\r\n6,`e:,7,,-1\r\n6,`i,7,,-1\r\n6,`i:,7,,-1\r\n6,`o,7,,-1\r\n6,`o:,7,,-1\r\n6,`u,7,,-1\r\n6,`u:,7,,-1\r\n6,`y,7,,-1\r\n6,`y:,7,,-1\r\n6,a,7,,-1\r\n6,a:,7,,-1\r\n6,e,7,,-1\r\n6,e:,7,,-1\r\n6,i,7,,-1\r\n6,i:,7,,-1\r\n6,o,7,,-1\r\n6,o:,7,,-1\r\n6,u,7,,-1\r\n6,u:,7,,-1\r\n6,y,7,,-1\r\n6,y:,7,,-1\r\n7,b,8,~\'+\\I,1\r\n7,c,8,~\'+\\I,1\r\n7,d,8,~\'+\\I,1\r\n7,f,8,~\'+\\I,1\r\n7,g,8,~\'+\\I,1\r\n7,h,8,~\'+\\I,1\r\n7,j,8,~\'+\\I,1\r\n7,k,8,~\'+\\I,1\r\n7,l,8,~\'+\\I,1\r\n7,m,8,~\'+\\I,1\r\n7,n,8,~\'+\\I,1\r\n7,p,8,~\'+\\I,1\r\n7,q,8,~\'+\\I,1\r\n7,r,8,~\'+\\I,1\r\n7,s,8,~\'+\\I,1\r\n7,t,8,~\'+\\I,1\r\n7,v,8,~\'+\\I,1\r\n7,w,8,~\'+\\I,1\r\n7,x,8,~\'+\\I,1\r\n7,z,8,~\'+\\I,1\r\n8,`a,9,`a,1\r\n8,`a:,9,`a:,1\r\n8,`e,9,`e,1\r\n8,`e:,9,`e:,1\r\n8,`i,9,`i,1\r\n8,`i:,9,`i:,1\r\n8,`o,9,`o,1\r\n8,`o:,9,`o:,1\r\n8,`u,9,`u,1\r\n8,`u:,9,`u:,1\r\n8,`y,9,`y,1\r\n8,`y:,9,`y:,1\r\n8,a,9,a,1\r\n8,a:,9,a:,1\r\n8,e,9,e,1\r\n8,e:,9,e:,1\r\n8,i,9,i,1\r\n8,i:,9,i:,1\r\n8,o,9,o,1\r\n8,o:,9,o:,1\r\n8,u,9,u,1\r\n8,u:,9,u:,1\r\n8,y,9,y,1\r\n8,y:,9,y:,1\r\n9,%,1,,1\r\n9,b,10,b,1\r\n9,c,10,c,1\r\n9,d,10,d,1\r\n9,f,10,f,1\r\n9,g,10,g,1\r\n9,h,10,h,1\r\n9,j,10,j,1\r\n9,k,10,k,1\r\n9,l,10,l,1\r\n9,m,10,m,1\r\n9,n,10,n,1\r\n9,p,10,p,1\r\n9,q,10,q,1\r\n9,r,10,r,1\r\n9,s,10,s,1\r\n9,t,10,t,1\r\n9,v,10,v,1\r\n9,w,10,w,1\r\n9,x,10,x,1\r\n9,z,10,z,1\r\n'),
('Final CV - General reduplication', '| Input | Output |\r\n|--------|-----------|\r\n| X-CV | X-CV-CV |', 'Input=#X-CV$ where X is any string of symbols\r\nOutput=#X-CV\\~CV%\r\nThe word-final CV string is repeated. I assume that inputs ends with CV and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the base once\r\n\\node[state] (q2) [right of=q0] {$q_2$};\r\n%states q4-9 goes back to the last CV, ouputs it as a reduplicant, and then ends.\r\n\\node[state] (q4) [below of=q2] {$q_4$};\r\n\\node[state] (q5) [left of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q5] {$q_6$};\r\n\\node[state] (q7) [right of=q6] {$q_7$};\r\n\\node[state,accepting] (q8) [right of=q7] {$q_8$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q2)\r\n(q2) edge[loop above] node {($\\Sigma$,$\\Simga$,+1)} (q2)\r\n(q2) edge node {(\\%,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(V,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(C,$\\sim$C,+1)} (q6)\r\n(q6) edge node {(V,V,+1)} (q7)\r\n(q7) edge node[below] {(\\%,$\\epsilon$,1)} (q8)\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Final CV reduplication without coda and within the syllable\r\n#The final CV syllable is reduplicated.\r\n#This will work for any word ending in CV. \r\n#The function is undefined for any word that ends in any substring which isnt CV\r\n#e.g. kipa --> kipa~pa, kipar --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'skipping final V in reduplicant\',\'output second copys C\',\'output second copys V\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\',1)\r\n(\'output first copy\', \\alphabet ) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'\', -1)\r\n(\'return\', \\vowels) = (\'skipping final V in reduplicant\',\'\',-1)\r\n(\'skipping final V in reduplicant\', \\consonants) = (\'output second copys C\', [\'~\' \\ID], 1)\r\n(\'output second copys C\', \\vowels) = (\'output second copys V\', \\ID, 1)\r\n(\'output second copys V\', \'%\') = (\'end\', \'\', 1) ', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final CV reduplication without coda and within the syllable\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 skipping final V in reduplicant\r\n5 output second copys C\r\n6 output second copys V\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,`a,4,,-1\r\n3,`a:,4,,-1\r\n3,`e,4,,-1\r\n3,`e:,4,,-1\r\n3,`i,4,,-1\r\n3,`i:,4,,-1\r\n3,`o,4,,-1\r\n3,`o:,4,,-1\r\n3,`u,4,,-1\r\n3,`u:,4,,-1\r\n3,`y,4,,-1\r\n3,`y:,4,,-1\r\n3,a,4,,-1\r\n3,a:,4,,-1\r\n3,e,4,,-1\r\n3,e:,4,,-1\r\n3,i,4,,-1\r\n3,i:,4,,-1\r\n3,o,4,,-1\r\n3,o:,4,,-1\r\n3,u,4,,-1\r\n3,u:,4,,-1\r\n3,y,4,,-1\r\n3,y:,4,,-1\r\n4,b,5,~b,1\r\n4,c,5,~c,1\r\n4,d,5,~d,1\r\n4,f,5,~f,1\r\n4,g,5,~g,1\r\n4,h,5,~h,1\r\n4,j,5,~j,1\r\n4,k,5,~k,1\r\n4,l,5,~l,1\r\n4,m,5,~m,1\r\n4,n,5,~n,1\r\n4,p,5,~p,1\r\n4,q,5,~q,1\r\n4,r,5,~r,1\r\n4,s,5,~s,1\r\n4,t,5,~t,1\r\n4,v,5,~v,1\r\n4,w,5,~w,1\r\n4,x,5,~x,1\r\n4,z,5,~z,1\r\n5,`a,6,`a,1\r\n5,`a:,6,`a:,1\r\n5,`e,6,`e,1\r\n5,`e:,6,`e:,1\r\n5,`i,6,`i,1\r\n5,`i:,6,`i:,1\r\n5,`o,6,`o,1\r\n5,`o:,6,`o:,1\r\n5,`u,6,`u,1\r\n5,`u:,6,`u:,1\r\n5,`y,6,`y,1\r\n5,`y:,6,`y:,1\r\n5,a,6,a,1\r\n5,a:,6,a:,1\r\n5,e,6,e,1\r\n5,e:,6,e:,1\r\n5,i,6,i,1\r\n5,i:,6,i:,1\r\n5,o,6,o,1\r\n5,o:,6,o:,1\r\n5,u,6,u,1\r\n5,u:,6,u:,1\r\n5,y,6,y,1\r\n5,y:,6,y:,1\r\n6,%,1,,1\r\n'),
('Final CVC - complex onsets & codaless vowels are okay', '| Input | Output |\r\n|--------|-------------|\r\n| X-CVC | X-CVC-CVC |\r\n| X-CV | X-CV-CV |\r\n| X-CCVC | X-CCVC-CCVC |\r\n| X-CCV | X-CCV-CCV |', 'Two allomorphs\r\nInput=#X-B$ where X is any string of symbols and B is ( C ) CV ( C )\r\nOutput=#X-B~B%\r\n\r\nThe word-final ( C ) CV ( C ) is repeated. Complex onsets are copied. Codaless vowels are okay', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-7 goes back to the last CVC, ouputs it as a reduplicant, and then ends.\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q1] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\sim$,-1)} (q2)\r\n(q2) edge node {(C,$\\epsilon$,-1)} (q3)\r\n(q2) edge[bend left] node {(V,$\\epsilon$,-1)} (q4)\r\n(q3) edge node {(V,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(C,$\\epsilon$,-1)} (q5)\r\n(q5) edge[bend left] node {(C,C,+1)} (q6)\r\n(q5) edge node {(\\{\\#,V\\},$\\epsilon$,+1)} (q6)\r\n(q6) edge[loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Final CVC reduplication, complex onsets and codaless syllables are allowed\r\n#The final CVC syllable is reduplicated.\r\n#If the final syllable doesnt have a coda, it is still copied\r\n#If the final vowel follows two consonants, they are both copied\r\n#The bibliography so far was ambiguous on syllabification. \r\n#If it\'s really about syllable boundaries, then they can be added later\r\n#The function is not defined for an onsetless final syllable\r\n#e.g. kipa --> kipa~pa, kipar --> kipar --> kipar~par, kispar --> kispar~spar, ar--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'skipping final C\', \'skipping final V\', \'skipping final onset\',\'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\alphabet ) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'~\', -1)\r\n(\'return\', \\consonants) = (\'skipping final C\', \'\',-1)\r\n(\'return\', \\vowels) = (\'skipping final V\', \'\', -1)\r\n(\'skipping final C\', \\vowels ) = (\'skipping final V\', \'\',-1)\r\n(\'skipping final V\', \\consonants) =(\'skipping final onset\', \'\', -1)\r\n(\'skipping final onset\', \\consonants) = (\'output second copy\', \\ID, 1)\r\n(\'skipping final onset\', \'#\') = (\'output second copy\', \'\',1)\r\n(\'skipping final onset\', \\vowels) = (\'output second copy\', \'\',1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)\r\n\r\n\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final CVC reduplication, complex onsets and codaless syllables are allowed\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 skipping final C\r\n5 skipping final V\r\n6 skipping final onset\r\n7 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,~,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,`a,5,,-1\r\n3,`a:,5,,-1\r\n3,`e,5,,-1\r\n3,`e:,5,,-1\r\n3,`i,5,,-1\r\n3,`i:,5,,-1\r\n3,`o,5,,-1\r\n3,`o:,5,,-1\r\n3,`u,5,,-1\r\n3,`u:,5,,-1\r\n3,`y,5,,-1\r\n3,`y:,5,,-1\r\n3,a,5,,-1\r\n3,a:,5,,-1\r\n3,b,4,,-1\r\n3,c,4,,-1\r\n3,d,4,,-1\r\n3,e,5,,-1\r\n3,e:,5,,-1\r\n3,f,4,,-1\r\n3,g,4,,-1\r\n3,h,4,,-1\r\n3,i,5,,-1\r\n3,i:,5,,-1\r\n3,j,4,,-1\r\n3,k,4,,-1\r\n3,l,4,,-1\r\n3,m,4,,-1\r\n3,n,4,,-1\r\n3,o,5,,-1\r\n3,o:,5,,-1\r\n3,p,4,,-1\r\n3,q,4,,-1\r\n3,r,4,,-1\r\n3,s,4,,-1\r\n3,t,4,,-1\r\n3,u,5,,-1\r\n3,u:,5,,-1\r\n3,v,4,,-1\r\n3,w,4,,-1\r\n3,x,4,,-1\r\n3,y,5,,-1\r\n3,y:,5,,-1\r\n3,z,4,,-1\r\n4,`a,5,,-1\r\n4,`a:,5,,-1\r\n4,`e,5,,-1\r\n4,`e:,5,,-1\r\n4,`i,5,,-1\r\n4,`i:,5,,-1\r\n4,`o,5,,-1\r\n4,`o:,5,,-1\r\n4,`u,5,,-1\r\n4,`u:,5,,-1\r\n4,`y,5,,-1\r\n4,`y:,5,,-1\r\n4,a,5,,-1\r\n4,a:,5,,-1\r\n4,e,5,,-1\r\n4,e:,5,,-1\r\n4,i,5,,-1\r\n4,i:,5,,-1\r\n4,o,5,,-1\r\n4,o:,5,,-1\r\n4,u,5,,-1\r\n4,u:,5,,-1\r\n4,y,5,,-1\r\n4,y:,5,,-1\r\n5,b,6,,-1\r\n5,c,6,,-1\r\n5,d,6,,-1\r\n5,f,6,,-1\r\n5,g,6,,-1\r\n5,h,6,,-1\r\n5,j,6,,-1\r\n5,k,6,,-1\r\n5,l,6,,-1\r\n5,m,6,,-1\r\n5,n,6,,-1\r\n5,p,6,,-1\r\n5,q,6,,-1\r\n5,r,6,,-1\r\n5,s,6,,-1\r\n5,t,6,,-1\r\n5,v,6,,-1\r\n5,w,6,,-1\r\n5,x,6,,-1\r\n5,z,6,,-1\r\n6,#,7,,1\r\n6,`a,7,,1\r\n6,`a:,7,,1\r\n6,`e,7,,1\r\n6,`e:,7,,1\r\n6,`i,7,,1\r\n6,`i:,7,,1\r\n6,`o,7,,1\r\n6,`o:,7,,1\r\n6,`u,7,,1\r\n6,`u:,7,,1\r\n6,`y,7,,1\r\n6,`y:,7,,1\r\n6,a,7,,1\r\n6,a:,7,,1\r\n6,b,7,b,1\r\n6,c,7,c,1\r\n6,d,7,d,1\r\n6,e,7,,1\r\n6,e:,7,,1\r\n6,f,7,f,1\r\n6,g,7,g,1\r\n6,h,7,h,1\r\n6,i,7,,1\r\n6,i:,7,,1\r\n6,j,7,j,1\r\n6,k,7,k,1\r\n6,l,7,l,1\r\n6,m,7,m,1\r\n6,n,7,n,1\r\n6,o,7,,1\r\n6,o:,7,,1\r\n6,p,7,p,1\r\n6,q,7,q,1\r\n6,r,7,r,1\r\n6,s,7,s,1\r\n6,t,7,t,1\r\n6,u,7,,1\r\n6,u:,7,,1\r\n6,v,7,v,1\r\n6,w,7,w,1\r\n6,x,7,x,1\r\n6,y,7,,1\r\n6,y:,7,,1\r\n6,z,7,z,1\r\n7,%,1,,1\r\n7,+,7,+,1\r\n7,.,7,.,1\r\n7,`a,7,`a,1\r\n7,`a:,7,`a:,1\r\n7,`e,7,`e,1\r\n7,`e:,7,`e:,1\r\n7,`i,7,`i,1\r\n7,`i:,7,`i:,1\r\n7,`o,7,`o,1\r\n7,`o:,7,`o:,1\r\n7,`u,7,`u,1\r\n7,`u:,7,`u:,1\r\n7,`y,7,`y,1\r\n7,`y:,7,`y:,1\r\n7,a,7,a,1\r\n7,a:,7,a:,1\r\n7,b,7,b,1\r\n7,c,7,c,1\r\n7,d,7,d,1\r\n7,e,7,e,1\r\n7,e:,7,e:,1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,7,i,1\r\n7,i:,7,i:,1\r\n7,j,7,j,1\r\n7,k,7,k,1\r\n7,l,7,l,1\r\n7,m,7,m,1\r\n7,n,7,n,1\r\n7,o,7,o,1\r\n7,o:,7,o:,1\r\n7,p,7,p,1\r\n7,q,7,q,1\r\n7,r,7,r,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,7,u,1\r\n7,u:,7,u:,1\r\n7,v,7,v,1\r\n7,w,7,w,1\r\n7,x,7,x,1\r\n7,y,7,y,1\r\n7,y:,7,y:,1\r\n7,z,7,z,1\r\n'),
('Final CVC - General reduplication ', '| Input | Output |\r\n|---------|-------------|\r\n| X-CVC | X-CVC-CVC |', 'Input=#X-CVC$ where X is any string of symbols\r\nOutput=#X-CVC\\~CVC%\r\nThe word-final CVC string is repeated. I assume that inputs ends with CVC and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-4 outputs the base once\r\n\\node[state] (q2) [right of=q0] {$q_2$};\r\n\\node[state] (q4) [below of=q2] {$q_4$};\r\n%states q5-9 goes back to the last CVC, ouputs it as a reduplicant, and then ends.\r\n\\node[state] (q5) [left of=q4] {$q_5$};\r\n\\node[state] (q6) [left of=q5] {$q_6$};\r\n\\node[state] (q7) [below of=q6] {$q_7$};\r\n\\node[state,accepting] (q8) [right of=q7] {$q_8$};\r\n \r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q2)\r\n\r\n(q2) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q2)\r\n(q2) edge node {(\\%,$\\epsilon$,-1)} (q4)\r\n\r\n(q4) edge node {(C,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(V,$\\epsilon$,-1)} (q6)\r\n(q6) edge node {(C,C,+1)} (q7)\r\n(q7) edge[loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q7)\r\n(q7) edge node[below] {(\\%,$\\epsilon$,+1)} (q8)\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 0, '#Final CVC reduplication\r\n#The final CVC syllable is reduplicated.\r\n#The function is undefined for any word which ends in anything other than CVC\r\n#e.g. kipar --> kipar~par, kipa --> kipa~undefined, ar--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'skipping final C\', \'skipping final VC\', \'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\alphabet ) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'~\', -1)\r\n(\'return\', \\consonants) = (\'skipping final C\', \'\',-1)\r\n(\'skipping final C\', \\vowels ) = (\'skipping final VC\', \'\',-1)\r\n(\'skipping final VC\', \\consonants) =(\'output second copy\', \\ID,1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final CVC reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 skipping final C\r\n5 skipping final VC\r\n6 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,~,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,b,4,,-1\r\n3,c,4,,-1\r\n3,d,4,,-1\r\n3,f,4,,-1\r\n3,g,4,,-1\r\n3,h,4,,-1\r\n3,j,4,,-1\r\n3,k,4,,-1\r\n3,l,4,,-1\r\n3,m,4,,-1\r\n3,n,4,,-1\r\n3,p,4,,-1\r\n3,q,4,,-1\r\n3,r,4,,-1\r\n3,s,4,,-1\r\n3,t,4,,-1\r\n3,v,4,,-1\r\n3,w,4,,-1\r\n3,x,4,,-1\r\n3,z,4,,-1\r\n4,`a,5,,-1\r\n4,`a:,5,,-1\r\n4,`e,5,,-1\r\n4,`e:,5,,-1\r\n4,`i,5,,-1\r\n4,`i:,5,,-1\r\n4,`o,5,,-1\r\n4,`o:,5,,-1\r\n4,`u,5,,-1\r\n4,`u:,5,,-1\r\n4,`y,5,,-1\r\n4,`y:,5,,-1\r\n4,a,5,,-1\r\n4,a:,5,,-1\r\n4,e,5,,-1\r\n4,e:,5,,-1\r\n4,i,5,,-1\r\n4,i:,5,,-1\r\n4,o,5,,-1\r\n4,o:,5,,-1\r\n4,u,5,,-1\r\n4,u:,5,,-1\r\n4,y,5,,-1\r\n4,y:,5,,-1\r\n5,b,6,b,1\r\n5,c,6,c,1\r\n5,d,6,d,1\r\n5,f,6,f,1\r\n5,g,6,g,1\r\n5,h,6,h,1\r\n5,j,6,j,1\r\n5,k,6,k,1\r\n5,l,6,l,1\r\n5,m,6,m,1\r\n5,n,6,n,1\r\n5,p,6,p,1\r\n5,q,6,q,1\r\n5,r,6,r,1\r\n5,s,6,s,1\r\n5,t,6,t,1\r\n5,v,6,v,1\r\n5,w,6,w,1\r\n5,x,6,x,1\r\n5,z,6,z,1\r\n6,%,1,,1\r\n6,+,6,+,1\r\n6,.,6,.,1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n');
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('Final CVC - If no coda then add C between copies', '| Input | Output |\r\n|-------|-----------|\r\n| X-CVC | X-CVC-CVC |\r\n| X-CV | X-CV-t-CV |', 'Two allomorphs\r\na) Input=#X-CVC$ where X is any string of symbols\r\nOutput=#X-CVC\\~CVC%\r\nb) Input=#X-CV$ where X is any string of symbols\r\nOutput=#X-CV-t\\~CV%\r\nIf word ends in CVC, then CVC is repeated. Else if the word ends in CV, then an infix [t] is added and CV is copied', ' \r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-7 goes back to the last CVC, ouputs it as a reduplicant, and then ends.\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [below of=q1] {$q_5$};\r\n\\node[state,accepting] (q6) [right of=q5] {$q_6$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\epsilon$,-1)} (q2)\r\n(q2) edge node {(C,$\\epsilon$,-1)} (q3)\r\n(q2) edge node {(V,t$\\sim$,-1)} (q4)\r\n\r\n(q3) edge node {(V,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(C,C,+1)} (q5)\r\n(q5) edge[loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node[below] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Final CVC reduplication with C-epenthesis in case theres no coda\r\n#The final CVC syllable is reduplicated.\r\n#If the word ends in an open syllable CV, then a consonant is epenthesized between the two copies\r\n#I assume the epenthetic consonant is [t]\r\n#The function is undefined for any word which ends in anything other than CV or CVC\r\n#e.g. kipar --> kipar~par, kipa --> kipat~pa, ar--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'skipping final C\', \'skipping final VC\', \'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\alphabet ) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'\', -1)\r\n(\'return\', \\consonants) = (\'skipping final C\', \'\',-1)\r\n(\'skipping final C\', \\vowels ) = (\'skipping final VC\', \'\',-1)\r\n(\'skipping final VC\', \\consonants) =(\'output second copy\', \\ID,1)\r\n(\'return\', \\vowels) = (\'skipping final VC\', \'t~\',-1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final CVC reduplication with C-epenthesis in case theres no coda\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 skipping final C\r\n5 skipping final VC\r\n6 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,`a,5,t~,-1\r\n3,`a:,5,t~,-1\r\n3,`e,5,t~,-1\r\n3,`e:,5,t~,-1\r\n3,`i,5,t~,-1\r\n3,`i:,5,t~,-1\r\n3,`o,5,t~,-1\r\n3,`o:,5,t~,-1\r\n3,`u,5,t~,-1\r\n3,`u:,5,t~,-1\r\n3,`y,5,t~,-1\r\n3,`y:,5,t~,-1\r\n3,a,5,t~,-1\r\n3,a:,5,t~,-1\r\n3,b,4,,-1\r\n3,c,4,,-1\r\n3,d,4,,-1\r\n3,e,5,t~,-1\r\n3,e:,5,t~,-1\r\n3,f,4,,-1\r\n3,g,4,,-1\r\n3,h,4,,-1\r\n3,i,5,t~,-1\r\n3,i:,5,t~,-1\r\n3,j,4,,-1\r\n3,k,4,,-1\r\n3,l,4,,-1\r\n3,m,4,,-1\r\n3,n,4,,-1\r\n3,o,5,t~,-1\r\n3,o:,5,t~,-1\r\n3,p,4,,-1\r\n3,q,4,,-1\r\n3,r,4,,-1\r\n3,s,4,,-1\r\n3,t,4,,-1\r\n3,u,5,t~,-1\r\n3,u:,5,t~,-1\r\n3,v,4,,-1\r\n3,w,4,,-1\r\n3,x,4,,-1\r\n3,y,5,t~,-1\r\n3,y:,5,t~,-1\r\n3,z,4,,-1\r\n4,`a,5,,-1\r\n4,`a:,5,,-1\r\n4,`e,5,,-1\r\n4,`e:,5,,-1\r\n4,`i,5,,-1\r\n4,`i:,5,,-1\r\n4,`o,5,,-1\r\n4,`o:,5,,-1\r\n4,`u,5,,-1\r\n4,`u:,5,,-1\r\n4,`y,5,,-1\r\n4,`y:,5,,-1\r\n4,a,5,,-1\r\n4,a:,5,,-1\r\n4,e,5,,-1\r\n4,e:,5,,-1\r\n4,i,5,,-1\r\n4,i:,5,,-1\r\n4,o,5,,-1\r\n4,o:,5,,-1\r\n4,u,5,,-1\r\n4,u:,5,,-1\r\n4,y,5,,-1\r\n4,y:,5,,-1\r\n5,b,6,b,1\r\n5,c,6,c,1\r\n5,d,6,d,1\r\n5,f,6,f,1\r\n5,g,6,g,1\r\n5,h,6,h,1\r\n5,j,6,j,1\r\n5,k,6,k,1\r\n5,l,6,l,1\r\n5,m,6,m,1\r\n5,n,6,n,1\r\n5,p,6,p,1\r\n5,q,6,q,1\r\n5,r,6,r,1\r\n5,s,6,s,1\r\n5,t,6,t,1\r\n5,v,6,v,1\r\n5,w,6,w,1\r\n5,x,6,x,1\r\n5,z,6,z,1\r\n6,%,1,,1\r\n6,+,6,+,1\r\n6,.,6,.,1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n'),
('Final CVCV - Final codas are okay', '| Input | Output |\r\n|--------:|---------------|\r\n| X-CVCV | X-CVCV-CVCV |\r\n| X-CVCVC | X-CVCVC-CVCVC |', 'Two allomorphs\r\nInput=#X-B$ where X is any string of symbols and B is CVCV or CVCVC\r\nOutput=#X-B\\~B%\r\nThe word-final CVCV or CVCVC string is repeated. Thus a final coda in the reduplicant is okay. I assume that inputs ends with CVCV or CVCVC and there is no modification done on the reduplicant. ', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-7 goes back to the last CVCV, ouputs it as a reduplicant, and then ends\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [above right= of q2] {$q_3$};\r\n\\node[state] (q4) [right of=q2] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state] (q7) [below of=q1] {$q_7$};\r\n\\node[state,accepting] (q8) [right of=q7] {$q_8$};\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\sim$,-1)} (q2)\r\n(q2) edge node {(C,$\\epsilon$,-1)} (q3)\r\n(q2) edge node {(V,$\\epsilon$,-1)} (q4)\r\n(q3) edge node {(V,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(C,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(V,$\\epsilon$,-1)} (q6)\r\n(q6) edge node {(C,C,+1)} (q7)\r\n(q7) edge[loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q7)\r\n(q7) edge node[below] {(\\%,$\\epsilon$,+1)} (q8)\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Final CVCV reduplication final coda allowed \r\n#The final CVCV syllable is reduplicated.\r\n#If the word ends in CVCVC, the final C is also copied\r\n#The function is undefined for any word which ends in anything other than CVCV or CVCVC\r\n#e.g. okipa --> okipa~kipa --> okipar~kipar, par--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'skipping final C\', \'skipping final VC\',\'skipping final CVC\',\'skipping final VCVC\', \'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\alphabet ) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'~\', -1)\r\n(\'return\', \\consonants) = (\'skipping final C\', \'\', -1)\r\n(\'return\', \\vowels) = (\'skipping final VC\', \'\', -1)\r\n(\'skipping final C\', \\vowels) = (\'skipping final VC\', \'\',-1)\r\n(\'skipping final VC\', \\consonants) = (\'skipping final CVC\', \'\',-1)\r\n(\'skipping final CVC\', \\vowels) = (\'skipping final VCVC\', \'\', -1)\r\n(\'skipping final VCVC\', \\consonants) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final CVCV reduplication final coda allowed\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 skipping final C\r\n5 skipping final VC\r\n6 skipping final CVC\r\n7 skipping final VCVC\r\n8 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,~,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,`a,5,,-1\r\n3,`a:,5,,-1\r\n3,`e,5,,-1\r\n3,`e:,5,,-1\r\n3,`i,5,,-1\r\n3,`i:,5,,-1\r\n3,`o,5,,-1\r\n3,`o:,5,,-1\r\n3,`u,5,,-1\r\n3,`u:,5,,-1\r\n3,`y,5,,-1\r\n3,`y:,5,,-1\r\n3,a,5,,-1\r\n3,a:,5,,-1\r\n3,b,4,,-1\r\n3,c,4,,-1\r\n3,d,4,,-1\r\n3,e,5,,-1\r\n3,e:,5,,-1\r\n3,f,4,,-1\r\n3,g,4,,-1\r\n3,h,4,,-1\r\n3,i,5,,-1\r\n3,i:,5,,-1\r\n3,j,4,,-1\r\n3,k,4,,-1\r\n3,l,4,,-1\r\n3,m,4,,-1\r\n3,n,4,,-1\r\n3,o,5,,-1\r\n3,o:,5,,-1\r\n3,p,4,,-1\r\n3,q,4,,-1\r\n3,r,4,,-1\r\n3,s,4,,-1\r\n3,t,4,,-1\r\n3,u,5,,-1\r\n3,u:,5,,-1\r\n3,v,4,,-1\r\n3,w,4,,-1\r\n3,x,4,,-1\r\n3,y,5,,-1\r\n3,y:,5,,-1\r\n3,z,4,,-1\r\n4,`a,5,,-1\r\n4,`a:,5,,-1\r\n4,`e,5,,-1\r\n4,`e:,5,,-1\r\n4,`i,5,,-1\r\n4,`i:,5,,-1\r\n4,`o,5,,-1\r\n4,`o:,5,,-1\r\n4,`u,5,,-1\r\n4,`u:,5,,-1\r\n4,`y,5,,-1\r\n4,`y:,5,,-1\r\n4,a,5,,-1\r\n4,a:,5,,-1\r\n4,e,5,,-1\r\n4,e:,5,,-1\r\n4,i,5,,-1\r\n4,i:,5,,-1\r\n4,o,5,,-1\r\n4,o:,5,,-1\r\n4,u,5,,-1\r\n4,u:,5,,-1\r\n4,y,5,,-1\r\n4,y:,5,,-1\r\n5,b,6,,-1\r\n5,c,6,,-1\r\n5,d,6,,-1\r\n5,f,6,,-1\r\n5,g,6,,-1\r\n5,h,6,,-1\r\n5,j,6,,-1\r\n5,k,6,,-1\r\n5,l,6,,-1\r\n5,m,6,,-1\r\n5,n,6,,-1\r\n5,p,6,,-1\r\n5,q,6,,-1\r\n5,r,6,,-1\r\n5,s,6,,-1\r\n5,t,6,,-1\r\n5,v,6,,-1\r\n5,w,6,,-1\r\n5,x,6,,-1\r\n5,z,6,,-1\r\n6,`a,7,,-1\r\n6,`a:,7,,-1\r\n6,`e,7,,-1\r\n6,`e:,7,,-1\r\n6,`i,7,,-1\r\n6,`i:,7,,-1\r\n6,`o,7,,-1\r\n6,`o:,7,,-1\r\n6,`u,7,,-1\r\n6,`u:,7,,-1\r\n6,`y,7,,-1\r\n6,`y:,7,,-1\r\n6,a,7,,-1\r\n6,a:,7,,-1\r\n6,e,7,,-1\r\n6,e:,7,,-1\r\n6,i,7,,-1\r\n6,i:,7,,-1\r\n6,o,7,,-1\r\n6,o:,7,,-1\r\n6,u,7,,-1\r\n6,u:,7,,-1\r\n6,y,7,,-1\r\n6,y:,7,,-1\r\n7,b,8,b,1\r\n7,c,8,c,1\r\n7,d,8,d,1\r\n7,f,8,f,1\r\n7,g,8,g,1\r\n7,h,8,h,1\r\n7,j,8,j,1\r\n7,k,8,k,1\r\n7,l,8,l,1\r\n7,m,8,m,1\r\n7,n,8,n,1\r\n7,p,8,p,1\r\n7,q,8,q,1\r\n7,r,8,r,1\r\n7,s,8,s,1\r\n7,t,8,t,1\r\n7,v,8,v,1\r\n7,w,8,w,1\r\n7,x,8,x,1\r\n7,z,8,z,1\r\n8,%,1,,1\r\n8,+,8,+,1\r\n8,.,8,.,1\r\n8,`a,8,`a,1\r\n8,`a:,8,`a:,1\r\n8,`e,8,`e,1\r\n8,`e:,8,`e:,1\r\n8,`i,8,`i,1\r\n8,`i:,8,`i:,1\r\n8,`o,8,`o,1\r\n8,`o:,8,`o:,1\r\n8,`u,8,`u,1\r\n8,`u:,8,`u:,1\r\n8,`y,8,`y,1\r\n8,`y:,8,`y:,1\r\n8,a,8,a,1\r\n8,a:,8,a:,1\r\n8,b,8,b,1\r\n8,c,8,c,1\r\n8,d,8,d,1\r\n8,e,8,e,1\r\n8,e:,8,e:,1\r\n8,f,8,f,1\r\n8,g,8,g,1\r\n8,h,8,h,1\r\n8,i,8,i,1\r\n8,i:,8,i:,1\r\n8,j,8,j,1\r\n8,k,8,k,1\r\n8,l,8,l,1\r\n8,m,8,m,1\r\n8,n,8,n,1\r\n8,o,8,o,1\r\n8,o:,8,o:,1\r\n8,p,8,p,1\r\n8,q,8,q,1\r\n8,r,8,r,1\r\n8,s,8,s,1\r\n8,t,8,t,1\r\n8,u,8,u,1\r\n8,u:,8,u:,1\r\n8,v,8,v,1\r\n8,w,8,w,1\r\n8,x,8,x,1\r\n8,y,8,y,1\r\n8,y:,8,y:,1\r\n8,z,8,z,1\r\n'),
('Final CVCV - General', '| Input | Output |\r\n|-----------|-----------------|\r\n| X-CVCV | X-CVCV-CVCV |', 'Input=#X-CVCV$ where X is any string of symbols\r\nOutput=#X-CVCV\\~CVCV%\r\nThe word-final CVCV string is repeated. I assume that input ends with CVCV and there is no modification done on the reduplicant. ', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-7 goes back to the last CVCV, ouputs it as a reduplicant, and then ends\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q1] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\sim$,-1)} (q2)\r\n(q2) edge node {(V,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(C,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(V,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(C,C,+1)} (q6)\r\n(q6) edge[loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Final CVCV reduplication \r\n#The final CVCV syllable is reduplicated.\r\n#The function is undefined for any word which ends in anything other than CVCV \r\n#e.g. okipa --> okipa~kipa --> undefined, par--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'skipping final V\',\'skipping final CV\',\'skipping final VCV\', \'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\alphabet ) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'~\', -1)\r\n(\'return\', \\vowels) = (\'skipping final V\', \'\', -1)\r\n(\'skipping final V\', \\consonants) = (\'skipping final CV\', \'\',-1)\r\n(\'skipping final CV\', \\vowels) = (\'skipping final VCV\', \'\', -1)\r\n(\'skipping final VCV\', \\consonants) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)\r\n\r\n\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final CVCV reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 skipping final V\r\n5 skipping final CV\r\n6 skipping final VCV\r\n7 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,~,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,`a,4,,-1\r\n3,`a:,4,,-1\r\n3,`e,4,,-1\r\n3,`e:,4,,-1\r\n3,`i,4,,-1\r\n3,`i:,4,,-1\r\n3,`o,4,,-1\r\n3,`o:,4,,-1\r\n3,`u,4,,-1\r\n3,`u:,4,,-1\r\n3,`y,4,,-1\r\n3,`y:,4,,-1\r\n3,a,4,,-1\r\n3,a:,4,,-1\r\n3,e,4,,-1\r\n3,e:,4,,-1\r\n3,i,4,,-1\r\n3,i:,4,,-1\r\n3,o,4,,-1\r\n3,o:,4,,-1\r\n3,u,4,,-1\r\n3,u:,4,,-1\r\n3,y,4,,-1\r\n3,y:,4,,-1\r\n4,b,5,,-1\r\n4,c,5,,-1\r\n4,d,5,,-1\r\n4,f,5,,-1\r\n4,g,5,,-1\r\n4,h,5,,-1\r\n4,j,5,,-1\r\n4,k,5,,-1\r\n4,l,5,,-1\r\n4,m,5,,-1\r\n4,n,5,,-1\r\n4,p,5,,-1\r\n4,q,5,,-1\r\n4,r,5,,-1\r\n4,s,5,,-1\r\n4,t,5,,-1\r\n4,v,5,,-1\r\n4,w,5,,-1\r\n4,x,5,,-1\r\n4,z,5,,-1\r\n5,`a,6,,-1\r\n5,`a:,6,,-1\r\n5,`e,6,,-1\r\n5,`e:,6,,-1\r\n5,`i,6,,-1\r\n5,`i:,6,,-1\r\n5,`o,6,,-1\r\n5,`o:,6,,-1\r\n5,`u,6,,-1\r\n5,`u:,6,,-1\r\n5,`y,6,,-1\r\n5,`y:,6,,-1\r\n5,a,6,,-1\r\n5,a:,6,,-1\r\n5,e,6,,-1\r\n5,e:,6,,-1\r\n5,i,6,,-1\r\n5,i:,6,,-1\r\n5,o,6,,-1\r\n5,o:,6,,-1\r\n5,u,6,,-1\r\n5,u:,6,,-1\r\n5,y,6,,-1\r\n5,y:,6,,-1\r\n6,b,7,b,1\r\n6,c,7,c,1\r\n6,d,7,d,1\r\n6,f,7,f,1\r\n6,g,7,g,1\r\n6,h,7,h,1\r\n6,j,7,j,1\r\n6,k,7,k,1\r\n6,l,7,l,1\r\n6,m,7,m,1\r\n6,n,7,n,1\r\n6,p,7,p,1\r\n6,q,7,q,1\r\n6,r,7,r,1\r\n6,s,7,s,1\r\n6,t,7,t,1\r\n6,v,7,v,1\r\n6,w,7,w,1\r\n6,x,7,x,1\r\n6,z,7,z,1\r\n7,%,1,,1\r\n7,+,7,+,1\r\n7,.,7,.,1\r\n7,`a,7,`a,1\r\n7,`a:,7,`a:,1\r\n7,`e,7,`e,1\r\n7,`e:,7,`e:,1\r\n7,`i,7,`i,1\r\n7,`i:,7,`i:,1\r\n7,`o,7,`o,1\r\n7,`o:,7,`o:,1\r\n7,`u,7,`u,1\r\n7,`u:,7,`u:,1\r\n7,`y,7,`y,1\r\n7,`y:,7,`y:,1\r\n7,a,7,a,1\r\n7,a:,7,a:,1\r\n7,b,7,b,1\r\n7,c,7,c,1\r\n7,d,7,d,1\r\n7,e,7,e,1\r\n7,e:,7,e:,1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,7,i,1\r\n7,i:,7,i:,1\r\n7,j,7,j,1\r\n7,k,7,k,1\r\n7,l,7,l,1\r\n7,m,7,m,1\r\n7,n,7,n,1\r\n7,o,7,o,1\r\n7,o:,7,o:,1\r\n7,p,7,p,1\r\n7,q,7,q,1\r\n7,r,7,r,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,7,u,1\r\n7,u:,7,u:,1\r\n7,v,7,v,1\r\n7,w,7,w,1\r\n7,x,7,x,1\r\n7,y,7,y,1\r\n7,y:,7,y:,1\r\n7,z,7,z,1\r\n'),
('Final CVCV - Thao [(CC+CVC)V](C) pattern', '| Input | Output |\r\n|---------|--------------|\r\n| X-CCVC | X-CCV-CCVC |\r\n| X-CCV | X-CCV-CCV |\r\n| X-CVCVC | X-CVCV-CVCVC |\r\n| X-CVCV | X-CVCV-CVCV |', 'The process has two output types depending on if the input ends in a consonant or not\r\na) Input=#X-B-C% where X is a string of segments and B is (CC+CVC)V\r\nOutput=#X-B\\~B-C%\r\nb) Input=#X-B% where X is a string of segments and B is (CC+CVC)V\r\nOutput=#X-B\\~B-C%\r\nThe output repeats the last vowel + the two segments before the last vowel. If the first of those two segments is a vowel, that vowel\'s onset is likewise copied. A final coda isn\'t copied', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n\\node[state] (q1) [right of= q0] {$q_1$};\r\n\\node[state] (q10) [right of= q1] {$q_{10}$};\r\n\\node[state] (q8) [above of= q1] {$q_8$};\r\n\\node[state] (q9) [left of= q8] {$q_9$};\r\n\\node[state] (q2) [above right = of q8] {$q_2$};\r\n\\node[state] (q3) [right of= q2] {$q_3$};\r\n\\node[state] (q4) [right of= q3] {$q_4$};\r\n\\node[state] (q5) [right of= q4] {$q_{5}$};\r\n\\node[state] (q6) [below of= q4] {$q_6$};\r\n\\node[state,accepting] (q7) [right of= q6] {$q_7$};\r\n\r\n\r\n\\path\r\n(q0) edge node[below] {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop below] node[] {(V,V,+1)} (q1)\r\n(q1) edge node[left] {(C,$\\epsilon$,+1)} (q8)\r\n(q8) edge node {($\\Sigma$,$\\epsilon$,-1)} (q9)\r\n(q9) edge[bend right=45] node[left] {(C,C,+1)} (q1)\r\n(q8) edge node {(\\%,$\\epsilon$,-1)} (q10)\r\n\r\n\r\n\r\n(q1) edge node[below] {(\\%,$\\sim$,-1)} (q10)\r\n(q10) edge node[right] {(C,$\\epsilon$,-1)} (q2)\r\n(q10) edge [bend right=45] node {(V,$\\epsilon$,-1)} (q3)\r\n(q2) edge node {(V,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(C,$\\epsilon$,-1)} (q4)\r\n(q4) edge node[left] {(C,C,+1)} (q6)\r\n(q4) edge node {(V,$\\epsilon$,-1)} (q5)\r\n(q5) edge node[right] {(C,C,+1)} (q6)\r\n(q6) edge[loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 1, '#Final CVCV in Thao \r\n#The input can end in either CCV, CCVC, CVCV, CVCVC\r\n#The final syllable is reduplicated without its coda, if it exists. The coda is placed at the end of the word\r\n#If the final CV is preceded by a C, then that C is copied too\r\n#If the final CV is preceded by another CV, that CV is copied too\r\n#The function is undefined for any word which ends in anything other than CCV, CCVC, CVCV, CVCVC \r\n#e.g. okipa --> okipa~kipa , okipar --> okipa~kipar , okpa--> okpa~kpa, okpar --> okpa~kpar\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'check if reached final C\',\'wasnt final C\',\'return\',\'skip final C\',\'skip final V\',\'skip final CV\',\'skip final VCV\', \'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\', \'\',1)\r\n(\'output first copy\', \\vowels) = (\'output first copy\', \\ID,1)\r\n(\'output first copy\' ,\\consonants) = (\'check if reached final C\', \'\', +1)\r\n(\'check if reached final C\', \\alphabet ) = (\'wasnt final C\', \'\', -1)\r\n(\'wasnt final C\', \\consonants) = (\'output first copy\', \\ID, 1)\r\n(\'check if reached final C\', \'%\') = (\'return\', \'~\',-1)\r\n(\'output first copy\', \'%\') = (\'return\', \'~\',-1)\r\n(\'return\', \\consonants) = (\'skip final C\', \'\', -1)\r\n(\'return\', \\vowels) = (\'skip final V\', \'\', -1)\r\n(\'skip final C\', \\vowels) = (\'skip final V\', \'\', -1)\r\n(\'skip final V\', \\consonants) =(\'skip final CV\', \'\', -1)\r\n(\'skip final CV\', \\consonants) = (\'output second copy\', \\ID, 1)\r\n(\'skip final CV\', \\vowels ) = (\'skip final VCV\', \'\', -1)\r\n(\'skip final VCV\', \\consonants) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final CVCV in Thao\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 check if reached final C\r\n4 wasnt final C\r\n5 return\r\n6 skip final C\r\n7 skip final V\r\n8 skip final CV\r\n9 skip final VCV\r\n10 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,%,1,,1\r\n10,+,10,+,1\r\n10,.,10,.,1\r\n10,`a,10,`a,1\r\n10,`a:,10,`a:,1\r\n10,`e,10,`e,1\r\n10,`e:,10,`e:,1\r\n10,`i,10,`i,1\r\n10,`i:,10,`i:,1\r\n10,`o,10,`o,1\r\n10,`o:,10,`o:,1\r\n10,`u,10,`u,1\r\n10,`u:,10,`u:,1\r\n10,`y,10,`y,1\r\n10,`y:,10,`y:,1\r\n10,a,10,a,1\r\n10,a:,10,a:,1\r\n10,b,10,b,1\r\n10,c,10,c,1\r\n10,d,10,d,1\r\n10,e,10,e,1\r\n10,e:,10,e:,1\r\n10,f,10,f,1\r\n10,g,10,g,1\r\n10,h,10,h,1\r\n10,i,10,i,1\r\n10,i:,10,i:,1\r\n10,j,10,j,1\r\n10,k,10,k,1\r\n10,l,10,l,1\r\n10,m,10,m,1\r\n10,n,10,n,1\r\n10,o,10,o,1\r\n10,o:,10,o:,1\r\n10,p,10,p,1\r\n10,q,10,q,1\r\n10,r,10,r,1\r\n10,s,10,s,1\r\n10,t,10,t,1\r\n10,u,10,u,1\r\n10,u:,10,u:,1\r\n10,v,10,v,1\r\n10,w,10,w,1\r\n10,x,10,x,1\r\n10,y,10,y,1\r\n10,y:,10,y:,1\r\n10,z,10,z,1\r\n2,%,5,~,-1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,3,,1\r\n2,c,3,,1\r\n2,d,3,,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,3,,1\r\n2,g,3,,1\r\n2,h,3,,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,3,,1\r\n2,k,3,,1\r\n2,l,3,,1\r\n2,m,3,,1\r\n2,n,3,,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,3,,1\r\n2,q,3,,1\r\n2,r,3,,1\r\n2,s,3,,1\r\n2,t,3,,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,3,,1\r\n2,w,3,,1\r\n2,x,3,,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,3,,1\r\n3,%,5,~,-1\r\n3,+,4,,-1\r\n3,.,4,,-1\r\n3,`a,4,,-1\r\n3,`a:,4,,-1\r\n3,`e,4,,-1\r\n3,`e:,4,,-1\r\n3,`i,4,,-1\r\n3,`i:,4,,-1\r\n3,`o,4,,-1\r\n3,`o:,4,,-1\r\n3,`u,4,,-1\r\n3,`u:,4,,-1\r\n3,`y,4,,-1\r\n3,`y:,4,,-1\r\n3,a,4,,-1\r\n3,a:,4,,-1\r\n3,b,4,,-1\r\n3,c,4,,-1\r\n3,d,4,,-1\r\n3,e,4,,-1\r\n3,e:,4,,-1\r\n3,f,4,,-1\r\n3,g,4,,-1\r\n3,h,4,,-1\r\n3,i,4,,-1\r\n3,i:,4,,-1\r\n3,j,4,,-1\r\n3,k,4,,-1\r\n3,l,4,,-1\r\n3,m,4,,-1\r\n3,n,4,,-1\r\n3,o,4,,-1\r\n3,o:,4,,-1\r\n3,p,4,,-1\r\n3,q,4,,-1\r\n3,r,4,,-1\r\n3,s,4,,-1\r\n3,t,4,,-1\r\n3,u,4,,-1\r\n3,u:,4,,-1\r\n3,v,4,,-1\r\n3,w,4,,-1\r\n3,x,4,,-1\r\n3,y,4,,-1\r\n3,y:,4,,-1\r\n3,z,4,,-1\r\n4,b,2,b,1\r\n4,c,2,c,1\r\n4,d,2,d,1\r\n4,f,2,f,1\r\n4,g,2,g,1\r\n4,h,2,h,1\r\n4,j,2,j,1\r\n4,k,2,k,1\r\n4,l,2,l,1\r\n4,m,2,m,1\r\n4,n,2,n,1\r\n4,p,2,p,1\r\n4,q,2,q,1\r\n4,r,2,r,1\r\n4,s,2,s,1\r\n4,t,2,t,1\r\n4,v,2,v,1\r\n4,w,2,w,1\r\n4,x,2,x,1\r\n4,z,2,z,1\r\n5,`a,7,,-1\r\n5,`a:,7,,-1\r\n5,`e,7,,-1\r\n5,`e:,7,,-1\r\n5,`i,7,,-1\r\n5,`i:,7,,-1\r\n5,`o,7,,-1\r\n5,`o:,7,,-1\r\n5,`u,7,,-1\r\n5,`u:,7,,-1\r\n5,`y,7,,-1\r\n5,`y:,7,,-1\r\n5,a,7,,-1\r\n5,a:,7,,-1\r\n5,b,6,,-1\r\n5,c,6,,-1\r\n5,d,6,,-1\r\n5,e,7,,-1\r\n5,e:,7,,-1\r\n5,f,6,,-1\r\n5,g,6,,-1\r\n5,h,6,,-1\r\n5,i,7,,-1\r\n5,i:,7,,-1\r\n5,j,6,,-1\r\n5,k,6,,-1\r\n5,l,6,,-1\r\n5,m,6,,-1\r\n5,n,6,,-1\r\n5,o,7,,-1\r\n5,o:,7,,-1\r\n5,p,6,,-1\r\n5,q,6,,-1\r\n5,r,6,,-1\r\n5,s,6,,-1\r\n5,t,6,,-1\r\n5,u,7,,-1\r\n5,u:,7,,-1\r\n5,v,6,,-1\r\n5,w,6,,-1\r\n5,x,6,,-1\r\n5,y,7,,-1\r\n5,y:,7,,-1\r\n5,z,6,,-1\r\n6,`a,7,,-1\r\n6,`a:,7,,-1\r\n6,`e,7,,-1\r\n6,`e:,7,,-1\r\n6,`i,7,,-1\r\n6,`i:,7,,-1\r\n6,`o,7,,-1\r\n6,`o:,7,,-1\r\n6,`u,7,,-1\r\n6,`u:,7,,-1\r\n6,`y,7,,-1\r\n6,`y:,7,,-1\r\n6,a,7,,-1\r\n6,a:,7,,-1\r\n6,e,7,,-1\r\n6,e:,7,,-1\r\n6,i,7,,-1\r\n6,i:,7,,-1\r\n6,o,7,,-1\r\n6,o:,7,,-1\r\n6,u,7,,-1\r\n6,u:,7,,-1\r\n6,y,7,,-1\r\n6,y:,7,,-1\r\n7,b,8,,-1\r\n7,c,8,,-1\r\n7,d,8,,-1\r\n7,f,8,,-1\r\n7,g,8,,-1\r\n7,h,8,,-1\r\n7,j,8,,-1\r\n7,k,8,,-1\r\n7,l,8,,-1\r\n7,m,8,,-1\r\n7,n,8,,-1\r\n7,p,8,,-1\r\n7,q,8,,-1\r\n7,r,8,,-1\r\n7,s,8,,-1\r\n7,t,8,,-1\r\n7,v,8,,-1\r\n7,w,8,,-1\r\n7,x,8,,-1\r\n7,z,8,,-1\r\n8,`a,9,,-1\r\n8,`a:,9,,-1\r\n8,`e,9,,-1\r\n8,`e:,9,,-1\r\n8,`i,9,,-1\r\n8,`i:,9,,-1\r\n8,`o,9,,-1\r\n8,`o:,9,,-1\r\n8,`u,9,,-1\r\n8,`u:,9,,-1\r\n8,`y,9,,-1\r\n8,`y:,9,,-1\r\n8,a,9,,-1\r\n8,a:,9,,-1\r\n8,b,10,b,1\r\n8,c,10,c,1\r\n8,d,10,d,1\r\n8,e,9,,-1\r\n8,e:,9,,-1\r\n8,f,10,f,1\r\n8,g,10,g,1\r\n8,h,10,h,1\r\n8,i,9,,-1\r\n8,i:,9,,-1\r\n8,j,10,j,1\r\n8,k,10,k,1\r\n8,l,10,l,1\r\n8,m,10,m,1\r\n8,n,10,n,1\r\n8,o,9,,-1\r\n8,o:,9,,-1\r\n8,p,10,p,1\r\n8,q,10,q,1\r\n8,r,10,r,1\r\n8,s,10,s,1\r\n8,t,10,t,1\r\n8,u,9,,-1\r\n8,u:,9,,-1\r\n8,v,10,v,1\r\n8,w,10,w,1\r\n8,x,10,x,1\r\n8,y,9,,-1\r\n8,y:,9,,-1\r\n8,z,10,z,1\r\n9,b,10,b,1\r\n9,c,10,c,1\r\n9,d,10,d,1\r\n9,f,10,f,1\r\n9,g,10,g,1\r\n9,h,10,h,1\r\n9,j,10,j,1\r\n9,k,10,k,1\r\n9,l,10,l,1\r\n9,m,10,m,1\r\n9,n,10,n,1\r\n9,p,10,p,1\r\n9,q,10,q,1\r\n9,r,10,r,1\r\n9,s,10,s,1\r\n9,t,10,t,1\r\n9,v,10,v,1\r\n9,w,10,w,1\r\n9,x,10,x,1\r\n9,z,10,z,1\r\n'),
('Final foot - Manam final bimoraic foot', '| Input | Output |\r\n|--------|-------------|\r\n| X-CVCV | X-CVCV-CVCV |\r\n| VCV | VCV-VCV |\r\n| XV-VCV | XV-VCV-VCV |\r\n| X-CVV | X-CVV-CVV |\r\n| X-CVC | X-CVC-CVC |', 'Input=#X-B% where X is a sting of symbols and B is a bimoraic foot\r\nOutput=#X-B\\~B%\r\nWord-final bimoraic foot is repeated, e.g. X-(CVV)^2^ or X-(CVCV)^2^ or X-(VCV)^2^ or X-(CVC)^2^', 'FST: The FST assumes the input is only V and C and that it ends in a bimoraic foot like from the data, e.g. #Σ*(CVCV+VCV+CVV+CVC+VC)%. For simplicity, syllable and foot boundaries aren\'t used. The FST may make errors if other types of bimoraic feet are allowed, e.g. (VC), because I do not know how Manam syllabification works. The FST cannot handle cases of inherent reduplication:\r\n\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base once \r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states 2 and 3 4 handle outputing the reduplicant after knowing where to start\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state,accepting] (q4) [right of=q3] {$q_4$};\r\n%states q2-7 goes back to the last bimoraic foot using C and V\r\n\\node[state] (q5) [below of=q0] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state] (q7) [right of=q6] {$q_7$};\r\n\\node[state] (q8) [below of=q4] {$q_8$};\r\n\\node[state] (q9) [above of=q1] {$q_9$};\r\n\\node[state] (q10) [right of=q9] {$q_{10}$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\sim$,-1)} (q2)\r\n\r\n(q2) edge node {(V,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(C,$\\epsilon$,-1)} (q6)\r\n(q6) edge node {(V,$\\epsilon$,-1)} (q7)\r\n(q7) edge node {(C,C,+1)} (q3)\r\n(q3) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q3)\r\n(q3) edge node {(\\%,$\\epsilon$,+1)} (q4)\r\n\r\n(q7) edge[bend right] node[right] {(\\{\\#,V\\},$\\epsilon$,+1)} (q3)\r\n\r\n(q5) edge[bend right] node {(V,$\\epsilon$,-1)} (q8)\r\n(q8) edge node[right] {(C,C,+1)} (q3)\r\n\r\n(q2) edge node[right] {(C,$\\epsilon$,-1)} (q9)\r\n(q9) edge node {(V,$\\epsilon$,-1)} (q10)\r\n(q10) edge node[below] {(C,C,+1)} (q3)\r\n(q10) edge[bend left=90] node[right] {(\\{\\#,V\\},$\\epsilon$,+1)} (q3)\r\n\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Final foot reduplication in Manam\r\n#The final foot is bimoraic and its shape can be CVCV, CVV, CVC, VCV\r\n#It is reduplicated\r\n#The function is undefined for any word which ends in anything other than CVCV, CVV, CVC, VCV \r\n#e.g. okipa --> okipa~kipa , okipar --> okipar~par , okipaa --> okipaa~paa, opa --> opa~opa, pa--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'skipping final C\',\'skipping final V\',\'skipping final CV\',\'skipping final VCV\',\'skipping final VV\',\'skipping final VC\',\'output second copy\',\'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\',\'\', 1)\r\n(\'output first copy\', \\alphabet) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'~\', -1)\r\n(\'return\', \\vowels) = (\'skipping final V\', \'\', -1)\r\n(\'skipping final V\', \\consonants) = (\'skipping final CV\', \'\', -1)\r\n(\'skipping final CV\', \\vowels) = (\'skipping final VCV\', \'\', -1)\r\n(\'skipping final VCV\', \\consonants) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)\r\n(\'skipping final VCV\', \'#\' ) = (\'output second copy\', \'\', 1)\r\n(\'skipping final VCV\', \\vowels) = (\'output second copy\', \'\', 1)\r\n(\'skipping final V\', \\vowels) = (\'skipping final VV\', \'\', -1)\r\n(\'skipping final VV\', \\consonants) = (\'output second copy\', \\ID, 1)\r\n(\'return\', \\consonants) = (\'skipping final C\', \'\', -1)\r\n(\'skipping final C\', \\vowels) = (\'skipping final VC\', \'\', -1)\r\n(\'skipping final VC\', \\consonants) = (\'output second copy\', \\ID, 1)\r\n(\'skipping final VC\', \'#\') = (\'output second copy\', \'\', 1)\r\n(\'skipping final VC\', \\vowels) = (\'output second copy\', \'\', 1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final foot reduplication in Manam\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 skipping final C\r\n5 skipping final V\r\n6 skipping final CV\r\n7 skipping final VCV\r\n8 skipping final VV\r\n9 skipping final VC\r\n10 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,%,1,,1\r\n10,+,10,+,1\r\n10,.,10,.,1\r\n10,`a,10,`a,1\r\n10,`a:,10,`a:,1\r\n10,`e,10,`e,1\r\n10,`e:,10,`e:,1\r\n10,`i,10,`i,1\r\n10,`i:,10,`i:,1\r\n10,`o,10,`o,1\r\n10,`o:,10,`o:,1\r\n10,`u,10,`u,1\r\n10,`u:,10,`u:,1\r\n10,`y,10,`y,1\r\n10,`y:,10,`y:,1\r\n10,a,10,a,1\r\n10,a:,10,a:,1\r\n10,b,10,b,1\r\n10,c,10,c,1\r\n10,d,10,d,1\r\n10,e,10,e,1\r\n10,e:,10,e:,1\r\n10,f,10,f,1\r\n10,g,10,g,1\r\n10,h,10,h,1\r\n10,i,10,i,1\r\n10,i:,10,i:,1\r\n10,j,10,j,1\r\n10,k,10,k,1\r\n10,l,10,l,1\r\n10,m,10,m,1\r\n10,n,10,n,1\r\n10,o,10,o,1\r\n10,o:,10,o:,1\r\n10,p,10,p,1\r\n10,q,10,q,1\r\n10,r,10,r,1\r\n10,s,10,s,1\r\n10,t,10,t,1\r\n10,u,10,u,1\r\n10,u:,10,u:,1\r\n10,v,10,v,1\r\n10,w,10,w,1\r\n10,x,10,x,1\r\n10,y,10,y,1\r\n10,y:,10,y:,1\r\n10,z,10,z,1\r\n2,%,3,~,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,`a,5,,-1\r\n3,`a:,5,,-1\r\n3,`e,5,,-1\r\n3,`e:,5,,-1\r\n3,`i,5,,-1\r\n3,`i:,5,,-1\r\n3,`o,5,,-1\r\n3,`o:,5,,-1\r\n3,`u,5,,-1\r\n3,`u:,5,,-1\r\n3,`y,5,,-1\r\n3,`y:,5,,-1\r\n3,a,5,,-1\r\n3,a:,5,,-1\r\n3,b,4,,-1\r\n3,c,4,,-1\r\n3,d,4,,-1\r\n3,e,5,,-1\r\n3,e:,5,,-1\r\n3,f,4,,-1\r\n3,g,4,,-1\r\n3,h,4,,-1\r\n3,i,5,,-1\r\n3,i:,5,,-1\r\n3,j,4,,-1\r\n3,k,4,,-1\r\n3,l,4,,-1\r\n3,m,4,,-1\r\n3,n,4,,-1\r\n3,o,5,,-1\r\n3,o:,5,,-1\r\n3,p,4,,-1\r\n3,q,4,,-1\r\n3,r,4,,-1\r\n3,s,4,,-1\r\n3,t,4,,-1\r\n3,u,5,,-1\r\n3,u:,5,,-1\r\n3,v,4,,-1\r\n3,w,4,,-1\r\n3,x,4,,-1\r\n3,y,5,,-1\r\n3,y:,5,,-1\r\n3,z,4,,-1\r\n4,`a,9,,-1\r\n4,`a:,9,,-1\r\n4,`e,9,,-1\r\n4,`e:,9,,-1\r\n4,`i,9,,-1\r\n4,`i:,9,,-1\r\n4,`o,9,,-1\r\n4,`o:,9,,-1\r\n4,`u,9,,-1\r\n4,`u:,9,,-1\r\n4,`y,9,,-1\r\n4,`y:,9,,-1\r\n4,a,9,,-1\r\n4,a:,9,,-1\r\n4,e,9,,-1\r\n4,e:,9,,-1\r\n4,i,9,,-1\r\n4,i:,9,,-1\r\n4,o,9,,-1\r\n4,o:,9,,-1\r\n4,u,9,,-1\r\n4,u:,9,,-1\r\n4,y,9,,-1\r\n4,y:,9,,-1\r\n5,`a,8,,-1\r\n5,`a:,8,,-1\r\n5,`e,8,,-1\r\n5,`e:,8,,-1\r\n5,`i,8,,-1\r\n5,`i:,8,,-1\r\n5,`o,8,,-1\r\n5,`o:,8,,-1\r\n5,`u,8,,-1\r\n5,`u:,8,,-1\r\n5,`y,8,,-1\r\n5,`y:,8,,-1\r\n5,a,8,,-1\r\n5,a:,8,,-1\r\n5,b,6,,-1\r\n5,c,6,,-1\r\n5,d,6,,-1\r\n5,e,8,,-1\r\n5,e:,8,,-1\r\n5,f,6,,-1\r\n5,g,6,,-1\r\n5,h,6,,-1\r\n5,i,8,,-1\r\n5,i:,8,,-1\r\n5,j,6,,-1\r\n5,k,6,,-1\r\n5,l,6,,-1\r\n5,m,6,,-1\r\n5,n,6,,-1\r\n5,o,8,,-1\r\n5,o:,8,,-1\r\n5,p,6,,-1\r\n5,q,6,,-1\r\n5,r,6,,-1\r\n5,s,6,,-1\r\n5,t,6,,-1\r\n5,u,8,,-1\r\n5,u:,8,,-1\r\n5,v,6,,-1\r\n5,w,6,,-1\r\n5,x,6,,-1\r\n5,y,8,,-1\r\n5,y:,8,,-1\r\n5,z,6,,-1\r\n6,`a,7,,-1\r\n6,`a:,7,,-1\r\n6,`e,7,,-1\r\n6,`e:,7,,-1\r\n6,`i,7,,-1\r\n6,`i:,7,,-1\r\n6,`o,7,,-1\r\n6,`o:,7,,-1\r\n6,`u,7,,-1\r\n6,`u:,7,,-1\r\n6,`y,7,,-1\r\n6,`y:,7,,-1\r\n6,a,7,,-1\r\n6,a:,7,,-1\r\n6,e,7,,-1\r\n6,e:,7,,-1\r\n6,i,7,,-1\r\n6,i:,7,,-1\r\n6,o,7,,-1\r\n6,o:,7,,-1\r\n6,u,7,,-1\r\n6,u:,7,,-1\r\n6,y,7,,-1\r\n6,y:,7,,-1\r\n7,#,10,,1\r\n7,`a,10,,1\r\n7,`a:,10,,1\r\n7,`e,10,,1\r\n7,`e:,10,,1\r\n7,`i,10,,1\r\n7,`i:,10,,1\r\n7,`o,10,,1\r\n7,`o:,10,,1\r\n7,`u,10,,1\r\n7,`u:,10,,1\r\n7,`y,10,,1\r\n7,`y:,10,,1\r\n7,a,10,,1\r\n7,a:,10,,1\r\n7,b,10,b,1\r\n7,c,10,c,1\r\n7,d,10,d,1\r\n7,e,10,,1\r\n7,e:,10,,1\r\n7,f,10,f,1\r\n7,g,10,g,1\r\n7,h,10,h,1\r\n7,i,10,,1\r\n7,i:,10,,1\r\n7,j,10,j,1\r\n7,k,10,k,1\r\n7,l,10,l,1\r\n7,m,10,m,1\r\n7,n,10,n,1\r\n7,o,10,,1\r\n7,o:,10,,1\r\n7,p,10,p,1\r\n7,q,10,q,1\r\n7,r,10,r,1\r\n7,s,10,s,1\r\n7,t,10,t,1\r\n7,u,10,,1\r\n7,u:,10,,1\r\n7,v,10,v,1\r\n7,w,10,w,1\r\n7,x,10,x,1\r\n7,y,10,,1\r\n7,y:,10,,1\r\n7,z,10,z,1\r\n8,b,10,b,1\r\n8,c,10,c,1\r\n8,d,10,d,1\r\n8,f,10,f,1\r\n8,g,10,g,1\r\n8,h,10,h,1\r\n8,j,10,j,1\r\n8,k,10,k,1\r\n8,l,10,l,1\r\n8,m,10,m,1\r\n8,n,10,n,1\r\n8,p,10,p,1\r\n8,q,10,q,1\r\n8,r,10,r,1\r\n8,s,10,s,1\r\n8,t,10,t,1\r\n8,v,10,v,1\r\n8,w,10,w,1\r\n8,x,10,x,1\r\n8,z,10,z,1\r\n9,#,10,,1\r\n9,`a,10,,1\r\n9,`a:,10,,1\r\n9,`e,10,,1\r\n9,`e:,10,,1\r\n9,`i,10,,1\r\n9,`i:,10,,1\r\n9,`o,10,,1\r\n9,`o:,10,,1\r\n9,`u,10,,1\r\n9,`u:,10,,1\r\n9,`y,10,,1\r\n9,`y:,10,,1\r\n9,a,10,,1\r\n9,a:,10,,1\r\n9,b,10,b,1\r\n9,c,10,c,1\r\n9,d,10,d,1\r\n9,e,10,,1\r\n9,e:,10,,1\r\n9,f,10,f,1\r\n9,g,10,g,1\r\n9,h,10,h,1\r\n9,i,10,,1\r\n9,i:,10,,1\r\n9,j,10,j,1\r\n9,k,10,k,1\r\n9,l,10,l,1\r\n9,m,10,m,1\r\n9,n,10,n,1\r\n9,o,10,,1\r\n9,o:,10,,1\r\n9,p,10,p,1\r\n9,q,10,q,1\r\n9,r,10,r,1\r\n9,s,10,s,1\r\n9,t,10,t,1\r\n9,u,10,,1\r\n9,u:,10,,1\r\n9,v,10,v,1\r\n9,w,10,w,1\r\n9,x,10,x,1\r\n9,y,10,,1\r\n9,y:,10,,1\r\n9,z,10,z,1\r\n'),
('Final VC - General reduplication ', '| Input | Output |\r\n|--------|-----------|\r\n| X-VC | X-VC-VC |', 'Input=#X-VC$ where X is any string of symbols\r\nOutput=#X-VC\\~VC%\r\nThe word-final VC string is repeated. I assume that inputs ends with VC and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%states q2-7 outputs the base and goes back to the last CV, ouputs it as a reduplicant, and then ends.\r\n\\node[state] (q2) [right of=q0] {$q_2$};\r\n\\node[state] (q4) [below of=q2] {$q_4$};\r\n\\node[state] (q5) [left of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q5] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q2)\r\n\r\n(q2) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q2)\r\n(q2) edge node {(\\%,$\\sim$,-1)} (q4)\r\n\r\n(q4) edge node {(C,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(V,V,+1)} (q6)\r\n(q6) edge[loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 0, '#Final VC reduplication \r\n#If the input ends in a VC, it is reduplicated\r\n#The function is not defined for an input which ends in anything other than VC\r\n#e.g. patak --> patak~ak, pata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'skipping final C\',\'output second copy\', \'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first copy\' , \'\', 1)\r\n(\'output first copy\', \\alphabet) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'~\', -1)\r\n(\'return\', \\consonants) = (\'skipping final C\', \'\', -1)\r\n(\'skipping final C\', \\vowels) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\',\\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)\r\n\r\n\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Final VC reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 skipping final C\r\n5 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,~,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,b,4,,-1\r\n3,c,4,,-1\r\n3,d,4,,-1\r\n3,f,4,,-1\r\n3,g,4,,-1\r\n3,h,4,,-1\r\n3,j,4,,-1\r\n3,k,4,,-1\r\n3,l,4,,-1\r\n3,m,4,,-1\r\n3,n,4,,-1\r\n3,p,4,,-1\r\n3,q,4,,-1\r\n3,r,4,,-1\r\n3,s,4,,-1\r\n3,t,4,,-1\r\n3,v,4,,-1\r\n3,w,4,,-1\r\n3,x,4,,-1\r\n3,z,4,,-1\r\n4,`a,5,`a,1\r\n4,`a:,5,`a:,1\r\n4,`e,5,`e,1\r\n4,`e:,5,`e:,1\r\n4,`i,5,`i,1\r\n4,`i:,5,`i:,1\r\n4,`o,5,`o,1\r\n4,`o:,5,`o:,1\r\n4,`u,5,`u,1\r\n4,`u:,5,`u:,1\r\n4,`y,5,`y,1\r\n4,`y:,5,`y:,1\r\n4,a,5,a,1\r\n4,a:,5,a:,1\r\n4,e,5,e,1\r\n4,e:,5,e:,1\r\n4,i,5,i,1\r\n4,i:,5,i:,1\r\n4,o,5,o,1\r\n4,o:,5,o:,1\r\n4,u,5,u,1\r\n4,u:,5,u:,1\r\n4,y,5,y,1\r\n4,y:,5,y:,1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n'),
('First C after First V - Quileute', '| Input | Output |\r\n|---------|-----------|\r\n| C~1~V-X | CV-C~1~-X |', 'Input=#C~1~VX% \r\nOutput=#C~1~V-C~1~\\~X%\r\nInitial C is copied at placed after first V', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first CV once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the beginning of input, output the base CVX, and end\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [below of=q0] {$q_5$};\r\n\\node[state,accepting] (q6) [right of=q5] {$q_6$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,-1)} (q3)\r\n(q3) edge node {(C,C,+1)} (q4)\r\n(q4) edge node {(V,$\\sim$,+1)} (q5)\r\n(q5) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node[below] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 1, '#Copying first C after word-initial CV in Quileute\r\n#If the input starts with CV, the consonant is copied and placed after the vowel\r\n#The function is not defined for an input which starts with anything other than CV\r\n#e.g. patak --> pap~tak, ata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'output first C again\',\'return to old position\',\'continue output\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first C\', \'\', 1)\r\n(\'output first C\', \\consonants) = (\'output first CV\', \\ID, 1)\r\n(\'output first CV\', \\vowels) = (\'output first C again\', \\ID, -1)\r\n(\'output first C again\', \\consonants) = (\'return to old position\', \\ID, 1)\r\n(\'return to old position\', \\vowels) = (\'continue output\', \'~\', 1)\r\n(\'continue output\', \\alphabet) = (\'continue output\', \\ID, 1)\r\n(\'continue output\', \'%\') = (\'end\', \'\', 1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Copying first C after word-initial CV in Quileute\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first C again\r\n5 return to old position\r\n6 continue output\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,-1\r\n3,`a:,4,`a:,-1\r\n3,`e,4,`e,-1\r\n3,`e:,4,`e:,-1\r\n3,`i,4,`i,-1\r\n3,`i:,4,`i:,-1\r\n3,`o,4,`o,-1\r\n3,`o:,4,`o:,-1\r\n3,`u,4,`u,-1\r\n3,`u:,4,`u:,-1\r\n3,`y,4,`y,-1\r\n3,`y:,4,`y:,-1\r\n3,a,4,a,-1\r\n3,a:,4,a:,-1\r\n3,e,4,e,-1\r\n3,e:,4,e:,-1\r\n3,i,4,i,-1\r\n3,i:,4,i:,-1\r\n3,o,4,o,-1\r\n3,o:,4,o:,-1\r\n3,u,4,u,-1\r\n3,u:,4,u:,-1\r\n3,y,4,y,-1\r\n3,y:,4,y:,-1\r\n4,b,5,b,1\r\n4,c,5,c,1\r\n4,d,5,d,1\r\n4,f,5,f,1\r\n4,g,5,g,1\r\n4,h,5,h,1\r\n4,j,5,j,1\r\n4,k,5,k,1\r\n4,l,5,l,1\r\n4,m,5,m,1\r\n4,n,5,n,1\r\n4,p,5,p,1\r\n4,q,5,q,1\r\n4,r,5,r,1\r\n4,s,5,s,1\r\n4,t,5,t,1\r\n4,v,5,v,1\r\n4,w,5,w,1\r\n4,x,5,x,1\r\n4,z,5,z,1\r\n5,`a,6,~,1\r\n5,`a:,6,~,1\r\n5,`e,6,~,1\r\n5,`e:,6,~,1\r\n5,`i,6,~,1\r\n5,`i:,6,~,1\r\n5,`o,6,~,1\r\n5,`o:,6,~,1\r\n5,`u,6,~,1\r\n5,`u:,6,~,1\r\n5,`y,6,~,1\r\n5,`y:,6,~,1\r\n5,a,6,~,1\r\n5,a:,6,~,1\r\n5,e,6,~,1\r\n5,e:,6,~,1\r\n5,i,6,~,1\r\n5,i:,6,~,1\r\n5,o,6,~,1\r\n5,o:,6,~,1\r\n5,u,6,~,1\r\n5,u:,6,~,1\r\n5,y,6,~,1\r\n5,y:,6,~,1\r\n6,%,1,,1\r\n6,+,6,+,1\r\n6,.,6,.,1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n');
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('First C after Second C - Levantine Arabic & Zuni', '| Input | Output |\r\n|--------------|--------------------|\r\n| C~1~V-X-C~f~ | C~1~V-X-C~1~V-C~f~ |', 'Input=#C~1~VC~2~X% \r\nOutput=#C~1~VC~2~\\~C~1~-X%\r\nThe sources argue that the output is derived not directly from the roots but after a V template has already been inserted\r\nNote that bi-consonantly superficially look different from tri-consonantal because form like [lafaf] alternate with [laff]', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\n semithick]\r\n \\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n \\node[initial,state] (q0) {$q_0$};\r\n \\node[state] (q1) [right of=q0] {$q_1$};\r\n \\node[state] (q2) [right of=q1] {$q_2$};\r\n \\node[state] (q3) [right of=q2] {$q_3$};\r\n \\node[state] (q4) [below of=q0] {$q_4$};\r\n \\node[state] (q5) [right of=q4] {$q_5$};\r\n \\node[state] (q6) [right of=q5] {$q_6$};\r\n \\node[state] (q7) [right of=q6] {$q_7$};\r\n \\node[state] (q8) [right of=q7] {$q_8$};\r\n \\node[state,accepting] (q9) [right of=q8] {$q_9$};\r\n \r\n \r\n\r\n \\path\r\n (q0) edge node {(\\#, $\\epsilon$,+1)} (q1)\r\n (q1) edge node {(C,C,+1)} (q2)\r\n (q2) edge node {(V,V,+1)} (q3)\r\n (q3) edge node {(C,C,-1)} (q4)\r\n (q4) edge [loop left] node {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n (q4) edge node[below] {(\\#,$\\sim$,+1)} (q5)\r\n (q5) edge node[below] {(C,C,+1)} (q6)\r\n (q6) edge node {(V,$\\epsilon$,+1)} (q7)\r\n (q7) edge node {(C,$\\epsilon$,+1)} (q8)\r\n (q8) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q8)\r\n (q8) edge node {(\\%,$\\epsilon$,+1)} (q9)\r\n \r\n ;\r\n\\end{tikzpicture}\r\n', 1, '#Copying first C after word-initial CVC\r\n#If the input starts with CVC, the first consonant is copied and placed after the CVC\r\n#The function is not defined for an input which starts with anything other than CVC\r\n#e.g. patak --> pat~pak, ata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'output first CVC\',\'return\',\'output C again\',\'skip V\',\'skip VC\',\'continue output\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first C\', \'\', 1)\r\n(\'output first C\', \\consonants) = (\'output first CV\', \\ID, 1)\r\n(\'output first CV\', \\vowels) = (\'output first CVC\', \\ID, 1)\r\n(\'output first CVC\', \\consonants) = (\'return\', \\ID, -1)\r\n(\'return\', \\alphabet) = (\'return\', \'\', -1)\r\n(\'return\', \'#\') = (\'output C again\', \'~\',1)\r\n(\'output C again\',\\consonants) = (\'skip V\', \\ID, 1)\r\n(\'skip V\', \\vowels) = (\'skip VC\' , \'\', 1)\r\n(\'skip VC\', \\consonants) = (\'continue output\', \'\',1)\r\n(\'continue output\', \\alphabet) = (\'continue output\', \\ID, 1)\r\n(\'continue output\', \'%\') = (\'end\', \'\', 1)\r\n\r\n\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Copying first C after word-initial CVC\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first CVC\r\n5 return\r\n6 output C again\r\n7 skip V\r\n8 skip VC\r\n9 continue output\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,b,5,b,-1\r\n4,c,5,c,-1\r\n4,d,5,d,-1\r\n4,f,5,f,-1\r\n4,g,5,g,-1\r\n4,h,5,h,-1\r\n4,j,5,j,-1\r\n4,k,5,k,-1\r\n4,l,5,l,-1\r\n4,m,5,m,-1\r\n4,n,5,n,-1\r\n4,p,5,p,-1\r\n4,q,5,q,-1\r\n4,r,5,r,-1\r\n4,s,5,s,-1\r\n4,t,5,t,-1\r\n4,v,5,v,-1\r\n4,w,5,w,-1\r\n4,x,5,x,-1\r\n4,z,5,z,-1\r\n5,#,6,~,1\r\n5,+,5,,-1\r\n5,.,5,,-1\r\n5,`a,5,,-1\r\n5,`a:,5,,-1\r\n5,`e,5,,-1\r\n5,`e:,5,,-1\r\n5,`i,5,,-1\r\n5,`i:,5,,-1\r\n5,`o,5,,-1\r\n5,`o:,5,,-1\r\n5,`u,5,,-1\r\n5,`u:,5,,-1\r\n5,`y,5,,-1\r\n5,`y:,5,,-1\r\n5,a,5,,-1\r\n5,a:,5,,-1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,e:,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,i:,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,o:,5,,-1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,u:,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,5,,-1\r\n5,y:,5,,-1\r\n5,z,5,,-1\r\n6,b,7,b,1\r\n6,c,7,c,1\r\n6,d,7,d,1\r\n6,f,7,f,1\r\n6,g,7,g,1\r\n6,h,7,h,1\r\n6,j,7,j,1\r\n6,k,7,k,1\r\n6,l,7,l,1\r\n6,m,7,m,1\r\n6,n,7,n,1\r\n6,p,7,p,1\r\n6,q,7,q,1\r\n6,r,7,r,1\r\n6,s,7,s,1\r\n6,t,7,t,1\r\n6,v,7,v,1\r\n6,w,7,w,1\r\n6,x,7,x,1\r\n6,z,7,z,1\r\n7,`a,8,,1\r\n7,`a:,8,,1\r\n7,`e,8,,1\r\n7,`e:,8,,1\r\n7,`i,8,,1\r\n7,`i:,8,,1\r\n7,`o,8,,1\r\n7,`o:,8,,1\r\n7,`u,8,,1\r\n7,`u:,8,,1\r\n7,`y,8,,1\r\n7,`y:,8,,1\r\n7,a,8,,1\r\n7,a:,8,,1\r\n7,e,8,,1\r\n7,e:,8,,1\r\n7,i,8,,1\r\n7,i:,8,,1\r\n7,o,8,,1\r\n7,o:,8,,1\r\n7,u,8,,1\r\n7,u:,8,,1\r\n7,y,8,,1\r\n7,y:,8,,1\r\n8,b,9,,1\r\n8,c,9,,1\r\n8,d,9,,1\r\n8,f,9,,1\r\n8,g,9,,1\r\n8,h,9,,1\r\n8,j,9,,1\r\n8,k,9,,1\r\n8,l,9,,1\r\n8,m,9,,1\r\n8,n,9,,1\r\n8,p,9,,1\r\n8,q,9,,1\r\n8,r,9,,1\r\n8,s,9,,1\r\n8,t,9,,1\r\n8,v,9,,1\r\n8,w,9,,1\r\n8,x,9,,1\r\n8,z,9,,1\r\n9,%,1,,1\r\n9,+,9,+,1\r\n9,.,9,.,1\r\n9,`a,9,`a,1\r\n9,`a:,9,`a:,1\r\n9,`e,9,`e,1\r\n9,`e:,9,`e:,1\r\n9,`i,9,`i,1\r\n9,`i:,9,`i:,1\r\n9,`o,9,`o,1\r\n9,`o:,9,`o:,1\r\n9,`u,9,`u,1\r\n9,`u:,9,`u:,1\r\n9,`y,9,`y,1\r\n9,`y:,9,`y:,1\r\n9,a,9,a,1\r\n9,a:,9,a:,1\r\n9,b,9,b,1\r\n9,c,9,c,1\r\n9,d,9,d,1\r\n9,e,9,e,1\r\n9,e:,9,e:,1\r\n9,f,9,f,1\r\n9,g,9,g,1\r\n9,h,9,h,1\r\n9,i,9,i,1\r\n9,i:,9,i:,1\r\n9,j,9,j,1\r\n9,k,9,k,1\r\n9,l,9,l,1\r\n9,m,9,m,1\r\n9,n,9,n,1\r\n9,o,9,o,1\r\n9,o:,9,o:,1\r\n9,p,9,p,1\r\n9,q,9,q,1\r\n9,r,9,r,1\r\n9,s,9,s,1\r\n9,t,9,t,1\r\n9,u,9,u,1\r\n9,u:,9,u:,1\r\n9,v,9,v,1\r\n9,w,9,w,1\r\n9,x,9,x,1\r\n9,y,9,y,1\r\n9,y:,9,y:,1\r\n9,z,9,z,1\r\n'),
('First-Last C - General', '| Input | Output |\r\n|-------------------|----------------------------|\r\n| C~1~C~2~VC~f~ | C~1~C~f~-C~1~C~2~VC~f~ |\r\n| C~1~C~2~C~3~VC~f~ | C~1~C~f~-C~1~C~2~C~3~VC~f~ |', 'Input=#C~1~-X-C~f~% where X is a string of segments\r\nOutput=#C~1~C~f~\\~C~1~-X-C~f~%\r\nThe first and last consonants are copied and placed before the base', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs C1 and Cf\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n%state q3 and up output the base\r\n\\node[state] (q5) [below of=q1] {$q_5$};\r\n\\node[state,accepting] (q6) [right of=q5] {$q_6$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge [loop above] node[] {($\\Sigma$,$\\epsilon$,+1)} (q2)\r\n(q2) edge node {(\\%,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(C,C,-1)} (q4)\r\n(q4) edge [loop above] node[] {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n(q4) edge node[] {(\\#,$\\sim$,+1)} (q5)\r\n(q5) edge [loop above] node[] {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node[below] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 1, '#First C + Last C copying\r\n#If the word starts and ends with a consonant: C...C, then the two consonants are copied \r\n#and placed at the beginning of the word \r\n#The function is not defined for an input which starts with anything other than C \r\n#or which ends with anything other than C\r\n#e.g. patak --> pk~patak, pata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\', \'output first C\',\'skip to the end\',\'output final C\',\'return\',\'continue output\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first C\', \'\', 1)\r\n(\'output first C\', \\consonants) = (\'skip to the end\', \\ID, 1)\r\n(\'skip to the end\', \\alphabet) = (\'skip to the end\', \'\', 1)\r\n(\'skip to the end\', \'%\') = (\'output final C\', \'\',-1)\r\n(\'output final C\', \\consonants) = (\'return\', \\ID, -1)\r\n(\'return\', \\alphabet) = (\'return\', \'\', -1)\r\n(\'return\', \'#\') = (\'continue output\', \'~\',1)\r\n(\'continue output\', \\alphabet) = (\'continue output\', \\ID, 1)\r\n(\'continue output\', \'%\') = (\'end\', \'\', 1) 1', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n First C + Last C copying\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 skip to the end\r\n4 output final C\r\n5 return\r\n6 continue output\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,%,4,,-1\r\n3,+,3,,1\r\n3,.,3,,1\r\n3,`a,3,,1\r\n3,`a:,3,,1\r\n3,`e,3,,1\r\n3,`e:,3,,1\r\n3,`i,3,,1\r\n3,`i:,3,,1\r\n3,`o,3,,1\r\n3,`o:,3,,1\r\n3,`u,3,,1\r\n3,`u:,3,,1\r\n3,`y,3,,1\r\n3,`y:,3,,1\r\n3,a,3,,1\r\n3,a:,3,,1\r\n3,b,3,,1\r\n3,c,3,,1\r\n3,d,3,,1\r\n3,e,3,,1\r\n3,e:,3,,1\r\n3,f,3,,1\r\n3,g,3,,1\r\n3,h,3,,1\r\n3,i,3,,1\r\n3,i:,3,,1\r\n3,j,3,,1\r\n3,k,3,,1\r\n3,l,3,,1\r\n3,m,3,,1\r\n3,n,3,,1\r\n3,o,3,,1\r\n3,o:,3,,1\r\n3,p,3,,1\r\n3,q,3,,1\r\n3,r,3,,1\r\n3,s,3,,1\r\n3,t,3,,1\r\n3,u,3,,1\r\n3,u:,3,,1\r\n3,v,3,,1\r\n3,w,3,,1\r\n3,x,3,,1\r\n3,y,3,,1\r\n3,y:,3,,1\r\n3,z,3,,1\r\n4,b,5,b,-1\r\n4,c,5,c,-1\r\n4,d,5,d,-1\r\n4,f,5,f,-1\r\n4,g,5,g,-1\r\n4,h,5,h,-1\r\n4,j,5,j,-1\r\n4,k,5,k,-1\r\n4,l,5,l,-1\r\n4,m,5,m,-1\r\n4,n,5,n,-1\r\n4,p,5,p,-1\r\n4,q,5,q,-1\r\n4,r,5,r,-1\r\n4,s,5,s,-1\r\n4,t,5,t,-1\r\n4,v,5,v,-1\r\n4,w,5,w,-1\r\n4,x,5,x,-1\r\n4,z,5,z,-1\r\n5,#,6,~,1\r\n5,+,5,,-1\r\n5,.,5,,-1\r\n5,`a,5,,-1\r\n5,`a:,5,,-1\r\n5,`e,5,,-1\r\n5,`e:,5,,-1\r\n5,`i,5,,-1\r\n5,`i:,5,,-1\r\n5,`o,5,,-1\r\n5,`o:,5,,-1\r\n5,`u,5,,-1\r\n5,`u:,5,,-1\r\n5,`y,5,,-1\r\n5,`y:,5,,-1\r\n5,a,5,,-1\r\n5,a:,5,,-1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,e:,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,i:,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,o:,5,,-1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,u:,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,5,,-1\r\n5,y:,5,,-1\r\n5,z,5,,-1\r\n6,%,1,,1\r\n6,+,6,+,1\r\n6,.,6,.,1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n'),
('First-Last C - Temiar cluster repair', '| Input | Output |\r\n|---------------|---------------------|\r\n| C~1~C~2~VC~f~ | C~1~-C~f~-C~2~VC~f~ |\r\n| C~1~VC~f~ | C~1~C~f~-C~1~VC~f~ |', 'a)\r\nInput=#C~1~-VX-C~f~% where X is a string of segments\r\nOutput=#C~1~C~f~\\~C~1~-X-C~f~%\r\nb)\r\nInput=#C~1~C~2~-VX-C~f~% where X is a string of segments\r\nOutput=#C~1~C~f~\\~C~2~-X-C~f~%\r\nIf there is no initial cluster, the first and last consonants are copied and placed before the base. Else if there is, the final consonant is copied and placed inside the cluster', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs C1 and Cf\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n%state q3 and up output the base but without the first consonant i if its a cluster\r\n\\node[state] (q5) [below of=q0] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state] (q7) [right of=q6] {$q_7$};\r\n\\node[state,accepting] (q8) [right of=q7] {$q_8$};\r\n\\node[state] (q9) [below of=q6] {$q_9$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge [loop above] node[] {($\\Sigma$,$\\epsilon$,+1)} (q2)\r\n(q2) edge node {(\\%,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(C,C,-1)} (q4)\r\n(q4) edge [loop above] node[] {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n\r\n(q4) edge[bend left=10] node[] {(\\#,$\\sim$,+1)} (q5)\r\n(q5) edge node[below] {(C,$\\epsilon$,+1)} (q6)\r\n(q6) edge node[below] {(C,C,+1)} (q7)\r\n(q7) edge [loop above] node[] {($\\Sigma$,$\\Sigma$,+1)} (q7)\r\n(q7) edge node[below] {(\\%,$\\epsilon$,+1)} (q8)\r\n(q6) edge node[left] {(V,$\\epsilon$,-1)} (q9)\r\n(q9) edge node[right] {(C,C,+1)} (q7)\r\n\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#First C + Last C copying with initial cluster repair\r\n#If the word starts with CV and ends with a consonant: CV...C, then the two consonants are copied \r\n#and placed at the beginning of the word \r\n#If the word starts with two or more consonants C_1C_2C* and ends with C, the final C is copied and placed after C_1\r\n#The function is not defined for an input which starts with anything other than C \r\n#or which ends with anything other than C\r\n#e.g. patak --> pk~patak, pfatak --> pk~fatak, pata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'skip to the end\',\'output final C\',\'return\',\'skip first C\',\'check if word starts with C cluster\',\'continue output\',\'end\',\'word does not start with cluster\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\' ) = (\'output first C\', \'\', 1)\r\n(\'output first C\', \\consonants) = (\'skip to the end\', \\ID, 1)\r\n(\'skip to the end\', \\alphabet) = (\'skip to the end\', \'\', 1)\r\n(\'skip to the end\', \'%\') = (\'output final C\', \'\', -1)\r\n(\'output final C\', \\consonants) = (\'return\', \\ID, -1)\r\n(\'return\', \\alphabet) = (\'return\', \'\', -1)\r\n(\'return\', \'#\') = (\'skip first C\', \'~\',1)\r\n(\'skip first C\', \\consonants) = (\'check if word starts with C cluster\', \'\', 1)\r\n(\'check if word starts with C cluster\', \\consonants) = (\'continue output\',\\ID, 1)\r\n(\'continue output\', \\alphabet) = (\'continue output\', \\ID, 1)\r\n(\'continue output\', \'%\') = (\'end\', \'\', 1)\r\n(\'check if word starts with C cluster\', \\vowels) = (\'word does not start with cluster\', \'\', -1)\r\n(\'word does not start with cluster\', \\consonants) = (\'continue output\', \\ID, 1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n First C + Last C copying with initial cluster repair\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 skip to the end\r\n4 output final C\r\n5 return\r\n6 skip first C\r\n7 check if word starts with C cluster\r\n8 continue output\r\n9 word does not start with cluster\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,%,4,,-1\r\n3,+,3,,1\r\n3,.,3,,1\r\n3,`a,3,,1\r\n3,`a:,3,,1\r\n3,`e,3,,1\r\n3,`e:,3,,1\r\n3,`i,3,,1\r\n3,`i:,3,,1\r\n3,`o,3,,1\r\n3,`o:,3,,1\r\n3,`u,3,,1\r\n3,`u:,3,,1\r\n3,`y,3,,1\r\n3,`y:,3,,1\r\n3,a,3,,1\r\n3,a:,3,,1\r\n3,b,3,,1\r\n3,c,3,,1\r\n3,d,3,,1\r\n3,e,3,,1\r\n3,e:,3,,1\r\n3,f,3,,1\r\n3,g,3,,1\r\n3,h,3,,1\r\n3,i,3,,1\r\n3,i:,3,,1\r\n3,j,3,,1\r\n3,k,3,,1\r\n3,l,3,,1\r\n3,m,3,,1\r\n3,n,3,,1\r\n3,o,3,,1\r\n3,o:,3,,1\r\n3,p,3,,1\r\n3,q,3,,1\r\n3,r,3,,1\r\n3,s,3,,1\r\n3,t,3,,1\r\n3,u,3,,1\r\n3,u:,3,,1\r\n3,v,3,,1\r\n3,w,3,,1\r\n3,x,3,,1\r\n3,y,3,,1\r\n3,y:,3,,1\r\n3,z,3,,1\r\n4,b,5,b,-1\r\n4,c,5,c,-1\r\n4,d,5,d,-1\r\n4,f,5,f,-1\r\n4,g,5,g,-1\r\n4,h,5,h,-1\r\n4,j,5,j,-1\r\n4,k,5,k,-1\r\n4,l,5,l,-1\r\n4,m,5,m,-1\r\n4,n,5,n,-1\r\n4,p,5,p,-1\r\n4,q,5,q,-1\r\n4,r,5,r,-1\r\n4,s,5,s,-1\r\n4,t,5,t,-1\r\n4,v,5,v,-1\r\n4,w,5,w,-1\r\n4,x,5,x,-1\r\n4,z,5,z,-1\r\n5,#,6,~,1\r\n5,+,5,,-1\r\n5,.,5,,-1\r\n5,`a,5,,-1\r\n5,`a:,5,,-1\r\n5,`e,5,,-1\r\n5,`e:,5,,-1\r\n5,`i,5,,-1\r\n5,`i:,5,,-1\r\n5,`o,5,,-1\r\n5,`o:,5,,-1\r\n5,`u,5,,-1\r\n5,`u:,5,,-1\r\n5,`y,5,,-1\r\n5,`y:,5,,-1\r\n5,a,5,,-1\r\n5,a:,5,,-1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,e:,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,i:,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,o:,5,,-1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,u:,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,5,,-1\r\n5,y:,5,,-1\r\n5,z,5,,-1\r\n6,b,7,,1\r\n6,c,7,,1\r\n6,d,7,,1\r\n6,f,7,,1\r\n6,g,7,,1\r\n6,h,7,,1\r\n6,j,7,,1\r\n6,k,7,,1\r\n6,l,7,,1\r\n6,m,7,,1\r\n6,n,7,,1\r\n6,p,7,,1\r\n6,q,7,,1\r\n6,r,7,,1\r\n6,s,7,,1\r\n6,t,7,,1\r\n6,v,7,,1\r\n6,w,7,,1\r\n6,x,7,,1\r\n6,z,7,,1\r\n7,`a,9,,-1\r\n7,`a:,9,,-1\r\n7,`e,9,,-1\r\n7,`e:,9,,-1\r\n7,`i,9,,-1\r\n7,`i:,9,,-1\r\n7,`o,9,,-1\r\n7,`o:,9,,-1\r\n7,`u,9,,-1\r\n7,`u:,9,,-1\r\n7,`y,9,,-1\r\n7,`y:,9,,-1\r\n7,a,9,,-1\r\n7,a:,9,,-1\r\n7,b,8,b,1\r\n7,c,8,c,1\r\n7,d,8,d,1\r\n7,e,9,,-1\r\n7,e:,9,,-1\r\n7,f,8,f,1\r\n7,g,8,g,1\r\n7,h,8,h,1\r\n7,i,9,,-1\r\n7,i:,9,,-1\r\n7,j,8,j,1\r\n7,k,8,k,1\r\n7,l,8,l,1\r\n7,m,8,m,1\r\n7,n,8,n,1\r\n7,o,9,,-1\r\n7,o:,9,,-1\r\n7,p,8,p,1\r\n7,q,8,q,1\r\n7,r,8,r,1\r\n7,s,8,s,1\r\n7,t,8,t,1\r\n7,u,9,,-1\r\n7,u:,9,,-1\r\n7,v,8,v,1\r\n7,w,8,w,1\r\n7,x,8,x,1\r\n7,y,9,,-1\r\n7,y:,9,,-1\r\n7,z,8,z,1\r\n8,%,1,,1\r\n8,+,8,+,1\r\n8,.,8,.,1\r\n8,`a,8,`a,1\r\n8,`a:,8,`a:,1\r\n8,`e,8,`e,1\r\n8,`e:,8,`e:,1\r\n8,`i,8,`i,1\r\n8,`i:,8,`i:,1\r\n8,`o,8,`o,1\r\n8,`o:,8,`o:,1\r\n8,`u,8,`u,1\r\n8,`u:,8,`u:,1\r\n8,`y,8,`y,1\r\n8,`y:,8,`y:,1\r\n8,a,8,a,1\r\n8,a:,8,a:,1\r\n8,b,8,b,1\r\n8,c,8,c,1\r\n8,d,8,d,1\r\n8,e,8,e,1\r\n8,e:,8,e:,1\r\n8,f,8,f,1\r\n8,g,8,g,1\r\n8,h,8,h,1\r\n8,i,8,i,1\r\n8,i:,8,i:,1\r\n8,j,8,j,1\r\n8,k,8,k,1\r\n8,l,8,l,1\r\n8,m,8,m,1\r\n8,n,8,n,1\r\n8,o,8,o,1\r\n8,o:,8,o:,1\r\n8,p,8,p,1\r\n8,q,8,q,1\r\n8,r,8,r,1\r\n8,s,8,s,1\r\n8,t,8,t,1\r\n8,u,8,u,1\r\n8,u:,8,u:,1\r\n8,v,8,v,1\r\n8,w,8,w,1\r\n8,x,8,x,1\r\n8,y,8,y,1\r\n8,y:,8,y:,1\r\n8,z,8,z,1\r\n9,b,8,b,1\r\n9,c,8,c,1\r\n9,d,8,d,1\r\n9,f,8,f,1\r\n9,g,8,g,1\r\n9,h,8,h,1\r\n9,j,8,j,1\r\n9,k,8,k,1\r\n9,l,8,l,1\r\n9,m,8,m,1\r\n9,n,8,n,1\r\n9,p,8,p,1\r\n9,q,8,q,1\r\n9,r,8,r,1\r\n9,s,8,s,1\r\n9,t,8,t,1\r\n9,v,8,v,1\r\n9,w,8,w,1\r\n9,x,8,x,1\r\n9,z,8,z,1\r\n'),
('Initial C - General with an affix', '| Input | Output |\r\n|-------|-----------|\r\n| C-X | C-a-C-X | ', 'Input=#C-X$ where X is any string of symbols\r\nOutput=#C\\~C-X%\r\nThe word-initial C string is repeated. I assume that inputs start with C and there is no modification done on the reduplicant. I assume there are reasons why this isn\'t just called gemination. \r\n\r\nIn most cases a morphologically-specified string (infix) is added between the two copies. I model this string as [a].', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first C once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n%states q2-q4 return to the beginning of input, output the base CVX, and end\r\n\\node[state] (q3) [below of=q1] {$q_3$};\r\n\\node[state,accepting] (q4) [right of=q3] {$q_4$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,-1)} (q2)\r\n(q2) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q2)\r\n(q2) edge node {(\\#,a$\\sim$,+1)} (q3)\r\n(q3) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q3)\r\n(q3) edge node[below] {(\\%,$\\epsilon$,+1)} (q4)\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 0, '#First C copying with epenthesis\r\n#If the word starts with C, then that C is reduplicated \r\n#A morphologically or phonologically specified string is cross-linguistically often placed between the two consonants\r\n#I model this epenthetic string as [a]\r\n#The function is not defined for an input which starts with anything other than C \r\n#e.g. patak --> pa~patak, ata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\', \'output first C\', \'return\', \'continue output\', \'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first C\', \'\', 1)\r\n(\'output first C\', \\consonants) = (\'return\', \\ID, 1)\r\n(\'return\', \\alphabet) = (\'return\', \'\', -1)\r\n(\'return\',\'#\') = (\'continue output\', \'a~\',1)\r\n(\'continue output\', \\alphabet) = (\'continue output\', \\ID, 1)\r\n(\'continue output\', \'%\') = (\'end\', \'\', 1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n First C copying with epenthesis\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 return\r\n4 continue output\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,#,4,a~,1\r\n3,+,3,,-1\r\n3,.,3,,-1\r\n3,`a,3,,-1\r\n3,`a:,3,,-1\r\n3,`e,3,,-1\r\n3,`e:,3,,-1\r\n3,`i,3,,-1\r\n3,`i:,3,,-1\r\n3,`o,3,,-1\r\n3,`o:,3,,-1\r\n3,`u,3,,-1\r\n3,`u:,3,,-1\r\n3,`y,3,,-1\r\n3,`y:,3,,-1\r\n3,a,3,,-1\r\n3,a:,3,,-1\r\n3,b,3,,-1\r\n3,c,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,e:,3,,-1\r\n3,f,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,i:,3,,-1\r\n3,j,3,,-1\r\n3,k,3,,-1\r\n3,l,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,o:,3,,-1\r\n3,p,3,,-1\r\n3,q,3,,-1\r\n3,r,3,,-1\r\n3,s,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,u:,3,,-1\r\n3,v,3,,-1\r\n3,w,3,,-1\r\n3,x,3,,-1\r\n3,y,3,,-1\r\n3,y:,3,,-1\r\n3,z,3,,-1\r\n4,%,1,,1\r\n4,+,4,+,1\r\n4,.,4,.,1\r\n4,`a,4,`a,1\r\n4,`a:,4,`a:,1\r\n4,`e,4,`e,1\r\n4,`e:,4,`e:,1\r\n4,`i,4,`i,1\r\n4,`i:,4,`i:,1\r\n4,`o,4,`o,1\r\n4,`o:,4,`o:,1\r\n4,`u,4,`u,1\r\n4,`u:,4,`u:,1\r\n4,`y,4,`y,1\r\n4,`y:,4,`y:,1\r\n4,a,4,a,1\r\n4,a:,4,a:,1\r\n4,b,4,b,1\r\n4,c,4,c,1\r\n4,d,4,d,1\r\n4,e,4,e,1\r\n4,e:,4,e:,1\r\n4,f,4,f,1\r\n4,g,4,g,1\r\n4,h,4,h,1\r\n4,i,4,i,1\r\n4,i:,4,i:,1\r\n4,j,4,j,1\r\n4,k,4,k,1\r\n4,l,4,l,1\r\n4,m,4,m,1\r\n4,n,4,n,1\r\n4,o,4,o,1\r\n4,o:,4,o:,1\r\n4,p,4,p,1\r\n4,q,4,q,1\r\n4,r,4,r,1\r\n4,s,4,s,1\r\n4,t,4,t,1\r\n4,u,4,u,1\r\n4,u:,4,u:,1\r\n4,v,4,v,1\r\n4,w,4,w,1\r\n4,x,4,x,1\r\n4,y,4,y,1\r\n4,y:,4,y:,1\r\n4,z,4,z,1\r\n'),
('Initial CV - Akan palatalization', '| Input | Output (without reduplication | Input | Output (with reduplication |\r\n|-------|-------------------------------|-------|----------------------------|\r\n| kɛ | tɕe | kaʔ | kɪkaʔ |\r\n| ge | dʝe | hawʔ | hɪ-hawʔ |\r\n| wi | ɥi | ge | dʝɪ-dʝe |\r\n| hi | çi | kwe | tçɥɪ-tçɥe |\r\n| ŋwĩn | ɲɥĩn | | |', 'Input=#CV-X$ where X is any string of symbols\r\nOutput=#CI\\~CV-X% where I is an epenthetic vowel\r\nThe word-initial C is repeated. An epenthetic vowel I string is inserted. It is prespecified as [+high] but it receives its [front] and [round] features through harmony with the root.\r\n\r\nProcess: Outside of reduplication, dorsal segments /{k, g, w, ŋ^w^/ palatalize when followed by a non-front vowel. When the word involves reduplication, the reduplicant\'s C will not palatalize from the reduplicant\'s [i] (underapply) unless the base\'s C is also followed by a non-front vowel. When the base\'s C fits the context for palatalization, the reduplicant\'s C will be allowed to palatalize. It is not clear if the initial C is actually a consonant cluster or a complex segment', 'FST: Symbols use: V for vowel, I for non-low front vowel, K for dorsal segments, P for palatalized segments. The FST assumes that the word starts with CV, e.g. \\#CVΣ*\\%. This FST assumes that the reduplicant vowel is [i]\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 handles case where C is not dorsal, and outputs reduplicant and base with [i] \r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state,accepting] (q3) [right of =q2] {$q_3$};\r\n%state q4 is for if word doesnt have nasal that precedes % without blocker\r\n\\node[state] (q4) [below of=q1] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q5] {$q_6$};\r\n\\path\r\n%check if first C is succeeded by low front V\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n%if the C is nonvelar, then just output *i*, continue the base, and end\r\n(q1) edge node {(\\{C-K\\},*i$\\sim$*,+1)} (q2)\r\n(q2) edge[loop above] node {($\\Sigma$,*,+1)} (q2)\r\n(q2) edge node {(\\%,$\\epsilon$,+1)} (q3)\r\n%if C is velar, then check if followed by non-low front I\r\n(q1) edge node[left] {(K,$\\epsilon$,+1)} (q4)\r\n%if it is followed by I then go back and produce palatalized versions\r\n(q4) edge node {(I,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(K,Pi$\\sim$P,+1)} (q2)\r\n%if it is not followed by I then go back and produce palatalized versions\r\n(q4) edge node[left] {(\\{V-I\\},$\\epsilon$,-1)} (q6)\r\n(q6) edge[bend right=45] node[right] {(K,Ki$\\sim$K,+1)} (q2)\r\n\r\n\r\n;\r\n\r\n\r\n\\end{tikzpicture}', 1, '#Initial CV reduplication in Akan with underapplication of palatalization\r\n#In Akan, dorsals palatalize before non-low front vowels\r\n#There is an initiail-CV reduplication process that copies the first C and makes the reduplicant\'s V be /ɪ/\r\n#Palatalization will not apply in the reduplicant unless both copies of the C are before non-low front vowels\r\n#e.g. pata--> pɪ~pata, kata --> ka~kata, kita --> tɕi~tɕita\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [ \'p\', \'t\', \'b\', \'d\',\'m\',\'n\',\'r\',\'l\',\'f\',\'v\',\'s\',\'z\',\'j\', \'tɕ\', \'dʝ\', \'ɥ\', \'ç\', \'ɲ\', \'ʔ\', \'k\',\'g\',\'w\',\'h\',\'ŋ\', \'ŋw\',\'kw\',\'tçɥ\',\'a\',\'e\',\'ɛ\',\'i\', \'ɪ\',\'o\',\'u\']\r\nsubalphabets = 4\r\nconsonants = [ \'p\', \'t\', \'b\', \'d\',\'m\',\'n\',\'r\',\'l\',\'f\',\'v\',\'s\',\'z\',\'j\', \'tɕ\', \'dʝ\', \'ɥ\', \'ç\', \'ɲ\', \'ʔ\', \'k\',\'g\',\'w\',\'h\',\'ŋ\', \'ŋw\', \'kw\', \'tçɥ\']\r\ndorsals = [ \'k\',\'g\',\'w\',\'h\',\'ŋ\', \'ŋw\',\'kw\' ]\r\nvowels = [\'a\',\'e\',\'ɛ\',\'i\', \'ɪ\',\'o\',\'u\']\r\nnonlow_front_vowels = [\'e\',\'ɛ\',\'i\', \'ɪ\']\r\n\r\nfunctions = 1\r\npalatalize = { (\'k\', \'tɕ\'),(\'g\',\'dʝ\'), (\'w\',\'ɥ\'), (\'h\',\'ç\'), (\'ŋ\', \'ɲ\'), (\'ŋw\',\'ɲɥ\'), (\'kw\',\'tçɥ\') }\r\n\r\n#states type = string\r\nstates = [\'start\',\'check if first C is dorsal or not\',\'continue base\',\'end\',\'first C was dorsal so check first V\',\'first V is non-low front\',\'first V is not non-low front\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'check if first C is dorsal or not\',\'\',1)\r\n(\'check if first C is dorsal or not\',{\\consonants - \\dorsals}) = (\'continue base\',[\\ID \'ɪ~\' \\ID], 1)\r\n(\'continue base\',\\alphabet) = (\'continue base\',\\ID,1)\r\n(\'continue base\',\'%\') = (\'end\',\'\',1)\r\n(\'check if first C is dorsal or not\',\\dorsals) = (\'first C was dorsal so check first V\',\'\',1)\r\n(\'first C was dorsal so check first V\',\\nonlow_front_vowels) = (\'first V is non-low front\',\'\',-1)\r\n(\'first V is non-low front\',\\dorsals) = (\'continue base\',[\\palatalize \'ɪ~\' \\palatalize], 1)\r\n(\'first C was dorsal so check first V\',{\\vowels - \\nonlow_front_vowels} ) = (\'first V is not non-low front\',\'\',-1)\r\n(\'first V is not non-low front\',\\dorsals) = (\'continue base\',[\\ID \'ɪ~\' \\ID], 1)\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CV reduplication in Akan with underapplication of palatalization\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 check if first C is dorsal or not\r\n3 continue base\r\n4 first C was dorsal so check first V\r\n5 first V is non-low front\r\n6 first V is not non-low front\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,bɪ~b,1\r\n2,d,3,dɪ~d,1\r\n2,dʝ,3,dʝɪ~dʝ,1\r\n2,f,3,fɪ~f,1\r\n2,g,4,,1\r\n2,h,4,,1\r\n2,j,3,jɪ~j,1\r\n2,k,4,,1\r\n2,kw,4,,1\r\n2,l,3,lɪ~l,1\r\n2,m,3,mɪ~m,1\r\n2,n,3,nɪ~n,1\r\n2,p,3,pɪ~p,1\r\n2,r,3,rɪ~r,1\r\n2,s,3,sɪ~s,1\r\n2,t,3,tɪ~t,1\r\n2,tçɥ,3,tçɥɪ~tçɥ,1\r\n2,tɕ,3,tɕɪ~tɕ,1\r\n2,v,3,vɪ~v,1\r\n2,w,4,,1\r\n2,z,3,zɪ~z,1\r\n2,ç,3,çɪ~ç,1\r\n2,ŋ,4,,1\r\n2,ŋw,4,,1\r\n2,ɥ,3,ɥɪ~ɥ,1\r\n2,ɲ,3,ɲɪ~ɲ,1\r\n2,ʔ,3,ʔɪ~ʔ,1\r\n3,%,1,,1\r\n3,a,3,a,1\r\n3,b,3,b,1\r\n3,d,3,d,1\r\n3,dʝ,3,dʝ,1\r\n3,e,3,e,1\r\n3,f,3,f,1\r\n3,g,3,g,1\r\n3,h,3,h,1\r\n3,i,3,i,1\r\n3,j,3,j,1\r\n3,k,3,k,1\r\n3,kw,3,kw,1\r\n3,l,3,l,1\r\n3,m,3,m,1\r\n3,n,3,n,1\r\n3,o,3,o,1\r\n3,p,3,p,1\r\n3,r,3,r,1\r\n3,s,3,s,1\r\n3,t,3,t,1\r\n3,tçɥ,3,tçɥ,1\r\n3,tɕ,3,tɕ,1\r\n3,u,3,u,1\r\n3,v,3,v,1\r\n3,w,3,w,1\r\n3,z,3,z,1\r\n3,ç,3,ç,1\r\n3,ŋ,3,ŋ,1\r\n3,ŋw,3,ŋw,1\r\n3,ɛ,3,ɛ,1\r\n3,ɥ,3,ɥ,1\r\n3,ɪ,3,ɪ,1\r\n3,ɲ,3,ɲ,1\r\n3,ʔ,3,ʔ,1\r\n4,a,6,,-1\r\n4,e,5,,-1\r\n4,i,5,,-1\r\n4,o,6,,-1\r\n4,u,6,,-1\r\n4,ɛ,5,,-1\r\n4,ɪ,5,,-1\r\n5,g,3,dʝɪ~dʝ,1\r\n5,h,3,çɪ~ç,1\r\n5,k,3,tɕɪ~tɕ,1\r\n5,kw,3,tçɥɪ~tçɥ,1\r\n5,w,3,ɥɪ~ɥ,1\r\n5,ŋ,3,ɲɪ~ɲ,1\r\n5,ŋw,3,ɲɥɪ~ɲɥ,1\r\n6,g,3,gɪ~g,1\r\n6,h,3,hɪ~h,1\r\n6,k,3,kɪ~k,1\r\n6,kw,3,kwɪ~kw,1\r\n6,w,3,wɪ~w,1\r\n6,ŋ,3,ŋɪ~ŋ,1\r\n6,ŋw,3,ŋwɪ~ŋw,1\r\n'),
('Initial CV - Attic Greek sonority-sensitive cluster repair', 'Data is complicated. Refer to the description', 'Form: There are four subpatterns. The each involve adding a suffix and some vowel alternations in the root. These two issues are not explained in the source however. \r\n\r\n\r\n1) Pattern 1: X=C~1~VY \r\n\r\nredup(X)=C~1~-e-X-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|---------|-------------|-------------------|\r\n| lu: | \"untie\" | l-e-lu:-k-a | \"untie (perfect)\" |\r\n\r\n2) Pattern 2: X=C~1~C~2~ such that C~1~C2 is [-voice,+stop][+sonorant] or [+voice,+stop][r]\r\n\r\nredup(X)=C~1~-e-X-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------|------------|-----------------|----------------------|\r\n| klep | \"steal\" | k-e-klop^h^-a | \"steal (perfect)\" |\r\n| tla: | \"endure\" | t-e-tla-men | \"endure (perfect)\" |\r\n| pneu | \"breathe\" | p-e-pneu-k-a | \"breathe (perfect)\" |\r\n| grap^h^ | \"write\" | g-e-grap^h^-a | \"write (perfect)\" |\r\n| bri:t^h^ | \"be heavy\" | b-e-bri:t^h^-a} | \"be heavy (perfect)\" |\r\n\r\n3) Pattern 3: X=C~1~C~2~Y such that C~1~C2 is not [-voice,+stop][+sonorant] or [+voice, +stop][r]\r\n\r\nredup(X)=e-X-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|--------|----------|--------------|--------------------|\r\n| sper | \"sow\" | e-sper-m-ai | \"sow (perfect)\" |\r\n| strep | \"turn\" | e-strop^h^-a | \"turn (perfect)\" |\r\n| kten | \"kill\" | e-kton-a | \"kill (perfect)\" |\r\n| gno: | \"know\" | e-gno:-k-a | \"know (perfect)\" |\r\n| blasta | \"sprout\" | e-blaste-k-a | \"sprout (perfect)\" |\r\n\r\n4) Pattern 4: X=VY \r\n\r\nredup(X)=V:-Y-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|---------|------------|---------------|----------------------|\r\n| angel | \"announce\" | a:-ngel-k-a | \"announce (perfect)\" |\r\n| et^h^el | \"want\" | e:-t^h^el-k-a | \"want (perfect)\" |\r\n| op^h^el | \"owe\" | o:-p^h^el-k-a | \"owe (perfect)\" |\r\n\r\n5) Pattern 5: X=VCY. It is not clear how these last two patterns are differentiated\r\n\r\nredup(X)=VC-V:C-Y-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|-----------|---------------|---------------------|\r\n| od | \"smell\" | od-o:d-a | \"smell (perfect)\" |\r\n| ager | \"collect\" | ag-a:g-er-k-a | \"collect (perfect)\" |\r\n| eger | \"awaken\" | eg-e:g-er-m-a | \"awaken (perfect)\" |\r\n\r\n', 'FST: The FST only handles consonant initial inputs because the vowel-initial stems do not look easily distinguishable. I use C for consonant, V for vowel, T for voiceless stop, D for voiced stop, S for sonorant, r for /r/.\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state] (q7) [below =4cm of q0] {$q_7$};\r\n\\node[state] (q8) [below =4cm of q2] {$q_8$};\r\n\\node[state] (q9) [below =4cm of q4] {$q_9$};\r\n\\node[state] (q10) [below of=q9] {$q_{10}$};\r\n\\node[state] (q11) [right =4cm of q10] {$q_{11}$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,$\\epsilon$,+1)} (q2)\r\n(q2) edge node {(V,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(C,Ce-,+1)} (q4)\r\n(q4) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(\\#,$\\epsilon$,+1)} (q5)\r\n(q5) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n(q2) edge node[left] {(C,$\\epsilon$,-1)} (q7)\r\n\r\n(q7) edge node[below] {(T,$\\epsilon$,+1)} (q8)\r\n(q8) edge node[below] {(S,$\\epsilon$,-1)} (q9)\r\n(q9) edge node {(T,Te-,-1)} (q4)\r\n(q8) edge node {(\\{C-S\\},e-,-1)} (q4)\r\n\r\n(q7) edge node [below]{(D,$\\epsilon$,+1)} (q10)\r\n(q10) edge node[below] {(r,$\\epsilon$,-1)} (q11)\r\n(q11) edge[bend right=45] node {(D,De-,-1)} (q4)\r\n(q10) edge[bend right=45] node {(\\{C-r\\},e-,-1)} (q4)\r\n\r\n(q7) edge node {(\\{C-T-D\\},e-,-1)} (q4)\r\n\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 1, '#Initial CV reduplication -- sonority-sensitive onset cluster repair in Attic Greek\r\n#In Attic Greek, a prefix \'e\' is added. This prefix will either copy an onset from the input or not\r\n#It will copy an onset based on the sonority-profile of the word-inital onset if its a complex onset\r\n#If the word starts with a simplex onset, then it the onset is copied: pat --> pe-pat\r\n#If the word starts with a complex onset, then there are different outputs depending on the cluster\'s sonority profile\r\n#If the cluster is voiceless_stop + sonorant, then the voiceless stop is copied: tlap --> te-tlap\r\n#If the cluster is voiced stop + r, then the voiced stop is copied: drap --> de-drap\r\n#If its any other type of cluster, nothing is copied: spat --> e-spat\r\n#If it starts with a vowel, there is sometimes vowel coalescence or syllable copying \r\n#It looks nondeterministic based on the bibliography so I do not define the function\r\n#to have outputs for vowel-initial words\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'f\',\'v\',\'s\',\'z\',\'h\',\'l\',\'r\',\'j\',\'w\',\'a\',\'e\',\'i\',\'u\',\'o\' ]\r\nsubalphabets=5\r\nconsonants = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'f\',\'v\',\'s\',\'z\',\'h\',\'r\',\'l\',\'j\',\'w\']\r\nvowels = [\'a\',\'e\',\'i\',\'u\',\'o\']\r\nvoiceless_stops = [\'p\',\'t\',\'k\']\r\nvoiced_stops =[\'b\',\'d\',\'g\']\r\nsonorants = [\'m\', \'n\',\'r\',\'l\', \'j\',\'w\']\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'check if starts with CC cluster\',\'doesnt start with cluster\',\'output Ce before CVX\',\'return\',\'continue output\',\'end\',\'starts with CC cluster\',\'starts with voiceless stop\',\'starts with voiceless stop+sonorant cluster\',\'starts with voiced stop\',\'starts with voiced stop+r\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'check if starts with CC cluster\', \'\',1)\r\n(\'check if starts with CC cluster\', \\consonants )= (\'doesnt start with cluster\',\'\',1)\r\n(\'doesnt start with cluster\', \\vowels) = (\'output Ce before CVX\',\'\',-1)\r\n(\'output Ce before CVX\', \\consonants) = (\'return\', [\\ID \'e-\'], 1)\r\n(\'return\', \\alphabet) = (\'return\', \'\',-1)\r\n(\'return\', \'#\') = (\'continue output\',\'\',1)\r\n(\'continue output\', \\alphabet) = (\'continue output\',\\ID,1)\r\n(\'continue output\', \'%\') =(\'end\',\'\',1)\r\n(\'doesnt start with cluster\', \\consonants) = (\'starts with CC cluster\',\'\',-1)\r\n(\'starts with CC cluster\', \\voiceless_stops) = (\'starts with voiceless stop\',\'\',1)\r\n(\'starts with voiceless stop\', \\sonorants) = (\'starts with voiceless stop+sonorant cluster\',\'\',-1)\r\n(\'starts with voiceless stop+sonorant cluster\', \\voiceless_stops) = (\'return\',[\\ID \'e-\'],-1)\r\n(\'starts with voiceless stop\', {\\consonants - \\sonorants} ) = (\'return\',\'e-\',-1)\r\n(\'starts with CC cluster\', \\voiced_stops) = (\'starts with voiced stop\',\'\',1)\r\n(\'starts with voiced stop\', \'r\') = (\'starts with voiced stop+r\',\'\',-1)\r\n(\'starts with voiced stop+r\', \\voiced_stops) = (\'return\', [\\ID \'e-\'], -1)\r\n(\'starts with voiced stop\', {\\consonants - \'r\'} ) = (\'return\', \'e-\', -1)\r\n(\'starts with CC cluster\', {\\consonants - \\voiceless_stops - \\voiced_stops} ) = (\'return\', \'e-\', -1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CV reduplication -- sonority-sensitive onset cluster repair in Attic Greek\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 check if starts with CC cluster\r\n3 doesnt start with cluster\r\n4 output Ce before CVX\r\n5 return\r\n6 continue output\r\n7 starts with CC cluster\r\n8 starts with voiceless stop\r\n9 starts with voiceless stop+sonorant cluster\r\n10 starts with voiced stop\r\n11 starts with voiced stop+r\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,b,5,e-,-1\r\n10,d,5,e-,-1\r\n10,f,5,e-,-1\r\n10,g,5,e-,-1\r\n10,h,5,e-,-1\r\n10,j,5,e-,-1\r\n10,k,5,e-,-1\r\n10,l,5,e-,-1\r\n10,m,5,e-,-1\r\n10,n,5,e-,-1\r\n10,p,5,e-,-1\r\n10,r,11,,-1\r\n10,s,5,e-,-1\r\n10,t,5,e-,-1\r\n10,v,5,e-,-1\r\n10,w,5,e-,-1\r\n10,z,5,e-,-1\r\n11,b,5,be-,-1\r\n11,d,5,de-,-1\r\n11,g,5,ge-,-1\r\n2,b,3,,1\r\n2,d,3,,1\r\n2,f,3,,1\r\n2,g,3,,1\r\n2,h,3,,1\r\n2,j,3,,1\r\n2,k,3,,1\r\n2,l,3,,1\r\n2,m,3,,1\r\n2,n,3,,1\r\n2,p,3,,1\r\n2,r,3,,1\r\n2,s,3,,1\r\n2,t,3,,1\r\n2,v,3,,1\r\n2,w,3,,1\r\n2,z,3,,1\r\n3,a,4,,-1\r\n3,b,7,,-1\r\n3,d,7,,-1\r\n3,e,4,,-1\r\n3,f,7,,-1\r\n3,g,7,,-1\r\n3,h,7,,-1\r\n3,i,4,,-1\r\n3,j,7,,-1\r\n3,k,7,,-1\r\n3,l,7,,-1\r\n3,m,7,,-1\r\n3,n,7,,-1\r\n3,o,4,,-1\r\n3,p,7,,-1\r\n3,r,7,,-1\r\n3,s,7,,-1\r\n3,t,7,,-1\r\n3,u,4,,-1\r\n3,v,7,,-1\r\n3,w,7,,-1\r\n3,z,7,,-1\r\n4,b,5,be-,1\r\n4,d,5,de-,1\r\n4,f,5,fe-,1\r\n4,g,5,ge-,1\r\n4,h,5,he-,1\r\n4,j,5,je-,1\r\n4,k,5,ke-,1\r\n4,l,5,le-,1\r\n4,m,5,me-,1\r\n4,n,5,ne-,1\r\n4,p,5,pe-,1\r\n4,r,5,re-,1\r\n4,s,5,se-,1\r\n4,t,5,te-,1\r\n4,v,5,ve-,1\r\n4,w,5,we-,1\r\n4,z,5,ze-,1\r\n5,#,6,,1\r\n5,a,5,,-1\r\n5,b,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,p,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,z,5,,-1\r\n6,%,1,,1\r\n6,a,6,a,1\r\n6,b,6,b,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,p,6,p,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,z,6,z,1\r\n7,b,10,,1\r\n7,d,10,,1\r\n7,f,5,e-,-1\r\n7,g,10,,1\r\n7,h,5,e-,-1\r\n7,j,5,e-,-1\r\n7,k,8,,1\r\n7,l,5,e-,-1\r\n7,m,5,e-,-1\r\n7,n,5,e-,-1\r\n7,p,8,,1\r\n7,r,5,e-,-1\r\n7,s,5,e-,-1\r\n7,t,8,,1\r\n7,v,5,e-,-1\r\n7,w,5,e-,-1\r\n7,z,5,e-,-1\r\n8,b,5,e-,-1\r\n8,d,5,e-,-1\r\n8,f,5,e-,-1\r\n8,g,5,e-,-1\r\n8,h,5,e-,-1\r\n8,j,9,,-1\r\n8,k,5,e-,-1\r\n8,l,9,,-1\r\n8,m,9,,-1\r\n8,n,9,,-1\r\n8,p,5,e-,-1\r\n8,r,9,,-1\r\n8,s,5,e-,-1\r\n8,t,5,e-,-1\r\n8,v,5,e-,-1\r\n8,w,9,,-1\r\n8,z,5,e-,-1\r\n9,k,5,ke-,-1\r\n9,p,5,pe-,-1\r\n9,t,5,te-,-1\r\n'),
('Initial CV - General reduplication ', '| Input | Output |\r\n|--------|-----------|\r\n| CV-X | CV-CV-X |', 'Input=#CV-X$ where X is any string of symbols\r\nOutput=#CV\\~CV-X%\r\nThe word-initial CV string is repeated. I assume that inputs start with CV and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3-4 outputs the first CV once \r\n\\node[state] (q2) [right of=q0] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q4-9 return to the beginning of input, output the base CVX, and end\r\n\r\n\\node[state] (q5) [below of=q0] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q2)\r\n\r\n(q2) edge node {(C,C,+1)} (q3)\r\n(q3) edge node {(V,V,-1)} (q5)\r\n\r\n(q5) edge [loop left] node {($\\Sigma$,$\\epsilon$,-1)} (q5)\r\n(q5) edge node[below] {(\\#,$\\sim$,+1)} (q6)\r\n(q6) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Initial CV reduplication \r\n#If the word starts with CV, the CV is copied\r\n#The function is not defined for any input which starst with anything other than CV\r\n#e.g. pat --> pa~pat, spat --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\', \\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\', \\vowels) = (\'return\',\\ID,-1)\r\n(\'return\', \\alphabet) = (\'return\',\'\',-1)\r\n(\'return\', \'#\') = (\'output base\',\'~\',1)\r\n(\'output base\', \\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\')= (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CV reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 return\r\n5 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,-1\r\n3,`a:,4,`a:,-1\r\n3,`e,4,`e,-1\r\n3,`e:,4,`e:,-1\r\n3,`i,4,`i,-1\r\n3,`i:,4,`i:,-1\r\n3,`o,4,`o,-1\r\n3,`o:,4,`o:,-1\r\n3,`u,4,`u,-1\r\n3,`u:,4,`u:,-1\r\n3,`y,4,`y,-1\r\n3,`y:,4,`y:,-1\r\n3,a,4,a,-1\r\n3,a:,4,a:,-1\r\n3,e,4,e,-1\r\n3,e:,4,e:,-1\r\n3,i,4,i,-1\r\n3,i:,4,i:,-1\r\n3,o,4,o,-1\r\n3,o:,4,o:,-1\r\n3,u,4,u,-1\r\n3,u:,4,u:,-1\r\n3,y,4,y,-1\r\n3,y:,4,y:,-1\r\n4,#,5,~,1\r\n4,+,4,,-1\r\n4,.,4,,-1\r\n4,`a,4,,-1\r\n4,`a:,4,,-1\r\n4,`e,4,,-1\r\n4,`e:,4,,-1\r\n4,`i,4,,-1\r\n4,`i:,4,,-1\r\n4,`o,4,,-1\r\n4,`o:,4,,-1\r\n4,`u,4,,-1\r\n4,`u:,4,,-1\r\n4,`y,4,,-1\r\n4,`y:,4,,-1\r\n4,a,4,,-1\r\n4,a:,4,,-1\r\n4,b,4,,-1\r\n4,c,4,,-1\r\n4,d,4,,-1\r\n4,e,4,,-1\r\n4,e:,4,,-1\r\n4,f,4,,-1\r\n4,g,4,,-1\r\n4,h,4,,-1\r\n4,i,4,,-1\r\n4,i:,4,,-1\r\n4,j,4,,-1\r\n4,k,4,,-1\r\n4,l,4,,-1\r\n4,m,4,,-1\r\n4,n,4,,-1\r\n4,o,4,,-1\r\n4,o:,4,,-1\r\n4,p,4,,-1\r\n4,q,4,,-1\r\n4,r,4,,-1\r\n4,s,4,,-1\r\n4,t,4,,-1\r\n4,u,4,,-1\r\n4,u:,4,,-1\r\n4,v,4,,-1\r\n4,w,4,,-1\r\n4,x,4,,-1\r\n4,y,4,,-1\r\n4,y:,4,,-1\r\n4,z,4,,-1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n');
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('Initial CV - Inside Base + vowel modifications', '| Input | Output |\r\n|--------|------------|\r\n| ta:dax | ta-te:-dax |\r\n| haba: | ha-hi-ba? |\r\n| deqdeq | de-di-qdeq |', 'Input=#CV-X$ where X is any string of symbols\r\nOutput=#CV\\~CV\'-X% where V\' is a modified reduplicant vowel\r\nThe word-initial CV string is repeated. The reduplicant is placed after the first CV. The redplicant\'s vowel undergoes the following changes: \"if the stem vowel is a, the infixed vowel is e or i, whereas if the stem vowel is e, the copied vowel is generally i\"\r\nFor the sake of determinism I assume that /a/ surfaces as [e] in the reduplicant. There is an unspecified vowel shortening in the base', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first CV once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the beginning of input, output the base CVX, and end\r\n\\node[state] (q4) [below of=q1] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,-1)} (q3)\r\n(q3) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(\\#,$\\sim$,+1)} (q4)\r\n(q4) edge node {(C,C,+1)} (q5)\r\n(q5) edge node {(a,e,+1)} (q6)\r\n(q5) edge node[below] {(e,i,+1)} (q6)\r\n(q6) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Initial CV reduplication -- reduplicant placed inside the base with vowel modifications\r\n#If the word starts with CV, the CV is copied and placed after items\r\n#The reduplicant\'s V is modified by changing /a/ to [e], and /e/ to [i]\r\n#The function is not defined for any input which starst with anything other than Ca or Ce\r\n#e.g. pat --> pa~pet, spat --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'return\',\'output C again\',\'output reduplicant V\',\'continue output\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\', \\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\', \\vowels) = (\'return\',\\ID,-1)\r\n(\'return\', \\alphabet) = (\'return\',\'\',-1)\r\n(\'return\', \'#\') = (\'output C again\',\'~\',1)\r\n(\'output C again\', \\consonants) = (\'output reduplicant V\',\\ID,1)\r\n(\'output reduplicant V\', \'a\') = (\'continue output\',\'e\',1)\r\n(\'output reduplicant V\', \'e\') = (\'continue output\',\'i\',1)\r\n(\'continue output\', \\alphabet) = (\'continue output\',\\ID,1)\r\n(\'continue output\', \'%\') = (\'end\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CV reduplication -- reduplicant placed inside the base with vowel modifications\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 return\r\n5 output C again\r\n6 output reduplicant V\r\n7 continue output\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,-1\r\n3,`a:,4,`a:,-1\r\n3,`e,4,`e,-1\r\n3,`e:,4,`e:,-1\r\n3,`i,4,`i,-1\r\n3,`i:,4,`i:,-1\r\n3,`o,4,`o,-1\r\n3,`o:,4,`o:,-1\r\n3,`u,4,`u,-1\r\n3,`u:,4,`u:,-1\r\n3,`y,4,`y,-1\r\n3,`y:,4,`y:,-1\r\n3,a,4,a,-1\r\n3,a:,4,a:,-1\r\n3,e,4,e,-1\r\n3,e:,4,e:,-1\r\n3,i,4,i,-1\r\n3,i:,4,i:,-1\r\n3,o,4,o,-1\r\n3,o:,4,o:,-1\r\n3,u,4,u,-1\r\n3,u:,4,u:,-1\r\n3,y,4,y,-1\r\n3,y:,4,y:,-1\r\n4,#,5,~,1\r\n4,+,4,,-1\r\n4,.,4,,-1\r\n4,`a,4,,-1\r\n4,`a:,4,,-1\r\n4,`e,4,,-1\r\n4,`e:,4,,-1\r\n4,`i,4,,-1\r\n4,`i:,4,,-1\r\n4,`o,4,,-1\r\n4,`o:,4,,-1\r\n4,`u,4,,-1\r\n4,`u:,4,,-1\r\n4,`y,4,,-1\r\n4,`y:,4,,-1\r\n4,a,4,,-1\r\n4,a:,4,,-1\r\n4,b,4,,-1\r\n4,c,4,,-1\r\n4,d,4,,-1\r\n4,e,4,,-1\r\n4,e:,4,,-1\r\n4,f,4,,-1\r\n4,g,4,,-1\r\n4,h,4,,-1\r\n4,i,4,,-1\r\n4,i:,4,,-1\r\n4,j,4,,-1\r\n4,k,4,,-1\r\n4,l,4,,-1\r\n4,m,4,,-1\r\n4,n,4,,-1\r\n4,o,4,,-1\r\n4,o:,4,,-1\r\n4,p,4,,-1\r\n4,q,4,,-1\r\n4,r,4,,-1\r\n4,s,4,,-1\r\n4,t,4,,-1\r\n4,u,4,,-1\r\n4,u:,4,,-1\r\n4,v,4,,-1\r\n4,w,4,,-1\r\n4,x,4,,-1\r\n4,y,4,,-1\r\n4,y:,4,,-1\r\n4,z,4,,-1\r\n5,b,6,b,1\r\n5,c,6,c,1\r\n5,d,6,d,1\r\n5,f,6,f,1\r\n5,g,6,g,1\r\n5,h,6,h,1\r\n5,j,6,j,1\r\n5,k,6,k,1\r\n5,l,6,l,1\r\n5,m,6,m,1\r\n5,n,6,n,1\r\n5,p,6,p,1\r\n5,q,6,q,1\r\n5,r,6,r,1\r\n5,s,6,s,1\r\n5,t,6,t,1\r\n5,v,6,v,1\r\n5,w,6,w,1\r\n5,x,6,x,1\r\n5,z,6,z,1\r\n6,a,7,e,1\r\n6,e,7,i,1\r\n7,%,1,,1\r\n7,+,7,+,1\r\n7,.,7,.,1\r\n7,`a,7,`a,1\r\n7,`a:,7,`a:,1\r\n7,`e,7,`e,1\r\n7,`e:,7,`e:,1\r\n7,`i,7,`i,1\r\n7,`i:,7,`i:,1\r\n7,`o,7,`o,1\r\n7,`o:,7,`o:,1\r\n7,`u,7,`u,1\r\n7,`u:,7,`u:,1\r\n7,`y,7,`y,1\r\n7,`y:,7,`y:,1\r\n7,a,7,a,1\r\n7,a:,7,a:,1\r\n7,b,7,b,1\r\n7,c,7,c,1\r\n7,d,7,d,1\r\n7,e,7,e,1\r\n7,e:,7,e:,1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,7,i,1\r\n7,i:,7,i:,1\r\n7,j,7,j,1\r\n7,k,7,k,1\r\n7,l,7,l,1\r\n7,m,7,m,1\r\n7,n,7,n,1\r\n7,o,7,o,1\r\n7,o:,7,o:,1\r\n7,p,7,p,1\r\n7,q,7,q,1\r\n7,r,7,r,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,7,u,1\r\n7,u:,7,u:,1\r\n7,v,7,v,1\r\n7,w,7,w,1\r\n7,x,7,x,1\r\n7,y,7,y,1\r\n7,y:,7,y:,1\r\n7,z,7,z,1\r\n'),
('Initial CV - Iterative AABB ', '| Input | Output |\r\n|---------|---------------|\r\n| CVA+CVB | CV-CVA-CV-CVB |', 'Input=#( C )VA+( C )VB% where A and B are strings of segments and there is a morpheme boundary \'+\' between CVA and CVB\r\nOutput=#( C )V\\~( C )VA+( C )V\\~( C )VB%\r\nEach of the morphological constituents undergoes initial CV reduplication which is okay with onsetless V', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the first constituent A once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [below of=q0] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state] (q7) [right of=q6] {$q_7$};\r\n\\node[state] (q8) [right of=q7] {$q_8$};\r\n\\node[state,accepting] (q9) [right of=q8] {$q_9$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q1) edge[bend left] node {(V,V,+1)} (q3)\r\n(q3) edge [loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(\\#,$\\sim$,+1)} (q4)\r\n\r\n(q4) edge [loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node[below] {(+,+,+1)} (q5)\r\n\r\n(q5) edge node[below] {(C,C,+1)} (q6)\r\n(q6) edge node[below] {(V,V,+1)} (q7)\r\n(q5) edge[bend right] node[below] {(V,V,+1)} (q7)\r\n(q7) edge [loop below] node {($\\Sigma$,$\\epsilon$,-1)} (q7)\r\n(q7) edge node[below] {(+,$\\sim$,+1)} (q8)\r\n(q8) edge [loop below] node {($\\Sigma$,$\\Sigma$,+1)} (q8)\r\n(q8) edge node[below] {(\\%,$\\epsilon$,+1)} (q9)\r\n;\r\n\\end{tikzpicture}', 0, '#Inital CV reduplication -- Iterative AABB\r\n#The input must contain two morpho-phonological constituents which have a \'+\' between them\r\n#Each constituent undergoes initial CV reduplication\r\n#The output is an iterative pattern: CVA+CVB -->CV~CVA+CV~CVB\r\n#The initial C is optional\r\n#The function is not defined for any input which doesnt contain exactly two constituents marked off by \'+\'\r\n#such that each constituent starts with CV or V\r\n#e.g. pata+bada --> pa~pata+ba~bada, ata+bada --> a~ata+bada, pata --> undefined, pata+bada+kaga --> undefined\r\n#Note that we crucially need to use the segments subalphabet which exclused \'+\'\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C or V of first constituent\',\'output first CV of first constituent\',\'return for first constituent\',\'output first constituent\',\'output first C or V of second constituent\',\'output first CV of second constituent\',\'return for second constituent\',\'output second constituent\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C or V of first constituent\',\'\',1)\r\n(\'output first C or V of first constituent\',\\consonants) = (\'output first CV of first constituent\',\\ID,1)\r\n(\'output first CV of first constituent\', \\vowels) = (\'return for first constituent\',\\ID,1)\r\n(\'output first C or V of first constituent\', \\vowels) = (\'return for first constituent\',\\ID,1)\r\n(\'return for first constituent\',\\segments) = (\'return for first constituent\',\'\',-1)\r\n(\'return for first constituent\', \'#\') =(\'output first constituent\',\'~\',1)\r\n(\'output first constituent\', \\segments) = (\'output first constituent\',\\ID,1)\r\n(\'output first constituent\', \'+\') = (\'output first C or V of second constituent\',\'+\',1)\r\n(\'output first C or V of second constituent\', \\consonants) = (\'output first CV of second constituent\',\\ID,1)\r\n(\'output first CV of second constituent\', \\vowels) = (\'return for second constituent\',\\ID,1)\r\n(\'output first C or V of second constituent\', \\vowels) = (\'return for second constituent\',\\ID,1)\r\n(\'return for second constituent\', \\segments) = (\'return for second constituent\',\'\',-1)\r\n(\'return for second constituent\', \'+\') = (\'output second constituent\',\'~\',1)\r\n(\'output second constituent\', \\segments) = (\'output second constituent\',\\ID,1)\r\n(\'output second constituent\', \'%\') = (\'end\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Inital CV reduplication -- Iterative AABB\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C or V of first constituent\r\n3 output first CV of first constituent\r\n4 return for first constituent\r\n5 output first constituent\r\n6 output first C or V of second constituent\r\n7 output first CV of second constituent\r\n8 return for second constituent\r\n9 output second constituent\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,`a,4,`a,1\r\n2,`a:,4,`a:,1\r\n2,`e,4,`e,1\r\n2,`e:,4,`e:,1\r\n2,`i,4,`i,1\r\n2,`i:,4,`i:,1\r\n2,`o,4,`o,1\r\n2,`o:,4,`o:,1\r\n2,`u,4,`u,1\r\n2,`u:,4,`u:,1\r\n2,`y,4,`y,1\r\n2,`y:,4,`y:,1\r\n2,a,4,a,1\r\n2,a:,4,a:,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,e,4,e,1\r\n2,e:,4,e:,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,i,4,i,1\r\n2,i:,4,i:,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,o,4,o,1\r\n2,o:,4,o:,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,u,4,u,1\r\n2,u:,4,u:,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,y,4,y,1\r\n2,y:,4,y:,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,#,5,~,1\r\n4,`a,4,,-1\r\n4,`a:,4,,-1\r\n4,`e,4,,-1\r\n4,`e:,4,,-1\r\n4,`i,4,,-1\r\n4,`i:,4,,-1\r\n4,`o,4,,-1\r\n4,`o:,4,,-1\r\n4,`u,4,,-1\r\n4,`u:,4,,-1\r\n4,`y,4,,-1\r\n4,`y:,4,,-1\r\n4,a,4,,-1\r\n4,a:,4,,-1\r\n4,b,4,,-1\r\n4,c,4,,-1\r\n4,d,4,,-1\r\n4,e,4,,-1\r\n4,e:,4,,-1\r\n4,f,4,,-1\r\n4,g,4,,-1\r\n4,h,4,,-1\r\n4,i,4,,-1\r\n4,i:,4,,-1\r\n4,j,4,,-1\r\n4,k,4,,-1\r\n4,l,4,,-1\r\n4,m,4,,-1\r\n4,n,4,,-1\r\n4,o,4,,-1\r\n4,o:,4,,-1\r\n4,p,4,,-1\r\n4,q,4,,-1\r\n4,r,4,,-1\r\n4,s,4,,-1\r\n4,t,4,,-1\r\n4,u,4,,-1\r\n4,u:,4,,-1\r\n4,v,4,,-1\r\n4,w,4,,-1\r\n4,x,4,,-1\r\n4,y,4,,-1\r\n4,y:,4,,-1\r\n4,z,4,,-1\r\n5,+,6,+,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n6,`a,8,`a,1\r\n6,`a:,8,`a:,1\r\n6,`e,8,`e,1\r\n6,`e:,8,`e:,1\r\n6,`i,8,`i,1\r\n6,`i:,8,`i:,1\r\n6,`o,8,`o,1\r\n6,`o:,8,`o:,1\r\n6,`u,8,`u,1\r\n6,`u:,8,`u:,1\r\n6,`y,8,`y,1\r\n6,`y:,8,`y:,1\r\n6,a,8,a,1\r\n6,a:,8,a:,1\r\n6,b,7,b,1\r\n6,c,7,c,1\r\n6,d,7,d,1\r\n6,e,8,e,1\r\n6,e:,8,e:,1\r\n6,f,7,f,1\r\n6,g,7,g,1\r\n6,h,7,h,1\r\n6,i,8,i,1\r\n6,i:,8,i:,1\r\n6,j,7,j,1\r\n6,k,7,k,1\r\n6,l,7,l,1\r\n6,m,7,m,1\r\n6,n,7,n,1\r\n6,o,8,o,1\r\n6,o:,8,o:,1\r\n6,p,7,p,1\r\n6,q,7,q,1\r\n6,r,7,r,1\r\n6,s,7,s,1\r\n6,t,7,t,1\r\n6,u,8,u,1\r\n6,u:,8,u:,1\r\n6,v,7,v,1\r\n6,w,7,w,1\r\n6,x,7,x,1\r\n6,y,8,y,1\r\n6,y:,8,y:,1\r\n6,z,7,z,1\r\n7,`a,8,`a,1\r\n7,`a:,8,`a:,1\r\n7,`e,8,`e,1\r\n7,`e:,8,`e:,1\r\n7,`i,8,`i,1\r\n7,`i:,8,`i:,1\r\n7,`o,8,`o,1\r\n7,`o:,8,`o:,1\r\n7,`u,8,`u,1\r\n7,`u:,8,`u:,1\r\n7,`y,8,`y,1\r\n7,`y:,8,`y:,1\r\n7,a,8,a,1\r\n7,a:,8,a:,1\r\n7,e,8,e,1\r\n7,e:,8,e:,1\r\n7,i,8,i,1\r\n7,i:,8,i:,1\r\n7,o,8,o,1\r\n7,o:,8,o:,1\r\n7,u,8,u,1\r\n7,u:,8,u:,1\r\n7,y,8,y,1\r\n7,y:,8,y:,1\r\n8,+,9,~,1\r\n8,`a,8,,-1\r\n8,`a:,8,,-1\r\n8,`e,8,,-1\r\n8,`e:,8,,-1\r\n8,`i,8,,-1\r\n8,`i:,8,,-1\r\n8,`o,8,,-1\r\n8,`o:,8,,-1\r\n8,`u,8,,-1\r\n8,`u:,8,,-1\r\n8,`y,8,,-1\r\n8,`y:,8,,-1\r\n8,a,8,,-1\r\n8,a:,8,,-1\r\n8,b,8,,-1\r\n8,c,8,,-1\r\n8,d,8,,-1\r\n8,e,8,,-1\r\n8,e:,8,,-1\r\n8,f,8,,-1\r\n8,g,8,,-1\r\n8,h,8,,-1\r\n8,i,8,,-1\r\n8,i:,8,,-1\r\n8,j,8,,-1\r\n8,k,8,,-1\r\n8,l,8,,-1\r\n8,m,8,,-1\r\n8,n,8,,-1\r\n8,o,8,,-1\r\n8,o:,8,,-1\r\n8,p,8,,-1\r\n8,q,8,,-1\r\n8,r,8,,-1\r\n8,s,8,,-1\r\n8,t,8,,-1\r\n8,u,8,,-1\r\n8,u:,8,,-1\r\n8,v,8,,-1\r\n8,w,8,,-1\r\n8,x,8,,-1\r\n8,y,8,,-1\r\n8,y:,8,,-1\r\n8,z,8,,-1\r\n9,%,1,,1\r\n9,`a,9,`a,1\r\n9,`a:,9,`a:,1\r\n9,`e,9,`e,1\r\n9,`e:,9,`e:,1\r\n9,`i,9,`i,1\r\n9,`i:,9,`i:,1\r\n9,`o,9,`o,1\r\n9,`o:,9,`o:,1\r\n9,`u,9,`u,1\r\n9,`u:,9,`u:,1\r\n9,`y,9,`y,1\r\n9,`y:,9,`y:,1\r\n9,a,9,a,1\r\n9,a:,9,a:,1\r\n9,b,9,b,1\r\n9,c,9,c,1\r\n9,d,9,d,1\r\n9,e,9,e,1\r\n9,e:,9,e:,1\r\n9,f,9,f,1\r\n9,g,9,g,1\r\n9,h,9,h,1\r\n9,i,9,i,1\r\n9,i:,9,i:,1\r\n9,j,9,j,1\r\n9,k,9,k,1\r\n9,l,9,l,1\r\n9,m,9,m,1\r\n9,n,9,n,1\r\n9,o,9,o,1\r\n9,o:,9,o:,1\r\n9,p,9,p,1\r\n9,q,9,q,1\r\n9,r,9,r,1\r\n9,s,9,s,1\r\n9,t,9,t,1\r\n9,u,9,u,1\r\n9,u:,9,u:,1\r\n9,v,9,v,1\r\n9,w,9,w,1\r\n9,x,9,x,1\r\n9,y,9,y,1\r\n9,y:,9,y:,1\r\n9,z,9,z,1\r\n'),
('Initial CV - maN-CV~CV-X Tagalog nasal coalescence', '| Input | Output |\r\n|-------|-------------|\r\n| bayan | ma-ma-mayan |\r\n| ibig | ma-ŋi-ŋibig |', 'a) Input=#CV-X% where X is a string of symbols\r\nOutput=#ma-NV\\~CV-X%\r\nb) Input=#V-X% where X is a string of symbols\r\nOutput=#maŋ-V\\~ŋV-X%\r\nWhen the prefix /maŋ/ is added, the initial consonant coalesces with the prefix\'s /ŋ/ and becomes a nasal. The nasal coalescence overapplies to the initial consonant in the second copy. \r\nIf the input starts with a vowel, the prefix surfaces with a default velar nasal in such a case. The second copy starts with the velar nasal', 'FST: The FST assumes B,D,G stand for bilabials, alveolars, and velars.\r\n\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n\\node[state] (q1) [right of= q0] {$q_{1}$};\r\n\\node[state] (q2) [right of= q1] {$q_{2}$};\r\n\\node[state] (q3) [right of= q2] {$q_{3}$};\r\n\\node[state] (q4) [right of= q3] {$q_{4}$};\r\n\\node[state] (q5) [right of= q4] {$q_{5}$};\r\n\r\n\r\n\\path\r\n\r\n(q0) edge node {(\\#,ma,+1)} (q1)\r\n(q1) edge[bend right=60] node[below] {(\\{B,D,G\\},-\\{m,n,\\textipa{N}\\},+1)} (q2)\r\n(q1) edge[bend left=60] node {(V,-\\textipa{N}V$\\sim$\\textipa{N}V,+1)} (q3)\r\n(q2) edge node {(V,V,-1)} (q3)\r\n(q3) edge[bend right=60] node[below] {(\\{B,D,G\\},$\\sim$\\{m,n,\\textipa{N}\\},+1)} (q4)\r\n(q3) edge node {(\\#,\\textipa{N},+1)} (q4)\r\n(q4) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node {(\\%,$\\epsilon$,+1)} (q5)\r\n\r\n\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Initial CV reduplication in Tagalog man-X-X with initial C nasal coalescence\r\n#In Indonesian, the prefix /maŋ/ triggers initial-CV reduplication of the input \r\n#In both copies, the stem initial stop (if any) is coalesced with the nasal to agree in place\r\n#In the case of a word-initial vowel, the nasal of the prefix gets reduplicated\r\n#The function is not defined for an input which starts with anything other than a stop or vowel\r\n#e.g. pata--> ma-ma~mata, tata --> ma+na~nata, kata --> ma+ŋa~ŋata, ata --> mə-ŋa~ŋata, hata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'ŋ\',\'h\', \'a\',\'e\',\'i\',\'o\',\'u\',\'ə\']\r\nsubalphabets = 4\r\nbilabials = [\'p\',\'b\',\'m\']\r\ncoronals = [\'t\',\'d\',\'n\']\r\ndorsals = [\'k\',\'g\',\'ŋ\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\',\'ə\']\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C with coalescence if any\',\'output first CV with coalescence if any\',\'output first V\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C with coalescence if any\',\'ma\',1)\r\n(\'output first C with coalescence if any\',\\bilabials) = (\'output first CV with coalescence if any\',\'-m\',1)\r\n(\'output first C with coalescence if any\',\\coronals) = (\'output first CV with coalescence if any\',\'-n\',1)\r\n(\'output first C with coalescence if any\',\\dorsals) = (\'output first CV with coalescence if any\',\'-ŋ\',1)\r\n(\'output first C with coalescence if any\',\\vowels) = (\'output first V\',[\'-ŋ\' \\ID \'~ŋ\' \\ID],1)\r\n(\'output first CV with coalescence if any\',\\vowels) = (\'output first V\',\\ID,-1)\r\n(\'output first V\',\\bilabials) = (\'output base\',\'~m\',1)\r\n(\'output first V\',\\coronals) = (\'output base\',\'~n\',1)\r\n(\'output first V\',\\dorsals) = (\'output base\',\'~ŋ\',1)\r\n(\'output first V\',\'#\') = (\'output base\',\'~ŋ\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CV reduplication in Tagalog man-X-X with initial C nasal coalescence\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C with coalescence if any\r\n3 output first CV with coalescence if any\r\n4 output first V\r\n5 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,ma,1\r\n2,a,4,-ŋa~ŋa,1\r\n2,b,3,-m,1\r\n2,d,3,-n,1\r\n2,e,4,-ŋe~ŋe,1\r\n2,g,3,-ŋ,1\r\n2,i,4,-ŋi~ŋi,1\r\n2,k,3,-ŋ,1\r\n2,m,3,-m,1\r\n2,n,3,-n,1\r\n2,o,4,-ŋo~ŋo,1\r\n2,p,3,-m,1\r\n2,t,3,-n,1\r\n2,u,4,-ŋu~ŋu,1\r\n2,ŋ,3,-ŋ,1\r\n2,ə,4,-ŋə~ŋə,1\r\n3,a,4,a,-1\r\n3,e,4,e,-1\r\n3,i,4,i,-1\r\n3,o,4,o,-1\r\n3,u,4,u,-1\r\n3,ə,4,ə,-1\r\n4,#,5,~ŋ,1\r\n4,b,5,~m,1\r\n4,d,5,~n,1\r\n4,g,5,~ŋ,1\r\n4,k,5,~ŋ,1\r\n4,m,5,~m,1\r\n4,n,5,~n,1\r\n4,p,5,~m,1\r\n4,t,5,~n,1\r\n4,ŋ,5,~ŋ,1\r\n5,%,1,,1\r\n5,a,5,a,1\r\n5,b,5,b,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,k,5,k,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,p,5,p,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,ŋ,5,ŋ,1\r\n5,ə,5,ə,1\r\n'),
('Initial CV - Repair onset cluster by producing 1st', '| Input | Output |\r\n|-----------------|-----------------------|\r\n| CV-X | CV-CV-X |\r\n| C~1~C~2~V-X | C~1~V-C~1~C~2~V-X |\r\n| C~1~C~2~C~3~V-X | C~1~V-C~1~C~2~C~3~V-X |', 'Two allomorphs for RED\r\nInput=#C~1~C\\*V-X% where X is a string of symbols\r\nOutput=#C~1~V\\~C~1~C\\*V-X%\r\nThe word-initial CC\\*V is reduplicated such that non-initial Cs are skipped in the reduplicated. An onset cluster is repaired in this way', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first C_1 and V once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the beginning of input, output the base CC*VX, and end\r\n\\node[state] (q4) [below of=q1] {$q_4$};\r\n\\node[state,accepting] (q5) [right of=q4] {$q_5$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge [loop above] node {(C,$\\epsilon$,+1)} (q2)\r\n(q2) edge node {(V,V,-1)} (q3)\r\n(q3) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(\\#,$\\sim$,+1)} (q4)\r\n(q4) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node[below] {(\\%,$\\epsilon$,+1)} (q5)\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 0, '#Inital CV reduplication -- initial onset cluster repaired by only copying first C\r\n#The input undergoes initial CV reduplication.\r\n#If the input starts with CV, then the CV is reduplicatedmust\r\n#If the input starts with a complex onset like CCV, then the non-initial C is not copied\r\n#The function is not defined for any input which doesnt start with CV or CC*V\r\n#e.g. pata --> pa~pata, spata --> sa~spata, ata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first V\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first C\', \'\',1)\r\n(\'output first C\', \\consonants) = (\'output first V\',\\ID,1)\r\n(\'output first V\', \\consonants) = (\'output first V\',\'\',1)\r\n(\'output first V\', \\vowels) = (\'return\',\\ID,-1)\r\n(\'return\', \\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\', \\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\', \'%\') = (\'end\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Inital CV reduplication -- initial onset cluster repaired by only copying first C\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first V\r\n4 return\r\n5 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,-1\r\n3,`a:,4,`a:,-1\r\n3,`e,4,`e,-1\r\n3,`e:,4,`e:,-1\r\n3,`i,4,`i,-1\r\n3,`i:,4,`i:,-1\r\n3,`o,4,`o,-1\r\n3,`o:,4,`o:,-1\r\n3,`u,4,`u,-1\r\n3,`u:,4,`u:,-1\r\n3,`y,4,`y,-1\r\n3,`y:,4,`y:,-1\r\n3,a,4,a,-1\r\n3,a:,4,a:,-1\r\n3,b,3,,1\r\n3,c,3,,1\r\n3,d,3,,1\r\n3,e,4,e,-1\r\n3,e:,4,e:,-1\r\n3,f,3,,1\r\n3,g,3,,1\r\n3,h,3,,1\r\n3,i,4,i,-1\r\n3,i:,4,i:,-1\r\n3,j,3,,1\r\n3,k,3,,1\r\n3,l,3,,1\r\n3,m,3,,1\r\n3,n,3,,1\r\n3,o,4,o,-1\r\n3,o:,4,o:,-1\r\n3,p,3,,1\r\n3,q,3,,1\r\n3,r,3,,1\r\n3,s,3,,1\r\n3,t,3,,1\r\n3,u,4,u,-1\r\n3,u:,4,u:,-1\r\n3,v,3,,1\r\n3,w,3,,1\r\n3,x,3,,1\r\n3,y,4,y,-1\r\n3,y:,4,y:,-1\r\n3,z,3,,1\r\n4,#,5,~,1\r\n4,+,4,,-1\r\n4,.,4,,-1\r\n4,`a,4,,-1\r\n4,`a:,4,,-1\r\n4,`e,4,,-1\r\n4,`e:,4,,-1\r\n4,`i,4,,-1\r\n4,`i:,4,,-1\r\n4,`o,4,,-1\r\n4,`o:,4,,-1\r\n4,`u,4,,-1\r\n4,`u:,4,,-1\r\n4,`y,4,,-1\r\n4,`y:,4,,-1\r\n4,a,4,,-1\r\n4,a:,4,,-1\r\n4,b,4,,-1\r\n4,c,4,,-1\r\n4,d,4,,-1\r\n4,e,4,,-1\r\n4,e:,4,,-1\r\n4,f,4,,-1\r\n4,g,4,,-1\r\n4,h,4,,-1\r\n4,i,4,,-1\r\n4,i:,4,,-1\r\n4,j,4,,-1\r\n4,k,4,,-1\r\n4,l,4,,-1\r\n4,m,4,,-1\r\n4,n,4,,-1\r\n4,o,4,,-1\r\n4,o:,4,,-1\r\n4,p,4,,-1\r\n4,q,4,,-1\r\n4,r,4,,-1\r\n4,s,4,,-1\r\n4,t,4,,-1\r\n4,u,4,,-1\r\n4,u:,4,,-1\r\n4,v,4,,-1\r\n4,w,4,,-1\r\n4,x,4,,-1\r\n4,y,4,,-1\r\n4,y:,4,,-1\r\n4,z,4,,-1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n'),
('Initial CV - Repair onset cluster with pre-V C inside base', '| Input | Output |\r\n|-------------------|-------------------------|\r\n| CV-X | CV-CV-X |\r\n| CV-XYZ | CV-CV-XYZ |\r\n| C~1~C~2~V-X | C~1~C~2~V-C~2~V-X |\r\n| C~1~C~2~C~3~V-XYZ | C~1~C~2~C~3~V-C~3~V-XYZ |', 'Two allomorphs for RED\r\nInput=#C\\*C~f~V-X% where X is a string of symbols\r\nOutput=#C\\*C~f~V-C~f~V-X%\r\nThe word-initial CC\\*V is reduplicated such that only the pre-V C is produced in the reduplicant. An onset cluster is repaired in this way. The reduplicant is inside the base', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-4 outputs the base\'s CC*k once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%state q4-6 goes back to C_k, outputs the C_k and V, then continues the base, and ends\r\n\\node[state] (q4) [below of=q2] {$q_4$};\r\n\\node[state,accepting] (q5) [right of=q4] {$q_5$};\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge [loop above] node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,-1)} (q3)\r\n(q3) edge node {(C,$\\sim$C,+1)} (q4)\r\n(q4) edge[loop below] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node[below] {(\\%,$\\epsilon$,+1)} (q5)\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 1, '#Inital CV reduplication -- initial onset cluster repaired by only pre-vocalic C\r\n#The input undergoes initial CV reduplication.\r\n#If the input starts with CV, then the CV is reduplicatedmust\r\n#If the input starts with a complex onset like C_1C_2V, then only the last C is copied\r\n#In that case the reduplicant is inside the word and not at its edges\r\n#The function is not defined for any input which doesnt start with CV or CC*V\r\n#e.g. pata --> pa~pata, spata --> spa~pata, ata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates =[\'start\',\'output first C\',\'output first C*V\',\'return to pre-V C\',\'continue base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\',\\consonants) = (\'output first C*V\',\\ID,1)\r\n(\'output first C*V\',\\consonants) = (\'output first C*V\',\\ID,1)\r\n(\'output first C*V\',\\vowels) = (\'return to pre-V C\',\\ID,-1)\r\n(\'return to pre-V C\',\\consonants) = (\'continue base\',[\'~\' \\ID],1)\r\n(\'continue base\',\\alphabet) = (\'continue base\',\\ID,1)\r\n(\'continue base\',\'%\') = (\'end\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Inital CV reduplication -- initial onset cluster repaired by only pre-vocalic C\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first C*V\r\n4 return to pre-V C\r\n5 continue base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,-1\r\n3,`a:,4,`a:,-1\r\n3,`e,4,`e,-1\r\n3,`e:,4,`e:,-1\r\n3,`i,4,`i,-1\r\n3,`i:,4,`i:,-1\r\n3,`o,4,`o,-1\r\n3,`o:,4,`o:,-1\r\n3,`u,4,`u,-1\r\n3,`u:,4,`u:,-1\r\n3,`y,4,`y,-1\r\n3,`y:,4,`y:,-1\r\n3,a,4,a,-1\r\n3,a:,4,a:,-1\r\n3,b,3,b,1\r\n3,c,3,c,1\r\n3,d,3,d,1\r\n3,e,4,e,-1\r\n3,e:,4,e:,-1\r\n3,f,3,f,1\r\n3,g,3,g,1\r\n3,h,3,h,1\r\n3,i,4,i,-1\r\n3,i:,4,i:,-1\r\n3,j,3,j,1\r\n3,k,3,k,1\r\n3,l,3,l,1\r\n3,m,3,m,1\r\n3,n,3,n,1\r\n3,o,4,o,-1\r\n3,o:,4,o:,-1\r\n3,p,3,p,1\r\n3,q,3,q,1\r\n3,r,3,r,1\r\n3,s,3,s,1\r\n3,t,3,t,1\r\n3,u,4,u,-1\r\n3,u:,4,u:,-1\r\n3,v,3,v,1\r\n3,w,3,w,1\r\n3,x,3,x,1\r\n3,y,4,y,-1\r\n3,y:,4,y:,-1\r\n3,z,3,z,1\r\n4,b,5,~b,1\r\n4,c,5,~c,1\r\n4,d,5,~d,1\r\n4,f,5,~f,1\r\n4,g,5,~g,1\r\n4,h,5,~h,1\r\n4,j,5,~j,1\r\n4,k,5,~k,1\r\n4,l,5,~l,1\r\n4,m,5,~m,1\r\n4,n,5,~n,1\r\n4,p,5,~p,1\r\n4,q,5,~q,1\r\n4,r,5,~r,1\r\n4,s,5,~s,1\r\n4,t,5,~t,1\r\n4,v,5,~v,1\r\n4,w,5,~w,1\r\n4,x,5,~x,1\r\n4,z,5,~z,1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n'),
('Initial CV - Repair VX via C skipping', '| Input | Output |\r\n|--------|-----------|\r\n| CV-X | CV-CV-X |\r\n| V-X | V-V-X |', 'Two allomorphs for RED\r\nInput=#B-X% where X is a string of symbols and B is either initial CV or initial V Output=#B\\~B-X%\r\nThe word-initial CV or V string is repeated. I assume that inputs start with CV or V and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-4 outputs the first CV once\r\n\\node[state] (q2) [right of=q0] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the beginning of input, output the base CVX, and end\r\n\\node[state] (q5) [below of=q0] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q2)\r\n\r\n(q2) edge node {(C,C,+1)} (q3)\r\n(q2) edge node[left] {(V,V,-1)} (q5)\r\n(q3) edge node {(V,V,-1)} (q5)\r\n(q5) edge [loop left] node {($\\Sigma$,$\\epsilon$,-1)} (q5)\r\n(q5) edge node[below] {(\\#,$\\sim$,+1)} (q6)\r\n(q6) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 0, '#Inital CV reduplication optional onset\r\n#If the word starts with CV, the CV is reduplicated\r\n#If the word starts with V, then only V is reduplicated\r\n#The function is not defined for any input which doesnt start with CV or V\r\n#e.g. pata --> pa~pata, ata --> a~ata, spata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C or V\',\'output first CV\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C or V\',\'\',1)\r\n(\'output first C or V\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first C or V\',\\vowels) = (\'return\',\\ID,-1)\r\n(\'output first CV\', \\vowels) = (\'return\',\\ID,-1)\r\n(\'return\', \\alphabet) = (\'return\',\'\',-1)\r\n(\'return\', \'#\') = (\'output base\',\'~\',1)\r\n(\'output base\', \\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)\r\n\r\n\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Inital CV reduplication optional onset\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C or V\r\n3 output first CV\r\n4 return\r\n5 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,`a,4,`a,-1\r\n2,`a:,4,`a:,-1\r\n2,`e,4,`e,-1\r\n2,`e:,4,`e:,-1\r\n2,`i,4,`i,-1\r\n2,`i:,4,`i:,-1\r\n2,`o,4,`o,-1\r\n2,`o:,4,`o:,-1\r\n2,`u,4,`u,-1\r\n2,`u:,4,`u:,-1\r\n2,`y,4,`y,-1\r\n2,`y:,4,`y:,-1\r\n2,a,4,a,-1\r\n2,a:,4,a:,-1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,e,4,e,-1\r\n2,e:,4,e:,-1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,i,4,i,-1\r\n2,i:,4,i:,-1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,o,4,o,-1\r\n2,o:,4,o:,-1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,u,4,u,-1\r\n2,u:,4,u:,-1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,y,4,y,-1\r\n2,y:,4,y:,-1\r\n2,z,3,z,1\r\n3,`a,4,`a,-1\r\n3,`a:,4,`a:,-1\r\n3,`e,4,`e,-1\r\n3,`e:,4,`e:,-1\r\n3,`i,4,`i,-1\r\n3,`i:,4,`i:,-1\r\n3,`o,4,`o,-1\r\n3,`o:,4,`o:,-1\r\n3,`u,4,`u,-1\r\n3,`u:,4,`u:,-1\r\n3,`y,4,`y,-1\r\n3,`y:,4,`y:,-1\r\n3,a,4,a,-1\r\n3,a:,4,a:,-1\r\n3,e,4,e,-1\r\n3,e:,4,e:,-1\r\n3,i,4,i,-1\r\n3,i:,4,i:,-1\r\n3,o,4,o,-1\r\n3,o:,4,o:,-1\r\n3,u,4,u,-1\r\n3,u:,4,u:,-1\r\n3,y,4,y,-1\r\n3,y:,4,y:,-1\r\n4,#,5,~,1\r\n4,+,4,,-1\r\n4,.,4,,-1\r\n4,`a,4,,-1\r\n4,`a:,4,,-1\r\n4,`e,4,,-1\r\n4,`e:,4,,-1\r\n4,`i,4,,-1\r\n4,`i:,4,,-1\r\n4,`o,4,,-1\r\n4,`o:,4,,-1\r\n4,`u,4,,-1\r\n4,`u:,4,,-1\r\n4,`y,4,,-1\r\n4,`y:,4,,-1\r\n4,a,4,,-1\r\n4,a:,4,,-1\r\n4,b,4,,-1\r\n4,c,4,,-1\r\n4,d,4,,-1\r\n4,e,4,,-1\r\n4,e:,4,,-1\r\n4,f,4,,-1\r\n4,g,4,,-1\r\n4,h,4,,-1\r\n4,i,4,,-1\r\n4,i:,4,,-1\r\n4,j,4,,-1\r\n4,k,4,,-1\r\n4,l,4,,-1\r\n4,m,4,,-1\r\n4,n,4,,-1\r\n4,o,4,,-1\r\n4,o:,4,,-1\r\n4,p,4,,-1\r\n4,q,4,,-1\r\n4,r,4,,-1\r\n4,s,4,,-1\r\n4,t,4,,-1\r\n4,u,4,,-1\r\n4,u:,4,,-1\r\n4,v,4,,-1\r\n4,w,4,,-1\r\n4,x,4,,-1\r\n4,y,4,,-1\r\n4,y:,4,,-1\r\n4,z,4,,-1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n'),
('Initial CV - Vowel lengthening in RED', '| Input | Output |\r\n|-------|----------|\r\n| CV-X | CV:-CV-X |', 'Input=#CV-X$ where X is any string of symbols\r\nOutput=#CV:\\~CV-X%\r\nThe word-initial CV string is repeated. The reduplicant V is lengthened.', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first CV once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the beginning of input, output the base CVX, and end\r\n\\node[state] (q4) [below of=q1] {$q_4$};\r\n\\node[state,accepting] (q5) [right of=q4] {$q_5$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge [bend left =90] node {(V:,V:,-1)} (q3)\r\n(q2) edge node {(\\v{V},V:,-1)} (q3)\r\n(q3) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(\\#,$\\sim$,+1)} (q4)\r\n(q4) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node[below] {(\\%,$\\epsilon$,+1)} (q5)\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Inital CV reduplication with vowel legthening\r\n#The input undergoes initial CV reduplication and the reduplicant V is lengthened.\r\n#If the input starts with CV, then the CV is reduplicated as CV:\r\n#The function is not defined for any input which doesnt start with CV or CV:\r\n#Note that the implementation treats long vowels as multicharacter symbols, so the input \r\n#have the segments be separated by space\r\n#e.g. p a t a --> pa:~pata, p a: t a --> pa:~pa:ta, a t a --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 1\r\nlengthen = { (\'a\',\'a:\'),(\'e\',\'e:\'),(\'i\',\'i:\'),(\'u\',\'u:\'),(\'o\',\'o:\'), (\'y\':\'y:\'),(\'`a\',\'`a:\'),(\'`e\',\'`e:\'),(\'`i\',\'`i:\'),(\'`u\',\'`u:\'),(\'`o\',\'`o:\'), (\'`y\':\'`y:\') }\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV and lengthen\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\', \\consonants) = (\'output first CV and lengthen\',\\ID,1)\r\n(\'output first CV and lengthen\',\\long_vowels) = (\'return\',\\ID,-1)\r\n(\'output first CV and lengthen\',\\short_vowels) = (\'return\',\\lengthen,-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\', \'%\') = (\'end\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Inital CV reduplication with vowel legthening\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV and lengthen\r\n4 return\r\n5 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a:,-1\r\n3,`a:,4,`a:,-1\r\n3,`e,4,`e:,-1\r\n3,`e:,4,`e:,-1\r\n3,`i,4,`i:,-1\r\n3,`i:,4,`i:,-1\r\n3,`o,4,`o:,-1\r\n3,`o:,4,`o:,-1\r\n3,`u,4,`u:,-1\r\n3,`u:,4,`u:,-1\r\n3,`y,4,`y:,-1\r\n3,`y:,4,`y:,-1\r\n3,a,4,a:,-1\r\n3,a:,4,a:,-1\r\n3,e,4,e:,-1\r\n3,e:,4,e:,-1\r\n3,i,4,i:,-1\r\n3,i:,4,i:,-1\r\n3,o,4,o:,-1\r\n3,o:,4,o:,-1\r\n3,u,4,u:,-1\r\n3,u:,4,u:,-1\r\n3,y,4,y:,-1\r\n3,y:,4,y:,-1\r\n4,#,5,~,1\r\n4,+,4,,-1\r\n4,.,4,,-1\r\n4,`a,4,,-1\r\n4,`a:,4,,-1\r\n4,`e,4,,-1\r\n4,`e:,4,,-1\r\n4,`i,4,,-1\r\n4,`i:,4,,-1\r\n4,`o,4,,-1\r\n4,`o:,4,,-1\r\n4,`u,4,,-1\r\n4,`u:,4,,-1\r\n4,`y,4,,-1\r\n4,`y:,4,,-1\r\n4,a,4,,-1\r\n4,a:,4,,-1\r\n4,b,4,,-1\r\n4,c,4,,-1\r\n4,d,4,,-1\r\n4,e,4,,-1\r\n4,e:,4,,-1\r\n4,f,4,,-1\r\n4,g,4,,-1\r\n4,h,4,,-1\r\n4,i,4,,-1\r\n4,i:,4,,-1\r\n4,j,4,,-1\r\n4,k,4,,-1\r\n4,l,4,,-1\r\n4,m,4,,-1\r\n4,n,4,,-1\r\n4,o,4,,-1\r\n4,o:,4,,-1\r\n4,p,4,,-1\r\n4,q,4,,-1\r\n4,r,4,,-1\r\n4,s,4,,-1\r\n4,t,4,,-1\r\n4,u,4,,-1\r\n4,u:,4,,-1\r\n4,v,4,,-1\r\n4,w,4,,-1\r\n4,x,4,,-1\r\n4,y,4,,-1\r\n4,y:,4,,-1\r\n4,z,4,,-1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n');
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('Initial CVC - Chumash minimality-induced prefix incorporation', 'Data is complicated. Refer to the description.', 'There are two subpatterns. For clarityt the + sign is used to mark the beginning of the prefix \r\n\r\n1) Pattern 1: If the input is consonant-initial, then initial CVC of the stem is repeated. Prefixes are ignored. e.g. redup(prefix-X)=prefix-X\'-X where X is a consonant-initial stem and where X\' is the first CVC sequence of X. I am not sure where the initial consonant clusters are actually prefixes or not.\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|---------|-------|-------------|-----------------------------|\r\n| t͡ʃumaʃ | ? | t͡ʃum-t͡ʃumaʃ | \"islanders, Chumash people\" |\r\n| s+t͡ʃeq | ? | s-t͡ʃeq-t͡ʃeq | \"it is very torn\" |\r\n| ʃtexex\' | ? | ʃtex-texex\' | \"rivers\" |\r\n| skon | ? | s-kon-kin\' | \"worms, reptiles\" |\r\n\r\n2) Pattern 2: If the input is vowel-initial, then rightmost prefix\'s last consonant and the initial VC of the stem are, e.g. redup(P-X)=P-X\'-P\'-X where X is a vowel-initial stem, X\' is the first VC sequence of X, P is the prefixes, P\' is the last C of the prefix sequence\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------------|-------|------------------|------------------------|\r\n| k+ic\'is | ? | k-ic-k-ic\'is\' | \"my sisters\" |\r\n| s+ikuk | ? | s-ik-s-ikuk | \"he is chopping\" |\r\n| s-iʃ+expet͡ʃ | ? | ʃi-ʃ-ex-ʃ-expet͡ʃ | \"they two are singing\" |', 'FST: For simplicity I only use the + boundary to mark the beginning of the stem. I assume there is always the + boundary before a stem. The input is of the form \\#(C+V)*+(C)CVC$Σ*\\%\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-6 handle the case stem is CVC\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q5] {$q_6$};\r\n\\node[state,accepting] (q7) [left of=q6] {$q_7$};\r\n%state q8-11 handle the case stem is CCVC so produce CVC in redup\r\n\\node[state] (q8) [above of=q2] {$q_8$};\r\n\\node[state] (q9) [right of=q8] {$q_9$};\r\n\\node[state] (q10) [right of=q9] {$q_{10}$};\r\n\\node[state] (q11) [right of=q10] {$q_{11}$};\r\n\r\n\\node[state] (q12) [below =4cm of q2] {$q_{12}$};\r\n\\node[state] (q13) [right of=q12] {$q_{13}$};\r\n\\node[state] (q14) [right of=q13] {$q_{14}$};\r\n\\node[state] (q15) [right of=q14] {$q_{15}$};\\\\\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(+,$\\epsilon$,+1)} (q2)\r\n(q2) edge node {(C,C,+1)} (q3)\r\n(q3) edge node {(V,V,+1)} (q4)\r\n(q4) edge node {(C,C,-1)} (q5)\r\n(q5) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q5)\r\n(q5) edge node[left] {(+,$\\sim$,+1)} (q6)\r\n(q6) edge[loop right] node {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n(q3) edge node {(C,C,+1)} (q8)\r\n(q8) edge node {(V,V,+1)} (q9)\r\n(q9) edge node {(C,C,-1)} (q10)\r\n(q10) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q10)\r\n(q10) edge node {(+,$\\sim$,+1)} (q11)\r\n(q11) edge[bend left] node {(C,$\\epsilon$,+1)} (q6)\r\n\r\n(q2) edge node {(V,V,+1)} (q12)\r\n(q12) edge node {(C,C,+1)} (q13)\r\n(q13) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q13)\r\n(q13) edge node {(+,$\\sim$,-1)} (q14)\r\n(q14) edge node {(C,C,+1)} (q15)\r\n(q15) edge node[right] {(+,$\\epsilon$,+1)} (q6)\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 1, '#Stem-initial CVC reduplication with misalignment repairs -- Chumash\r\n#The input consists of a stem with zero or morep prefixes. Every stem starts with the symbol +\r\n#The reduplicant must be CVC and the reduplication targets the stem\r\n#If the stem starst with CVC, then the CVC is reduplicated\r\n#If the stem starts with CCVC, then the first C is not reduplicated\r\n#If the stem starts with VC, then the pre-stem C is copied\r\n#function is not defined for any input which doesnt start with C*+CVC, C*+CCVC, C*C+VC\r\n#e.g. +pata --> pat~pata, pata --> undefined, a+pata --> apat~pata, a+spat --> aspat~pata, s+ata --> sat~sata, +ata--> undefined\r\n#Note that we crucially need to use the segments subalphabet which exclused \'+\'\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output pre-stem material\',\'reached stem boundary\',\'output first C\',\'output first CV\',\'return\',\'output base\',\'end\',\'output first CC cluster\',\'output first CCV\',\'return to stem-initial CC\',\'reached boundary in +CC\',\'stem starts with V\',\'return to boundary for V-initial stem\',\'output pre-stem C\',\'return to post-stem\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output pre-stem material\',\'\',1)\r\n(\'output pre-stem material\',\\segments) = (\'output pre-stem material\',\\ID,1)\r\n(\'output pre-stem material\', \'+\') = (\'reached stem boundary\',\'\',1)\r\n(\'reached stem boundary\',\\consonants) = (\'output first C\',\\ID,1)\r\n(\'output first C\', \\vowels) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\', \\consonants) = (\'return\',\\ID,-1)\r\n(\'return\',\\segments) = (\'return\',\'\',-1)\r\n(\'return\', \'+\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\segments) = (\'output base\',\\ID,1)\r\n(\'output base\', \'%\') = (\'end\',\'\',1)\r\n(\'output first C\', \\consonants) = (\'output first CC cluster\',\\ID,1)\r\n(\'output first CC cluster\',\\vowels) = (\'output first CCV\',\\ID,1)\r\n(\'output first CCV\', \\consonants) = (\'return to stem-initial CC\',\\ID,-1)\r\n(\'return to stem-initial CC\',\\segments) = (\'return to stem-initial CC\',\'\',-1)\r\n(\'return to stem-initial CC\',\'+\') = (\'reached boundary in +CC\',\'~\',1)\r\n(\'reached boundary in +CC\', \\consonants) = (\'output base\',\'\',1)\r\n(\'reached stem boundary\', \\vowels) = (\'stem starts with V\',\\ID,1)\r\n(\'stem starts with V\',\\consonants) = (\'return to boundary for V-initial stem\',\\ID,1)\r\n(\'return to boundary for V-initial stem\', \\segments) = (\'return to boundary for V-initial stem\',\'\',-1)\r\n(\'return to boundary for V-initial stem\',\'+\') = (\'output pre-stem C\',\'~\',-1)\r\n(\'output pre-stem C\', \\consonants) = (\'return to post-stem\',\\ID,1)\r\n(\'return to post-stem\', \'+\') = (\'output base\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Stem-initial CVC reduplication with misalignment repairs -- Chumash\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output pre-stem material\r\n3 reached stem boundary\r\n4 output first C\r\n5 output first CV\r\n6 return\r\n7 output base\r\n8 output first CC cluster\r\n9 output first CCV\r\n10 return to stem-initial CC\r\n11 reached boundary in +CC\r\n12 stem starts with V\r\n13 return to boundary for V-initial stem\r\n14 output pre-stem C\r\n15 return to post-stem\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,+,11,~,1\r\n10,`a,10,,-1\r\n10,`a:,10,,-1\r\n10,`e,10,,-1\r\n10,`e:,10,,-1\r\n10,`i,10,,-1\r\n10,`i:,10,,-1\r\n10,`o,10,,-1\r\n10,`o:,10,,-1\r\n10,`u,10,,-1\r\n10,`u:,10,,-1\r\n10,`y,10,,-1\r\n10,`y:,10,,-1\r\n10,a,10,,-1\r\n10,a:,10,,-1\r\n10,b,10,,-1\r\n10,c,10,,-1\r\n10,d,10,,-1\r\n10,e,10,,-1\r\n10,e:,10,,-1\r\n10,f,10,,-1\r\n10,g,10,,-1\r\n10,h,10,,-1\r\n10,i,10,,-1\r\n10,i:,10,,-1\r\n10,j,10,,-1\r\n10,k,10,,-1\r\n10,l,10,,-1\r\n10,m,10,,-1\r\n10,n,10,,-1\r\n10,o,10,,-1\r\n10,o:,10,,-1\r\n10,p,10,,-1\r\n10,q,10,,-1\r\n10,r,10,,-1\r\n10,s,10,,-1\r\n10,t,10,,-1\r\n10,u,10,,-1\r\n10,u:,10,,-1\r\n10,v,10,,-1\r\n10,w,10,,-1\r\n10,x,10,,-1\r\n10,y,10,,-1\r\n10,y:,10,,-1\r\n10,z,10,,-1\r\n11,b,7,,1\r\n11,c,7,,1\r\n11,d,7,,1\r\n11,f,7,,1\r\n11,g,7,,1\r\n11,h,7,,1\r\n11,j,7,,1\r\n11,k,7,,1\r\n11,l,7,,1\r\n11,m,7,,1\r\n11,n,7,,1\r\n11,p,7,,1\r\n11,q,7,,1\r\n11,r,7,,1\r\n11,s,7,,1\r\n11,t,7,,1\r\n11,v,7,,1\r\n11,w,7,,1\r\n11,x,7,,1\r\n11,z,7,,1\r\n12,b,13,b,1\r\n12,c,13,c,1\r\n12,d,13,d,1\r\n12,f,13,f,1\r\n12,g,13,g,1\r\n12,h,13,h,1\r\n12,j,13,j,1\r\n12,k,13,k,1\r\n12,l,13,l,1\r\n12,m,13,m,1\r\n12,n,13,n,1\r\n12,p,13,p,1\r\n12,q,13,q,1\r\n12,r,13,r,1\r\n12,s,13,s,1\r\n12,t,13,t,1\r\n12,v,13,v,1\r\n12,w,13,w,1\r\n12,x,13,x,1\r\n12,z,13,z,1\r\n13,+,14,~,-1\r\n13,`a,13,,-1\r\n13,`a:,13,,-1\r\n13,`e,13,,-1\r\n13,`e:,13,,-1\r\n13,`i,13,,-1\r\n13,`i:,13,,-1\r\n13,`o,13,,-1\r\n13,`o:,13,,-1\r\n13,`u,13,,-1\r\n13,`u:,13,,-1\r\n13,`y,13,,-1\r\n13,`y:,13,,-1\r\n13,a,13,,-1\r\n13,a:,13,,-1\r\n13,b,13,,-1\r\n13,c,13,,-1\r\n13,d,13,,-1\r\n13,e,13,,-1\r\n13,e:,13,,-1\r\n13,f,13,,-1\r\n13,g,13,,-1\r\n13,h,13,,-1\r\n13,i,13,,-1\r\n13,i:,13,,-1\r\n13,j,13,,-1\r\n13,k,13,,-1\r\n13,l,13,,-1\r\n13,m,13,,-1\r\n13,n,13,,-1\r\n13,o,13,,-1\r\n13,o:,13,,-1\r\n13,p,13,,-1\r\n13,q,13,,-1\r\n13,r,13,,-1\r\n13,s,13,,-1\r\n13,t,13,,-1\r\n13,u,13,,-1\r\n13,u:,13,,-1\r\n13,v,13,,-1\r\n13,w,13,,-1\r\n13,x,13,,-1\r\n13,y,13,,-1\r\n13,y:,13,,-1\r\n13,z,13,,-1\r\n14,b,15,b,1\r\n14,c,15,c,1\r\n14,d,15,d,1\r\n14,f,15,f,1\r\n14,g,15,g,1\r\n14,h,15,h,1\r\n14,j,15,j,1\r\n14,k,15,k,1\r\n14,l,15,l,1\r\n14,m,15,m,1\r\n14,n,15,n,1\r\n14,p,15,p,1\r\n14,q,15,q,1\r\n14,r,15,r,1\r\n14,s,15,s,1\r\n14,t,15,t,1\r\n14,v,15,v,1\r\n14,w,15,w,1\r\n14,x,15,x,1\r\n14,z,15,z,1\r\n15,+,7,,1\r\n2,+,3,,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,`a,12,`a,1\r\n3,`a:,12,`a:,1\r\n3,`e,12,`e,1\r\n3,`e:,12,`e:,1\r\n3,`i,12,`i,1\r\n3,`i:,12,`i:,1\r\n3,`o,12,`o,1\r\n3,`o:,12,`o:,1\r\n3,`u,12,`u,1\r\n3,`u:,12,`u:,1\r\n3,`y,12,`y,1\r\n3,`y:,12,`y:,1\r\n3,a,12,a,1\r\n3,a:,12,a:,1\r\n3,b,4,b,1\r\n3,c,4,c,1\r\n3,d,4,d,1\r\n3,e,12,e,1\r\n3,e:,12,e:,1\r\n3,f,4,f,1\r\n3,g,4,g,1\r\n3,h,4,h,1\r\n3,i,12,i,1\r\n3,i:,12,i:,1\r\n3,j,4,j,1\r\n3,k,4,k,1\r\n3,l,4,l,1\r\n3,m,4,m,1\r\n3,n,4,n,1\r\n3,o,12,o,1\r\n3,o:,12,o:,1\r\n3,p,4,p,1\r\n3,q,4,q,1\r\n3,r,4,r,1\r\n3,s,4,s,1\r\n3,t,4,t,1\r\n3,u,12,u,1\r\n3,u:,12,u:,1\r\n3,v,4,v,1\r\n3,w,4,w,1\r\n3,x,4,x,1\r\n3,y,12,y,1\r\n3,y:,12,y:,1\r\n3,z,4,z,1\r\n4,`a,5,`a,1\r\n4,`a:,5,`a:,1\r\n4,`e,5,`e,1\r\n4,`e:,5,`e:,1\r\n4,`i,5,`i,1\r\n4,`i:,5,`i:,1\r\n4,`o,5,`o,1\r\n4,`o:,5,`o:,1\r\n4,`u,5,`u,1\r\n4,`u:,5,`u:,1\r\n4,`y,5,`y,1\r\n4,`y:,5,`y:,1\r\n4,a,5,a,1\r\n4,a:,5,a:,1\r\n4,b,8,b,1\r\n4,c,8,c,1\r\n4,d,8,d,1\r\n4,e,5,e,1\r\n4,e:,5,e:,1\r\n4,f,8,f,1\r\n4,g,8,g,1\r\n4,h,8,h,1\r\n4,i,5,i,1\r\n4,i:,5,i:,1\r\n4,j,8,j,1\r\n4,k,8,k,1\r\n4,l,8,l,1\r\n4,m,8,m,1\r\n4,n,8,n,1\r\n4,o,5,o,1\r\n4,o:,5,o:,1\r\n4,p,8,p,1\r\n4,q,8,q,1\r\n4,r,8,r,1\r\n4,s,8,s,1\r\n4,t,8,t,1\r\n4,u,5,u,1\r\n4,u:,5,u:,1\r\n4,v,8,v,1\r\n4,w,8,w,1\r\n4,x,8,x,1\r\n4,y,5,y,1\r\n4,y:,5,y:,1\r\n4,z,8,z,1\r\n5,b,6,b,-1\r\n5,c,6,c,-1\r\n5,d,6,d,-1\r\n5,f,6,f,-1\r\n5,g,6,g,-1\r\n5,h,6,h,-1\r\n5,j,6,j,-1\r\n5,k,6,k,-1\r\n5,l,6,l,-1\r\n5,m,6,m,-1\r\n5,n,6,n,-1\r\n5,p,6,p,-1\r\n5,q,6,q,-1\r\n5,r,6,r,-1\r\n5,s,6,s,-1\r\n5,t,6,t,-1\r\n5,v,6,v,-1\r\n5,w,6,w,-1\r\n5,x,6,x,-1\r\n5,z,6,z,-1\r\n6,+,7,~,1\r\n6,`a,6,,-1\r\n6,`a:,6,,-1\r\n6,`e,6,,-1\r\n6,`e:,6,,-1\r\n6,`i,6,,-1\r\n6,`i:,6,,-1\r\n6,`o,6,,-1\r\n6,`o:,6,,-1\r\n6,`u,6,,-1\r\n6,`u:,6,,-1\r\n6,`y,6,,-1\r\n6,`y:,6,,-1\r\n6,a,6,,-1\r\n6,a:,6,,-1\r\n6,b,6,,-1\r\n6,c,6,,-1\r\n6,d,6,,-1\r\n6,e,6,,-1\r\n6,e:,6,,-1\r\n6,f,6,,-1\r\n6,g,6,,-1\r\n6,h,6,,-1\r\n6,i,6,,-1\r\n6,i:,6,,-1\r\n6,j,6,,-1\r\n6,k,6,,-1\r\n6,l,6,,-1\r\n6,m,6,,-1\r\n6,n,6,,-1\r\n6,o,6,,-1\r\n6,o:,6,,-1\r\n6,p,6,,-1\r\n6,q,6,,-1\r\n6,r,6,,-1\r\n6,s,6,,-1\r\n6,t,6,,-1\r\n6,u,6,,-1\r\n6,u:,6,,-1\r\n6,v,6,,-1\r\n6,w,6,,-1\r\n6,x,6,,-1\r\n6,y,6,,-1\r\n6,y:,6,,-1\r\n6,z,6,,-1\r\n7,%,1,,1\r\n7,`a,7,`a,1\r\n7,`a:,7,`a:,1\r\n7,`e,7,`e,1\r\n7,`e:,7,`e:,1\r\n7,`i,7,`i,1\r\n7,`i:,7,`i:,1\r\n7,`o,7,`o,1\r\n7,`o:,7,`o:,1\r\n7,`u,7,`u,1\r\n7,`u:,7,`u:,1\r\n7,`y,7,`y,1\r\n7,`y:,7,`y:,1\r\n7,a,7,a,1\r\n7,a:,7,a:,1\r\n7,b,7,b,1\r\n7,c,7,c,1\r\n7,d,7,d,1\r\n7,e,7,e,1\r\n7,e:,7,e:,1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,7,i,1\r\n7,i:,7,i:,1\r\n7,j,7,j,1\r\n7,k,7,k,1\r\n7,l,7,l,1\r\n7,m,7,m,1\r\n7,n,7,n,1\r\n7,o,7,o,1\r\n7,o:,7,o:,1\r\n7,p,7,p,1\r\n7,q,7,q,1\r\n7,r,7,r,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,7,u,1\r\n7,u:,7,u:,1\r\n7,v,7,v,1\r\n7,w,7,w,1\r\n7,x,7,x,1\r\n7,y,7,y,1\r\n7,y:,7,y:,1\r\n7,z,7,z,1\r\n8,`a,9,`a,1\r\n8,`a:,9,`a:,1\r\n8,`e,9,`e,1\r\n8,`e:,9,`e:,1\r\n8,`i,9,`i,1\r\n8,`i:,9,`i:,1\r\n8,`o,9,`o,1\r\n8,`o:,9,`o:,1\r\n8,`u,9,`u,1\r\n8,`u:,9,`u:,1\r\n8,`y,9,`y,1\r\n8,`y:,9,`y:,1\r\n8,a,9,a,1\r\n8,a:,9,a:,1\r\n8,e,9,e,1\r\n8,e:,9,e:,1\r\n8,i,9,i,1\r\n8,i:,9,i:,1\r\n8,o,9,o,1\r\n8,o:,9,o:,1\r\n8,u,9,u,1\r\n8,u:,9,u:,1\r\n8,y,9,y,1\r\n8,y:,9,y:,1\r\n9,b,10,b,-1\r\n9,c,10,c,-1\r\n9,d,10,d,-1\r\n9,f,10,f,-1\r\n9,g,10,g,-1\r\n9,h,10,h,-1\r\n9,j,10,j,-1\r\n9,k,10,k,-1\r\n9,l,10,l,-1\r\n9,m,10,m,-1\r\n9,n,10,n,-1\r\n9,p,10,p,-1\r\n9,q,10,q,-1\r\n9,r,10,r,-1\r\n9,s,10,s,-1\r\n9,t,10,t,-1\r\n9,v,10,v,-1\r\n9,w,10,w,-1\r\n9,x,10,x,-1\r\n9,z,10,z,-1\r\n'),
('Initial CVC - codaless V is okay', '| Input | Output |\r\n|----------------|-----------------------------|\r\n| C~1~V~2~C~3~-X | C~1~V~2~C~3~-C~1~V~2~C~3~-X |\r\n| C~1~V~2~-V~3~X | C~1~V~2~-C~1~V~2~-V~3~X |', 'Two allomorphs\r\nInput=#B-X$ where X is any string of symbols and B is either CVC or CV\r\nOutput=#B\\~B-X%\r\nThe word-initial CVC or CV string is repeated. Codaless vowels are thus okay. I assume that inputs start with CVC and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first (C+0)VC once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the beginning of input, output the base CVCX, and end\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [below of=q1] {$q_5$};\r\n\\node[state,accepting] (q6) [right of=q5] {$q_6$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q3) edge[bend left=45] node {(V,$\\epsilon$,-1)} (q4)\r\n(q3) edge node {(C,C,-1)} (q4)\r\n(q4) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(\\#,$\\sim$,+1)} (q5)\r\n(q5) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node[below] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Inital CVC reduplication -- codaless vowels allowed\r\n#The word initial CVC sequence is copied\r\n#If there is no C after the V, then only CV is copied\r\n#function is not defined for any input which doesnt start with CV(C)\r\n#e.g. pata --> pat~pata, patka --> pat~patka, pai --> pa~pai, ata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'output first CVC or CV\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output first CVC or CV\',\\ID,1)\r\n(\'output first CVC or CV\',\\vowels) = (\'return\',\'\',-1)\r\n(\'output first CVC or CV\',\\consonants) = (\'return\',\\ID,-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Inital CVC reduplication -- codaless vowels allowed\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first CVC or CV\r\n5 return\r\n6 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,`a,5,,-1\r\n4,`a:,5,,-1\r\n4,`e,5,,-1\r\n4,`e:,5,,-1\r\n4,`i,5,,-1\r\n4,`i:,5,,-1\r\n4,`o,5,,-1\r\n4,`o:,5,,-1\r\n4,`u,5,,-1\r\n4,`u:,5,,-1\r\n4,`y,5,,-1\r\n4,`y:,5,,-1\r\n4,a,5,,-1\r\n4,a:,5,,-1\r\n4,b,5,b,-1\r\n4,c,5,c,-1\r\n4,d,5,d,-1\r\n4,e,5,,-1\r\n4,e:,5,,-1\r\n4,f,5,f,-1\r\n4,g,5,g,-1\r\n4,h,5,h,-1\r\n4,i,5,,-1\r\n4,i:,5,,-1\r\n4,j,5,j,-1\r\n4,k,5,k,-1\r\n4,l,5,l,-1\r\n4,m,5,m,-1\r\n4,n,5,n,-1\r\n4,o,5,,-1\r\n4,o:,5,,-1\r\n4,p,5,p,-1\r\n4,q,5,q,-1\r\n4,r,5,r,-1\r\n4,s,5,s,-1\r\n4,t,5,t,-1\r\n4,u,5,,-1\r\n4,u:,5,,-1\r\n4,v,5,v,-1\r\n4,w,5,w,-1\r\n4,x,5,x,-1\r\n4,y,5,,-1\r\n4,y:,5,,-1\r\n4,z,5,z,-1\r\n5,#,6,~,1\r\n5,+,5,,-1\r\n5,.,5,,-1\r\n5,`a,5,,-1\r\n5,`a:,5,,-1\r\n5,`e,5,,-1\r\n5,`e:,5,,-1\r\n5,`i,5,,-1\r\n5,`i:,5,,-1\r\n5,`o,5,,-1\r\n5,`o:,5,,-1\r\n5,`u,5,,-1\r\n5,`u:,5,,-1\r\n5,`y,5,,-1\r\n5,`y:,5,,-1\r\n5,a,5,,-1\r\n5,a:,5,,-1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,e:,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,i:,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,o:,5,,-1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,u:,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,5,,-1\r\n5,y:,5,,-1\r\n5,z,5,,-1\r\n6,%,1,,1\r\n6,+,6,+,1\r\n6,.,6,.,1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n'),
('Initial CVC - complex codas & onsetless vowels are okay + syllable boundaries are ignored', '| Input | Output |\r\n|--------|-------------|\r\n| CVC-X | CVC-CVC-X |\r\n| VC-X | VC-VC-X |\r\n| CVCC-X | CVCC-CVCC-X |\r\n| VCC-X | VCC-VCC-X |', 'Two allomorphs\r\nInput=#B-X$ where X is any string of symbols and B is CVCC\\* or VCC\\*\r\nOutput=#B\\~B-X%\r\n\r\nThe word-initial CVCC\\* or VCC\\* is repeated. Complex codas and the following syllable\'s onsets are copied. Onsetless vowels are okay I assume that inputs start with CVCC\\* and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first (C+0)VCC* once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n%states q4 and upreturn to the beginning of input, output the base, and end\r\n\\node[state] (q5) [below of=q1] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q1) edge[bend left=45] node {(V,V,+1)} (q3)\r\n(q3) edge node {(C,C,+1)} (q4)\r\n(q4) edge[loop above] node {(C,C,+1)} (q4)\r\n\r\n(q4) edge node {(\\{V,\\%\\},$\\epsilon$,-1)} (q5)\r\n(q5) edge [loop left] node {($\\Sigma$,$\\epsilon$,-1)} (q5)\r\n(q5) edge node[below] {(\\#,$\\sim$,+1)} (q6)\r\n(q6) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Inital CVC reduplication -- onsetless syllables and complex codas allowed\r\n#The word initial syllable (C)VCC* sequence is copied\r\n#The function is not defined for any input which doesnt start with CVC, VC, CVCC*,VCC*\r\n#e.g. pata --> pat~pata, patka --> patk~patka, ata --> at~ata, aata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C or V\',\'output first CV\',\'output first CVC or VC\',\'output first CVCC* or VCC*\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C or V\',\'\',1)\r\n(\'output first C or V\', \\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\', \\vowels) = (\'output first CVC or VC\',\\ID,1)\r\n(\'output first C or V\', \\vowels) = (\'output first CVC or VC\',\\ID,1)\r\n(\'output first CVC or VC\', \\consonants) = (\'output first CVCC* or VCC*\',\\ID,1)\r\n(\'output first CVCC* or VCC*\',\\consonants) = (\'output first CVCC* or VCC*\',\\ID,1)\r\n(\'output first CVCC* or VCC*\',\\vowels) = (\'return\',\'\',-1)\r\n(\'output first CVCC* or VCC*\', \'%\') = (\'return\',\'\',-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\', \'%\') = (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Inital CVC reduplication -- onsetless syllables and complex codas allowed\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C or V\r\n3 output first CV\r\n4 output first CVC or VC\r\n5 output first CVCC* or VCC*\r\n6 return\r\n7 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,`a,4,`a,1\r\n2,`a:,4,`a:,1\r\n2,`e,4,`e,1\r\n2,`e:,4,`e:,1\r\n2,`i,4,`i,1\r\n2,`i:,4,`i:,1\r\n2,`o,4,`o,1\r\n2,`o:,4,`o:,1\r\n2,`u,4,`u,1\r\n2,`u:,4,`u:,1\r\n2,`y,4,`y,1\r\n2,`y:,4,`y:,1\r\n2,a,4,a,1\r\n2,a:,4,a:,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,e,4,e,1\r\n2,e:,4,e:,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,i,4,i,1\r\n2,i:,4,i:,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,o,4,o,1\r\n2,o:,4,o:,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,u,4,u,1\r\n2,u:,4,u:,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,y,4,y,1\r\n2,y:,4,y:,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,b,5,b,1\r\n4,c,5,c,1\r\n4,d,5,d,1\r\n4,f,5,f,1\r\n4,g,5,g,1\r\n4,h,5,h,1\r\n4,j,5,j,1\r\n4,k,5,k,1\r\n4,l,5,l,1\r\n4,m,5,m,1\r\n4,n,5,n,1\r\n4,p,5,p,1\r\n4,q,5,q,1\r\n4,r,5,r,1\r\n4,s,5,s,1\r\n4,t,5,t,1\r\n4,v,5,v,1\r\n4,w,5,w,1\r\n4,x,5,x,1\r\n4,z,5,z,1\r\n5,%,6,,-1\r\n5,`a,6,,-1\r\n5,`a:,6,,-1\r\n5,`e,6,,-1\r\n5,`e:,6,,-1\r\n5,`i,6,,-1\r\n5,`i:,6,,-1\r\n5,`o,6,,-1\r\n5,`o:,6,,-1\r\n5,`u,6,,-1\r\n5,`u:,6,,-1\r\n5,`y,6,,-1\r\n5,`y:,6,,-1\r\n5,a,6,,-1\r\n5,a:,6,,-1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,6,,-1\r\n5,e:,6,,-1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,6,,-1\r\n5,i:,6,,-1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,6,,-1\r\n5,o:,6,,-1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,6,,-1\r\n5,u:,6,,-1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,6,,-1\r\n5,y:,6,,-1\r\n5,z,5,z,1\r\n6,#,7,~,1\r\n6,+,6,,-1\r\n6,.,6,,-1\r\n6,`a,6,,-1\r\n6,`a:,6,,-1\r\n6,`e,6,,-1\r\n6,`e:,6,,-1\r\n6,`i,6,,-1\r\n6,`i:,6,,-1\r\n6,`o,6,,-1\r\n6,`o:,6,,-1\r\n6,`u,6,,-1\r\n6,`u:,6,,-1\r\n6,`y,6,,-1\r\n6,`y:,6,,-1\r\n6,a,6,,-1\r\n6,a:,6,,-1\r\n6,b,6,,-1\r\n6,c,6,,-1\r\n6,d,6,,-1\r\n6,e,6,,-1\r\n6,e:,6,,-1\r\n6,f,6,,-1\r\n6,g,6,,-1\r\n6,h,6,,-1\r\n6,i,6,,-1\r\n6,i:,6,,-1\r\n6,j,6,,-1\r\n6,k,6,,-1\r\n6,l,6,,-1\r\n6,m,6,,-1\r\n6,n,6,,-1\r\n6,o,6,,-1\r\n6,o:,6,,-1\r\n6,p,6,,-1\r\n6,q,6,,-1\r\n6,r,6,,-1\r\n6,s,6,,-1\r\n6,t,6,,-1\r\n6,u,6,,-1\r\n6,u:,6,,-1\r\n6,v,6,,-1\r\n6,w,6,,-1\r\n6,x,6,,-1\r\n6,y,6,,-1\r\n6,y:,6,,-1\r\n6,z,6,,-1\r\n7,%,1,,1\r\n7,+,7,+,1\r\n7,.,7,.,1\r\n7,`a,7,`a,1\r\n7,`a:,7,`a:,1\r\n7,`e,7,`e,1\r\n7,`e:,7,`e:,1\r\n7,`i,7,`i,1\r\n7,`i:,7,`i:,1\r\n7,`o,7,`o,1\r\n7,`o:,7,`o:,1\r\n7,`u,7,`u,1\r\n7,`u:,7,`u:,1\r\n7,`y,7,`y,1\r\n7,`y:,7,`y:,1\r\n7,a,7,a,1\r\n7,a:,7,a:,1\r\n7,b,7,b,1\r\n7,c,7,c,1\r\n7,d,7,d,1\r\n7,e,7,e,1\r\n7,e:,7,e:,1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,7,i,1\r\n7,i:,7,i:,1\r\n7,j,7,j,1\r\n7,k,7,k,1\r\n7,l,7,l,1\r\n7,m,7,m,1\r\n7,n,7,n,1\r\n7,o,7,o,1\r\n7,o:,7,o:,1\r\n7,p,7,p,1\r\n7,q,7,q,1\r\n7,r,7,r,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,7,u,1\r\n7,u:,7,u:,1\r\n7,v,7,v,1\r\n7,w,7,w,1\r\n7,x,7,x,1\r\n7,y,7,y,1\r\n7,y:,7,y:,1\r\n7,z,7,z,1\r\n'),
('Initial CVC - General', '| Input | Output |\r\n|---------|-------------|\r\n| CVC-X | CVC-CVC-X |', 'Input=#CVC-X$ where X is any string of symbols\r\nOutput=#CVC\\~CVC-X%\r\nThe word-initial CVC string is repeated. I assume that inputs start with CVC and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first CVC once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the beginning of input, output the base CVCX, and end\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [below of=q1] {$q_5$};\r\n\\node[state,accepting] (q6) [right of=q5] {$q_6$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q3) edge node {(C,C,-1)} (q4)\r\n(q4) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n(q4) edge node[right] {(\\#,$\\sim$,+1)} (q5)\r\n(q5) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node[below] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Inital CVC\r\n#If the word starts with CVC, the CVC is reduplicated\r\n#The function is not defined for any input which doesnt start with CVC\r\n#e.g. patka --> pat~patka, ata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\', \'output first C\',\'output first CV\',\'output first CVC\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\', \\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output first CVC\',\\ID,1)\r\n(\'output first CVC\',\\consonants) = (\'return\',\\ID,-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\', \'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\', \'%\') = (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Inital CVC\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first CVC\r\n5 return\r\n6 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,b,5,b,-1\r\n4,c,5,c,-1\r\n4,d,5,d,-1\r\n4,f,5,f,-1\r\n4,g,5,g,-1\r\n4,h,5,h,-1\r\n4,j,5,j,-1\r\n4,k,5,k,-1\r\n4,l,5,l,-1\r\n4,m,5,m,-1\r\n4,n,5,n,-1\r\n4,p,5,p,-1\r\n4,q,5,q,-1\r\n4,r,5,r,-1\r\n4,s,5,s,-1\r\n4,t,5,t,-1\r\n4,v,5,v,-1\r\n4,w,5,w,-1\r\n4,x,5,x,-1\r\n4,z,5,z,-1\r\n5,#,6,~,1\r\n5,+,5,,-1\r\n5,.,5,,-1\r\n5,`a,5,,-1\r\n5,`a:,5,,-1\r\n5,`e,5,,-1\r\n5,`e:,5,,-1\r\n5,`i,5,,-1\r\n5,`i:,5,,-1\r\n5,`o,5,,-1\r\n5,`o:,5,,-1\r\n5,`u,5,,-1\r\n5,`u:,5,,-1\r\n5,`y,5,,-1\r\n5,`y:,5,,-1\r\n5,a,5,,-1\r\n5,a:,5,,-1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,e:,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,i:,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,o:,5,,-1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,u:,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,5,,-1\r\n5,y:,5,,-1\r\n5,z,5,,-1\r\n6,%,1,,1\r\n6,+,6,+,1\r\n6,.,6,.,1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n'),
('Initial CVC - Ilocano monosyllable + glottal stop repairs', 'Data is complicated. Refer to the description.', 'a) \r\nInput=#C~1~\\*VC~2~-X% where X is a string of symbols containing at least one vowel\r\nOutput=#C~1~\\*VC~2~\\~C~1~\\*VC~2~-X%\r\nb)\r\nInput=#C~1~\\*VP-X% where X is a string of segments containing at least one vowel, and P is a glottal stop\r\nOutput=#C~1~\\*VV~C~1~\\*VP-X%\r\nc)\r\nInput=#C~1~\\*VC_2%\r\nOutput=#C~1~\\*VV\\~C~1~\\*V%\r\n\r\nIf the initial CVC ends in a glottal stop, the reduplicant is CVV. Else if the the input is monosyllable, the output is CVV. Otherwise the reduplicant is just CVC', 'FST: I assume the input has syllable boundaries (.) between syllables. This FST only handdles the Ilokano case because its data is more complete\r\n\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-4 outputs checks if input is monosyllabic or has glottal stop\r\n\r\n\\node[state] (q2) [above of=q0] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n% doltong till 7 output CVV for monosyllable or for glottal stop word\r\n\\node[state] (qDOTlong) [right of=q0] {$q_{long}$};\r\n\r\n\\node[state] (q6) [below of=qDOTlong] {$q_6$};\r\n\\node[state] (q7) [below of=q6] {$q_7$};\r\n%dotsecond outputs second copy\r\n\\node[state] (qDOTsecond) [below right of=q4] {$q_{2nd}$};\r\n\\node[state] (q9) [right of=qDOTsecond] {$q_9$};\r\n\\node[state,accepting] (q10) [right of=q9] {$q_{10}$};\r\n\r\n%dotok and up output CVC for polsyllabic and non-glottal stop word\r\n\\node[state] (qDOTok) [above of = q4] {$q_{ok}$};\r\n\r\n\r\n\\node[state] (q14) [right of=qDOTok] {$q_{14}$};\r\n\\node[state] (q15) [right of=q14] {$q_{15}$};\r\n\\node[state] (q16) [right of=q15] {$q_{16}$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q2)\r\n(q2) edge[loop above] node {(C,$\\epsilon$,+1)} (q2)\r\n(q2) edge node {(V,$\\epsilon$,+1)} (q3)\r\n(q3) edge[loop above] node {(V,$\\epsilon$,+1)} (q3)\r\n(q3) edge node[left] {(\\textipa{P},$\\epsilon$,-1)} (qDOTlong)\r\n(q3) edge node {(\\{C-\\textipa{P}\\},$\\epsilon$,+1)} (q4)\r\n(q3) edge node {(.,$\\epsilon$,-1)} (qDOTok)\r\n(q4) edge node {(\\%,$\\epsilon$,-1)} (qDOTlong)\r\n(q4) edge node[right] {(.,$\\epsilon$,-1)} (qDOTok)\r\n\r\n(qDOTlong) edge[loop right] node {(\\{$\\Sigma$\\},$\\epsilon$,-1)} (qDOTlong)\r\n(qDOTlong) edge node {(\\#,$\\epsilon$,+1)} (q6)\r\n(q6) edge node[left] {(C,C,+1)} (q7)\r\n(q7) edge[loop below] node {(C,C,+1)} (q7)\r\n(q7) edge node[right] {(V,V:,-1)} (qDOTsecond)\r\n\r\n(qDOTsecond) edge[loop below] node[right] {($\\Sigma$,.\\},$\\epsilon$,-1)} (qDOTsecond)\r\n(qDOTsecond) edge node {(\\#,$\\sim$,+1)} (q9)\r\n(q9) edge[loop below] node [right]{(\\{$\\Sigma,.$\\},\\{$\\Sigma,\\epsilon$\\},+1)} (q9)\r\n(q9) edge node {(\\%,$\\epsilon$,+1)} (q10)\r\n\r\n\r\n(qDOTok) edge[loop above] node {(\\{$\\Sigma$\\},$\\epsilon$,-1)} (qDOTok)\r\n(qDOTok) edge node {(\\#,$\\epsilon$,+1)} (q14)\r\n(q14) edge node {(C,C,+1)} (q15)\r\n(q15) edge[loop above] node {(C,C,+1)} (q15)\r\n(q15) edge node {(V,V,+1)} (q16)\r\n(q16) edge node {(.,$\\epsilon$,+1)} (q16)\r\n(q16) edge node {(C,C,-1)} (qDOTsecond)\r\n;\r\n\\end{tikzpicture}\r\n', 1, '#Ilocano initial CVC reduplication with vowel CVV used instead for monosyllables and glottal stop codas\r\n#In Ilocano, if the word is monosyllabic starts CC*V then CC*V is repeated with vowel lengthening\r\n#If the word is polysyllabic but initial CC*VC\'s final C is a glottal stop, then CC*V is repeated with vowel lengthening\r\n#If the word is polysyllabica nd the initial CC*VC\'s final C is not a glottal stop, then CC*VC is repeated\r\n#I use \'.\' to mark the boundary between syllables\r\n#The function is not defined for an input which starts with anything other than CC*V(C)% or CC*V(C). \r\n#e.g. pa.ta--> pat~pata, spa.ta --> spat~spata, pat --> pa:~pat, paʔ --> pa:~paʔ, ata --> məŋ+ata~ata, ata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'h\',\'f\',\'v\',\'s\',\'z\',\'ʔ\',\'a\',\'e\',\'i\',\'o\',\'u\',\'a:\',\'e:\',\'i:\',\'o:\',\'u:\',\'.\']\r\nsubalphabets = 3\r\nsegments = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'h\',\'f\',\'v\',\'s\',\'z\',\'ʔ\',\'a\',\'e\',\'i\',\'o\',\'u\',\'a:\',\'e:\',\'i:\',\'o:\',\'u:\']\r\nconsonants = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'h\',\'f\',\'v\',\'s\',\'z\',\'ʔ\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\']\r\n\r\nfunctions = 1\r\nlengthen = { (\'a\',\'a:\'),(\'e\',\'e:\'),(\'i\',\'i:\'),(\'o\',\'o:\'),(\'u\',\'u:\') }\r\n\r\n#states type = string\r\nstates = [\'start\',\'skip the onset\',\'check the first syllable for coda\',\'check the first syllable for monosyllabicity\',\'first syllable needs to reduplicate as CVV\',\'output first C of CVV\',\'output first CVV of CVV\',\'return to output base\',q9,\'output base\',\'first syllabe doesnt need to reduplicate as CVV\',\'end\',\'output first C of CVC\',\'output first CV of CVC\',\'output first CVC of CVC\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'skip the onset\',\'\',1)\r\n(\'skip the onset\',\\consonants) = (\'skip the onset\',\'\',1)\r\n(\'skip the onset\',\\vowels) = (\'check the first syllable for coda\',\'\',1)\r\n(\'check the first syllable for coda\',\\vowels) = (\'check the first syllable for coda\',\'\',1)\r\n(\'check the first syllable for coda\', \'ʔ\') = (\'first syllable needs to reduplicate as CVV\',\'\',-1)\r\n(\'check the first syllable for coda\', {\\consonants - \'ʔ\'} ) = (\'check the first syllable for monosyllabicity\',\'\',1)\r\n(\'check the first syllable for coda\', \'.\' ) = (\'first syllabe doesnt need to reduplicate as CVV\',\'\',1)\r\n(\'check the first syllable for monosyllabicity\', \'%\') = (\'first syllable needs to reduplicate as CVV\',\'\',-1)\r\n(\'check the first syllable for monosyllabicity\',\'.\') = (\'first syllabe doesnt need to reduplicate as CVV\',\'\',-1)\r\n(\'first syllable needs to reduplicate as CVV\', \\segments) = (\'first syllable needs to reduplicate as CVV\',\'\',-1)\r\n(\'first syllable needs to reduplicate as CVV\', \'#\') = (\'output first C of CVV\',\'\',1)\r\n(\'output first C of CVV\',\\consonants) = (\'output first CVV of CVV\',\\ID,1)\r\n(\'output first CVV of CVV\',\\consonants) = (\'output first CVV of CVV\',\\ID,1)\r\n(\'output first CVV of CVV\',\\vowels) = (\'return to output base\',\\lengthen,-1)\r\n(\'return to output base\', \\alphabet) = (\'return to output base\',\'\',-1)\r\n(\'return to output base\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\', \\segments) = (\'output base\',\\ID,1)\r\n(\'output base\',\'.\') = (\'output base\',\'\',1)\r\n(\'output base\', \'%\') = (\'end\',\'\',1)\r\n(\'first syllabe doesnt need to reduplicate as CVV\', \\alphabet) = (\'first syllabe doesnt need to reduplicate as CVV\',\'\',-1)\r\n(\'first syllabe doesnt need to reduplicate as CVV\', \'#\') = (\'output first C of CVC\',\'\',1)\r\n(\'output first C of CVC\', \\consonants) = (\'output first CV of CVC\',\\ID,1)\r\n(\'output first CV of CVC\',\\consonants) = (\'output first CV of CVC\',\\ID,1)\r\n(\'output first CV of CVC\', \\vowels) = (\'output first CVC of CVC\',\\ID,1)\r\n(\'output first CVC of CVC\', \'.\') = (\'output first CVC of CVC\',\'\',+1)\r\n(\'output first CVC of CVC\', \\consonants) = (\'return to output base\',\\ID,-1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Ilocano initial CVC reduplication with vowel CVV used instead for monosyllables and glottal stop codas\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 skip the onset\r\n3 check the first syllable for coda\r\n4 check the first syllable for monosyllabicity\r\n5 first syllable needs to reduplicate as CVV\r\n6 output first C of CVV\r\n7 output first CVV of CVV\r\n8 return to output base\r\n9 output base\r\n10 first syllabe doesnt need to reduplicate as CVV\r\n11 output first C of CVC\r\n12 output first CV of CVC\r\n13 output first CVC of CVC\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,#,11,,1\r\n10,.,10,,-1\r\n10,a,10,,-1\r\n10,a:,10,,-1\r\n10,b,10,,-1\r\n10,d,10,,-1\r\n10,e,10,,-1\r\n10,e:,10,,-1\r\n10,f,10,,-1\r\n10,g,10,,-1\r\n10,h,10,,-1\r\n10,i,10,,-1\r\n10,i:,10,,-1\r\n10,k,10,,-1\r\n10,m,10,,-1\r\n10,n,10,,-1\r\n10,o,10,,-1\r\n10,o:,10,,-1\r\n10,p,10,,-1\r\n10,s,10,,-1\r\n10,t,10,,-1\r\n10,u,10,,-1\r\n10,u:,10,,-1\r\n10,v,10,,-1\r\n10,z,10,,-1\r\n10,ʔ,10,,-1\r\n11,b,12,b,1\r\n11,d,12,d,1\r\n11,f,12,f,1\r\n11,g,12,g,1\r\n11,h,12,h,1\r\n11,k,12,k,1\r\n11,m,12,m,1\r\n11,n,12,n,1\r\n11,p,12,p,1\r\n11,s,12,s,1\r\n11,t,12,t,1\r\n11,v,12,v,1\r\n11,z,12,z,1\r\n11,ʔ,12,ʔ,1\r\n12,a,13,a,1\r\n12,b,12,b,1\r\n12,d,12,d,1\r\n12,e,13,e,1\r\n12,f,12,f,1\r\n12,g,12,g,1\r\n12,h,12,h,1\r\n12,i,13,i,1\r\n12,k,12,k,1\r\n12,m,12,m,1\r\n12,n,12,n,1\r\n12,o,13,o,1\r\n12,p,12,p,1\r\n12,s,12,s,1\r\n12,t,12,t,1\r\n12,u,13,u,1\r\n12,v,12,v,1\r\n12,z,12,z,1\r\n12,ʔ,12,ʔ,1\r\n13,.,13,,1\r\n13,b,8,b,-1\r\n13,d,8,d,-1\r\n13,f,8,f,-1\r\n13,g,8,g,-1\r\n13,h,8,h,-1\r\n13,k,8,k,-1\r\n13,m,8,m,-1\r\n13,n,8,n,-1\r\n13,p,8,p,-1\r\n13,s,8,s,-1\r\n13,t,8,t,-1\r\n13,v,8,v,-1\r\n13,z,8,z,-1\r\n13,ʔ,8,ʔ,-1\r\n2,a,3,,1\r\n2,b,2,,1\r\n2,d,2,,1\r\n2,e,3,,1\r\n2,f,2,,1\r\n2,g,2,,1\r\n2,h,2,,1\r\n2,i,3,,1\r\n2,k,2,,1\r\n2,m,2,,1\r\n2,n,2,,1\r\n2,o,3,,1\r\n2,p,2,,1\r\n2,s,2,,1\r\n2,t,2,,1\r\n2,u,3,,1\r\n2,v,2,,1\r\n2,z,2,,1\r\n2,ʔ,2,,1\r\n3,.,10,,1\r\n3,a,3,,1\r\n3,b,4,,1\r\n3,d,4,,1\r\n3,e,3,,1\r\n3,f,4,,1\r\n3,g,4,,1\r\n3,h,4,,1\r\n3,i,3,,1\r\n3,k,4,,1\r\n3,m,4,,1\r\n3,n,4,,1\r\n3,o,3,,1\r\n3,p,4,,1\r\n3,s,4,,1\r\n3,t,4,,1\r\n3,u,3,,1\r\n3,v,4,,1\r\n3,z,4,,1\r\n3,ʔ,5,,-1\r\n4,%,5,,-1\r\n4,.,10,,-1\r\n5,#,6,,1\r\n5,a,5,,-1\r\n5,a:,5,,-1\r\n5,b,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,e:,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,i:,5,,-1\r\n5,k,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,o:,5,,-1\r\n5,p,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,u:,5,,-1\r\n5,v,5,,-1\r\n5,z,5,,-1\r\n5,ʔ,5,,-1\r\n6,b,7,b,1\r\n6,d,7,d,1\r\n6,f,7,f,1\r\n6,g,7,g,1\r\n6,h,7,h,1\r\n6,k,7,k,1\r\n6,m,7,m,1\r\n6,n,7,n,1\r\n6,p,7,p,1\r\n6,s,7,s,1\r\n6,t,7,t,1\r\n6,v,7,v,1\r\n6,z,7,z,1\r\n6,ʔ,7,ʔ,1\r\n7,a,8,a:,-1\r\n7,b,7,b,1\r\n7,d,7,d,1\r\n7,e,8,e:,-1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,8,i:,-1\r\n7,k,7,k,1\r\n7,m,7,m,1\r\n7,n,7,n,1\r\n7,o,8,o:,-1\r\n7,p,7,p,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,8,u:,-1\r\n7,v,7,v,1\r\n7,z,7,z,1\r\n7,ʔ,7,ʔ,1\r\n8,#,9,~,1\r\n8,.,8,,-1\r\n8,a,8,,-1\r\n8,a:,8,,-1\r\n8,b,8,,-1\r\n8,d,8,,-1\r\n8,e,8,,-1\r\n8,e:,8,,-1\r\n8,f,8,,-1\r\n8,g,8,,-1\r\n8,h,8,,-1\r\n8,i,8,,-1\r\n8,i:,8,,-1\r\n8,k,8,,-1\r\n8,m,8,,-1\r\n8,n,8,,-1\r\n8,o,8,,-1\r\n8,o:,8,,-1\r\n8,p,8,,-1\r\n8,s,8,,-1\r\n8,t,8,,-1\r\n8,u,8,,-1\r\n8,u:,8,,-1\r\n8,v,8,,-1\r\n8,z,8,,-1\r\n8,ʔ,8,,-1\r\n9,%,1,,1\r\n9,.,9,,1\r\n9,a,9,a,1\r\n9,a:,9,a:,1\r\n9,b,9,b,1\r\n9,d,9,d,1\r\n9,e,9,e,1\r\n9,e:,9,e:,1\r\n9,f,9,f,1\r\n9,g,9,g,1\r\n9,h,9,h,1\r\n9,i,9,i,1\r\n9,i:,9,i:,1\r\n9,k,9,k,1\r\n9,m,9,m,1\r\n9,n,9,n,1\r\n9,o,9,o,1\r\n9,o:,9,o:,1\r\n9,p,9,p,1\r\n9,s,9,s,1\r\n9,t,9,t,1\r\n9,u,9,u,1\r\n9,u:,9,u:,1\r\n9,v,9,v,1\r\n9,z,9,z,1\r\n9,ʔ,9,ʔ,1\r\n');
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('Initial CVC - Mokilese mora minimality + gemination/lengthening', 'Data is complicated. Refer to description', 'There are multiple subpatterns. The general pattern is initial CVC reduplication. However there different strategies depending on whether stem starts with a vowel vs. consonant, whether the first vowel is long, and whether the first vowel is succeeded by a consonant. The different strategies involve simple copying, vowel lengthenening, or consonant gemination. I assume the consonant clusters are actually complex segments, though the orthography+syllabification+description are inconsistent. Likewise an additional source (Halle 2008) who cites (Blevins 1996) argues that monosyllables undergo triplicaton: /caak}/-->[caa-caa-caak] \"bending\" which contradicts the monosyllables from my first source.\r\n\r\n\r\n1) Pattern 1: If the input is of the form \\#CVC-Σ\\*\\%, then redup(X)=CVC-X\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|----------------------|-----------|---------------------------|\r\n| pɔdok | \"to plant\" | pɔd-pɔdok | \"to plant (prog)\" |\r\n| pilɔd | \"to pick breadfruit\" | pil-pilɔd | \" pick breadfruit (prog)\" |\r\n\r\n2) Pattern 2: If the input is of the form \\#CV:-Σ\\*\\%, then redup(X)=CV:-X\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|--------|-----------|------------|------------------|\r\n| sɔ:rak | \"to tear\" | sɔ:-sɔ:rak | \"to tear (prog)\" |\r\n\r\n3) Pattern 3: If the input is of the form \\#CV-(VΣ\\*)\\%, then redup(X)=CV:-X\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|------------|---------|-------------------|\r\n| pa | \"to weave\" | pa:-pa | \"to weave (prog)\" |\r\n| wia | \"to do\" | wi:-wia | \"to do (prog)\" |\r\n\r\n4) Pattern 4: If the input is of the form \\#VC-Σ\\%, then redup(X)=VC:-X\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|--------------|-----------|---------------------|\r\n| alu | \"to walk\" | all-lu | \"to walk (prog)\" |\r\n| andip | \"to split\" | and-andip | \"to split (prog)\" |\r\n| onop | \"to prepare\" | onn-onop | \"to prepare (prog)\" |\r\n', 'FST: I represent long and short vowels as V: and V with the circumflex\r\n\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-4 outputs checks if input is monosyllabic or has glottal stop\r\n\\node[state] (q1) [above of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%qstartV is for when the input starts with V so the output must be VC:\r\n\\node[state] (qStartsV) [above of=q3] {$q_V$};\r\n\r\n% doltong till 7 output CVV for monosyllable or for long vowel or for vowel hiatus\r\n\\node[state] (qDOTlong) [right of=q0] {$q_{long}$};\r\n\r\n\\node[state] (q6) [below of=qDOTlong] {$q_6$};\r\n\\node[state] (q7) [below of=q6] {$q_7$};\r\n%dotsecond outputs second copy\r\n\\node[state] (qDOTsecond) [below right of=qStartsV] {$q_{2nd}$};\r\n\\node[state] (q9) [right of=qDOTsecond] {$q_9$};\r\n\\node[state,accepting] (q10) [right of=q9] {$q_{10}$};\r\n\r\n%dotok and up output CVC for polsyllabic and with initial C\r\n\\node[state] (qDOTok) [above of = qStartsV] {$q_{ok}$};\r\n\r\n\r\n\\node[state] (q14) [right of=qDOTok] {$q_{14}$};\r\n\\node[state] (q15) [right of=q14] {$q_{15}$};\r\n\\node[state] (q16) [right of=q15] {$q_{16}$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,$\\epsilon$,+1)} (q2)\r\n(q2) edge node[left] {(V:,$\\epsilon$,+1)} (qDOTlong)\r\n(q2) edge node {(\\v{V},$\\epsilon$,+1)} (q3)\r\n(q3) edge node[right] {\\{\\%,V\\},$\\epsilon$,-1)} (qDOTlong)\r\n(q3) edge[bend left] node[left] {C,$\\epsilon$,-1)} (qDOTok)\r\n(q1) edge node {(V,V,+1)} (qStartsV)\r\n(qStartsV) edge node {(C,C:,-1)} (qDOTsecond)\r\n\r\n(qDOTlong) edge[loop right] node {($\\Sigma$,$\\epsilon$,-1)} (qDOTlong)\r\n(qDOTlong) edge node {(\\#,$\\epsilon$,+1)} (q6)\r\n(q6) edge node[left] {(C,C,+1)} (q7)\r\n(q7) edge node[right] {(V,V:,-1)} (qDOTsecond)\r\n\r\n(qDOTsecond) edge[loop below] node[right] {($\\Sigma$\\},$\\epsilon$,-1)} (qDOTsecond)\r\n(qDOTsecond) edge node {(\\#,$\\sim$,+1)} (q9)\r\n(q9) edge[loop below] node [right]{($\\Sigma$,$\\Sigma$,+1)} (q9)\r\n(q9) edge node {(\\%,$\\epsilon$,+1)} (q10)\r\n\r\n\r\n(qDOTok) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (qDOTok)\r\n(qDOTok) edge node {(\\#,$\\epsilon$,+1)} (q14)\r\n(q14) edge node {(C,C,+1)} (q15)\r\n(q15) edge node {(V,V,+1)} (q16)\r\n(q16) edge node {(C,C,-1)} (qDOTsecond)\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 1, '#Mokilese initial CVC reduplication with vowel CVV used instead for some cases\r\n#In Ilocano, if the word starts with VC then the VC is repeated and the C is repeated: VC-->VCC~VC\r\n#If the word starts with CVV where the two Vs are not a single long vowel, then CV is repeated with vowel lengthening: CVV-->CV:~V\r\n#If the word starts and ends with CV then the CV is repeated with vowel lengthening: CV-->CV:~CV\r\n#If the word starts with CV: then the CV: is repeated: CV:-->CV:~CV:\r\n#If the word starts with CVC then the CVC is repeated: CVC-->CVC~CVC\r\n#Length on the input is represented with a multicharacter symbol so white space is needed between input symbols\r\n#e.g. \"p a t a\"--> pat~pata, \"a p a t\" --> app~apat, \"p a: t a\" --> pa:~pata, \"p a\" --> pa:~pa\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'h\',\'f\',\'v\',\'s\',\'z\',\'a\',\'e\',\'i\',\'o\',\'u\', \'a:\',\'e:\',\'i:\',\'o:\',\'u:\']\r\nsubalphabets = 4\r\nconsonants = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'h\',\'f\',\'v\',\'s\',\'z\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\', \'a:\',\'e:\',\'i:\',\'o:\',\'u:\']\r\nshort_vowels = [\'a\',\'e\',\'i\',\'o\',\'u\']\r\nlong_vowels = [\'a:\',\'e:\',\'i:\',\'o:\',\'u:\']\r\n\r\nfunctions = 1\r\nlengthen = { (\'a\',\'a:\'),(\'e\',\'e:\'),(\'i\',\'i:\'),(\'o\',\'o:\'),(\'u\',\'u:\'),(\'a:\',\'a:\'),(\'e:\',\'e:\'),(\'i:\',\'i:\'),(\'o:\',\'o:\'),(\'u:\',\'u:\') }\r\n\r\n#states type = string\r\nstates = [\'start\',\'check if needs CV: or CVC or VC:\',\'starts with C\',\'starts with C and has short vowel\',\'output C of CV:\',\'output CV: of CV:\',\'output CV: of CV:\',\'output base\',\'check if needs CV: or CVC or VC:\'0,\'check if needs CV: or CVC or VC:\'1,\'check if needs CV: or CVC or VC:\'2,\'check if needs CV: or CVC or VC:\'3,\'check if needs CV: or CVC or VC:\'4,\'check if needs CV: or CVC or VC:\'5,\'check if needs CV: or CVC or VC:\'6,\'needs to reduplicate as CV:\',\'needs to reduplicate as CVC\',\'reduplicate as VC:\',\'return to output base\' ,\'end\', \'output C of CVC\', \'output CV of CVC\', \'output CVC of CVC\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'check if needs CV: or CVC or VC:\',\'\',1)\r\n(\'check if needs CV: or CVC or VC:\',\\consonants) = (\'starts with C\',\'\',1)\r\n(\'starts with C\',\\long_vowels) = (\'needs to reduplicate as CV:\',\'\',1)\r\n(\'starts with C\', \\short_vowels) = (\'starts with C and has short vowel\',\'\',1)\r\n(\'starts with C and has short vowel\', \'%\') =(\'needs to reduplicate as CV:\',\'\',-1)\r\n(\'starts with C and has short vowel\', \\vowels) = (\'needs to reduplicate as CV:\',\'\',-1)\r\n(\'starts with C and has short vowel\',\\consonants) = (\'needs to reduplicate as CVC\',\'\',-1)\r\n(\'check if needs CV: or CVC or VC:\',\\vowels) = (\'reduplicate as VC:\',\\ID,1)\r\n(\'reduplicate as VC:\', \\consonants) = (\'return to output base\',[\\ID \\ID],-1)\r\n(\'needs to reduplicate as CV:\',\\alphabet) = (\'needs to reduplicate as CV:\',\'\',-1)\r\n(\'needs to reduplicate as CV:\',\'#\') = (\'output C of CV:\',\'\',1)\r\n(\'output C of CV:\',\\consonants) = (\'output CV: of CV:\',\\ID,1)\r\n(\'output CV: of CV:\',\\vowels) = (\'return to output base\',\\lengthen,-1)\r\n(\'return to output base\',\\alphabet) = (\'return to output base\',\'\',-1)\r\n(\'return to output base\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)\r\n(\'needs to reduplicate as CVC\',\\alphabet) = (\'needs to reduplicate as CVC\',\'\',-1)\r\n(\'needs to reduplicate as CVC\',\'#\') = (\'output C of CVC\',\'\',1)\r\n(\'output C of CVC\',\\consonants) = (\'output CV of CVC\',\\ID,1)\r\n(\'output CV of CVC\',\\vowels) = (\'output CVC of CVC\',\\ID,1)\r\n(\'output CVC of CVC\',\\consonants) = (\'return to output base\',\\ID,-1)\r\n\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Mokilese initial CVC reduplication with vowel CVV used instead for some cases\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 check if needs CV: or CVC or VC:\r\n3 starts with C\r\n4 starts with C and has short vowel\r\n5 output C of CV:\r\n7 output CV: of CV:\r\n8 output base\r\n15 check if needs CV: or CVC or VC:\'\r\n16 needs to reduplicate as CV:\r\n17 needs to reduplicate as CVC\r\n18 reduplicate as VC:\r\n19 return to output base\r\n20 output C of CVC\r\n21 output CV of CVC\r\n22 output CVC of CVC\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n16,#,5,,1\r\n16,a,16,,-1\r\n16,a:,16,,-1\r\n16,b,16,,-1\r\n16,d,16,,-1\r\n16,e,16,,-1\r\n16,e:,16,,-1\r\n16,f,16,,-1\r\n16,g,16,,-1\r\n16,h,16,,-1\r\n16,i,16,,-1\r\n16,i:,16,,-1\r\n16,k,16,,-1\r\n16,m,16,,-1\r\n16,n,16,,-1\r\n16,o,16,,-1\r\n16,o:,16,,-1\r\n16,p,16,,-1\r\n16,s,16,,-1\r\n16,t,16,,-1\r\n16,u,16,,-1\r\n16,u:,16,,-1\r\n16,v,16,,-1\r\n16,z,16,,-1\r\n17,#,20,,1\r\n17,a,17,,-1\r\n17,a:,17,,-1\r\n17,b,17,,-1\r\n17,d,17,,-1\r\n17,e,17,,-1\r\n17,e:,17,,-1\r\n17,f,17,,-1\r\n17,g,17,,-1\r\n17,h,17,,-1\r\n17,i,17,,-1\r\n17,i:,17,,-1\r\n17,k,17,,-1\r\n17,m,17,,-1\r\n17,n,17,,-1\r\n17,o,17,,-1\r\n17,o:,17,,-1\r\n17,p,17,,-1\r\n17,s,17,,-1\r\n17,t,17,,-1\r\n17,u,17,,-1\r\n17,u:,17,,-1\r\n17,v,17,,-1\r\n17,z,17,,-1\r\n18,b,19,bb,-1\r\n18,d,19,dd,-1\r\n18,f,19,ff,-1\r\n18,g,19,gg,-1\r\n18,h,19,hh,-1\r\n18,k,19,kk,-1\r\n18,m,19,mm,-1\r\n18,n,19,nn,-1\r\n18,p,19,pp,-1\r\n18,s,19,ss,-1\r\n18,t,19,tt,-1\r\n18,v,19,vv,-1\r\n18,z,19,zz,-1\r\n19,#,8,~,1\r\n19,a,19,,-1\r\n19,a:,19,,-1\r\n19,b,19,,-1\r\n19,d,19,,-1\r\n19,e,19,,-1\r\n19,e:,19,,-1\r\n19,f,19,,-1\r\n19,g,19,,-1\r\n19,h,19,,-1\r\n19,i,19,,-1\r\n19,i:,19,,-1\r\n19,k,19,,-1\r\n19,m,19,,-1\r\n19,n,19,,-1\r\n19,o,19,,-1\r\n19,o:,19,,-1\r\n19,p,19,,-1\r\n19,s,19,,-1\r\n19,t,19,,-1\r\n19,u,19,,-1\r\n19,u:,19,,-1\r\n19,v,19,,-1\r\n19,z,19,,-1\r\n2,a,18,a,1\r\n2,a:,18,a:,1\r\n2,b,3,,1\r\n2,d,3,,1\r\n2,e,18,e,1\r\n2,e:,18,e:,1\r\n2,f,3,,1\r\n2,g,3,,1\r\n2,h,3,,1\r\n2,i,18,i,1\r\n2,i:,18,i:,1\r\n2,k,3,,1\r\n2,m,3,,1\r\n2,n,3,,1\r\n2,o,18,o,1\r\n2,o:,18,o:,1\r\n2,p,3,,1\r\n2,s,3,,1\r\n2,t,3,,1\r\n2,u,18,u,1\r\n2,u:,18,u:,1\r\n2,v,3,,1\r\n2,z,3,,1\r\n20,b,21,b,1\r\n20,d,21,d,1\r\n20,f,21,f,1\r\n20,g,21,g,1\r\n20,h,21,h,1\r\n20,k,21,k,1\r\n20,m,21,m,1\r\n20,n,21,n,1\r\n20,p,21,p,1\r\n20,s,21,s,1\r\n20,t,21,t,1\r\n20,v,21,v,1\r\n20,z,21,z,1\r\n21,a,22,a,1\r\n21,a:,22,a:,1\r\n21,e,22,e,1\r\n21,e:,22,e:,1\r\n21,i,22,i,1\r\n21,i:,22,i:,1\r\n21,o,22,o,1\r\n21,o:,22,o:,1\r\n21,u,22,u,1\r\n21,u:,22,u:,1\r\n22,b,19,b,-1\r\n22,d,19,d,-1\r\n22,f,19,f,-1\r\n22,g,19,g,-1\r\n22,h,19,h,-1\r\n22,k,19,k,-1\r\n22,m,19,m,-1\r\n22,n,19,n,-1\r\n22,p,19,p,-1\r\n22,s,19,s,-1\r\n22,t,19,t,-1\r\n22,v,19,v,-1\r\n22,z,19,z,-1\r\n3,a,4,,1\r\n3,a:,16,,1\r\n3,e,4,,1\r\n3,e:,16,,1\r\n3,i,4,,1\r\n3,i:,16,,1\r\n3,o,4,,1\r\n3,o:,16,,1\r\n3,u,4,,1\r\n3,u:,16,,1\r\n4,%,16,,-1\r\n4,a,16,,-1\r\n4,a:,16,,-1\r\n4,b,17,,-1\r\n4,d,17,,-1\r\n4,e,16,,-1\r\n4,e:,16,,-1\r\n4,f,17,,-1\r\n4,g,17,,-1\r\n4,h,17,,-1\r\n4,i,16,,-1\r\n4,i:,16,,-1\r\n4,k,17,,-1\r\n4,m,17,,-1\r\n4,n,17,,-1\r\n4,o,16,,-1\r\n4,o:,16,,-1\r\n4,p,17,,-1\r\n4,s,17,,-1\r\n4,t,17,,-1\r\n4,u,16,,-1\r\n4,u:,16,,-1\r\n4,v,17,,-1\r\n4,z,17,,-1\r\n5,b,7,b,1\r\n5,d,7,d,1\r\n5,f,7,f,1\r\n5,g,7,g,1\r\n5,h,7,h,1\r\n5,k,7,k,1\r\n5,m,7,m,1\r\n5,n,7,n,1\r\n5,p,7,p,1\r\n5,s,7,s,1\r\n5,t,7,t,1\r\n5,v,7,v,1\r\n5,z,7,z,1\r\n7,a,19,a:,-1\r\n7,a:,19,a:,-1\r\n7,e,19,e:,-1\r\n7,e:,19,e:,-1\r\n7,i,19,i:,-1\r\n7,i:,19,i:,-1\r\n7,o,19,o:,-1\r\n7,o:,19,o:,-1\r\n7,u,19,u:,-1\r\n7,u:,19,u:,-1\r\n8,%,1,,1\r\n8,a,8,a,1\r\n8,a:,8,a:,1\r\n8,b,8,b,1\r\n8,d,8,d,1\r\n8,e,8,e,1\r\n8,e:,8,e:,1\r\n8,f,8,f,1\r\n8,g,8,g,1\r\n8,h,8,h,1\r\n8,i,8,i,1\r\n8,i:,8,i:,1\r\n8,k,8,k,1\r\n8,m,8,m,1\r\n8,n,8,n,1\r\n8,o,8,o,1\r\n8,o:,8,o:,1\r\n8,p,8,p,1\r\n8,s,8,s,1\r\n8,t,8,t,1\r\n8,u,8,u,1\r\n8,u:,8,u:,1\r\n8,v,8,v,1\r\n8,z,8,z,1\r\n'),
('Initial CVC - only copy coda if it\'s a nasal', '| Input | Output |\r\n|----------------|-------------------------|\r\n| C~1~V~2~N-X | C~1~V~2~N-C~1~V~2~N-X |\r\n| C~1~V~2~-V~3~X | C~1~V~2~-C~1~V~2~-V~3~X |', 'Two allomorphs\r\nInput=#CV-X$ where X is any string of symbols and B is either CV or CVN where N is a nasal\r\nOutput=#B\\~B-X%\r\nThe word-initial CVN or CV string is repeated. The reduplicant thus only has a coda when the base\'s post-V C is a nasal. I assume that inputs start with CVC and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first CV(N) once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the beginning of input, output the base CVCX, and end\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [below of=q1] {$q_5$};\r\n\\node[state,accepting] (q6) [right of=q5] {$q_6$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q3) edge[bend left=45] node {(\\{\\Sigma-N\\},$\\epsilon$,-1)} (q4)\r\n(q3) edge node {(N,N,-1)} (q4)\r\n(q4) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(\\#,$\\sim$,+1)} (q5)\r\n(q5) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node[below] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Initial CVC but copy only nasal codas\r\n#If the word starts with CVN then the CVN is repeated\r\n#If the word starts with CV but not CVN, then only the CV is copied\r\n#The function is not defined for an input whichs starts with anything other than CV or CVN\r\n#e.g. pataka --> pat~pataka, pantaka --> pan~pantaka, anta --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'t\',\'k\',\'b\',\'d\',\'g\',\'m\',\'n\',\'ŋ\',\'f\',\'v\',\'s\',\'z\',\'x\',\'h\',\'r\',\'l\',\'w\',\'j\',\'c\',\'q\', \'a\',\'e\',\'i\',\'o\',\'u\',\'y\']\r\nsubalphabets = 3\r\nconsonants = [\'p\',\'t\',\'k\',\'b\',\'d\',\'g\',\'m\',\'n\',\'ŋ\',\'f\',\'v\',\'s\',\'z\',\'x\',\'h\',\'r\',\'l\',\'w\',\'j\',\'c\',\'q\']\r\nnasals = [\'m\',\'n\',\'ŋ\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\',\'y\']\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output C\',\'output CV\',\'output CV or CVN\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output C\',\'\',1)\r\n(\'output C\',\\consonants) = (\'output CV\',\\ID,1)\r\n(\'output CV\', \\vowels) = (\'output CV or CVN\',\\ID,1)\r\n(\'output CV or CVN\', {\\alphabet - \\nasals} ) = (\'return\',\'\',-1)\r\n(\'output CV or CVN\',\\nasals) = (\'return\',\\ID,-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CVC but copy only nasal codas\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output C\r\n3 output CV\r\n4 output CV or CVN\r\n5 return\r\n6 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n2,ŋ,3,ŋ,1\r\n3,a,4,a,1\r\n3,e,4,e,1\r\n3,i,4,i,1\r\n3,o,4,o,1\r\n3,u,4,u,1\r\n3,y,4,y,1\r\n4,a,5,,-1\r\n4,b,5,,-1\r\n4,c,5,,-1\r\n4,d,5,,-1\r\n4,e,5,,-1\r\n4,f,5,,-1\r\n4,g,5,,-1\r\n4,h,5,,-1\r\n4,i,5,,-1\r\n4,j,5,,-1\r\n4,k,5,,-1\r\n4,l,5,,-1\r\n4,m,5,m,-1\r\n4,n,5,n,-1\r\n4,o,5,,-1\r\n4,p,5,,-1\r\n4,q,5,,-1\r\n4,r,5,,-1\r\n4,s,5,,-1\r\n4,t,5,,-1\r\n4,u,5,,-1\r\n4,v,5,,-1\r\n4,w,5,,-1\r\n4,x,5,,-1\r\n4,y,5,,-1\r\n4,z,5,,-1\r\n4,ŋ,5,ŋ,-1\r\n5,#,6,~,1\r\n5,a,5,,-1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,5,,-1\r\n5,z,5,,-1\r\n5,ŋ,5,,-1\r\n6,%,1,,1\r\n6,a,6,a,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,z,6,z,1\r\n6,ŋ,6,ŋ,1\r\n'),
('Initial CVC - Onsetless vowels are okay', '| Input | Output |\r\n|-------|-----------|\r\n| CVC-X | CVC-CVC-X |\r\n| VC-X | VC-VC-X |', 'Two allomorphs\r\nInput=#B-X$ where X is any string of symbols and B is either CVC or VC\r\nOutput=#B\\~B-X%\r\nThe word-initial CVC or VC string is repeated. Onsetless vowels are thus okay. I assume that inputs start with CVC and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first (C+0)VC once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the beginning of input, output the base CVCX, and end\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [below of=q1] {$q_5$};\r\n\\node[state,accepting] (q6) [right of=q5] {$q_6$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q1) edge[bend left=45] node {(V,V,+1)} (q3)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q3) edge node {(C,C,-1)} (q4)\r\n(q4) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(\\#,$\\sim$,+1)} (q5)\r\n(q5) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node[below] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 0, '#Initial CVC reduplication with optional onset\r\n#If the word starts with CVC, then the CVC is repeated\r\n#If the word starts with VC, then the VC is repeated\r\n#function is not defined for any input which doesnt start with CVCC* or VCC*\r\n#e.g. pata --> pat~ata, pafta --> paft~afta, ata --> at~ata, spata--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'output first CVC\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first C\',\\vowels) = (\'output first CVC\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output first CVC\',\\ID,1)\r\n(\'output first CVC\',\\consonants) = (\'return\',\\ID,-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CVC reduplication with optional onset\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first CVC\r\n5 return\r\n6 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,`a,4,`a,1\r\n2,`a:,4,`a:,1\r\n2,`e,4,`e,1\r\n2,`e:,4,`e:,1\r\n2,`i,4,`i,1\r\n2,`i:,4,`i:,1\r\n2,`o,4,`o,1\r\n2,`o:,4,`o:,1\r\n2,`u,4,`u,1\r\n2,`u:,4,`u:,1\r\n2,`y,4,`y,1\r\n2,`y:,4,`y:,1\r\n2,a,4,a,1\r\n2,a:,4,a:,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,e,4,e,1\r\n2,e:,4,e:,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,i,4,i,1\r\n2,i:,4,i:,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,o,4,o,1\r\n2,o:,4,o:,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,u,4,u,1\r\n2,u:,4,u:,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,y,4,y,1\r\n2,y:,4,y:,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,b,5,b,-1\r\n4,c,5,c,-1\r\n4,d,5,d,-1\r\n4,f,5,f,-1\r\n4,g,5,g,-1\r\n4,h,5,h,-1\r\n4,j,5,j,-1\r\n4,k,5,k,-1\r\n4,l,5,l,-1\r\n4,m,5,m,-1\r\n4,n,5,n,-1\r\n4,p,5,p,-1\r\n4,q,5,q,-1\r\n4,r,5,r,-1\r\n4,s,5,s,-1\r\n4,t,5,t,-1\r\n4,v,5,v,-1\r\n4,w,5,w,-1\r\n4,x,5,x,-1\r\n4,z,5,z,-1\r\n5,#,6,~,1\r\n5,+,5,,-1\r\n5,.,5,,-1\r\n5,`a,5,,-1\r\n5,`a:,5,,-1\r\n5,`e,5,,-1\r\n5,`e:,5,,-1\r\n5,`i,5,,-1\r\n5,`i:,5,,-1\r\n5,`o,5,,-1\r\n5,`o:,5,,-1\r\n5,`u,5,,-1\r\n5,`u:,5,,-1\r\n5,`y,5,,-1\r\n5,`y:,5,,-1\r\n5,a,5,,-1\r\n5,a:,5,,-1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,e:,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,i:,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,o:,5,,-1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,u:,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,5,,-1\r\n5,y:,5,,-1\r\n5,z,5,,-1\r\n6,%,1,,1\r\n6,+,6,+,1\r\n6,.,6,.,1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n'),
('Initial CVCV - General', '| Input | Output |\r\n|----------|---------------|\r\n| CVCV-X | CVCV-CVCV-X |', 'Input=#CVCV-X$ where X is any string of symbols\r\nOutput=#CVCV\\~CVCV-X%\r\nThe word-initial CVCV string is repeated. I assume that inputs start with CVCV and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first CVC once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n%states q3-q5 return to the beginning of input, output the base CVCX, and end\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q1] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q3) edge node {(C,C,+1)} (q4)\r\n(q4) edge node {(V,V,-1)} (q5)\r\n(q5) edge [loop left] node {($\\Sigma$,$\\epsilon$,-1)} (q5)\r\n(q5) edge node[below] {(\\#,$\\sim$,+1)} (q6)\r\n(q6) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Initial CVCV reduplication \r\n#If the word starts with CVCV, then the CVCV is repeated\r\n#function is not defined for any input which doesnt start with CVCV\r\n#e.g. pataka --> pata~pataka, pafta --> undefined, ata --> undefined, spata--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'read first C\',\'read first CV\',\'read first CVC\',\'read first CVCV\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'read first C\',\'\',1)\r\n(\'read first C\',\\consonants) = (\'read first CV\',\\ID,1)\r\n(\'read first CV\',\\vowels) = (\'read first CVC\',\\ID,1)\r\n(\'read first CVC\',\\consonants) = (\'read first CVCV\',\\ID,1)\r\n(\'read first CVCV\',\\vowels) = (\'return\',\\ID,-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CVCV reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 read first C\r\n3 read first CV\r\n4 read first CVC\r\n5 read first CVCV\r\n6 return\r\n7 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,b,5,b,1\r\n4,c,5,c,1\r\n4,d,5,d,1\r\n4,f,5,f,1\r\n4,g,5,g,1\r\n4,h,5,h,1\r\n4,j,5,j,1\r\n4,k,5,k,1\r\n4,l,5,l,1\r\n4,m,5,m,1\r\n4,n,5,n,1\r\n4,p,5,p,1\r\n4,q,5,q,1\r\n4,r,5,r,1\r\n4,s,5,s,1\r\n4,t,5,t,1\r\n4,v,5,v,1\r\n4,w,5,w,1\r\n4,x,5,x,1\r\n4,z,5,z,1\r\n5,`a,6,`a,-1\r\n5,`a:,6,`a:,-1\r\n5,`e,6,`e,-1\r\n5,`e:,6,`e:,-1\r\n5,`i,6,`i,-1\r\n5,`i:,6,`i:,-1\r\n5,`o,6,`o,-1\r\n5,`o:,6,`o:,-1\r\n5,`u,6,`u,-1\r\n5,`u:,6,`u:,-1\r\n5,`y,6,`y,-1\r\n5,`y:,6,`y:,-1\r\n5,a,6,a,-1\r\n5,a:,6,a:,-1\r\n5,e,6,e,-1\r\n5,e:,6,e:,-1\r\n5,i,6,i,-1\r\n5,i:,6,i:,-1\r\n5,o,6,o,-1\r\n5,o:,6,o:,-1\r\n5,u,6,u,-1\r\n5,u:,6,u:,-1\r\n5,y,6,y,-1\r\n5,y:,6,y:,-1\r\n6,#,7,~,1\r\n6,+,6,,-1\r\n6,.,6,,-1\r\n6,`a,6,,-1\r\n6,`a:,6,,-1\r\n6,`e,6,,-1\r\n6,`e:,6,,-1\r\n6,`i,6,,-1\r\n6,`i:,6,,-1\r\n6,`o,6,,-1\r\n6,`o:,6,,-1\r\n6,`u,6,,-1\r\n6,`u:,6,,-1\r\n6,`y,6,,-1\r\n6,`y:,6,,-1\r\n6,a,6,,-1\r\n6,a:,6,,-1\r\n6,b,6,,-1\r\n6,c,6,,-1\r\n6,d,6,,-1\r\n6,e,6,,-1\r\n6,e:,6,,-1\r\n6,f,6,,-1\r\n6,g,6,,-1\r\n6,h,6,,-1\r\n6,i,6,,-1\r\n6,i:,6,,-1\r\n6,j,6,,-1\r\n6,k,6,,-1\r\n6,l,6,,-1\r\n6,m,6,,-1\r\n6,n,6,,-1\r\n6,o,6,,-1\r\n6,o:,6,,-1\r\n6,p,6,,-1\r\n6,q,6,,-1\r\n6,r,6,,-1\r\n6,s,6,,-1\r\n6,t,6,,-1\r\n6,u,6,,-1\r\n6,u:,6,,-1\r\n6,v,6,,-1\r\n6,w,6,,-1\r\n6,x,6,,-1\r\n6,y,6,,-1\r\n6,y:,6,,-1\r\n6,z,6,,-1\r\n7,%,1,,1\r\n7,+,7,+,1\r\n7,.,7,.,1\r\n7,`a,7,`a,1\r\n7,`a:,7,`a:,1\r\n7,`e,7,`e,1\r\n7,`e:,7,`e:,1\r\n7,`i,7,`i,1\r\n7,`i:,7,`i:,1\r\n7,`o,7,`o,1\r\n7,`o:,7,`o:,1\r\n7,`u,7,`u,1\r\n7,`u:,7,`u:,1\r\n7,`y,7,`y,1\r\n7,`y:,7,`y:,1\r\n7,a,7,a,1\r\n7,a:,7,a:,1\r\n7,b,7,b,1\r\n7,c,7,c,1\r\n7,d,7,d,1\r\n7,e,7,e,1\r\n7,e:,7,e:,1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,7,i,1\r\n7,i:,7,i:,1\r\n7,j,7,j,1\r\n7,k,7,k,1\r\n7,l,7,l,1\r\n7,m,7,m,1\r\n7,n,7,n,1\r\n7,o,7,o,1\r\n7,o:,7,o:,1\r\n7,p,7,p,1\r\n7,q,7,q,1\r\n7,r,7,r,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,7,u,1\r\n7,u:,7,u:,1\r\n7,v,7,v,1\r\n7,w,7,w,1\r\n7,x,7,x,1\r\n7,y,7,y,1\r\n7,y:,7,y:,1\r\n7,z,7,z,1\r\n'),
('Initial CVCV - Kinande', 'Data too complicated. Refer to the description.', 'The reduplicative patterns differ based on the structure of the input/base. It involves overcopying, different outputs for vowel vs consonant initial stems, foot minimality, and reference to multiple morhpological and prosodic constituents. I have refrained from using prosodic constituents (P-stems) in the FST and discussion because those prosodic constituents are derived from the morphological constituents\r\n\r\nThe general template for the input is: Pre-verbal prefixes + root + derivational suffixes or \"extensions\" + inflectional final suffix IFS. \r\n\r\n\r\nOnly the root and inflectional final suffix are obligatory. \r\nThe root + extensions + IFS look like they are always a sequence of alternating vowels and consonants that ends in a vowel: VC(VC)\\*V or (CV)\\*CV.\r\n\r\nI assume that what look like consonant clusters in the orthography are actually complex segments\r\n\r\nThe reduplication patterns ignore the prefixes\r\n\r\n1) Pattern 1: redup(prefixes\\* - CVC root - V I(FS )= prefixes\\* - CVC root - V IFS - CVC root - V IFS\r\n\r\nCVC root (hum, tum) + IFS (a or e)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-----------|-------|-----------------|--------------|\r\n| eri-hum-a | ? | eri-hum-a\\~hum-a | \"to beat\" |\r\n| eri-hum-e | ? | eri-hum-e\\~hum-e | \"let\'s beat\" |\r\n| eri-tum-a | ? | eri-tum-a\\~tum-a | \"to send\" |\r\n| eri-tum-e | ? | eri-tum-e\\~tum-e | \"let\'s send\" |\r\n\r\n2) Pattern 2: redup(prefixes\\* - CVC root - (VC)\\* extensions - V IFS)= prefixes\\* - CVC root - a - CVC root - (VC)\\* extensions - IFS\r\n\r\nCVC root (hum, tum) + VC extensions (ir, an) + IFS (a or e)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------------|-------|----------------------|--------------------------|\r\n| eri-hum-ir-a | ? | eri-hum-a\\~hum-ir-a | \"to beat for\" |\r\n| eri-hum-iran-a | ? | eri-hum-a\\~hum-iran-a | \"to beat for each other\" |\r\n| eri-tum-ir-a | ? | eri-tum-a\\~tum-ir-a | \"to send to\" |\r\n| eri-tum-an-a | ? | eri-tum-a\\~tum-an-a | \"to send each other\" |\r\n| eri-tum-iran-a | ? | eri-tum-a\\~tum-iran-a | \"to send to each other\" |\r\n\r\n3) Pattern 3: redup(prefixes\\* - C root - V IFS)= prefixes\\* - C root - V IFS - C root - V IFS - C root - V IFS\r\n\r\nC root (sw, tm ly, hw) + IFS (a)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------|-------|--------------------|-------------|\r\n| eri-sw-a | ? | eri-sw-a-sw-a\\~sw-a | \"to grind\" |\r\n| eri-t-a | ? | eri-t-a-t-a\\~t-a | \"to bury\" |\r\n| eri-ly-a | ? | eri-ly-a-ly-a\\~ly-a | \"to eat\" |\r\n| eri-hw-a | ? | eri-hw-a-hw-a\\~hw-a | \"to finish\" |\r\n\r\nC root (s) + VC extension (er) + IFS (e)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------------|-------|---------------------|------------|\r\n| eri-sw-er-e | ? | eri-sw-er-e\\~w-er-a | \"to grind\" |\r\n\r\n4) Pattern 4: redup(prefixes\\* - VC root - V IFS)= prefixes\\* - VC root - VC root - VC root - V IFS \r\n\r\nVC root (es, oh, ot, um, ib) + IFS (a)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------|-------|-----------------|------------|\r\n| ery-es-a | ? | ery-es-es\\~es-a | \"to play\" |\r\n| ery-oh-a | ? | ery-oh-oh\\~oh-a | \"to pick\" |\r\n| ery-ot-a | ? | ery-ot-ot\\~ot-a | \"to light\" |\r\n| ery-um-a | ? | ery-um-um\\~um-a | \"to dry\" |\r\n| er-ib-a | ? | er-ib-ib\\~ib-a | \"to steal\" |\r\n\r\n5) Pattern 5: redup(prefixes\\* - VC root - VC extension - V IFS)= prefixes\\* - VC root - VC extension - V IFS - C root - VC extension - V IFS \r\n\r\nVC root (es, oh) + VC extensions (er) + IFS (a)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|--------------|-------|------------------------|----------------|\r\n| ery-es-er-a | ? | ery-e-s-er-a\\~s-er-a | \"to play for\" |\r\n| ery-oh-er-a | ? | ery-o-h-er-a\\~h-er-a | \"to pick for\" |\r\n| ery-ot-er-a | ? | ery-o-t-er-a+t-er-a | \"to light for\" |\r\n| ery-amb-al-a | ? | ery-a-mb-al-a\\~mb-al-a | \"to clothe\" |\r\n| ery-us-al-a | ? | ery-u-s-al-a\\~s-al-a | \"to fill\" |', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-2 go over the prefixes\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\r\n%state q2-7 handle if the root is CVC. if the IFS is next to the root, it is copied; otherwise /a/ is outputed.\r\n\\node[state] (q3) [above =4cm of q0] {$q_3$};\r\n\\node[state] (q4) [right of = q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n%\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state] (q7) [right of=q5] {$q_7$};\r\n%q8-up go back to begining of root and output base+suffixes\r\n\\node[state] (q8) [right of=q2] {$q_8$};\r\n\\node[state] (q9) [right of=q8] {$q_9$};\r\n\\node[state,accepting] (q10) [right of=q9] {$q_{10}$};\r\n\r\n%11-16 handle case where root is VC and theres no D suffixes, it repeats VC twice to get 3 copies \r\n\\node[state] (q11) [below =4cm of q0] {$q_{11}$};\r\n\\node[state] (q12) [right of=q11] {$q_{12}$};\r\n%\\node[state] (q13) [right of=q12] {$q_{13}$};\r\n\\node[state] (q14) [right of=q12] {$q_{14}$};\r\n\\node[state] (q15) [right of=q14] {$q_{15}$};\r\n\\node[state] (q16) [right of=q15] {$q_{16}$};\r\n\r\n\r\n%17-23 handle case where root is VC and has 1 Der VC suffix. it outputs V-C-suffix VC IFS\'s V, then goes back to root, skips first vowel, and outputs base. \r\n\\node[state] (q17) [below of=q11] {$q_{17}$};\r\n\\node[state] (q18) [right of=q17] {$q_{18}$};\r\n\\node[state] (q19) [right of=q18] {$q_{19}$};\r\n%\\node[state] (q20) [right of=q19] {$q_{20}$};\r\n\\node[state] (q21) [right of=q19] {$q_{21}$};\r\n\\node[state] (q22) [right of=q21] {$q_{22}$};\r\n\\node[state] (q23) [right of=q22] {$q_{23}$};\r\n\r\n%q24-27 handle case where root is C and there are no Der suffixes. teh output is pre-C-IFS-C-IFS - C-IFS\r\n\\node[state] (q24) [above right =4cm of q3] {$q_{24}$};\r\n\\node[state] (q25) [right of=q24] {$q_{25}$};\r\n\\node[state] (q26) [right of=q25] {$q_{26}$};\r\n\\node[state] (q27) [right of=q26] {$q_{27}$};\r\n%q28-32 handle case where root is C and there is 1 Der suffix. teh output is pre-C-VC der-V IFS +base\r\n\\node[state] (q28) [above of =q24] {$q_{28}$};\r\n\\node[state] (q29) [right of=q28] {$q_{29}$};\r\n\\node[state] (q30) [right of=q29] {$q_{30}$};\r\n\\node[state] (q31) [right of=q30] {$q_{31}$};\r\n\\node[state] (q32) [right of=q31] {$q_{32}$};\r\n\r\n\\path\r\n\r\n\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node[left] {(\\{-,$\\Sigma$\\},*,+1)} (q1)\r\n(q1) edge node {(+,*,+1)} (q2)\r\n(q2) edge node[right] {(C,C,+1)} (q3)\r\n(q3) edge node {(V,V,+1)} (q4)\r\n(q4) edge node {(C,C,+1)} (q5)\r\n%----(q5) edge node {(]_R,*,+1)} (q6)\r\n\r\n\r\n(q5) edge node {(=,*,+1)} (q7)\r\n(q7) edge node {(V,V,-1)} (q8)\r\n(q8) edge[loop below] node {(\\{$\\Sigma$,-,=\\},$\\epsilon$,-1)} (q8)\r\n(q8) edge node[below] {(+,$\\sim$,+1)} (q9)\r\n(q9) edge[loop below] node[right] {(\\{$\\Sigma,-,=$\\},*,+1)} (q9)\r\n(q9) edge node {(\\%,$\\epsilon$,+1)} (q10)\r\n\r\n%for case without DER suffixes\r\n(q5) edge node[left] {(-,=a,-1)} (q8)\r\n\r\n\r\n% for VC roots without DER\r\n(q2) edge node {(V,V,+1)} (q11)\r\n(q11) edge node {(C,C,+1)} (q12)\r\n%---(q12) edge node {(_R],*,+1)} (q13)\r\n(q12) edge node {(=,$\\epsilon$,-1)} (q14)\r\n(q14) edge[loop below] node {($\\Sigma$,$\\epsilon$,-1)} (q14)\r\n(q14) edge node {(+,$\\epsilon$,+1)} (q15)\r\n(q15) edge node {(V,V,+1)} (q16)\r\n(q16) edge node {(C,C,+1)} (q8)\r\n\r\n\r\n% for VC roots with DER\r\n(q12) edge node[left] {(-,*,+1)} (q17)\r\n(q17) edge node {(V,V,+1)} (q18)\r\n(q18) edge node {(C,C,+1)} (q19)\r\n%--(q19) edge node {(_D],*,+1)} (q20)\r\n(q19) edge node {(=,*,+1)} (q21)\r\n(q21) edge node {(V,V,-1)} (q22)\r\n(q22) edge[loop below] node {(\\{$\\Sigma$,-,=\\},$\\epsilon$,-1)} (q22)\r\n(q22) edge node[below] {(+,*,+1)} (q23)\r\n(q23) edge node[right] {(V,$\\epsilon$,+1)} (q9)\r\n\r\n%C root no DER suffixes\r\n(q3) edge node {(=,$\\epsilon$,+1)} (q24)\r\n--(q24) edge node {(_I[,$\\epsilon$,+1)} (q25)\r\n(q25) edge node {(V,V,-1)} (q26)\r\n(q26) edge[loop below] node {(\\{$\\Sigma$,=\\},$\\epsilon$,-1)} (q26)\r\n(q26) edge node[below] {(+,*,+1)} (q27)\r\n(q27) edge[loop above] node {(\\{$\\Sigma$,=\\},*,+1)} (q27)\r\n(q27) edge[bend left=45] node {(\\%,$\\epsilon$,-1)} (q8)\r\n\r\n% C root, der suffixes\r\n(q24) edge node {(-,*,+1)} (q28)\r\n(q28) edge node {(V,V,+1)} (q29)\r\n(q29) edge node {(C,C,+1)} (q31)\r\n%--(q30) edge node {(]_D,*,+1)} (q31)\r\n(q31) edge node {(=,*,+1)} (q32)\r\n(q32) edge[bend left=60] node {(V,V,-1)} (q8)\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 1, '#Initial CVCV reduplication in Kinande\r\n#In Kinande, the first CVCV of the derivational stem is repeated\r\n#The reduplicant is different depending on the morphological and phonological makeup of the stem\r\n#If the stem consists of a CVC root + V inflectional suffix --> CVC-V~CVC-V\r\n#If the stem consists of a CVC root + VC derivational suffixes + V inflectional suffix --> CVC-a~CVC+VC-V\r\n#If the stem consists of a C root + V inflectional suffix --> C-V~C-V~C-V\r\n#If the stem consists of a C root + VC derivational suffix + V inflectional suffix --> C+VC-V~C+VC-V\r\n#If the stem consists of a VC root + V inflectional suffix --> VC~VC~VC-V\r\n#If the stem consists of a VC root + VC derivational suffixes + V inflectional suffix --> VC+VC-V~C+VC-V\r\n#Every input starts with zero or more prefixes, a \'<\' boundary to signify the start of the root, \'+\' to signify start of derivational suffixes, and \'-\' to signify start of the inflectional suffix, e.g CV-CV<CVC+VC-V\r\n#Explanating the variation is easier with the examples in the SQL file\r\n#e.g. pa<tak-a --> pata<tak-a~tak-a, pa<tak+as-i --> pa<tak-a~tak+as-i, pa<t-a --> pa<t-a~t-a~t-a, pa<t+as-a --> pa<t+as-a~t+as-a, p<at-a --> p<at~at~at-a, p<it-as-a --> p<it-as-a~t-as-a \r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\',\'t\',\'d\',\'n\',\'k\',\'g\',\'s\',\'z\',\'f\',\'v\',\'h\', \'a\',\'e\',\'i\',\'o\',\'u\', \'<\',\'+\',\'-\']\r\nsubalphabets =3\r\nsegments = [\'p\',\'b\',\'m\',\'t\',\'d\',\'n\',\'k\',\'g\',\'s\',\'z\',\'f\',\'v\',\'h\', \'a\',\'e\',\'i\',\'o\',\'u\']\r\nconsonants = [\'p\',\'b\',\'m\',\'t\',\'d\',\'n\',\'k\',\'g\',\'s\',\'z\',\'f\',\'v\',\'h\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\']\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output prefixes\',\'enter root\',\'output root C\',\'output root CV\',\'output root CVC\',\'output root CVC-\',\'return to root\', \'continue output\', \'end\',\'output root V\',\'output root VC\',\'return to root to repeat VC\',\'output root V again\',\'output root VC again\',\'output root VC+\',\'output root VC+V\',\'output root VC+VC\',\'output root VC+VC-\',\'return to root for last time\',\'output root again without first V\',\'output root C-\',\'output root C-V\',\'return to root again to repeat CV\',\'output root again for C-V\',\'output root C+\',\'output root C+V\',\'output root C+VC\',\'output root C+VC-\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output prefixes\',\'\',1)\r\n(\'output prefixes\',\'-\') = (\'output prefixes\',\\ID,1)\r\n(\'output prefixes\',\\segments) = (\'output prefixes\',\\ID,1)\r\n(\'output prefixes\',\'<\') = (\'enter root\',\\ID,1)\r\n(\'enter root\',\\consonants) = (\'output root C\',\\ID,1(\r\n(\'output root C\',\\vowels) = (\'output root CV\',\\ID,1)\r\n(\'output root CV\',\\consonants) = (\'output root CVC\',\\ID,1)\r\n(\'output root CVC\',\'-\') = (\'output root CVC-\',\\ID,1)\r\n(\'output root CVC-\',\\vowels) = (\'return to root\',\\ID,-1)\r\n(\'return to root\',\\segments) = (\'return to root\',\'\',-1)\r\n(\'return to root\',\'-\') = (\'return to root\',\'\',-1)\r\n(\'return to root\',\'+\') = (\'return to root\',\'\',-1)\r\n(\'return to root\',\'<\') = (\'continue output\',\'~\',1)\r\n(\'continue output\',\\segments) = (\'continue output\',\\ID,1)\r\n(\'continue output\',\'-\') = (\'continue output\',\\ID,1)\r\n(\'continue output\',\'+\') = (\'continue output\',\\ID,1)\r\n(\'continue output\',\'%\') = (\'end\',\'\',1)\r\n(\'output root CVC\',\'+\') = (\'return to root\',\'-a\',-1)\r\n(\'enter root\',\\vowels) = (\'output root V\',\\ID,1)\r\n(\'output root V\',\\consonants) = (\'output root VC\',\\ID,1)\r\n(\'output root VC\',\'-\') = (\'return to root to repeat VC\',\'\',-1)\r\n(\'return to root to repeat VC\',\\segments) = (\'return to root to repeat VC\',\'\',-1)\r\n(\'return to root to repeat VC\',\'<\') = (\'output root V again\',\'~\',1)\r\n(\'output root V again\',\\vowels) = (\'output root VC again\',\\ID,1)\r\n(\'output root VC again\',\\consonants) = (\'return to root\',\\ID,1)\r\n(\'output root VC\',\'+\') = (\'output root VC+\',\\ID,1)\r\n(\'output root VC+\',\\vowels) = (\'output root VC+V\',\\ID,1)\r\n(\'output root VC+V\',\\consonants) = (\'output root VC+VC\',\\ID,1)\r\n(\'output root VC+VC\',\'-\') = (\'output root VC+VC-\',\\ID,1)\r\n(\'output root VC+VC-\',\\vowels)= (\'return to root for last time\',\\ID,-1)\r\n(\'return to root for last time\',\\segments) = (\'return to root for last time\',\'\',-1)\r\n(\'return to root for last time\',\'-\') = (\'return to root for last time\',\'\',-1)\r\n(\'return to root for last time\',\'+\') = (\'return to root for last time\',\'\',-1)\r\n(\'return to root for last time\',\'<\') = (\'output root again without first V\',\\ID,1)\r\n(\'output root again without first V\',\\vowels) = (\'continue output\',\'\',1)\r\n(\'output root C\', \'-\') = (\'output root C-\',\'-\',1)\r\n(\'output root C-\', \\vowels) = (\'return to root again to repeat CV\',\\ID,-1)\r\n(\'return to root again to repeat CV\',\'-\') = (\'return to root again to repeat CV\',\'\',-1)\r\n(\'return to root again to repeat CV\',\\segments) = (\'return to root again to repeat CV\',\'\',-1)\r\n(\'return to root again to repeat CV\',\'<\') = (\'output root again for C-V\',\'~\',1)\r\n(\'output root again for C-V\', \\segments) = (\'output root again for C-V\',\\ID,1)\r\n(\'output root again for C-V\',\'-\') = (\'output root again for C-V\',\\ID,1)\r\n(\'output root again for C-V\',\'%\') = (\'return to root\',\'\',-1)\r\n(\'output root C\',\'+\') = (\'output root C+\',\\ID,1)\r\n(\'output root C+\',\\vowels) = (\'output root C+V\',\\ID,1)\r\n(\'output root C+V\',\\consonants) = (\'output root C+VC\',\\ID,1)\r\n(\'output root C+VC\',\'-\') = (\'output root C+VC-\',\\ID,1)\r\n(\'output root C+VC-\',\\vowels) = (\'return to root\',\\ID,-1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CVCV reduplication in Kinande\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output prefixes\r\n3 enter root\r\n4 output root C\r\n5 output root CV\r\n6 output root CVC\r\n7 output root CVC-\r\n8 return to root\r\n9 continue output\r\n10 output root V\r\n11 output root VC\r\n12 return to root to repeat VC\r\n13 output root V again\r\n14 output root VC again\r\n15 output root VC+\r\n16 output root VC+V\r\n17 output root VC+VC\r\n18 output root VC+VC-\r\n19 return to root for last time\r\n20 output root again without first V\r\n21 output root C-\r\n22 output root C-V\r\n23 return to root again to repeat CV\r\n24 output root again for C-V\r\n25 output root C+\r\n26 output root C+V\r\n27 output root C+VC\r\n28 output root C+VC-\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,b,11,b,1\r\n10,d,11,d,1\r\n10,f,11,f,1\r\n10,g,11,g,1\r\n10,h,11,h,1\r\n10,k,11,k,1\r\n10,m,11,m,1\r\n10,n,11,n,1\r\n10,p,11,p,1\r\n10,s,11,s,1\r\n10,t,11,t,1\r\n10,v,11,v,1\r\n10,z,11,z,1\r\n11,+,15,+,1\r\n11,-,12,,-1\r\n12,<,13,~,1\r\n12,a,12,,-1\r\n12,b,12,,-1\r\n12,d,12,,-1\r\n12,e,12,,-1\r\n12,f,12,,-1\r\n12,g,12,,-1\r\n12,h,12,,-1\r\n12,i,12,,-1\r\n12,k,12,,-1\r\n12,m,12,,-1\r\n12,n,12,,-1\r\n12,o,12,,-1\r\n12,p,12,,-1\r\n12,s,12,,-1\r\n12,t,12,,-1\r\n12,u,12,,-1\r\n12,v,12,,-1\r\n12,z,12,,-1\r\n13,a,14,a,1\r\n13,e,14,e,1\r\n13,i,14,i,1\r\n13,o,14,o,1\r\n13,u,14,u,1\r\n14,b,8,b,1\r\n14,d,8,d,1\r\n14,f,8,f,1\r\n14,g,8,g,1\r\n14,h,8,h,1\r\n14,k,8,k,1\r\n14,m,8,m,1\r\n14,n,8,n,1\r\n14,p,8,p,1\r\n14,s,8,s,1\r\n14,t,8,t,1\r\n14,v,8,v,1\r\n14,z,8,z,1\r\n15,a,16,a,1\r\n15,e,16,e,1\r\n15,i,16,i,1\r\n15,o,16,o,1\r\n15,u,16,u,1\r\n16,b,17,b,1\r\n16,d,17,d,1\r\n16,f,17,f,1\r\n16,g,17,g,1\r\n16,h,17,h,1\r\n16,k,17,k,1\r\n16,m,17,m,1\r\n16,n,17,n,1\r\n16,p,17,p,1\r\n16,s,17,s,1\r\n16,t,17,t,1\r\n16,v,17,v,1\r\n16,z,17,z,1\r\n17,-,18,-,1\r\n18,a,19,a,-1\r\n18,e,19,e,-1\r\n18,i,19,i,-1\r\n18,o,19,o,-1\r\n18,u,19,u,-1\r\n19,+,19,,-1\r\n19,-,19,,-1\r\n19,<,20,<,1\r\n19,a,19,,-1\r\n19,b,19,,-1\r\n19,d,19,,-1\r\n19,e,19,,-1\r\n19,f,19,,-1\r\n19,g,19,,-1\r\n19,h,19,,-1\r\n19,i,19,,-1\r\n19,k,19,,-1\r\n19,m,19,,-1\r\n19,n,19,,-1\r\n19,o,19,,-1\r\n19,p,19,,-1\r\n19,s,19,,-1\r\n19,t,19,,-1\r\n19,u,19,,-1\r\n19,v,19,,-1\r\n19,z,19,,-1\r\n2,-,2,-,1\r\n2,<,3,<,1\r\n2,a,2,a,1\r\n2,b,2,b,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,k,2,k,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,p,2,p,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,v,2,v,1\r\n2,z,2,z,1\r\n20,a,9,,1\r\n20,e,9,,1\r\n20,i,9,,1\r\n20,o,9,,1\r\n20,u,9,,1\r\n21,a,23,a,-1\r\n21,e,23,e,-1\r\n21,i,23,i,-1\r\n21,o,23,o,-1\r\n21,u,23,u,-1\r\n23,-,23,,-1\r\n23,<,24,~,1\r\n23,a,23,,-1\r\n23,b,23,,-1\r\n23,d,23,,-1\r\n23,e,23,,-1\r\n23,f,23,,-1\r\n23,g,23,,-1\r\n23,h,23,,-1\r\n23,i,23,,-1\r\n23,k,23,,-1\r\n23,m,23,,-1\r\n23,n,23,,-1\r\n23,o,23,,-1\r\n23,p,23,,-1\r\n23,s,23,,-1\r\n23,t,23,,-1\r\n23,u,23,,-1\r\n23,v,23,,-1\r\n23,z,23,,-1\r\n24,%,8,,-1\r\n24,-,24,-,1\r\n24,a,24,a,1\r\n24,b,24,b,1\r\n24,d,24,d,1\r\n24,e,24,e,1\r\n24,f,24,f,1\r\n24,g,24,g,1\r\n24,h,24,h,1\r\n24,i,24,i,1\r\n24,k,24,k,1\r\n24,m,24,m,1\r\n24,n,24,n,1\r\n24,o,24,o,1\r\n24,p,24,p,1\r\n24,s,24,s,1\r\n24,t,24,t,1\r\n24,u,24,u,1\r\n24,v,24,v,1\r\n24,z,24,z,1\r\n25,a,26,a,1\r\n25,e,26,e,1\r\n25,i,26,i,1\r\n25,o,26,o,1\r\n25,u,26,u,1\r\n26,b,27,b,1\r\n26,d,27,d,1\r\n26,f,27,f,1\r\n26,g,27,g,1\r\n26,h,27,h,1\r\n26,k,27,k,1\r\n26,m,27,m,1\r\n26,n,27,n,1\r\n26,p,27,p,1\r\n26,s,27,s,1\r\n26,t,27,t,1\r\n26,v,27,v,1\r\n26,z,27,z,1\r\n27,-,28,-,1\r\n28,a,8,a,-1\r\n28,e,8,e,-1\r\n28,i,8,i,-1\r\n28,o,8,o,-1\r\n28,u,8,u,-1\r\n3,a,10,a,1\r\n3,b,4,b,1\r\n3,d,4,d,1\r\n3,e,10,e,1\r\n3,f,4,f,1\r\n3,g,4,g,1\r\n3,h,4,h,1\r\n3,i,10,i,1\r\n3,k,4,k,1\r\n3,m,4,m,1\r\n3,n,4,n,1\r\n3,o,10,o,1\r\n3,p,4,p,1\r\n3,s,4,s,1\r\n3,t,4,t,1\r\n3,u,10,u,1\r\n3,v,4,v,1\r\n3,z,4,z,1\r\n4,+,25,+,1\r\n4,-,21,-,1\r\n4,a,5,a,1\r\n4,e,5,e,1\r\n4,i,5,i,1\r\n4,o,5,o,1\r\n4,u,5,u,1\r\n5,b,6,b,1\r\n5,d,6,d,1\r\n5,f,6,f,1\r\n5,g,6,g,1\r\n5,h,6,h,1\r\n5,k,6,k,1\r\n5,m,6,m,1\r\n5,n,6,n,1\r\n5,p,6,p,1\r\n5,s,6,s,1\r\n5,t,6,t,1\r\n5,v,6,v,1\r\n5,z,6,z,1\r\n6,+,8,-a,-1\r\n6,-,7,-,1\r\n7,a,8,a,-1\r\n7,e,8,e,-1\r\n7,i,8,i,-1\r\n7,o,8,o,-1\r\n7,u,8,u,-1\r\n8,+,8,,-1\r\n8,-,8,,-1\r\n8,<,9,~,1\r\n8,a,8,,-1\r\n8,b,8,,-1\r\n8,d,8,,-1\r\n8,e,8,,-1\r\n8,f,8,,-1\r\n8,g,8,,-1\r\n8,h,8,,-1\r\n8,i,8,,-1\r\n8,k,8,,-1\r\n8,m,8,,-1\r\n8,n,8,,-1\r\n8,o,8,,-1\r\n8,p,8,,-1\r\n8,s,8,,-1\r\n8,t,8,,-1\r\n8,u,8,,-1\r\n8,v,8,,-1\r\n8,z,8,,-1\r\n9,%,1,,1\r\n9,+,9,+,1\r\n9,-,9,-,1\r\n9,a,9,a,1\r\n9,b,9,b,1\r\n9,d,9,d,1\r\n9,e,9,e,1\r\n9,f,9,f,1\r\n9,g,9,g,1\r\n9,h,9,h,1\r\n9,i,9,i,1\r\n9,k,9,k,1\r\n9,m,9,m,1\r\n9,n,9,n,1\r\n9,o,9,o,1\r\n9,p,9,p,1\r\n9,s,9,s,1\r\n9,t,9,t,1\r\n9,u,9,u,1\r\n9,v,9,v,1\r\n9,z,9,z,1\r\n');
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('Initial CVCV - Makassarese morpheme integrity of up until two syllables else extra coded added', 'Data is complicated. Refer to the description.', 'There are two subpatterns.\r\n\r\n1) Pattern 1: If the input is bisyllabic, then the whole input is copied and this is a normal case of total reduplication. It looks like vowel sequences are treated as hetero-syllabic, e.g. redup(X)=X-X if X is bisyllabic\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|-------|-------------|--------------|\r\n| batu | ? | batu-batu | \"small stones\" |\r\n| golla | ? | golla-golla | \"sweets\" |\r\n| bulaŋ | ? | bulaŋ-bulaŋ | \"monthly\" |\r\n| tau | ? | tau-tau | \"person\" |\r\n\r\n2) Pattern 2: If the input larger than bisyllabic, then the whole the first ( C )V( C )V sequence is copied. A segment [ʔ] is then inserted between the reduplicant and base, e.g. redup(X)=X\'-[ʔ]-X where X\' is the first ( C )V( C )V sequences\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------|-------|-----------------|-----------------|\r\n| manara | ? | mana-ʔ-manara | \"sort of tower\" |\r\n| balao | ? | bala-ʔ-balao | \"toy rat\" |\r\n| baine | ? | bai-ʔ-baine | many women |\r\n| baramban | ? | bara-ʔ-baramban | \"sort of chest\" |', 'FST: Syllable boundaries will not be used because vowel count can do the job\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-6 output the first (C)V(C)V sequence\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n%state q6 handles case where base isnt bisyllabic\r\n\\node[state] (q6) [below of=q5] {$q_6$};\r\n%state q7-9 outs the base\r\n\\node[state] (q7) [left of=q6] {$q_7$};\r\n\\node[state] (q8) [left of=q7] {$q_8$};\r\n\\node[state,accepting] (q9) [left of=q8] {$q_9$};\r\n\\node[state] (q10) [below of=q6] {$q_{10}$};\r\n% 10 handles cases where base is bisyllabic\r\n\\path\r\n\r\n\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q3) edge node {(C,C,+1)} (q4)\r\n(q3) edge[bend left] node {(V,V,+1)} (q5)\r\n(q4) edge node {(V,V,+1)} (q5)\r\n(q5) edge node[left] {(C,$\\epsilon$,+1)} (q6)\r\n(q6) edge node {(V,\\textipa{P},+1)} (q7)\r\n\r\n(q7) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q7)\r\n(q7) edge node {(\\#,$\\sim$,+1)} (q8)\r\n(q8) edge[loop above] node {($\\Sigma$,$\\sim$,+1)} (q8)\r\n(q8) edge node {(\\%,$\\epsilon$,+1)} (q9)\r\n\r\n(q5) edge[bend left] node {(\\%,$\\epsilon$,-1)} (q10)\r\n(q10) edge node {(C,C,-1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 1, '#Initial CVCV reduplication in Makassarese with morpheme integrity\r\n#In Makassarese, if the input is either CVC*CV or CVC*CVC, then the input is reduplicated\r\n#If the input starts with CVC*CVCV, then the first CVC*CV is repeated and ʔ is added: CVC*CVCV-->CVC*CVʔ~CVC*CVCV\r\n#The function is not defined for any input which is anything other than CVC*CV or, CVC*CVC, \r\n#or which starts with anything other than CVC*CVCV\r\n#e.g. pata --> pata~pata, patak --> patak~patak, pataka --> pataʔ~pataka, pat --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\',\'t\',\'d\',\'n\',\'k\',\'g\',\'s\',\'z\',\'f\',\'v\',\'h\',\'ʔ\', \'a\',\'e\',\'i\',\'o\',\'u\']\r\nsubalphabets =2\r\nconsonants = [\'p\',\'b\',\'m\',\'t\',\'d\',\'n\',\'k\',\'g\',\'s\',\'z\',\'f\',\'v\',\'h\',\'ʔ\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\']\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'output first CVC\',\'output first CVCV\',\'skip the C in CVCVC\',\'check whats after CVCVC\',\'return\',\'output final C in CVCVC\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output first CVC\',\\ID,1)\r\n(\'output first CVC\',\\consonants) = (\'output first CVCV\',\\ID,1)\r\n(\'output first CVC\',\\consonants) = (\'output first CVCV\',\\ID,1)\r\n(\'output first CVCV\',\\vowels) = (\'skip the C in CVCVC\',\\ID,1)\r\n(\'skip the C in CVCVC\',\\consonants) = (\'check whats after CVCVC\',\'\',1)\r\n(\'check whats after CVCVC\',\\vowels) = (\'return\',\'ʔ\',-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)\r\n(\'skip the C in CVCVC\',\'%\') = (\'return\',\'\',-1)\r\n(\'check whats after CVCVC\',\'%\') = (\'output final C in CVCVC\',\'\',-1)\r\n(\'output final C in CVCVC\',\\consonants) = (\'return\',\\ID,-1)\r\n\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CVCV reduplication in Makassarese with morpheme integrity\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first CVC\r\n5 output first CVCV\r\n6 skip the C in CVCVC\r\n7 check whats after CVCVC\r\n8 return\r\n9 output final C in CVCVC\r\n10 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,%,1,,1\r\n10,a,10,a,1\r\n10,b,10,b,1\r\n10,d,10,d,1\r\n10,e,10,e,1\r\n10,f,10,f,1\r\n10,g,10,g,1\r\n10,h,10,h,1\r\n10,i,10,i,1\r\n10,k,10,k,1\r\n10,m,10,m,1\r\n10,n,10,n,1\r\n10,o,10,o,1\r\n10,p,10,p,1\r\n10,s,10,s,1\r\n10,t,10,t,1\r\n10,u,10,u,1\r\n10,v,10,v,1\r\n10,z,10,z,1\r\n10,ʔ,10,ʔ,1\r\n2,b,3,b,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,k,3,k,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,z,3,z,1\r\n2,ʔ,3,ʔ,1\r\n3,a,4,a,1\r\n3,e,4,e,1\r\n3,i,4,i,1\r\n3,o,4,o,1\r\n3,u,4,u,1\r\n4,b,5,b,1\r\n4,d,5,d,1\r\n4,f,5,f,1\r\n4,g,5,g,1\r\n4,h,5,h,1\r\n4,k,5,k,1\r\n4,m,5,m,1\r\n4,n,5,n,1\r\n4,p,5,p,1\r\n4,s,5,s,1\r\n4,t,5,t,1\r\n4,v,5,v,1\r\n4,z,5,z,1\r\n4,ʔ,5,ʔ,1\r\n5,a,6,a,1\r\n5,e,6,e,1\r\n5,i,6,i,1\r\n5,o,6,o,1\r\n5,u,6,u,1\r\n6,%,8,,-1\r\n6,b,7,,1\r\n6,d,7,,1\r\n6,f,7,,1\r\n6,g,7,,1\r\n6,h,7,,1\r\n6,k,7,,1\r\n6,m,7,,1\r\n6,n,7,,1\r\n6,p,7,,1\r\n6,s,7,,1\r\n6,t,7,,1\r\n6,v,7,,1\r\n6,z,7,,1\r\n6,ʔ,7,,1\r\n7,%,9,,-1\r\n7,a,8,ʔ,-1\r\n7,e,8,ʔ,-1\r\n7,i,8,ʔ,-1\r\n7,o,8,ʔ,-1\r\n7,u,8,ʔ,-1\r\n8,#,10,~,1\r\n8,a,8,,-1\r\n8,b,8,,-1\r\n8,d,8,,-1\r\n8,e,8,,-1\r\n8,f,8,,-1\r\n8,g,8,,-1\r\n8,h,8,,-1\r\n8,i,8,,-1\r\n8,k,8,,-1\r\n8,m,8,,-1\r\n8,n,8,,-1\r\n8,o,8,,-1\r\n8,p,8,,-1\r\n8,s,8,,-1\r\n8,t,8,,-1\r\n8,u,8,,-1\r\n8,v,8,,-1\r\n8,z,8,,-1\r\n8,ʔ,8,,-1\r\n9,b,8,b,-1\r\n9,d,8,d,-1\r\n9,f,8,f,-1\r\n9,g,8,g,-1\r\n9,h,8,h,-1\r\n9,k,8,k,-1\r\n9,m,8,m,-1\r\n9,n,8,n,-1\r\n9,p,8,p,-1\r\n9,s,8,s,-1\r\n9,t,8,t,-1\r\n9,v,8,v,-1\r\n9,z,8,z,-1\r\n9,ʔ,8,ʔ,-1\r\n'),
('Initial CVCV - medial codas are okay', '| Input | Output |\r\n|-----------|-----------------|\r\n| CVCV-X | CVCV-CVCV-X |\r\n| CVCCV-X | CVCCV-CVCCV-X |', 'Two allomorphs\r\nInput=#B-X$ where X is any string of symbols and B is CVCV or CVCC\\*V\r\nOutput=#B\\~B-X%\r\nThe word-initial CVCC\\*V string is repeated. Thus medial codas in the reduplicant are okay. I assume that inputs start with CVCC\\*V and there is no modification done on the reduplicant. ', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first CVC once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n%states q3-q5 return to the beginning of input, output the base CVCX, and end\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q1] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\\node[state] (q8) [above of=q4] {$q_8$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q3) edge node {(C,C,+1)} (q4)\r\n(q4) edge[loop above] node {(C,C,+1)} (q8)\r\n(q8) edge node {(V,V,-1)} (q5)\r\n(q4) edge node {(V,V,-1)} (q5)\r\n(q5) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(\\#,$\\sim$,+1)} (q6)\r\n(q6) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Initial CVCV reduplication with retention of first syllable\'s coda\r\n#If the word starts with CVCV, then the CVCV is repeated\r\n#If the word starts with CVCCV, then the CVCCV is repeated\r\n#function is not defined for any input which doesnt start with CVCV or CVCCV\r\n#e.g. pataka --> pata~pataka, paftaka --> pafta~paftaka, ata --> undefined, spata--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'output first CVC\',\'output first CVCC or CVCV\',\'output first CVCCV\',\'return\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output first CVC\',\\ID,1)\r\n(\'output first CVC\',\\consonants) = (\'output first CVCC or CVCV\',\\ID,1)\r\n(\'output first CVCC or CVCV\',\\consonants) = (\'output first CVCCV\',\\ID,1)\r\n(\'output first CVCC or CVCV\',\\vowels) = (\'return\',\\ID,-1)\r\n(\'output first CVCCV\',\\vowels) = (\'return\',\\ID,-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CVCV reduplication with retention of first syllable\'s coda\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first CVC\r\n5 output first CVCC or CVCV\r\n6 output first CVCCV\r\n7 return\r\n8 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,b,5,b,1\r\n4,c,5,c,1\r\n4,d,5,d,1\r\n4,f,5,f,1\r\n4,g,5,g,1\r\n4,h,5,h,1\r\n4,j,5,j,1\r\n4,k,5,k,1\r\n4,l,5,l,1\r\n4,m,5,m,1\r\n4,n,5,n,1\r\n4,p,5,p,1\r\n4,q,5,q,1\r\n4,r,5,r,1\r\n4,s,5,s,1\r\n4,t,5,t,1\r\n4,v,5,v,1\r\n4,w,5,w,1\r\n4,x,5,x,1\r\n4,z,5,z,1\r\n5,`a,7,`a,-1\r\n5,`a:,7,`a:,-1\r\n5,`e,7,`e,-1\r\n5,`e:,7,`e:,-1\r\n5,`i,7,`i,-1\r\n5,`i:,7,`i:,-1\r\n5,`o,7,`o,-1\r\n5,`o:,7,`o:,-1\r\n5,`u,7,`u,-1\r\n5,`u:,7,`u:,-1\r\n5,`y,7,`y,-1\r\n5,`y:,7,`y:,-1\r\n5,a,7,a,-1\r\n5,a:,7,a:,-1\r\n5,b,6,b,1\r\n5,c,6,c,1\r\n5,d,6,d,1\r\n5,e,7,e,-1\r\n5,e:,7,e:,-1\r\n5,f,6,f,1\r\n5,g,6,g,1\r\n5,h,6,h,1\r\n5,i,7,i,-1\r\n5,i:,7,i:,-1\r\n5,j,6,j,1\r\n5,k,6,k,1\r\n5,l,6,l,1\r\n5,m,6,m,1\r\n5,n,6,n,1\r\n5,o,7,o,-1\r\n5,o:,7,o:,-1\r\n5,p,6,p,1\r\n5,q,6,q,1\r\n5,r,6,r,1\r\n5,s,6,s,1\r\n5,t,6,t,1\r\n5,u,7,u,-1\r\n5,u:,7,u:,-1\r\n5,v,6,v,1\r\n5,w,6,w,1\r\n5,x,6,x,1\r\n5,y,7,y,-1\r\n5,y:,7,y:,-1\r\n5,z,6,z,1\r\n6,`a,7,`a,-1\r\n6,`a:,7,`a:,-1\r\n6,`e,7,`e,-1\r\n6,`e:,7,`e:,-1\r\n6,`i,7,`i,-1\r\n6,`i:,7,`i:,-1\r\n6,`o,7,`o,-1\r\n6,`o:,7,`o:,-1\r\n6,`u,7,`u,-1\r\n6,`u:,7,`u:,-1\r\n6,`y,7,`y,-1\r\n6,`y:,7,`y:,-1\r\n6,a,7,a,-1\r\n6,a:,7,a:,-1\r\n6,e,7,e,-1\r\n6,e:,7,e:,-1\r\n6,i,7,i,-1\r\n6,i:,7,i:,-1\r\n6,o,7,o,-1\r\n6,o:,7,o:,-1\r\n6,u,7,u,-1\r\n6,u:,7,u:,-1\r\n6,y,7,y,-1\r\n6,y:,7,y:,-1\r\n7,#,8,~,1\r\n7,+,7,,-1\r\n7,.,7,,-1\r\n7,`a,7,,-1\r\n7,`a:,7,,-1\r\n7,`e,7,,-1\r\n7,`e:,7,,-1\r\n7,`i,7,,-1\r\n7,`i:,7,,-1\r\n7,`o,7,,-1\r\n7,`o:,7,,-1\r\n7,`u,7,,-1\r\n7,`u:,7,,-1\r\n7,`y,7,,-1\r\n7,`y:,7,,-1\r\n7,a,7,,-1\r\n7,a:,7,,-1\r\n7,b,7,,-1\r\n7,c,7,,-1\r\n7,d,7,,-1\r\n7,e,7,,-1\r\n7,e:,7,,-1\r\n7,f,7,,-1\r\n7,g,7,,-1\r\n7,h,7,,-1\r\n7,i,7,,-1\r\n7,i:,7,,-1\r\n7,j,7,,-1\r\n7,k,7,,-1\r\n7,l,7,,-1\r\n7,m,7,,-1\r\n7,n,7,,-1\r\n7,o,7,,-1\r\n7,o:,7,,-1\r\n7,p,7,,-1\r\n7,q,7,,-1\r\n7,r,7,,-1\r\n7,s,7,,-1\r\n7,t,7,,-1\r\n7,u,7,,-1\r\n7,u:,7,,-1\r\n7,v,7,,-1\r\n7,w,7,,-1\r\n7,x,7,,-1\r\n7,y,7,,-1\r\n7,y:,7,,-1\r\n7,z,7,,-1\r\n8,%,1,,1\r\n8,+,8,+,1\r\n8,.,8,.,1\r\n8,`a,8,`a,1\r\n8,`a:,8,`a:,1\r\n8,`e,8,`e,1\r\n8,`e:,8,`e:,1\r\n8,`i,8,`i,1\r\n8,`i:,8,`i:,1\r\n8,`o,8,`o,1\r\n8,`o:,8,`o:,1\r\n8,`u,8,`u,1\r\n8,`u:,8,`u:,1\r\n8,`y,8,`y,1\r\n8,`y:,8,`y:,1\r\n8,a,8,a,1\r\n8,a:,8,a:,1\r\n8,b,8,b,1\r\n8,c,8,c,1\r\n8,d,8,d,1\r\n8,e,8,e,1\r\n8,e:,8,e:,1\r\n8,f,8,f,1\r\n8,g,8,g,1\r\n8,h,8,h,1\r\n8,i,8,i,1\r\n8,i:,8,i:,1\r\n8,j,8,j,1\r\n8,k,8,k,1\r\n8,l,8,l,1\r\n8,m,8,m,1\r\n8,n,8,n,1\r\n8,o,8,o,1\r\n8,o:,8,o:,1\r\n8,p,8,p,1\r\n8,q,8,q,1\r\n8,r,8,r,1\r\n8,s,8,s,1\r\n8,t,8,t,1\r\n8,u,8,u,1\r\n8,u:,8,u:,1\r\n8,v,8,v,1\r\n8,w,8,w,1\r\n8,x,8,x,1\r\n8,y,8,y,1\r\n8,y:,8,y:,1\r\n8,z,8,z,1\r\n'),
('Initial CVCV - Tagalog morpheme integrity of up until two syllables else base coda is added', 'Data is complicated. Refer to the description.', 'a)\r\nInput=#X# where X is CV( C )CV( C )\r\nOutput=#X\\~X%\r\nb)\r\nInput=#B-X# where X is a string of segments and B is CV( C )CV\r\nOutput=#B\\~B-X%\r\nIf the input is bisyllabic, then the whole input is copied and this is a normal case of total reduplication. \r\nIf the input larger than bisyllabic, then the whole the first ( C )V( C )V sequence is copied. ', 'FST: Syllable boundaries will not be used because vowel count can do the job\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-6 output the first CV(C)CV sequence\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n%state q6 handles case where base isnt bisyllabic\r\n\\node[state] (q6) [below of=q5] {$q_6$};\r\n%state q7-9 outs the base\r\n\\node[state] (q7) [left of=q6] {$q_7$};\r\n\\node[state] (q8) [left of=q7] {$q_8$};\r\n\\node[state,accepting] (q9) [left of=q8] {$q_9$};\r\n\\node[state] (q10) [below of=q6] {$q_{10}$};\r\n% 10 handles cases where base is bisyllabic\r\n\\path\r\n\r\n\r\n(q0) edge node {(\\#,\\#,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q3) edge node {(C,C,+1)} (q4)\r\n(q3) edge[loop above] node {(C,C,+1)} (q4)\r\n(q4) edge node {(V,V,+1)} (q5)\r\n(q5) edge[bend left=90] node[right] {(C,$\\epsilon$,+1)} (q6)\r\n(q6) edge node {(V,$\\epsilon$,0)} (q7)\r\n\r\n(q7) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q7)\r\n(q7) edge node {(\\#,$\\epsilon$,+1)} (q8)\r\n(q8) edge[loop above] node {($\\Sigma$,*,+1)} (q8)\r\n(q8) edge node {(\\%,\\%,+1)} (q9)\r\n\r\n(q5) edge node {(\\{+,\\%\\},$\\epsilon$,-1)} (q7)\r\n(q6) edge node {(\\{+,\\%\\},$\\epsilon$,-1)} (q10)\r\n(q10) edge[bend left=90] node {(C,C,0)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 1, '#Initial CVCV reduplication in Tagalog with morpheme integrity\r\n#In Makassarese, if the input is either CVCV or CVCVC, then the input is reduplicated\r\n#If the input starts with CVCVCV, then the first CVCV is repeated: CVCVCV-->CVCV~CVCVCV\r\n#The function is not defined for any input which is anything other than CVCV or, CVCVC, \r\n#or which starts with anything other than CVCVCV\r\n#e.g. pata --> pata~pata, patak --> patak~patak, pataka --> pata~pataka, pat --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\',\'t\',\'d\',\'n\',\'k\',\'g\',\'s\',\'z\',\'f\',\'v\',\'h\', \'a\',\'e\',\'i\',\'o\',\'u\']\r\nsubalphabets =2\r\nconsonants = [\'p\',\'b\',\'m\',\'t\',\'d\',\'n\',\'k\',\'g\',\'s\',\'z\',\'f\',\'v\',\'h\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\']\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'output first CVC\',\'output first CVCV\',\'skip the C in CVCVC\',\'check whats after CVCVC\',\'return\',\'output final C in CVCVC\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output first CVC\',\\ID,1)\r\n(\'output first CVC\',\\consonants) = (\'output first CVCV\',\\ID,1)\r\n(\'output first CVC\',\\consonants) = (\'output first CVCV\',\\ID,1)\r\n(\'output first CVCV\',\\vowels) = (\'skip the C in CVCVC\',\\ID,1)\r\n(\'skip the C in CVCVC\',\\consonants) = (\'check whats after CVCVC\',\'\',1)\r\n(\'check whats after CVCVC\',\\vowels) = (\'return\',\'\',-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)\r\n(\'skip the C in CVCVC\',\'%\') = (\'return\',\'\',-1)\r\n(\'check whats after CVCVC\',\'%\') = (\'output final C in CVCVC\',\'\',-1)\r\n(\'output final C in CVCVC\',\\consonants) = (\'return\',\\ID,-1)\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CVCV reduplication in Tagalog with morpheme integrity\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first CVC\r\n5 output first CVCV\r\n6 skip the C in CVCVC\r\n7 check whats after CVCVC\r\n8 return\r\n9 output final C in CVCVC\r\n10 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,%,1,,1\r\n10,a,10,a,1\r\n10,b,10,b,1\r\n10,d,10,d,1\r\n10,e,10,e,1\r\n10,f,10,f,1\r\n10,g,10,g,1\r\n10,h,10,h,1\r\n10,i,10,i,1\r\n10,k,10,k,1\r\n10,m,10,m,1\r\n10,n,10,n,1\r\n10,o,10,o,1\r\n10,p,10,p,1\r\n10,s,10,s,1\r\n10,t,10,t,1\r\n10,u,10,u,1\r\n10,v,10,v,1\r\n10,z,10,z,1\r\n2,b,3,b,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,k,3,k,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,z,3,z,1\r\n3,a,4,a,1\r\n3,e,4,e,1\r\n3,i,4,i,1\r\n3,o,4,o,1\r\n3,u,4,u,1\r\n4,b,5,b,1\r\n4,d,5,d,1\r\n4,f,5,f,1\r\n4,g,5,g,1\r\n4,h,5,h,1\r\n4,k,5,k,1\r\n4,m,5,m,1\r\n4,n,5,n,1\r\n4,p,5,p,1\r\n4,s,5,s,1\r\n4,t,5,t,1\r\n4,v,5,v,1\r\n4,z,5,z,1\r\n5,a,6,a,1\r\n5,e,6,e,1\r\n5,i,6,i,1\r\n5,o,6,o,1\r\n5,u,6,u,1\r\n6,%,8,,-1\r\n6,b,7,,1\r\n6,d,7,,1\r\n6,f,7,,1\r\n6,g,7,,1\r\n6,h,7,,1\r\n6,k,7,,1\r\n6,m,7,,1\r\n6,n,7,,1\r\n6,p,7,,1\r\n6,s,7,,1\r\n6,t,7,,1\r\n6,v,7,,1\r\n6,z,7,,1\r\n7,%,9,,-1\r\n7,a,8,,-1\r\n7,e,8,,-1\r\n7,i,8,,-1\r\n7,o,8,,-1\r\n7,u,8,,-1\r\n8,#,10,~,1\r\n8,a,8,,-1\r\n8,b,8,,-1\r\n8,d,8,,-1\r\n8,e,8,,-1\r\n8,f,8,,-1\r\n8,g,8,,-1\r\n8,h,8,,-1\r\n8,i,8,,-1\r\n8,k,8,,-1\r\n8,m,8,,-1\r\n8,n,8,,-1\r\n8,o,8,,-1\r\n8,p,8,,-1\r\n8,s,8,,-1\r\n8,t,8,,-1\r\n8,u,8,,-1\r\n8,v,8,,-1\r\n8,z,8,,-1\r\n9,b,8,b,-1\r\n9,d,8,d,-1\r\n9,f,8,f,-1\r\n9,g,8,g,-1\r\n9,h,8,h,-1\r\n9,k,8,k,-1\r\n9,m,8,m,-1\r\n9,n,8,n,-1\r\n9,p,8,p,-1\r\n9,s,8,s,-1\r\n9,t,8,t,-1\r\n9,v,8,v,-1\r\n9,z,8,z,-1\r\n'),
('Initial CVCV - Warlpiri copy until CV(C)CV or CVV', '| Input | Output |\r\n|---------|---------------|\r\n| CVCV-X | CVCV-CVCV-X |\r\n| CVCCV-X | CVCCV-CVCCV-X |\r\n| CVVCV-X | CVV-CVVCV-X |', 'Input=#B-X$ where X is any string of symbols and B is CV( C )CV or CVV \r\nOutput=#B\\~B-X%\r\nIf the word starts with a CVCC*V string, then it is repeated. If it starts with CVV, then CVV is repeated.', 'Short vowels are represented as one V while long vowels as VV\r\nI assume the language does not allow dipthongs or vowel hiatus, otherwise the VV sequence is ambiguous\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first CVCCV or CV: once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n%states q3-q5 return to the beginning of input, output the base CVCX, and end\r\n\\node[state] (q5) [below of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q2] {$q_6$};\r\n\\node[state,accepting] (q7) [left of=q6] {$q_7$};\r\n\\node[state] (q8) [above of=q4] {$q_8$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n(q3) edge node[left] {(V,V,-1)} (q5)\r\n(q3) edge node {(C,C,+1)} (q4)\r\n(q4) edge node {(C,C,+1)} (q8)\r\n(q8) edge[bend left=90] node {(V,V,-1)} (q5)\r\n(q4) edge node {(V,V,-1)} (q5)\r\n(q5) edge [loop below] node {($\\Sigma$,$\\epsilon$,-1)} (q5)\r\n(q5) edge node[below] {(\\#,$\\sim$,+1)} (q6)\r\n(q6) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Initial CVCV reduplication -- retention of first syllable\'s coda and copying only CVV in Walpiri\r\n#If the word starts with CVCV, then the CVCV is repeated\r\n#If the word starts with CVCCV, then the CVCCV is repeated\r\n#If the word starts with CVV where the VV is a long vowel, then the CVV is repeated\r\n#The function is not defined for any input which doesnt start with CVCV or CVCCV\r\n#The function assumes that there are no VV sequences which aren\'t long vowels \r\n#-- otherwise we would use a multicharacter symbol to denote length\r\n#e.g. pataka --> pata~pataka, paftaka --> pafta~paftaka, paataka --> paa~paataka, ata --> undefined, spata--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates=[\'start\',\'output first C\',\'output first CV\',\'output first CVV or CVC\',\'output first CVCC or CVCV\',\'return\',\'output base\',\'end\',\'start CVCCV\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output first CVV or CVC\',\\ID,1)\r\n(\'output first CVV or CVC\',\\vowels) = (\'return\',\\ID,1)\r\n(\'output first CVV or CVC\',\\consonants) = (\'output first CVCC or CVCV\',\\ID,1)\r\n(\'output first CVCC or CVCV\',\\consonants) = (\'start CVCCV\',\\ID,1)\r\n(\'start CVCCV\',\\vowels) = (\'return\',\\ID,-1)\r\n(\'output first CVCC or CVCV\',\\vowels) = (\'return\',\\ID,-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base\',\'~\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial CVCV reduplication -- retention of first syllable\'s coda and copying only CVV in Walpiri\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first CVV or CVC\r\n5 output first CVCC or CVCV\r\n6 return\r\n7 output base\r\n8 start CVCCV\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,`a,6,`a,1\r\n4,`a:,6,`a:,1\r\n4,`e,6,`e,1\r\n4,`e:,6,`e:,1\r\n4,`i,6,`i,1\r\n4,`i:,6,`i:,1\r\n4,`o,6,`o,1\r\n4,`o:,6,`o:,1\r\n4,`u,6,`u,1\r\n4,`u:,6,`u:,1\r\n4,`y,6,`y,1\r\n4,`y:,6,`y:,1\r\n4,a,6,a,1\r\n4,a:,6,a:,1\r\n4,b,5,b,1\r\n4,c,5,c,1\r\n4,d,5,d,1\r\n4,e,6,e,1\r\n4,e:,6,e:,1\r\n4,f,5,f,1\r\n4,g,5,g,1\r\n4,h,5,h,1\r\n4,i,6,i,1\r\n4,i:,6,i:,1\r\n4,j,5,j,1\r\n4,k,5,k,1\r\n4,l,5,l,1\r\n4,m,5,m,1\r\n4,n,5,n,1\r\n4,o,6,o,1\r\n4,o:,6,o:,1\r\n4,p,5,p,1\r\n4,q,5,q,1\r\n4,r,5,r,1\r\n4,s,5,s,1\r\n4,t,5,t,1\r\n4,u,6,u,1\r\n4,u:,6,u:,1\r\n4,v,5,v,1\r\n4,w,5,w,1\r\n4,x,5,x,1\r\n4,y,6,y,1\r\n4,y:,6,y:,1\r\n4,z,5,z,1\r\n5,`a,6,`a,-1\r\n5,`a:,6,`a:,-1\r\n5,`e,6,`e,-1\r\n5,`e:,6,`e:,-1\r\n5,`i,6,`i,-1\r\n5,`i:,6,`i:,-1\r\n5,`o,6,`o,-1\r\n5,`o:,6,`o:,-1\r\n5,`u,6,`u,-1\r\n5,`u:,6,`u:,-1\r\n5,`y,6,`y,-1\r\n5,`y:,6,`y:,-1\r\n5,a,6,a,-1\r\n5,a:,6,a:,-1\r\n5,b,8,b,1\r\n5,c,8,c,1\r\n5,d,8,d,1\r\n5,e,6,e,-1\r\n5,e:,6,e:,-1\r\n5,f,8,f,1\r\n5,g,8,g,1\r\n5,h,8,h,1\r\n5,i,6,i,-1\r\n5,i:,6,i:,-1\r\n5,j,8,j,1\r\n5,k,8,k,1\r\n5,l,8,l,1\r\n5,m,8,m,1\r\n5,n,8,n,1\r\n5,o,6,o,-1\r\n5,o:,6,o:,-1\r\n5,p,8,p,1\r\n5,q,8,q,1\r\n5,r,8,r,1\r\n5,s,8,s,1\r\n5,t,8,t,1\r\n5,u,6,u,-1\r\n5,u:,6,u:,-1\r\n5,v,8,v,1\r\n5,w,8,w,1\r\n5,x,8,x,1\r\n5,y,6,y,-1\r\n5,y:,6,y:,-1\r\n5,z,8,z,1\r\n6,#,7,~,1\r\n6,+,6,,-1\r\n6,.,6,,-1\r\n6,`a,6,,-1\r\n6,`a:,6,,-1\r\n6,`e,6,,-1\r\n6,`e:,6,,-1\r\n6,`i,6,,-1\r\n6,`i:,6,,-1\r\n6,`o,6,,-1\r\n6,`o:,6,,-1\r\n6,`u,6,,-1\r\n6,`u:,6,,-1\r\n6,`y,6,,-1\r\n6,`y:,6,,-1\r\n6,a,6,,-1\r\n6,a:,6,,-1\r\n6,b,6,,-1\r\n6,c,6,,-1\r\n6,d,6,,-1\r\n6,e,6,,-1\r\n6,e:,6,,-1\r\n6,f,6,,-1\r\n6,g,6,,-1\r\n6,h,6,,-1\r\n6,i,6,,-1\r\n6,i:,6,,-1\r\n6,j,6,,-1\r\n6,k,6,,-1\r\n6,l,6,,-1\r\n6,m,6,,-1\r\n6,n,6,,-1\r\n6,o,6,,-1\r\n6,o:,6,,-1\r\n6,p,6,,-1\r\n6,q,6,,-1\r\n6,r,6,,-1\r\n6,s,6,,-1\r\n6,t,6,,-1\r\n6,u,6,,-1\r\n6,u:,6,,-1\r\n6,v,6,,-1\r\n6,w,6,,-1\r\n6,x,6,,-1\r\n6,y,6,,-1\r\n6,y:,6,,-1\r\n6,z,6,,-1\r\n7,%,1,,1\r\n7,+,7,+,1\r\n7,.,7,.,1\r\n7,`a,7,`a,1\r\n7,`a:,7,`a:,1\r\n7,`e,7,`e,1\r\n7,`e:,7,`e:,1\r\n7,`i,7,`i,1\r\n7,`i:,7,`i:,1\r\n7,`o,7,`o,1\r\n7,`o:,7,`o:,1\r\n7,`u,7,`u,1\r\n7,`u:,7,`u:,1\r\n7,`y,7,`y,1\r\n7,`y:,7,`y:,1\r\n7,a,7,a,1\r\n7,a:,7,a:,1\r\n7,b,7,b,1\r\n7,c,7,c,1\r\n7,d,7,d,1\r\n7,e,7,e,1\r\n7,e:,7,e:,1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,7,i,1\r\n7,i:,7,i:,1\r\n7,j,7,j,1\r\n7,k,7,k,1\r\n7,l,7,l,1\r\n7,m,7,m,1\r\n7,n,7,n,1\r\n7,o,7,o,1\r\n7,o:,7,o:,1\r\n7,p,7,p,1\r\n7,q,7,q,1\r\n7,r,7,r,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,7,u,1\r\n7,u:,7,u:,1\r\n7,v,7,v,1\r\n7,w,7,w,1\r\n7,x,7,x,1\r\n7,y,7,y,1\r\n7,y:,7,y:,1\r\n7,z,7,z,1\r\n8,`a,6,`a,-1\r\n8,`a:,6,`a:,-1\r\n8,`e,6,`e,-1\r\n8,`e:,6,`e:,-1\r\n8,`i,6,`i,-1\r\n8,`i:,6,`i:,-1\r\n8,`o,6,`o,-1\r\n8,`o:,6,`o:,-1\r\n8,`u,6,`u,-1\r\n8,`u:,6,`u:,-1\r\n8,`y,6,`y,-1\r\n8,`y:,6,`y:,-1\r\n8,a,6,a,-1\r\n8,a:,6,a:,-1\r\n8,e,6,e,-1\r\n8,e:,6,e:,-1\r\n8,i,6,i,-1\r\n8,i:,6,i:,-1\r\n8,o,6,o,-1\r\n8,o:,6,o:,-1\r\n8,u,6,u,-1\r\n8,u:,6,u:,-1\r\n8,y,6,y,-1\r\n8,y:,6,y:,-1\r\n'),
('Initial VC - General', '| Input | Output |\r\n|--------|-----------|\r\n| VC-X | VC-VC-X |\r\n| C-VC-X | C-VC-VC-X |', 'Input=#( C )VC-X$ where X is any string of symbols\r\nOutput=#( C )-VC\\~VC-X%\r\nThe word-initial VC string is repeated. If the word starts with a C, it is ignored in the reduplication. The reduplicant is thus inside the base', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first C*VCC* once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q7) [above of=q1] {$q_7$};\r\n%states q3-q5 return to the first vowel and outputs the reduplicant VCC*, continues with the base, and ends\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state,accepting] (q5) [right of=q4] {$q_5$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,#\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q7)\r\n(q7) edge node {(V,V,+1)} (q2)\r\n(q1) edge node {(V,V,+1)} (q2)\r\n(q2) edge node {(C,C$\\sim$,-1)} (q3)\r\n(q3) edge node {(V,V,+1)} (q4)\r\n(q4) edge [loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node[below] {(\\%,#\\epsilon$,+1)} (q5)\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Initial VC reduplication\r\n#If the word starts with CVC, then the VC is repeated\r\n#If the word starts with VC, then the VC is repeated\r\n#function is not defined for any input which doesnt start with CVC or VC\r\n#e.g. pata --> pat~at, ata --> at~ata, spata--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C or V\',\'output C*VC\',\'return\',\'continue output\',\'end\',\'skip initial C for copying\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first C or V\',\'\',1)\r\n(\'output first C or V\',\\consonants) = (\'skip initial C for copying\',\\ID,1)\r\n(\'skip initial C for copying\',\\vowels) = (\'output C*VC\',\\ID,1)\r\n(\'output first C or V\',\\vowels) = (\'output C*VC\',\\ID,1)\r\n(\'output C*VC\',\\consonants) = (\'return\',[\\ID \'~\'],-1)\r\n(\'return\', \\vowels) = (\'continue output\',\\ID,1)\r\n(\'continue output\', \\alphabet) = (\'continue output\',\\ID,1)\r\n(\'continue output\', \'%\') =(\'end\',\'\',1)\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial VC reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C or V\r\n3 output C*VC\r\n4 return\r\n5 continue output\r\n6 skip initial C for copying\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,`a,3,`a,1\r\n2,`a:,3,`a:,1\r\n2,`e,3,`e,1\r\n2,`e:,3,`e:,1\r\n2,`i,3,`i,1\r\n2,`i:,3,`i:,1\r\n2,`o,3,`o,1\r\n2,`o:,3,`o:,1\r\n2,`u,3,`u,1\r\n2,`u:,3,`u:,1\r\n2,`y,3,`y,1\r\n2,`y:,3,`y:,1\r\n2,a,3,a,1\r\n2,a:,3,a:,1\r\n2,b,6,b,1\r\n2,c,6,c,1\r\n2,d,6,d,1\r\n2,e,3,e,1\r\n2,e:,3,e:,1\r\n2,f,6,f,1\r\n2,g,6,g,1\r\n2,h,6,h,1\r\n2,i,3,i,1\r\n2,i:,3,i:,1\r\n2,j,6,j,1\r\n2,k,6,k,1\r\n2,l,6,l,1\r\n2,m,6,m,1\r\n2,n,6,n,1\r\n2,o,3,o,1\r\n2,o:,3,o:,1\r\n2,p,6,p,1\r\n2,q,6,q,1\r\n2,r,6,r,1\r\n2,s,6,s,1\r\n2,t,6,t,1\r\n2,u,3,u,1\r\n2,u:,3,u:,1\r\n2,v,6,v,1\r\n2,w,6,w,1\r\n2,x,6,x,1\r\n2,y,3,y,1\r\n2,y:,3,y:,1\r\n2,z,6,z,1\r\n3,b,4,b~,-1\r\n3,c,4,c~,-1\r\n3,d,4,d~,-1\r\n3,f,4,f~,-1\r\n3,g,4,g~,-1\r\n3,h,4,h~,-1\r\n3,j,4,j~,-1\r\n3,k,4,k~,-1\r\n3,l,4,l~,-1\r\n3,m,4,m~,-1\r\n3,n,4,n~,-1\r\n3,p,4,p~,-1\r\n3,q,4,q~,-1\r\n3,r,4,r~,-1\r\n3,s,4,s~,-1\r\n3,t,4,t~,-1\r\n3,v,4,v~,-1\r\n3,w,4,w~,-1\r\n3,x,4,x~,-1\r\n3,z,4,z~,-1\r\n4,`a,5,`a,1\r\n4,`a:,5,`a:,1\r\n4,`e,5,`e,1\r\n4,`e:,5,`e:,1\r\n4,`i,5,`i,1\r\n4,`i:,5,`i:,1\r\n4,`o,5,`o,1\r\n4,`o:,5,`o:,1\r\n4,`u,5,`u,1\r\n4,`u:,5,`u:,1\r\n4,`y,5,`y,1\r\n4,`y:,5,`y:,1\r\n4,a,5,a,1\r\n4,a:,5,a:,1\r\n4,e,5,e,1\r\n4,e:,5,e:,1\r\n4,i,5,i,1\r\n4,i:,5,i:,1\r\n4,o,5,o,1\r\n4,o:,5,o:,1\r\n4,u,5,u,1\r\n4,u:,5,u:,1\r\n4,y,5,y,1\r\n4,y:,5,y:,1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n6,`a,3,`a,1\r\n6,`a:,3,`a:,1\r\n6,`e,3,`e,1\r\n6,`e:,3,`e:,1\r\n6,`i,3,`i,1\r\n6,`i:,3,`i:,1\r\n6,`o,3,`o,1\r\n6,`o:,3,`o:,1\r\n6,`u,3,`u,1\r\n6,`u:,3,`u:,1\r\n6,`y,3,`y,1\r\n6,`y:,3,`y:,1\r\n6,a,3,a,1\r\n6,a:,3,a:,1\r\n6,e,3,e,1\r\n6,e:,3,e:,1\r\n6,i,3,i,1\r\n6,i:,3,i:,1\r\n6,o,3,o,1\r\n6,o:,3,o:,1\r\n6,u,3,u,1\r\n6,u:,3,u:,1\r\n6,y,3,y,1\r\n6,y:,3,y:,1\r\n'),
('Initial VC - VCC* copied', '| Input | Output |\r\n|---------|-------------|\r\n| VC-B | VC-VC-B |\r\n| VCC-B | VCC-VCC-B |\r\n| C-VC-B | C-VC-VC-B |\r\n| C-VCC-B | C-VCC-VCC-B |', 'Input=#( C )VCC\\*-X$ where X is any string of symbols\r\nOutput=#( C )-VCC\\*\\~VCC\\*-X%\r\nThe word-initial VCC\\* string is repeated. If the word starts with a C, it is ignored in the reduplication. The reduplicant is thus inside the base', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first C*VCC* once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q7) [above of=q1] {$q_7$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q3-q5 return to the first vowel and outputs the reduplicant VCC*, continues with the base, and ends\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [below of=q1] {$q_5$};\r\n\\node[state,accepting] (q6) [right of=q5] {$q_6$};\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q7)\r\n(q7) edge node {(V,V,+1)} (q2)\r\n(q1) edge node {(V,V,+1)} (q2)\r\n(q2) edge node {(C,C,+1)} (q3)\r\n(q3) edge[loop above] node {(C,C,+1)} (q3)\r\n(q3) edge node {(\\{V,\\%\\},$\\epsilon$,-1)} (q4)\r\n(q4) edge [loop right] node {(C,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(V,$\\sim$V,+1)} (q5)\r\n(q5) edge [loop below] node[] {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node[below] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Initial VCC* reduplication\r\n#If the word starts with CVCC*, then the VCC* is repeated\r\n#If the word starts with VCC*, then the VCC* is repeated\r\n#function is not defined for any input which doesnt start with CVCC* or VCC*\r\n#e.g. pata --> pat~ata, pafta --> paft~afta, ata --> at~ata, spata--> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output initial C or V\',\'output VC\',\'output VCC*\',\'return\',\'continue output\',\'end\',\'output initial CV\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output initial C or V\',\'\',1)\r\n(\'output initial C or V\',\\consonants) = (\'output initial CV\',\\ID,1)\r\n(\'output initial CV\',\\vowels) = (\'output VC\',\\ID,1)\r\n(\'output initial C or V\',\\vowels) = (\'output VC\',\\ID,1)\r\n(\'output VC\',\\consonants) = (\'output VCC*\',\\ID,1)\r\n(\'output VCC*\',\\consonants) = (\'output VCC*\',\\ID,1)\r\n(\'output VCC*\',\\vowels) = (\'return\',\'\',-1)\r\n(\'output VCC*\',\'%\') = (\'return\',\'\',-1)\r\n(\'return\',\\consonants) = (\'return\',\'\',-1)\r\n(\'return\',\\vowels) = (\'continue output\',[\'~\' \\ID ],1)\r\n(\'continue output\',\\alphabet) = (\'continue output\',\\ID,1)\r\n(\'continue output\',\'%\') = (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Initial VCC* reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output initial C or V\r\n3 output VC\r\n4 output VCC*\r\n5 return\r\n6 continue output\r\n7 output initial CV\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,`a,3,`a,1\r\n2,`a:,3,`a:,1\r\n2,`e,3,`e,1\r\n2,`e:,3,`e:,1\r\n2,`i,3,`i,1\r\n2,`i:,3,`i:,1\r\n2,`o,3,`o,1\r\n2,`o:,3,`o:,1\r\n2,`u,3,`u,1\r\n2,`u:,3,`u:,1\r\n2,`y,3,`y,1\r\n2,`y:,3,`y:,1\r\n2,a,3,a,1\r\n2,a:,3,a:,1\r\n2,b,7,b,1\r\n2,c,7,c,1\r\n2,d,7,d,1\r\n2,e,3,e,1\r\n2,e:,3,e:,1\r\n2,f,7,f,1\r\n2,g,7,g,1\r\n2,h,7,h,1\r\n2,i,3,i,1\r\n2,i:,3,i:,1\r\n2,j,7,j,1\r\n2,k,7,k,1\r\n2,l,7,l,1\r\n2,m,7,m,1\r\n2,n,7,n,1\r\n2,o,3,o,1\r\n2,o:,3,o:,1\r\n2,p,7,p,1\r\n2,q,7,q,1\r\n2,r,7,r,1\r\n2,s,7,s,1\r\n2,t,7,t,1\r\n2,u,3,u,1\r\n2,u:,3,u:,1\r\n2,v,7,v,1\r\n2,w,7,w,1\r\n2,x,7,x,1\r\n2,y,3,y,1\r\n2,y:,3,y:,1\r\n2,z,7,z,1\r\n3,b,4,b,1\r\n3,c,4,c,1\r\n3,d,4,d,1\r\n3,f,4,f,1\r\n3,g,4,g,1\r\n3,h,4,h,1\r\n3,j,4,j,1\r\n3,k,4,k,1\r\n3,l,4,l,1\r\n3,m,4,m,1\r\n3,n,4,n,1\r\n3,p,4,p,1\r\n3,q,4,q,1\r\n3,r,4,r,1\r\n3,s,4,s,1\r\n3,t,4,t,1\r\n3,v,4,v,1\r\n3,w,4,w,1\r\n3,x,4,x,1\r\n3,z,4,z,1\r\n4,%,5,,-1\r\n4,`a,5,,-1\r\n4,`a:,5,,-1\r\n4,`e,5,,-1\r\n4,`e:,5,,-1\r\n4,`i,5,,-1\r\n4,`i:,5,,-1\r\n4,`o,5,,-1\r\n4,`o:,5,,-1\r\n4,`u,5,,-1\r\n4,`u:,5,,-1\r\n4,`y,5,,-1\r\n4,`y:,5,,-1\r\n4,a,5,,-1\r\n4,a:,5,,-1\r\n4,b,4,b,1\r\n4,c,4,c,1\r\n4,d,4,d,1\r\n4,e,5,,-1\r\n4,e:,5,,-1\r\n4,f,4,f,1\r\n4,g,4,g,1\r\n4,h,4,h,1\r\n4,i,5,,-1\r\n4,i:,5,,-1\r\n4,j,4,j,1\r\n4,k,4,k,1\r\n4,l,4,l,1\r\n4,m,4,m,1\r\n4,n,4,n,1\r\n4,o,5,,-1\r\n4,o:,5,,-1\r\n4,p,4,p,1\r\n4,q,4,q,1\r\n4,r,4,r,1\r\n4,s,4,s,1\r\n4,t,4,t,1\r\n4,u,5,,-1\r\n4,u:,5,,-1\r\n4,v,4,v,1\r\n4,w,4,w,1\r\n4,x,4,x,1\r\n4,y,5,,-1\r\n4,y:,5,,-1\r\n4,z,4,z,1\r\n5,`a,6,~`a,1\r\n5,`a:,6,~`a:,1\r\n5,`e,6,~`e,1\r\n5,`e:,6,~`e:,1\r\n5,`i,6,~`i,1\r\n5,`i:,6,~`i:,1\r\n5,`o,6,~`o,1\r\n5,`o:,6,~`o:,1\r\n5,`u,6,~`u,1\r\n5,`u:,6,~`u:,1\r\n5,`y,6,~`y,1\r\n5,`y:,6,~`y:,1\r\n5,a,6,~a,1\r\n5,a:,6,~a:,1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,6,~e,1\r\n5,e:,6,~e:,1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,6,~i,1\r\n5,i:,6,~i:,1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,6,~o,1\r\n5,o:,6,~o:,1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,6,~u,1\r\n5,u:,6,~u:,1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,6,~y,1\r\n5,y:,6,~y:,1\r\n5,z,5,,-1\r\n6,%,1,,1\r\n6,+,6,+,1\r\n6,.,6,.,1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n7,`a,3,`a,1\r\n7,`a:,3,`a:,1\r\n7,`e,3,`e,1\r\n7,`e:,3,`e:,1\r\n7,`i,3,`i,1\r\n7,`i:,3,`i:,1\r\n7,`o,3,`o,1\r\n7,`o:,3,`o:,1\r\n7,`u,3,`u,1\r\n7,`u:,3,`u:,1\r\n7,`y,3,`y,1\r\n7,`y:,3,`y:,1\r\n7,a,3,a,1\r\n7,a:,3,a:,1\r\n7,e,3,e,1\r\n7,e:,3,e:,1\r\n7,i,3,i,1\r\n7,i:,3,i:,1\r\n7,o,3,o,1\r\n7,o:,3,o:,1\r\n7,u,3,u,1\r\n7,u:,3,u:,1\r\n7,y,3,y,1\r\n7,y:,3,y:,1\r\n');
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('Initial VCV - Washo + Inside Base + Coalescence', '| Input | Intermediate | Output |\r\n|-------|--------------|------------|\r\n| dámal | d-ama-ámal | dámal |\r\n| má:gu | m-agu-águ | m-ago:-go |\r\n| báli? | b-ali-áli? | b-al-áli? |\r\n| dúwe? | d-uwe-úwe? | d-uw-éwe? |\r\n| ícis | ici-ícis | c-ícis |\r\n| íleg | ile-íleg | l-éleg |', 'Input=#( C )-VCVX$\r\nOutput=#( C )~VCV~VCVX\r\nThe initial VCV is copied. The first copy is the reduplicant. The first V of the reduplicant is shortened and unstressed. The two V\'s across the \\~ boundary are coalescend according to the following patterns:\r\n1) [+round]a --> o, vowel harmony spreads o onto following vowels\r\n2) [-round]a --> a\r\n3) V[not a]-->V\r\n4) VV are identical -> V\r\nlength and stress are preserved in vowel coalescence\r\n\r\nUnstressed word-initial vowels are deleted thus in VCV\\~VCVX, the initial V will delete because it is unstressed by the reduplicant\'s TETU effects\r\n\r\nFor simplicity I ignore the rare cases of monosyllabic roots', 'One FST handles the reduplication\r\nThe other handles deletion and coalescence. My coalescence FST is not very elegant because of how length/stress distinctions are unclearly handled\r\n\r\n \\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first C-VCV once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n%states q3-q5 return to the beginning of input, output the base VCVX, and end\r\n\\node[state] (q4) [right of=q2] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [below of= q0] {$q_6$};\r\n\\node[state] (q7) [right of=q6] {$q_7$};\r\n\\node[state] (q8) [right of=q7] {$q_8$};\r\n\\node[state,accepting] (q9) [right of=q8] {$q_9$};\r\n\r\n\r\n\\path\r\n\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,\\v{V},+1)} (q4)\r\n(q4) edge node {(C,C,+1)} (q5)\r\n(q5) edge node {(V,V,-1)} (q6)\r\n\r\n(q6) edge [loop left] node {($\\Sigma$,$\\epsilon$,-1)} (q6)\r\n(q6) edge node [below]{(\\#,$\\sim$,+1)} (q7)\r\n(q7) edge node[below] {(C,$\\epsilon$,+1)} (q8)\r\n(q7) edge [loop below=90] node {(V,V,+1)} (q8)\r\n(q8) edge [loop below] node {($\\Sigma$,$\\Sigma$,+1)} (q8)\r\n(q8) edge node[below] {(\\%,$\\epsilon$,+1)} (q9)\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-3 outputs the first C-VCV once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [below of=q0] {$q_5$};\r\n\\node[state] (q6) [right of= q5] {$q_6$};\r\n\\node[state] (q7) [right of=q6] {$q_7$};\r\n\\node[state] (q8) [right of=q7] {$q_8$};\r\n\\node[state] (q9) [below of=q6] {$q_9$};\r\n\r\n\\node[state] (q11) [below of=q9] {$q_{11}$};\r\n\\node[state] (q12) [right of=q11] {$q_{12}$};\r\n\\node[state] (q13) [below of=q11] {$q_{13}$};\r\n\\node[state] (q14) [below left =of q13] {$q_{14}$};\r\n\\node[state] (q15) [below left=of q14] {$q_{15}$};\r\n\\node[state] (q10) [below right = of q13] {$q_{10}$};\r\n\\node[state,accepting] (qf) [right of=q10] {$q_f$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q1) edge node[below] {(\\v{V},$\\epsilon$,+1)} (q2)\r\n(q2) edge[loop above] node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,$\\epsilon$,+1)} (q3)\r\n(q3) edge node {(\\{\\#,C\\},$\\epsilon$,-1)} (q4)\r\n(q4) edge[bend right=100] node {(V,V,+1)} (q2)\r\n\r\n(q3) edge node {(V,$\\epsilon$,0)} (q5)\r\n\r\n(q5) edge node {(a,$\\epsilon$,-1)} (q6)\r\n(q6) edge node {(\\{o,u\\},$\\epsilon$,+1)} (q7)\r\n(q7) edge node {(a,o,+1)} (q8)\r\n(q8) edge[loop above] node {(C,C,+1)} (q8)\r\n(q8) edge[loop right] node {(V,o,+1)} (q8)\r\n(q8) edge[bend left= 60] node {(\\%,$\\epsilon$,+1)} (qf)\r\n\r\n(q6) edge node[left] {(\\{i,e,a\\},$\\epsilon$,+1)} (q9)\r\n(q9) edge node {(a,a,+1)} (q8)\r\n(q10) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q10)\r\n(q10) edge node[below] {(\\%,$\\epsilon$,+1)} (qf)\r\n\r\n(q5) edge node[left] {(\\{V-a\\},$\\epsilon$,-1)} (q11)\r\n\r\n(q11) edge node {(o,$\\epsilon$,+1)} (q12)\r\n(q12) edge[bend left=90] node[left] {(o,o,+1)} (q10)\r\n(q12) edge[bend left=90] node {(\\{$\\Sigma$-o\\},o,+1)} (q10)\r\n(q11) edge node {(u,$\\epsilon$,+1)} (q13)\r\n(q13) edge node[left] {(u,u,+1)} (q10)\r\n(q13) edge node[above] {(\\{$\\Sigma$-u\\},u,+1)} (q10)\r\n(q11) edge node[left] {(e,$\\epsilon$,+1)} (q14)\r\n(q14) edge node {(e,e,+1)} (q10)\r\n(q14) edge[bend right=90] node {(\\{$\\Sigma$-e\\},e,+1)} (q10)\r\n(q11) edge [bend right=90] node {(i,$\\epsilon$,+1)} (q15)\r\n(q15) edge [bend right=90] node[below] {(i,i,+1)} (q10)\r\n(q15) edge [bend right=90] node {(\\{$\\Sigma$-i\\},i,+1)} (q10)\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 1, '#Total reduplication with initial C nasal coalescence in Indonesian\r\n#In Washo, the leftmost VCV is repeated\r\n#The first V is reduced to a short unstressed vowel if it was long or stressed\r\n#At the juncture of the two copies of VCV: VCV~VCV, the medial VV hiatus is resolved through various processes\r\n#I don\'t model those hiatus resolution processes here because that requires a separate 1-way FST that is used after copying\r\n#The function is not defined for an input which starts with anything other than CVCV or VCV\r\n#e.g. pata--> mə+mata~mata, tata --> mə+nata~nata, kata --> mə+ŋata~ŋata, ata --> məŋ+ata~ata, hata --> məŋ+hata~hata\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'ŋ\',\'h\',\'f\',\'v\',\'s\',\'z\', \'a\',\'e\',\'i\',\'o\',\'u\',\'a:\',\'e:\',\'i:\',\'o:\',\'u:\',\'`a\',\'`e\',\'`i\',\'`o\',\'`u\',\'`a:\',\'`e:\',\'`i:\',\'`o:\',\'`u:\']\r\nsubalphabets = 2\r\nconsonants = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'ŋ\',\'h\',\'f\',\'v\',\'s\',\'z\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\',\'a:\',\'e:\',\'i:\',\'o:\',\'u:\',\'`a\',\'`e\',\'`i\',\'`o\',\'`u\',\'`a:\',\'`e:\',\'`i:\',\'`o:\',\'`u:\']\r\n\r\nfunctions = 1\r\nreduce = { (\'a\',\'a\'),(\'e\',\'e\'),(\'i\',\'i\'),(\'o\',\'o\'),(\'u\',\'u\'),(\'`a\',\'a\'),(\'`e\',\'e\'),(\'`i\',\'i\'),(\'`o\',\'o\'),(\'`u\',\'u\'),(\'`a:\',\'a\'),(\'`e:\',\'e\'),(\'`i:\',\'i\'),(\'`o:\',\'o\'),(\'`u:\',\'u\'),(\'a:\',\'a\'),(\'e:\',\'e\'),(\'i:\',\'i\'),(\'o:\',\'o\'),(\'u:\',\'u\') }\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'output first CVC\',\'output first CVCV\',\'return\',\'output base but first skip C\',\'output base\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output first CVC\',\\reduce,1)\r\n(\'output first CVC\',\\consonants) = (\'output first CVCV\',\\ID,1)\r\n(\'output first CVCV\',\\vowels) = (\'return\',\\ID,-1)\r\n(\'return\', \\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output base but first skip C\',\'~\',1)\r\n(\'output base but first skip C\',\\consonants) = (\'output base\',\'\',1)\r\n(\'output base but first skip C\',\\vowels) = (\'output base\',\\ID,1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'end\',\'\',1)\r\n\r\n\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Total reduplication with initial C nasal coalescence in Indonesian\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output first CVC\r\n5 output first CVCV\r\n6 return\r\n7 output base but first skip C\r\n8 output base\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,b,3,b,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,k,3,k,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,z,3,z,1\r\n2,ŋ,3,ŋ,1\r\n3,`a,4,a,1\r\n3,`a:,4,a,1\r\n3,`e,4,e,1\r\n3,`e:,4,e,1\r\n3,`i,4,i,1\r\n3,`i:,4,i,1\r\n3,`o,4,o,1\r\n3,`o:,4,o,1\r\n3,`u,4,u,1\r\n3,`u:,4,u,1\r\n3,a,4,a,1\r\n3,a:,4,a,1\r\n3,e,4,e,1\r\n3,e:,4,e,1\r\n3,i,4,i,1\r\n3,i:,4,i,1\r\n3,o,4,o,1\r\n3,o:,4,o,1\r\n3,u,4,u,1\r\n3,u:,4,u,1\r\n4,b,5,b,1\r\n4,d,5,d,1\r\n4,f,5,f,1\r\n4,g,5,g,1\r\n4,h,5,h,1\r\n4,k,5,k,1\r\n4,m,5,m,1\r\n4,n,5,n,1\r\n4,p,5,p,1\r\n4,s,5,s,1\r\n4,t,5,t,1\r\n4,v,5,v,1\r\n4,z,5,z,1\r\n4,ŋ,5,ŋ,1\r\n5,`a,6,`a,-1\r\n5,`a:,6,`a:,-1\r\n5,`e,6,`e,-1\r\n5,`e:,6,`e:,-1\r\n5,`i,6,`i,-1\r\n5,`i:,6,`i:,-1\r\n5,`o,6,`o,-1\r\n5,`o:,6,`o:,-1\r\n5,`u,6,`u,-1\r\n5,`u:,6,`u:,-1\r\n5,a,6,a,-1\r\n5,a:,6,a:,-1\r\n5,e,6,e,-1\r\n5,e:,6,e:,-1\r\n5,i,6,i,-1\r\n5,i:,6,i:,-1\r\n5,o,6,o,-1\r\n5,o:,6,o:,-1\r\n5,u,6,u,-1\r\n5,u:,6,u:,-1\r\n6,#,7,~,1\r\n6,`a,6,,-1\r\n6,`a:,6,,-1\r\n6,`e,6,,-1\r\n6,`e:,6,,-1\r\n6,`i,6,,-1\r\n6,`i:,6,,-1\r\n6,`o,6,,-1\r\n6,`o:,6,,-1\r\n6,`u,6,,-1\r\n6,`u:,6,,-1\r\n6,a,6,,-1\r\n6,a:,6,,-1\r\n6,b,6,,-1\r\n6,d,6,,-1\r\n6,e,6,,-1\r\n6,e:,6,,-1\r\n6,f,6,,-1\r\n6,g,6,,-1\r\n6,h,6,,-1\r\n6,i,6,,-1\r\n6,i:,6,,-1\r\n6,k,6,,-1\r\n6,m,6,,-1\r\n6,n,6,,-1\r\n6,o,6,,-1\r\n6,o:,6,,-1\r\n6,p,6,,-1\r\n6,s,6,,-1\r\n6,t,6,,-1\r\n6,u,6,,-1\r\n6,u:,6,,-1\r\n6,v,6,,-1\r\n6,z,6,,-1\r\n6,ŋ,6,,-1\r\n7,`a,8,`a,1\r\n7,`a:,8,`a:,1\r\n7,`e,8,`e,1\r\n7,`e:,8,`e:,1\r\n7,`i,8,`i,1\r\n7,`i:,8,`i:,1\r\n7,`o,8,`o,1\r\n7,`o:,8,`o:,1\r\n7,`u,8,`u,1\r\n7,`u:,8,`u:,1\r\n7,a,8,a,1\r\n7,a:,8,a:,1\r\n7,b,8,,1\r\n7,d,8,,1\r\n7,e,8,e,1\r\n7,e:,8,e:,1\r\n7,f,8,,1\r\n7,g,8,,1\r\n7,h,8,,1\r\n7,i,8,i,1\r\n7,i:,8,i:,1\r\n7,k,8,,1\r\n7,m,8,,1\r\n7,n,8,,1\r\n7,o,8,o,1\r\n7,o:,8,o:,1\r\n7,p,8,,1\r\n7,s,8,,1\r\n7,t,8,,1\r\n7,u,8,u,1\r\n7,u:,8,u:,1\r\n7,v,8,,1\r\n7,z,8,,1\r\n7,ŋ,8,,1\r\n8,%,1,,1\r\n8,`a,8,`a,1\r\n8,`a:,8,`a:,1\r\n8,`e,8,`e,1\r\n8,`e:,8,`e:,1\r\n8,`i,8,`i,1\r\n8,`i:,8,`i:,1\r\n8,`o,8,`o,1\r\n8,`o:,8,`o:,1\r\n8,`u,8,`u,1\r\n8,`u:,8,`u:,1\r\n8,a,8,a,1\r\n8,a:,8,a:,1\r\n8,b,8,b,1\r\n8,d,8,d,1\r\n8,e,8,e,1\r\n8,e:,8,e:,1\r\n8,f,8,f,1\r\n8,g,8,g,1\r\n8,h,8,h,1\r\n8,i,8,i,1\r\n8,i:,8,i:,1\r\n8,k,8,k,1\r\n8,m,8,m,1\r\n8,n,8,n,1\r\n8,o,8,o,1\r\n8,o:,8,o:,1\r\n8,p,8,p,1\r\n8,s,8,s,1\r\n8,t,8,t,1\r\n8,u,8,u,1\r\n8,u:,8,u:,1\r\n8,v,8,v,1\r\n8,z,8,z,1\r\n8,ŋ,8,ŋ,1\r\n'),
('Internal - RED before final foot Nakanai', '| Input | Output |\r\n|--------------------|-------------------------------------|\r\n| X-C~1~V~1~C~2~V~2~ | X-C~1~V~1~C~2~V~2~-C~1~V~1~C~2~V~2~ |\r\n| X-C~1~V~1~C~2~V~2~ | X-C~1~V~1~-C~1~V~1~C~2~V~2~ |\r\n| X-C~1~V~1~V~2~ | X-C~1~V~1~-C~1~V~1~V~2~ |\r\n| X-C~1~V~1~C~2~V~2~ | X-C~1~V~1~V~2~-C~1~V~1~C~2~V~2~ |\r\n| X-C~1~V~1~C~2~V~2~ | X-C~1~V~2~C~1~V~1~C~2~V~2~ |\r\n| X-C~1~V~1~V~2~ | X-C~1~V~2~-C~1~V~1~V~2~ |\r\n| X-V~1~C~2~V~2~ | X-V~1~C~2~-V~1~C~2~V~2~ |', 'Stress is assigned on penultimate syllable thus words end in a trochaic metrical foot. Onsetless syllables are okay, thus vowel sequences are heterosyllabic\r\nRED is infixed to before the metrical foot (C~1~V~1~C~2~2V~2~, C~1~V~1~V~2~). In some cases RED surfaces as C~1~V~1~C~2~V~2~, C~1~V~1~, C~1~V~2~, or C~1~V~1~V~2~\r\nIt is unclear if the foot can to be CVV for all the above RED allomorphs\r\n\r\nIf the metrical foot starts with a onsetless syllable (V~1~C~2~V~2~), then only V~1~C~2~ is copied\r\n\r\nThe source won\'t specify the distribution of the various RED allomorphs, and it implies they are the same morpheme. I\'m forced to nondeterminism\r\n', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\n semithick]\r\n \\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n \\node[initial,state] (q0) {$q_0$};\r\n \\node[state] (q1) [right of=q0] {$q_1$};\r\n\r\n \\node[state] (qVC) [above of= q1] {$q_{VC}$}; \r\n \\node[state] (q10) [right of=qVC] {$q_{10}$};\r\n \r\n \\node[state] (qCVFINAL) [above left of= qVC] {$q_{CVf}$}; \r\n \\node[state] (q11) [right of=qCVFINAL] {$q_{11}$};\r\n \\node[state] (q12) [right of=q11] {$q_{12}$};\r\n \\node[state] (q13) [right of=q12] {$q_{13}$};\r\n\r\n \r\n \\node[state] (qCVCV) [above left of=qCVFINAL] {$q_{CVCV}$};\r\n \\node[state] (q2) [right of=qCVCV] {$q_2$};\r\n \\node[state] (q3) [right of=q2] {$q_3$};\r\n \\node[state] (q4) [right of=q3] {$q_4$};\r\n \\node[state] (q5) [right of=q4] {$q_5$};\r\n \\node[state] (qRETURN) [below right =of q10] {$q_{ret}$};\r\n \\node[state] (qBASE) [right of=qRETURN] {$q_{B}$};\r\n \\node[state,accepting] (qF) [right of=qBASE] {$q_{F}$};\r\n \r\n \\node[state] (qCV) [below of=q1] {$q_{CV}$}; \r\n \\node[state] (q6) [right of=qCV] {$q_{6}$}; \r\n \r\n \\node[state] (qCVV) [below left =of qCV] {$q_{CVV}$}; \r\n \\node[state] (q7) [right of=qCVV] {$q_{7}$}; \r\n \\node[state] (q8) [below right = of q6] {$q_{8}$}; \r\n \\node[state] (q9) [right of=q8] {$q_{9}$}; \r\n\r\n\r\n \\path\r\n (q0) edge node {(\\#,\\#,+1)} (q1)\r\n (q1) edge [loop right] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n\r\n (q1) edge node {([_F,$\\epsilon$,+1)} (qCVCV)\r\n (qCVCV) edge node {(C,C,+1)} (q2)\r\n (q2) edge node {(V,V,+1)} (q3)\r\n (q3) edge node {(C,C,+1)} (q4)\r\n (q4) edge node {(V,V,+1)} (q5)\r\n (q5) edge node {(\\%,$\\epsilon$,-1)} (qRETURN)\r\n\r\n (qRETURN) edge [loop left] node[] {($\\Sigma$,$\\epsilon$,-1)} (qRETURN)\r\n (qRETURN) edge node {([_F,$\\epsilon$,+1)} (qBASE)\r\n (qBASE) edge [loop below] node[] {($\\Sigma$,*+-1)} (qBASE)\r\n (qBASE) edge node {(\\%,\\%,+1)} (qF)\r\n \r\n (q1) edge node[right] {([_F,$\\epsilon$,+1)} (qCV)\r\n(qCV) edge node[below] {(C,C,+1)} (q6)\r\n(q6) edge node[right] {(V,V,-1)} (qRETURN)\r\n\r\n (q1) edge node[left] {([_F,$\\epsilon$,+1)} (qCVV)\r\n (qCVV) edge node {(C,C,+1)} (q7)\r\n(q7) edge node {(V,V,+1)} (q8)\r\n(q8) edge node {(C,$\\epsilon$,+1)} (q9)\r\n(q8) edge node[left] {(V,V,-1)} (qRETURN)\r\n(q9) edge node[right] {(V,V,-1)} (qRETURN)\r\n\r\n (q1) edge node[right] {([_F,$\\epsilon$,+1)} (qVC)\r\n(qVC) edge node {(V,V,+1)} (q10)\r\n(q10) edge node[left] {(C,C,-1)} (qRETURN)\r\n\r\n (q1) edge node[left] {([_F,$\\epsilon$,+1)} (qCVFINAL)\r\n(qCVFINAL) edge node[below] {(C,C,+1)} (q11)\r\n(q11) edge node {(V,$\\epsilon$,+1)} (q12)\r\n(q12) edge node {(C,$\\epsilon$,+1)} (q13)\r\n(q13) edge node[left] {(V,V,-1)} (qRETURN)\r\n ;\r\n\\end{tikzpicture}\r\n', 1, 'I can\'t implement a non-deterministic 2-way FST yet', ''),
('Internal - Stressed CV Syllable + onsetless okay', '| Input | Output |\r\n|--------|-----------|\r\n| X-Cá-Y | X-Cá-Ca-Y |\r\n| á-Y | á-a-Y |\r\n| XV-á-Y | XV-á-Y |', 'Input=#X-( C )V\'-Y% where X and Y are strings of segments, and V\' is stressed\r\nOutput=#X-( C )V\'-( C )V-Y%\r\nThe output has the stressed ( C )V be repeated. The second copy of the CV doesn\'t carry stress', 'I represent unstressed vowels with a circumflex, and stressed vowels with an acute symbol.\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base until the stressed vowel\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-q-4 output C\\\'V again, continue base, and end\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [below of=q1] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state,accepting] (q5) [right of=q4] {$q_5$};\r\n\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge [loop above] node {(\\{\\v{V},C\\},\\{\\v{V},C\\},+1)} (q1)\r\n(q1) edge node {(\\\'V,\\\'V$\\sim$,-1)} (q2)\r\n(q2) edge node {(C,C,+1)} (q3)\r\n(q2) edge[bend left=90] node {(\\{#,V},$\\epsilon$,+1)} (q3)\r\n(q3) edge node {(\\\'{V},\\v{V},+1)} (q4)\r\n\r\n(q4) edge[loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node {(\\%,$\\epsilon$,+1)} (q5)\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 1, '#Stressed CV reduplication\r\n#If the word contains a stressed CV` syllable, then the syllable is repeated\r\n#and the second copy doesnt have stress\r\n#If the word has a stressed V` syllable without a C before it, only the V is repeated\r\n#and the second copy is not stressed\r\n#The function is not defined for any input which doesnt contain a stressed V` or CV` syllable\r\n#I represent stressed vowels as multicharacter symbols V`\r\n#e.g. p a t `a k a --> pat`a~taka, o`aka --> o`a~aka, pata--> undefined\r\n#Because I use multicharacter symbols, the input given to the 2-way FST needs whitespace between segments\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 1\r\n\r\ndestress = { (\'`a\',\'a\'),(\'`e\',\'e\'),(\'`i\',\'i\'),(\'`o\',\'o\'),(\'`u\',\'u\'),(\'`y\',\'y\'), (\'`a:\',\'a:\'),(\'`e:\',\'e:\'),(\'`i:\',\'i:\'),(\'`o:\',\'o:\'),(\'`u:\',\'u:\'),(\'`y:\',\'y:\')}\r\n\r\n#states type = string\r\nstates =[\'start\',\'output base\',\'output stressed vowel and return\',\'continue onset\',\'continue output\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output base\',\'\',1)\r\n(\'output base\',\\consonants) = (\'output base\',\\ID,1)\r\n(\'output base\',\\unstressed_vowels) = (\'output base\',\\ID,1)\r\n(\'output base\',\\stressed_vowels) = (\'output stressed vowel and return\',[\\ID \'~\'],-1)\r\n(\'output stressed vowel and return\',\\consonants) = (\'continue onset\',\\ID,1)\r\n(\'output stressed vowel and return\',\'#\')=(\'continue onset\',\'\',1)\r\n(\'output stressed vowel and return\',\\vowels)=(\'continue onset\',\'\',1)\r\n(\'continue onset\',\\stressed_vowels) = (\'continue output\',\\destress,1)\r\n(\'continue output\',\\alphabet) = (\'continue output\',\\ID,1)\r\n(\'continue output\',\'%\') = (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Stressed CV reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output base\r\n3 output stressed vowel and return\r\n4 continue onset\r\n5 continue output\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,`a,3,`a~,-1\r\n2,`a:,3,`a:~,-1\r\n2,`e,3,`e~,-1\r\n2,`e:,3,`e:~,-1\r\n2,`i,3,`i~,-1\r\n2,`i:,3,`i:~,-1\r\n2,`o,3,`o~,-1\r\n2,`o:,3,`o:~,-1\r\n2,`u,3,`u~,-1\r\n2,`u:,3,`u:~,-1\r\n2,`y,3,`y~,-1\r\n2,`y:,3,`y:~,-1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,#,4,,1\r\n3,`a,4,,1\r\n3,`a:,4,,1\r\n3,`e,4,,1\r\n3,`e:,4,,1\r\n3,`i,4,,1\r\n3,`i:,4,,1\r\n3,`o,4,,1\r\n3,`o:,4,,1\r\n3,`u,4,,1\r\n3,`u:,4,,1\r\n3,`y,4,,1\r\n3,`y:,4,,1\r\n3,a,4,,1\r\n3,a:,4,,1\r\n3,b,4,b,1\r\n3,c,4,c,1\r\n3,d,4,d,1\r\n3,e,4,,1\r\n3,e:,4,,1\r\n3,f,4,f,1\r\n3,g,4,g,1\r\n3,h,4,h,1\r\n3,i,4,,1\r\n3,i:,4,,1\r\n3,j,4,j,1\r\n3,k,4,k,1\r\n3,l,4,l,1\r\n3,m,4,m,1\r\n3,n,4,n,1\r\n3,o,4,,1\r\n3,o:,4,,1\r\n3,p,4,p,1\r\n3,q,4,q,1\r\n3,r,4,r,1\r\n3,s,4,s,1\r\n3,t,4,t,1\r\n3,u,4,,1\r\n3,u:,4,,1\r\n3,v,4,v,1\r\n3,w,4,w,1\r\n3,x,4,x,1\r\n3,y,4,,1\r\n3,y:,4,,1\r\n3,z,4,z,1\r\n4,`a,5,a,1\r\n4,`a:,5,a:,1\r\n4,`e,5,e,1\r\n4,`e:,5,e:,1\r\n4,`i,5,i,1\r\n4,`i:,5,i:,1\r\n4,`o,5,o,1\r\n4,`o:,5,o:,1\r\n4,`u,5,u,1\r\n4,`u:,5,u:,1\r\n4,`y,5,y,1\r\n4,`y:,5,y:,1\r\n5,%,1,,1\r\n5,+,5,+,1\r\n5,.,5,.,1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n'),
('Internal - Stressed CV Syllable + Stem vowel deletion ', '| Input | Intermediate | Output |\r\n|------------|---------------|---------------|\r\n| pésəʎk^w^e | pé-pésəʎk^w^e | pé-p-səʎk^w^e |\r\n| kəpqín | kəpqí-qín | kəpqí-qn |\r\n| sqéxe | sqé-qxe | sqé-qxe |\r\n| cqéʎp | cqé-qéʎp | cqé-qʎp |', 'Input=#X-CV\'-Y% where X and Y are strings of segments, and V\' is stressed\r\nOutput=#X-CV\'-CV\'-Y%\r\nThe output has the stressed CV be repeated. The second V however tends to delete but in unspecified contexts. This forced me into nondeterminism. The sources state the first CV is the reduplicant.', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base until the stressed vowel\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-q-4 output C\\\'V again, continue base, and end\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [below of=q1] {$q_3$};\r\n\\node[state] (q4) [below right =of q2] {$q_4$};\r\n\\node[state,accepting] (q5) [right of=q4] {$q_5$};\r\n\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,\\#,+1)} (q1)\r\n(q1) edge [loop above] node {(\\{\\v{V},C\\},*+1)} (q1)\r\n(q1) edge node {(\\\'V,\\\'V,-1)} (q2)\r\n(q2) edge node {(C,C,+1)} (q3)\r\n(q3) edge node {(\\\'{V},$\\epsilon$,+1)} (q4)\r\n(q3) edge[bend right=45] node[below] {(\\\'{V},*,+1)} (q4)\r\n\r\n(q4) edge[loop below] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node {(\\%,\\%,+1)} (q5)\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 1, 'I can\'t implement the 2-way FST because it requires non-determinism', ''),
('Non-local Initial CV - placed before final C', '| Input | Output |\r\n|--------------|--------------------|\r\n| C~1~V-X-C~f~ | C~1~V-X-C~1~V-C~f~ |', 'Input=#CV-X-C~f~% where X is a string of symbols\r\nOutput=#CV-X\\~CV-C~f~%\r\nThe first CV is copied and placed before the final C', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1-5 output base until last C\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n%state q4 and up output initial CV and last C\r\n\\node[state] (q6) [below of=q0] {$q_6$};\r\n\\node[state] (q7) [right of=q6] {$q_7$};\r\n\\node[state] (q8) [right of=q7] {$q_8$};\r\n\\node[state] (q9) [right of=q8] {$q_9$};\r\n\\node[state] (q10) [right of=q9] {$q_{10}$};\r\n\\node[state] (q11) [right of=q10] {$q_{11}$};\r\n\\node[state,accepting] (q12) [right of=q11] {$q_{12}$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(C,C,+1)} (q2)\r\n(q2) edge node {(V,V,+1)} (q3)\r\n\r\n(q3) edge[loop above] node {(V,V,+1)} (q3)\r\n(q3) edge node {(C,$\\epsilon$,+1)} (q4)\r\n(q4) edge node {($\\Sigma$,$\\epsilon$,-1)} (q5)\r\n(q5) edge[bend right=45] node {(C,C,+1)} (q3)\r\n\r\n(q4) edge node[below] {(\\%,$\\epsilon$,-1)} (q6)\r\n(q6) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q6)\r\n(q6) edge node {(\\#,$\\sim$,+1)} (q7)\r\n(q7) edge node {(C,C,+1)} (q8)\r\n(q8) edge node {(V,V,+1)} (q9)\r\n(q9) edge[loop above] node {($\\Sigma$,$\\epsilon$,+1)} (q9)\r\n(q9) edge node {(\\%,$\\epsilon$,-1)} (q10)\r\n(q10) edge node {(C,C,+1)} (q11)\r\n(q11) edge node {(\\%,$\\epsilon$,+1)} (q12)\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 1, '#Non-local initial CV reduplication and placement before final C\r\n#If the word starts with a CV and ends in a C, then the first CV is copied and placed befor the finsl C\r\n#The function is not defined for any input which doesnt start with CV or doesnt end with C\r\n#e.g. patak --> pata~pak, pata --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first C\',\'output first CV\',\'output base V\',\'check if reached final C\',\'did not reach final C\',\'had reached final C so return to start\',\'output reduplicant C\',\'output reduplicant CV\',\'jump to the end\',\'output final C\',\'continue to end\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output first C\',\'\',1)\r\n(\'output first C\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output base V\',\\ID,1)\r\n(\'output base V\',\\vowels) = (\'output base V\',\\ID,1)\r\n(\'output base V\',\\consonants) = (\'check if reached final C\',\'\',1)\r\n(\'check if reached final C\',\\alphabet) = (\'did not reach final C\',\'\',-1)\r\n(\'did not reach final C\',\\consonants) = (\'output base V\',\\ID,1)\r\n(\'check if reached final C\',\'%\') = (\'had reached final C so return to start\',\'\',-1)\r\n(\'had reached final C so return to start\',\\alphabet) = (\'had reached final C so return to start\',\'\',-1)\r\n(\'had reached final C so return to start\',\'#\') = (\'output reduplicant C\',\'~\',1)\r\n(\'output reduplicant C\',\\consonants) = (\'output reduplicant CV\',\\ID,1)\r\n(\'output reduplicant CV\',\\vowels) = (\'jump to the end\',\\ID,1)\r\n(\'jump to the end\',\\alphabet) = (\'jump to the end\',\'\',1)\r\n(\'jump to the end\',\'%\') = (\'output final C\',\'\',-1)\r\n(\'output final C\',\\consonants) = (\'continue to end\',\\ID,1)\r\n(\'continue to end\',\'%\') = (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Non-local initial CV reduplication and placement before final C\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first C\r\n3 output first CV\r\n4 output base V\r\n5 check if reached final C\r\n6 did not reach final C\r\n7 had reached final C so return to start\r\n8 output reduplicant C\r\n9 output reduplicant CV\r\n10 jump to the end\r\n11 output final C\r\n12 continue to end\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,%,11,,-1\r\n10,+,10,,1\r\n10,.,10,,1\r\n10,`a,10,,1\r\n10,`a:,10,,1\r\n10,`e,10,,1\r\n10,`e:,10,,1\r\n10,`i,10,,1\r\n10,`i:,10,,1\r\n10,`o,10,,1\r\n10,`o:,10,,1\r\n10,`u,10,,1\r\n10,`u:,10,,1\r\n10,`y,10,,1\r\n10,`y:,10,,1\r\n10,a,10,,1\r\n10,a:,10,,1\r\n10,b,10,,1\r\n10,c,10,,1\r\n10,d,10,,1\r\n10,e,10,,1\r\n10,e:,10,,1\r\n10,f,10,,1\r\n10,g,10,,1\r\n10,h,10,,1\r\n10,i,10,,1\r\n10,i:,10,,1\r\n10,j,10,,1\r\n10,k,10,,1\r\n10,l,10,,1\r\n10,m,10,,1\r\n10,n,10,,1\r\n10,o,10,,1\r\n10,o:,10,,1\r\n10,p,10,,1\r\n10,q,10,,1\r\n10,r,10,,1\r\n10,s,10,,1\r\n10,t,10,,1\r\n10,u,10,,1\r\n10,u:,10,,1\r\n10,v,10,,1\r\n10,w,10,,1\r\n10,x,10,,1\r\n10,y,10,,1\r\n10,y:,10,,1\r\n10,z,10,,1\r\n11,b,12,b,1\r\n11,c,12,c,1\r\n11,d,12,d,1\r\n11,f,12,f,1\r\n11,g,12,g,1\r\n11,h,12,h,1\r\n11,j,12,j,1\r\n11,k,12,k,1\r\n11,l,12,l,1\r\n11,m,12,m,1\r\n11,n,12,n,1\r\n11,p,12,p,1\r\n11,q,12,q,1\r\n11,r,12,r,1\r\n11,s,12,s,1\r\n11,t,12,t,1\r\n11,v,12,v,1\r\n11,w,12,w,1\r\n11,x,12,x,1\r\n11,z,12,z,1\r\n12,%,1,,1\r\n2,b,3,b,1\r\n2,c,3,c,1\r\n2,d,3,d,1\r\n2,f,3,f,1\r\n2,g,3,g,1\r\n2,h,3,h,1\r\n2,j,3,j,1\r\n2,k,3,k,1\r\n2,l,3,l,1\r\n2,m,3,m,1\r\n2,n,3,n,1\r\n2,p,3,p,1\r\n2,q,3,q,1\r\n2,r,3,r,1\r\n2,s,3,s,1\r\n2,t,3,t,1\r\n2,v,3,v,1\r\n2,w,3,w,1\r\n2,x,3,x,1\r\n2,z,3,z,1\r\n3,`a,4,`a,1\r\n3,`a:,4,`a:,1\r\n3,`e,4,`e,1\r\n3,`e:,4,`e:,1\r\n3,`i,4,`i,1\r\n3,`i:,4,`i:,1\r\n3,`o,4,`o,1\r\n3,`o:,4,`o:,1\r\n3,`u,4,`u,1\r\n3,`u:,4,`u:,1\r\n3,`y,4,`y,1\r\n3,`y:,4,`y:,1\r\n3,a,4,a,1\r\n3,a:,4,a:,1\r\n3,e,4,e,1\r\n3,e:,4,e:,1\r\n3,i,4,i,1\r\n3,i:,4,i:,1\r\n3,o,4,o,1\r\n3,o:,4,o:,1\r\n3,u,4,u,1\r\n3,u:,4,u:,1\r\n3,y,4,y,1\r\n3,y:,4,y:,1\r\n4,`a,4,`a,1\r\n4,`a:,4,`a:,1\r\n4,`e,4,`e,1\r\n4,`e:,4,`e:,1\r\n4,`i,4,`i,1\r\n4,`i:,4,`i:,1\r\n4,`o,4,`o,1\r\n4,`o:,4,`o:,1\r\n4,`u,4,`u,1\r\n4,`u:,4,`u:,1\r\n4,`y,4,`y,1\r\n4,`y:,4,`y:,1\r\n4,a,4,a,1\r\n4,a:,4,a:,1\r\n4,b,5,,1\r\n4,c,5,,1\r\n4,d,5,,1\r\n4,e,4,e,1\r\n4,e:,4,e:,1\r\n4,f,5,,1\r\n4,g,5,,1\r\n4,h,5,,1\r\n4,i,4,i,1\r\n4,i:,4,i:,1\r\n4,j,5,,1\r\n4,k,5,,1\r\n4,l,5,,1\r\n4,m,5,,1\r\n4,n,5,,1\r\n4,o,4,o,1\r\n4,o:,4,o:,1\r\n4,p,5,,1\r\n4,q,5,,1\r\n4,r,5,,1\r\n4,s,5,,1\r\n4,t,5,,1\r\n4,u,4,u,1\r\n4,u:,4,u:,1\r\n4,v,5,,1\r\n4,w,5,,1\r\n4,x,5,,1\r\n4,y,4,y,1\r\n4,y:,4,y:,1\r\n4,z,5,,1\r\n5,%,7,,-1\r\n5,+,6,,-1\r\n5,.,6,,-1\r\n5,`a,6,,-1\r\n5,`a:,6,,-1\r\n5,`e,6,,-1\r\n5,`e:,6,,-1\r\n5,`i,6,,-1\r\n5,`i:,6,,-1\r\n5,`o,6,,-1\r\n5,`o:,6,,-1\r\n5,`u,6,,-1\r\n5,`u:,6,,-1\r\n5,`y,6,,-1\r\n5,`y:,6,,-1\r\n5,a,6,,-1\r\n5,a:,6,,-1\r\n5,b,6,,-1\r\n5,c,6,,-1\r\n5,d,6,,-1\r\n5,e,6,,-1\r\n5,e:,6,,-1\r\n5,f,6,,-1\r\n5,g,6,,-1\r\n5,h,6,,-1\r\n5,i,6,,-1\r\n5,i:,6,,-1\r\n5,j,6,,-1\r\n5,k,6,,-1\r\n5,l,6,,-1\r\n5,m,6,,-1\r\n5,n,6,,-1\r\n5,o,6,,-1\r\n5,o:,6,,-1\r\n5,p,6,,-1\r\n5,q,6,,-1\r\n5,r,6,,-1\r\n5,s,6,,-1\r\n5,t,6,,-1\r\n5,u,6,,-1\r\n5,u:,6,,-1\r\n5,v,6,,-1\r\n5,w,6,,-1\r\n5,x,6,,-1\r\n5,y,6,,-1\r\n5,y:,6,,-1\r\n5,z,6,,-1\r\n6,b,4,b,1\r\n6,c,4,c,1\r\n6,d,4,d,1\r\n6,f,4,f,1\r\n6,g,4,g,1\r\n6,h,4,h,1\r\n6,j,4,j,1\r\n6,k,4,k,1\r\n6,l,4,l,1\r\n6,m,4,m,1\r\n6,n,4,n,1\r\n6,p,4,p,1\r\n6,q,4,q,1\r\n6,r,4,r,1\r\n6,s,4,s,1\r\n6,t,4,t,1\r\n6,v,4,v,1\r\n6,w,4,w,1\r\n6,x,4,x,1\r\n6,z,4,z,1\r\n7,#,8,~,1\r\n7,+,7,,-1\r\n7,.,7,,-1\r\n7,`a,7,,-1\r\n7,`a:,7,,-1\r\n7,`e,7,,-1\r\n7,`e:,7,,-1\r\n7,`i,7,,-1\r\n7,`i:,7,,-1\r\n7,`o,7,,-1\r\n7,`o:,7,,-1\r\n7,`u,7,,-1\r\n7,`u:,7,,-1\r\n7,`y,7,,-1\r\n7,`y:,7,,-1\r\n7,a,7,,-1\r\n7,a:,7,,-1\r\n7,b,7,,-1\r\n7,c,7,,-1\r\n7,d,7,,-1\r\n7,e,7,,-1\r\n7,e:,7,,-1\r\n7,f,7,,-1\r\n7,g,7,,-1\r\n7,h,7,,-1\r\n7,i,7,,-1\r\n7,i:,7,,-1\r\n7,j,7,,-1\r\n7,k,7,,-1\r\n7,l,7,,-1\r\n7,m,7,,-1\r\n7,n,7,,-1\r\n7,o,7,,-1\r\n7,o:,7,,-1\r\n7,p,7,,-1\r\n7,q,7,,-1\r\n7,r,7,,-1\r\n7,s,7,,-1\r\n7,t,7,,-1\r\n7,u,7,,-1\r\n7,u:,7,,-1\r\n7,v,7,,-1\r\n7,w,7,,-1\r\n7,x,7,,-1\r\n7,y,7,,-1\r\n7,y:,7,,-1\r\n7,z,7,,-1\r\n8,b,9,b,1\r\n8,c,9,c,1\r\n8,d,9,d,1\r\n8,f,9,f,1\r\n8,g,9,g,1\r\n8,h,9,h,1\r\n8,j,9,j,1\r\n8,k,9,k,1\r\n8,l,9,l,1\r\n8,m,9,m,1\r\n8,n,9,n,1\r\n8,p,9,p,1\r\n8,q,9,q,1\r\n8,r,9,r,1\r\n8,s,9,s,1\r\n8,t,9,t,1\r\n8,v,9,v,1\r\n8,w,9,w,1\r\n8,x,9,x,1\r\n8,z,9,z,1\r\n9,`a,10,`a,1\r\n9,`a:,10,`a:,1\r\n9,`e,10,`e,1\r\n9,`e:,10,`e:,1\r\n9,`i,10,`i,1\r\n9,`i:,10,`i:,1\r\n9,`o,10,`o,1\r\n9,`o:,10,`o:,1\r\n9,`u,10,`u,1\r\n9,`u:,10,`u:,1\r\n9,`y,10,`y,1\r\n9,`y:,10,`y:,1\r\n9,a,10,a,1\r\n9,a:,10,a:,1\r\n9,e,10,e,1\r\n9,e:,10,e:,1\r\n9,i,10,i,1\r\n9,i:,10,i:,1\r\n9,o,10,o,1\r\n9,o:,10,o:,1\r\n9,u,10,u,1\r\n9,u:,10,u:,1\r\n9,y,10,y,1\r\n9,y:,10,y:,1\r\n'),
('Non-local Initial CVC - General', '| Input | Output |\r\n|-------|-----------|\r\n| CVC-X | CVC-X-CVC |', 'Input=#CVC-X% where X is a string of symbols\r\nOutput=#CVC-X\\~CVC%\r\nThe initial CVC is reduplicated and suffixed to the word.', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs base\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%state q2 and up outputs initial CVC again\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [below of=q1] {$q_3$};\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [right of=q5] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\epsilon$,-1)} (q2)\r\n(q2) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q2)\r\n(q2) edge node {(\\#,$\\sim$,+1)} (q3)\r\n(q3) edge node {(C,C,+1)} (q4)\r\n(q4) edge node {(V,V,+1)} (q5)\r\n(q5) edge node {(C,C,+1)} (q6)\r\n(q6) edge node {($\\Sigma$,$\\epsilon$,+1)} (q6)\r\n(q6) edge node {(\\%,$\\epsilon$,+1)} (q7)\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 0, '#Non-local Initial CVC reduplication and placement at the end\r\n#If the word starts with a CVC, that CVC is copied and placed at the end of the output\r\n#The function is not defined for any input which doesnt start with CVC\r\n#e.g. patak --> patak~pat, apatak --> undefined\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates=[\'start\',\'output base\',\'return\',\'output first C\',\'output first CV\',\'output first CVC\',\'skip to the end\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output base\',\'\',1)\r\n(\'output base\',\\alphabet) = (\'output base\',\\ID,1)\r\n(\'output base\',\'%\') = (\'return\',\'\',-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output first C\',\'~\',1)\r\n(\'output first C\',\\consonants) = (\'output first CV\',\\ID,1)\r\n(\'output first CV\',\\vowels) = (\'output first CVC\',\\ID,1)\r\n(\'output first CVC\',\\consonants) = (\'skip to the end\',\\ID,1)\r\n(\'skip to the end\',\\alphabet) = (\'skip to the end\',\'\',1)\r\n(\'skip to the end\',\'%\') = (\'end\',\'\',1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Non-local Initial CVC reduplication and placement at the end\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output base\r\n3 return\r\n4 output first C\r\n5 output first CV\r\n6 output first CVC\r\n7 skip to the end\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,#,4,~,1\r\n3,+,3,,-1\r\n3,.,3,,-1\r\n3,`a,3,,-1\r\n3,`a:,3,,-1\r\n3,`e,3,,-1\r\n3,`e:,3,,-1\r\n3,`i,3,,-1\r\n3,`i:,3,,-1\r\n3,`o,3,,-1\r\n3,`o:,3,,-1\r\n3,`u,3,,-1\r\n3,`u:,3,,-1\r\n3,`y,3,,-1\r\n3,`y:,3,,-1\r\n3,a,3,,-1\r\n3,a:,3,,-1\r\n3,b,3,,-1\r\n3,c,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,e:,3,,-1\r\n3,f,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,i:,3,,-1\r\n3,j,3,,-1\r\n3,k,3,,-1\r\n3,l,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,o:,3,,-1\r\n3,p,3,,-1\r\n3,q,3,,-1\r\n3,r,3,,-1\r\n3,s,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,u:,3,,-1\r\n3,v,3,,-1\r\n3,w,3,,-1\r\n3,x,3,,-1\r\n3,y,3,,-1\r\n3,y:,3,,-1\r\n3,z,3,,-1\r\n4,b,5,b,1\r\n4,c,5,c,1\r\n4,d,5,d,1\r\n4,f,5,f,1\r\n4,g,5,g,1\r\n4,h,5,h,1\r\n4,j,5,j,1\r\n4,k,5,k,1\r\n4,l,5,l,1\r\n4,m,5,m,1\r\n4,n,5,n,1\r\n4,p,5,p,1\r\n4,q,5,q,1\r\n4,r,5,r,1\r\n4,s,5,s,1\r\n4,t,5,t,1\r\n4,v,5,v,1\r\n4,w,5,w,1\r\n4,x,5,x,1\r\n4,z,5,z,1\r\n5,`a,6,`a,1\r\n5,`a:,6,`a:,1\r\n5,`e,6,`e,1\r\n5,`e:,6,`e:,1\r\n5,`i,6,`i,1\r\n5,`i:,6,`i:,1\r\n5,`o,6,`o,1\r\n5,`o:,6,`o:,1\r\n5,`u,6,`u,1\r\n5,`u:,6,`u:,1\r\n5,`y,6,`y,1\r\n5,`y:,6,`y:,1\r\n5,a,6,a,1\r\n5,a:,6,a:,1\r\n5,e,6,e,1\r\n5,e:,6,e:,1\r\n5,i,6,i,1\r\n5,i:,6,i:,1\r\n5,o,6,o,1\r\n5,o:,6,o:,1\r\n5,u,6,u,1\r\n5,u:,6,u:,1\r\n5,y,6,y,1\r\n5,y:,6,y:,1\r\n6,b,7,b,1\r\n6,c,7,c,1\r\n6,d,7,d,1\r\n6,f,7,f,1\r\n6,g,7,g,1\r\n6,h,7,h,1\r\n6,j,7,j,1\r\n6,k,7,k,1\r\n6,l,7,l,1\r\n6,m,7,m,1\r\n6,n,7,n,1\r\n6,p,7,p,1\r\n6,q,7,q,1\r\n6,r,7,r,1\r\n6,s,7,s,1\r\n6,t,7,t,1\r\n6,v,7,v,1\r\n6,w,7,w,1\r\n6,x,7,x,1\r\n6,z,7,z,1\r\n7,%,1,,1\r\n7,+,7,,1\r\n7,.,7,,1\r\n7,`a,7,,1\r\n7,`a:,7,,1\r\n7,`e,7,,1\r\n7,`e:,7,,1\r\n7,`i,7,,1\r\n7,`i:,7,,1\r\n7,`o,7,,1\r\n7,`o:,7,,1\r\n7,`u,7,,1\r\n7,`u:,7,,1\r\n7,`y,7,,1\r\n7,`y:,7,,1\r\n7,a,7,,1\r\n7,a:,7,,1\r\n7,b,7,,1\r\n7,c,7,,1\r\n7,d,7,,1\r\n7,e,7,,1\r\n7,e:,7,,1\r\n7,f,7,,1\r\n7,g,7,,1\r\n7,h,7,,1\r\n7,i,7,,1\r\n7,i:,7,,1\r\n7,j,7,,1\r\n7,k,7,,1\r\n7,l,7,,1\r\n7,m,7,,1\r\n7,n,7,,1\r\n7,o,7,,1\r\n7,o:,7,,1\r\n7,p,7,,1\r\n7,q,7,,1\r\n7,r,7,,1\r\n7,s,7,,1\r\n7,t,7,,1\r\n7,u,7,,1\r\n7,u:,7,,1\r\n7,v,7,,1\r\n7,w,7,,1\r\n7,x,7,,1\r\n7,y,7,,1\r\n7,y:,7,,1\r\n7,z,7,,1\r\n'),
('Penultimate CV - General and onsetless syllables allowed', '| Input | Output |\r\n|---------------------------|-------------------------------------|\r\n| V~1~-C~2~V~2~ | V~1~V~1~-C~2~V~2~ |\r\n| C~1~V~1~-C~2~V~2~ | C~1~V~1~-C~1~-V~1~-C~2~V~2~ |\r\n| V-C~1~V~1~-C~2~V~2~ | V-C~1~V~1~-C~1~-V~1~-C~2~V~2~ |\r\n| (C+V)*V-C~1~V~1~-C~2~V~2~ | (C+V)*V-C~1~V~1~-C~1~-V~1~-C~2~V~2~ |', 'Two allomorphs\r\nInput=#X-( C )V-Y$ where X is (C\\*V)\\* and Y is C\\*VC\\*\r\nOutput=#X-( C )V~( C )V-Y%\r\nThe penultimate CV string is repeated. The penultimate vowel doesn\'t need to follow a C. Onsetless vowels can follow the base/reduplicant and won\'t be copied. I\'m not sure what all possible syllable structures are', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n\\node[state] (q1) [right of= q0] {$q_1$};\r\n\r\n%2-3 check if V is penultimate\r\n\\node[state] (q2) [right of= q1] {$q_2$};\r\n\\node[state] (q3) [right of= q2] {$q_3$};\r\n\r\n% qnot-4 handle case when it isnt pen,so it returns back\r\n\\node[state] (qNOT) [above of= q3] {$q_{not}$};\r\n\\node[state] (q4) [left of= qNOT] {$q_4$};\r\n%pen-5 handle when it is penult, so goes back, repeats, continues base, ends\r\n\\node[state] (qPEN) [below of= q3] {$q_{pen}$};\r\n\\node[state] (q5) [left of= qPEN] {$q_{5}$};\r\n\\node[state] (q6) [left of= q5] {$q_6$};\r\n\\node[state] (q7) [below of= q6] {$q_7$};\r\n\\node[state,accepting] (q8) [right of= q7] {$q_8$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {(C,C,+1)} (q1)\r\n(q1) edge node {(V,V,+1)} (q2)\r\n\r\n(q2) edge[loop above] node {(C,$\\epsilon$,+1)} (q2)\r\n(q2) edge node {(V,$\\epsilon$,+1)} (q3)\r\n(q3) edge[loop right] node {(C,$\\epsilon$,+1)} (q3)\r\n(q3) edge node {(V,$\\epsilon$,-1)} (qNOT)\r\n(q3) edge node {(\\%,$\\epsilon$,-1)} (qPEN)\r\n\r\n(qNOT) edge[loop above] node {(C,$\\epsilon$,-1)} (qNOT)\r\n(qNOT) edge node {(V,$\\epsilon$,-1)} (q4)\r\n(q4) edge[loop above] node {(C,$\\epsilon$,-1)} (q4)\r\n(q4) edge[bend right=100] node {(V,$\\epsilon$,+1)} (q1)\r\n\r\n\r\n(qPEN) edge[loop right] node {(C,$\\epsilon$,-1)} (qPEN)\r\n(qPEN) edge node {(V,$\\epsilon$,-1)} (q5)\r\n(q5) edge[loop above] node {(C,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(V,$\\epsilon$,-1)} (q6)\r\n(q6) edge node[right] {(C,C,+1)} (q7)\r\n(q6) edge[bend right] node[left] {(V,$\\epsilon$,+1)} (q7)\r\n(q7) edge[loop below] node {($\\Sigma$,$\\Sigma$,+1)} (q7)\r\n(q7) edge node {(\\%,$\\epsilon$,+1)} (q8)\r\n\r\n\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 1, '#Penultimate CV reduplication\r\n#If the word ends with C1V1C*VC*, then reduplicate the penultimate CV substring\r\n#If there is no C before the penutlimate vowel, then just reduplicate the vowel\r\n#The function is not defined for an input which ends with anything other than (C)VC*VC* \r\n#e.g. patika --> pati~tika, tiata --> tia~ata, ata --> a~ata\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output fist copy\',\'check if V is penultimate\',\'the V preceded at least one V\',\'going back to the not-penultimate V\',\'going back to the penultimate V\',\'output onset for penultimate syllable if there\',\'continue output\',\'end\',\'the V was not penultimate\',\'the V was penultimate\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output fist copy\', \'\', 1)\r\n(\'output fist copy\', \\consonants) = (\'output fist copy\', \\ID, 1)\r\n(\'output fist copy\', \\vowels) = (\'check if V is penultimate\', \\ID, 1)\r\n(\'check if V is penultimate\', \\consonants) = (\'check if V is penultimate\', \'\', 1)\r\n(\'check if V is penultimate\', \\vowels) = (\'the V preceded at least one V\',\'\',1)\r\n(\'the V preceded at least one V\',\\consonants) = (\'the V preceded at least one V\', \'\', 1)\r\n(\'the V preceded at least one V\', \\vowels) = (\'the V was not penultimate\', \'\',-1)\r\n(\'the V preceded at least one V\', \'%\') = (\'the V was penultimate\', \'~\', -1)\r\n(\'the V was not penultimate\', \\consonants) = (\'the V was not penultimate\', \'\', -1)\r\n(\'the V was not penultimate\', \\vowels) = (\'going back to the not-penultimate V\', \'\', -1)\r\n(\'going back to the not-penultimate V\', \\consonants) = (\'going back to the not-penultimate V\', \'\', -1)\r\n(\'going back to the not-penultimate V\', \\vowels) = (\'output fist copy\', \'\', 1)\r\n(\'the V was penultimate\', \\consonants) = (\'the V was penultimate\', \'\', -1)\r\n(\'the V was penultimate\', \\vowels) = (\'going back to the penultimate V\', \'\', -1)\r\n(\'going back to the penultimate V\', \\consonants) = (\'going back to the penultimate V\', \'\', -1)\r\n(\'going back to the penultimate V\', \\vowels ) = (\'output onset for penultimate syllable if there\', \'\', -1)\r\n(\'output onset for penultimate syllable if there\', \\consonants) = (\'continue output\', \\ID, 1)\r\n(\'output onset for penultimate syllable if there\', \\vowels) = (\'continue output\', \'\', 1)\r\n(\'output onset for penultimate syllable if there\', \'#\') = (\'continue output\', \'\', 1)\r\n(\'continue output\', \\alphabet ) = (\'continue output\', \\ID, 1)\r\n(\'continue output\',\'%\' )=(\'end\', \'\', 1)\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Penultimate CV reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output fist copy\r\n3 check if V is penultimate\r\n4 the V preceded at least one V\r\n5 going back to the not-penultimate V\r\n6 going back to the penultimate V\r\n7 output onset for penultimate syllable if there\r\n8 continue output\r\n9 the V was not penultimate\r\n10 the V was penultimate\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,`a,6,,-1\r\n10,`a:,6,,-1\r\n10,`e,6,,-1\r\n10,`e:,6,,-1\r\n10,`i,6,,-1\r\n10,`i:,6,,-1\r\n10,`o,6,,-1\r\n10,`o:,6,,-1\r\n10,`u,6,,-1\r\n10,`u:,6,,-1\r\n10,`y,6,,-1\r\n10,`y:,6,,-1\r\n10,a,6,,-1\r\n10,a:,6,,-1\r\n10,b,10,,-1\r\n10,c,10,,-1\r\n10,d,10,,-1\r\n10,e,6,,-1\r\n10,e:,6,,-1\r\n10,f,10,,-1\r\n10,g,10,,-1\r\n10,h,10,,-1\r\n10,i,6,,-1\r\n10,i:,6,,-1\r\n10,j,10,,-1\r\n10,k,10,,-1\r\n10,l,10,,-1\r\n10,m,10,,-1\r\n10,n,10,,-1\r\n10,o,6,,-1\r\n10,o:,6,,-1\r\n10,p,10,,-1\r\n10,q,10,,-1\r\n10,r,10,,-1\r\n10,s,10,,-1\r\n10,t,10,,-1\r\n10,u,6,,-1\r\n10,u:,6,,-1\r\n10,v,10,,-1\r\n10,w,10,,-1\r\n10,x,10,,-1\r\n10,y,6,,-1\r\n10,y:,6,,-1\r\n10,z,10,,-1\r\n2,`a,3,`a,1\r\n2,`a:,3,`a:,1\r\n2,`e,3,`e,1\r\n2,`e:,3,`e:,1\r\n2,`i,3,`i,1\r\n2,`i:,3,`i:,1\r\n2,`o,3,`o,1\r\n2,`o:,3,`o:,1\r\n2,`u,3,`u,1\r\n2,`u:,3,`u:,1\r\n2,`y,3,`y,1\r\n2,`y:,3,`y:,1\r\n2,a,3,a,1\r\n2,a:,3,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,3,e,1\r\n2,e:,3,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,3,i,1\r\n2,i:,3,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,3,o,1\r\n2,o:,3,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,3,u,1\r\n2,u:,3,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,3,y,1\r\n2,y:,3,y:,1\r\n2,z,2,z,1\r\n3,`a,4,,1\r\n3,`a:,4,,1\r\n3,`e,4,,1\r\n3,`e:,4,,1\r\n3,`i,4,,1\r\n3,`i:,4,,1\r\n3,`o,4,,1\r\n3,`o:,4,,1\r\n3,`u,4,,1\r\n3,`u:,4,,1\r\n3,`y,4,,1\r\n3,`y:,4,,1\r\n3,a,4,,1\r\n3,a:,4,,1\r\n3,b,3,,1\r\n3,c,3,,1\r\n3,d,3,,1\r\n3,e,4,,1\r\n3,e:,4,,1\r\n3,f,3,,1\r\n3,g,3,,1\r\n3,h,3,,1\r\n3,i,4,,1\r\n3,i:,4,,1\r\n3,j,3,,1\r\n3,k,3,,1\r\n3,l,3,,1\r\n3,m,3,,1\r\n3,n,3,,1\r\n3,o,4,,1\r\n3,o:,4,,1\r\n3,p,3,,1\r\n3,q,3,,1\r\n3,r,3,,1\r\n3,s,3,,1\r\n3,t,3,,1\r\n3,u,4,,1\r\n3,u:,4,,1\r\n3,v,3,,1\r\n3,w,3,,1\r\n3,x,3,,1\r\n3,y,4,,1\r\n3,y:,4,,1\r\n3,z,3,,1\r\n4,%,10,~,-1\r\n4,`a,9,,-1\r\n4,`a:,9,,-1\r\n4,`e,9,,-1\r\n4,`e:,9,,-1\r\n4,`i,9,,-1\r\n4,`i:,9,,-1\r\n4,`o,9,,-1\r\n4,`o:,9,,-1\r\n4,`u,9,,-1\r\n4,`u:,9,,-1\r\n4,`y,9,,-1\r\n4,`y:,9,,-1\r\n4,a,9,,-1\r\n4,a:,9,,-1\r\n4,b,4,,1\r\n4,c,4,,1\r\n4,d,4,,1\r\n4,e,9,,-1\r\n4,e:,9,,-1\r\n4,f,4,,1\r\n4,g,4,,1\r\n4,h,4,,1\r\n4,i,9,,-1\r\n4,i:,9,,-1\r\n4,j,4,,1\r\n4,k,4,,1\r\n4,l,4,,1\r\n4,m,4,,1\r\n4,n,4,,1\r\n4,o,9,,-1\r\n4,o:,9,,-1\r\n4,p,4,,1\r\n4,q,4,,1\r\n4,r,4,,1\r\n4,s,4,,1\r\n4,t,4,,1\r\n4,u,9,,-1\r\n4,u:,9,,-1\r\n4,v,4,,1\r\n4,w,4,,1\r\n4,x,4,,1\r\n4,y,9,,-1\r\n4,y:,9,,-1\r\n4,z,4,,1\r\n5,`a,2,,1\r\n5,`a:,2,,1\r\n5,`e,2,,1\r\n5,`e:,2,,1\r\n5,`i,2,,1\r\n5,`i:,2,,1\r\n5,`o,2,,1\r\n5,`o:,2,,1\r\n5,`u,2,,1\r\n5,`u:,2,,1\r\n5,`y,2,,1\r\n5,`y:,2,,1\r\n5,a,2,,1\r\n5,a:,2,,1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,2,,1\r\n5,e:,2,,1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,2,,1\r\n5,i:,2,,1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,2,,1\r\n5,o:,2,,1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,2,,1\r\n5,u:,2,,1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,2,,1\r\n5,y:,2,,1\r\n5,z,5,,-1\r\n6,`a,7,,-1\r\n6,`a:,7,,-1\r\n6,`e,7,,-1\r\n6,`e:,7,,-1\r\n6,`i,7,,-1\r\n6,`i:,7,,-1\r\n6,`o,7,,-1\r\n6,`o:,7,,-1\r\n6,`u,7,,-1\r\n6,`u:,7,,-1\r\n6,`y,7,,-1\r\n6,`y:,7,,-1\r\n6,a,7,,-1\r\n6,a:,7,,-1\r\n6,b,6,,-1\r\n6,c,6,,-1\r\n6,d,6,,-1\r\n6,e,7,,-1\r\n6,e:,7,,-1\r\n6,f,6,,-1\r\n6,g,6,,-1\r\n6,h,6,,-1\r\n6,i,7,,-1\r\n6,i:,7,,-1\r\n6,j,6,,-1\r\n6,k,6,,-1\r\n6,l,6,,-1\r\n6,m,6,,-1\r\n6,n,6,,-1\r\n6,o,7,,-1\r\n6,o:,7,,-1\r\n6,p,6,,-1\r\n6,q,6,,-1\r\n6,r,6,,-1\r\n6,s,6,,-1\r\n6,t,6,,-1\r\n6,u,7,,-1\r\n6,u:,7,,-1\r\n6,v,6,,-1\r\n6,w,6,,-1\r\n6,x,6,,-1\r\n6,y,7,,-1\r\n6,y:,7,,-1\r\n6,z,6,,-1\r\n7,#,8,,1\r\n7,`a,8,,1\r\n7,`a:,8,,1\r\n7,`e,8,,1\r\n7,`e:,8,,1\r\n7,`i,8,,1\r\n7,`i:,8,,1\r\n7,`o,8,,1\r\n7,`o:,8,,1\r\n7,`u,8,,1\r\n7,`u:,8,,1\r\n7,`y,8,,1\r\n7,`y:,8,,1\r\n7,a,8,,1\r\n7,a:,8,,1\r\n7,b,8,b,1\r\n7,c,8,c,1\r\n7,d,8,d,1\r\n7,e,8,,1\r\n7,e:,8,,1\r\n7,f,8,f,1\r\n7,g,8,g,1\r\n7,h,8,h,1\r\n7,i,8,,1\r\n7,i:,8,,1\r\n7,j,8,j,1\r\n7,k,8,k,1\r\n7,l,8,l,1\r\n7,m,8,m,1\r\n7,n,8,n,1\r\n7,o,8,,1\r\n7,o:,8,,1\r\n7,p,8,p,1\r\n7,q,8,q,1\r\n7,r,8,r,1\r\n7,s,8,s,1\r\n7,t,8,t,1\r\n7,u,8,,1\r\n7,u:,8,,1\r\n7,v,8,v,1\r\n7,w,8,w,1\r\n7,x,8,x,1\r\n7,y,8,,1\r\n7,y:,8,,1\r\n7,z,8,z,1\r\n8,%,1,,1\r\n8,+,8,+,1\r\n8,.,8,.,1\r\n8,`a,8,`a,1\r\n8,`a:,8,`a:,1\r\n8,`e,8,`e,1\r\n8,`e:,8,`e:,1\r\n8,`i,8,`i,1\r\n8,`i:,8,`i:,1\r\n8,`o,8,`o,1\r\n8,`o:,8,`o:,1\r\n8,`u,8,`u,1\r\n8,`u:,8,`u:,1\r\n8,`y,8,`y,1\r\n8,`y:,8,`y:,1\r\n8,a,8,a,1\r\n8,a:,8,a:,1\r\n8,b,8,b,1\r\n8,c,8,c,1\r\n8,d,8,d,1\r\n8,e,8,e,1\r\n8,e:,8,e:,1\r\n8,f,8,f,1\r\n8,g,8,g,1\r\n8,h,8,h,1\r\n8,i,8,i,1\r\n8,i:,8,i:,1\r\n8,j,8,j,1\r\n8,k,8,k,1\r\n8,l,8,l,1\r\n8,m,8,m,1\r\n8,n,8,n,1\r\n8,o,8,o,1\r\n8,o:,8,o:,1\r\n8,p,8,p,1\r\n8,q,8,q,1\r\n8,r,8,r,1\r\n8,s,8,s,1\r\n8,t,8,t,1\r\n8,u,8,u,1\r\n8,u:,8,u:,1\r\n8,v,8,v,1\r\n8,w,8,w,1\r\n8,x,8,x,1\r\n8,y,8,y,1\r\n8,y:,8,y:,1\r\n8,z,8,z,1\r\n9,`a,5,,-1\r\n9,`a:,5,,-1\r\n9,`e,5,,-1\r\n9,`e:,5,,-1\r\n9,`i,5,,-1\r\n9,`i:,5,,-1\r\n9,`o,5,,-1\r\n9,`o:,5,,-1\r\n9,`u,5,,-1\r\n9,`u:,5,,-1\r\n9,`y,5,,-1\r\n9,`y:,5,,-1\r\n9,a,5,,-1\r\n9,a:,5,,-1\r\n9,b,9,,-1\r\n9,c,9,,-1\r\n9,d,9,,-1\r\n9,e,5,,-1\r\n9,e:,5,,-1\r\n9,f,9,,-1\r\n9,g,9,,-1\r\n9,h,9,,-1\r\n9,i,5,,-1\r\n9,i:,5,,-1\r\n9,j,9,,-1\r\n9,k,9,,-1\r\n9,l,9,,-1\r\n9,m,9,,-1\r\n9,n,9,,-1\r\n9,o,5,,-1\r\n9,o:,5,,-1\r\n9,p,9,,-1\r\n9,q,9,,-1\r\n9,r,9,,-1\r\n9,s,9,,-1\r\n9,t,9,,-1\r\n9,u,5,,-1\r\n9,u:,5,,-1\r\n9,v,9,,-1\r\n9,w,9,,-1\r\n9,x,9,,-1\r\n9,y,5,,-1\r\n9,y:,5,,-1\r\n9,z,9,,-1\r\n');
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('Total - Iterative AABB ', '| Input | Output |\r\n|---------|-----------------|\r\n| A+B | A-A-B-B |', 'Input=#A+B% where A and B are strings of segments and are two morphological constituents separated by a morpheme boundary \'+\'\r\nOutput=#A\\~A+B\\~B%\r\nEach of the morphological constituents is repeated.', '\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the first constituent A once\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n%states q2-q3 return to the beginning of X, output the first constituent A reduplicant\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n\\node[state] (q3) [below of=q1] {$q_3$};\r\n%states q3-q4 output B for the first time\r\n\\node[state] (q4) [right of=q3] {$q_4$};\r\n%states q4-q7 go back to + and output B for the second time time and end\r\n\\node[state] (q5) [right of=q4] {$q_5$};\r\n\\node[state] (q6) [below of=q3] {$q_6$};\r\n\\node[state,accepting] (q7) [right of=q6] {$q_7$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge [loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(+,$\\epsilon$,-1)} (q2)\r\n(q2) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q2)\r\n(q2) edge node[left] {(\\#,$\\sim$,+1)} (q3)\r\n(q3) edge [loop left] node[] {($\\Sigma$,$\\Sigma$,+1)} (q3)\r\n(q3) edge node {(+,+,+1)} (q4)\r\n(q4) edge [loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node {(\\%,$\\sim$,-1)} (q5)\r\n(q5) edge [loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q5)\r\n(q5) edge node {(+,$\\epsilon$,+1)} (q6)\r\n(q6) edge [loop left] node[] {($\\Sigma$,$\\Sigma$,+1)} (q6)\r\n(q6) edge node[below] {(\\%,$\\epsilon$,+1)} (q7)\r\n;\r\n\\end{tikzpicture}', 0, '#Total reduplication -- Iterative AABB\r\n#The input must contain two morpho-phonological constituents which have a \'+\' between them\r\n#Each constituent reduplicates\r\n#The output is an iterative pattern: AB -->AA+BB\r\n#The function is not defined for any input which doesnt contain exactly two constituents marked off by \'+\'\r\n#e.g. pata+bada --> pata~pata+bada~bada, pata --> undefined, pata+bada+kaga --> undefined\r\n#Note that we crucially need to use the segments subalphabet which exclused \'+\'\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first constituent once\',\'return for first constituent\',\'output first constituent twice\',\'output second constituent once\',\'return for second constituent\',\'output second constituent twice\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\' ) = (\'output first constituent once\', \'\', 1)\r\n(\'output first constituent once\', \\segments) = (\'output first constituent once\', \\ID, 1)\r\n(\'output first constituent once\', \'+\') = (\'return for first constituent\', \'\',-1)\r\n(\'return for first constituent\', \\segments) = (\'return for first constituent\', \'\', -1)\r\n(\'return for first constituent\', \'#\') = (\'output first constituent twice\', \'~\', 1)\r\n(\'output first constituent twice\', \\segments) = (\'output first constituent twice\', \\ID, 1)\r\n(\'output first constituent twice\', \'+\') = (\'output second constituent once\', \'+\',1)\r\n(\'output second constituent once\', \\segments) = (\'output second constituent once\', \\ID, 1)\r\n(\'output second constituent once\', \'%\') = (\'return for second constituent\', \'~\', -1)\r\n(\'return for second constituent\', \\segments) = (\'return for second constituent\', \'\', -1)\r\n(\'return for second constituent\', \'+\') = (\'output second constituent twice\', \'\', 1)\r\n(\'output second constituent twice\', \\segments) = (\'output second constituent twice\', \\ID, 1)\r\n(\'output second constituent twice\', \'%\') = (\'end\', \'\', 1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Total reduplication -- Iterative AABB\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first constituent once\r\n3 return for first constituent\r\n4 output first constituent twice\r\n5 output second constituent once\r\n6 return for second constituent\r\n7 output second constituent twice\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,+,3,,-1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,#,4,~,1\r\n3,`a,3,,-1\r\n3,`a:,3,,-1\r\n3,`e,3,,-1\r\n3,`e:,3,,-1\r\n3,`i,3,,-1\r\n3,`i:,3,,-1\r\n3,`o,3,,-1\r\n3,`o:,3,,-1\r\n3,`u,3,,-1\r\n3,`u:,3,,-1\r\n3,`y,3,,-1\r\n3,`y:,3,,-1\r\n3,a,3,,-1\r\n3,a:,3,,-1\r\n3,b,3,,-1\r\n3,c,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,e:,3,,-1\r\n3,f,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,i:,3,,-1\r\n3,j,3,,-1\r\n3,k,3,,-1\r\n3,l,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,o:,3,,-1\r\n3,p,3,,-1\r\n3,q,3,,-1\r\n3,r,3,,-1\r\n3,s,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,u:,3,,-1\r\n3,v,3,,-1\r\n3,w,3,,-1\r\n3,x,3,,-1\r\n3,y,3,,-1\r\n3,y:,3,,-1\r\n3,z,3,,-1\r\n4,+,5,+,1\r\n4,`a,4,`a,1\r\n4,`a:,4,`a:,1\r\n4,`e,4,`e,1\r\n4,`e:,4,`e:,1\r\n4,`i,4,`i,1\r\n4,`i:,4,`i:,1\r\n4,`o,4,`o,1\r\n4,`o:,4,`o:,1\r\n4,`u,4,`u,1\r\n4,`u:,4,`u:,1\r\n4,`y,4,`y,1\r\n4,`y:,4,`y:,1\r\n4,a,4,a,1\r\n4,a:,4,a:,1\r\n4,b,4,b,1\r\n4,c,4,c,1\r\n4,d,4,d,1\r\n4,e,4,e,1\r\n4,e:,4,e:,1\r\n4,f,4,f,1\r\n4,g,4,g,1\r\n4,h,4,h,1\r\n4,i,4,i,1\r\n4,i:,4,i:,1\r\n4,j,4,j,1\r\n4,k,4,k,1\r\n4,l,4,l,1\r\n4,m,4,m,1\r\n4,n,4,n,1\r\n4,o,4,o,1\r\n4,o:,4,o:,1\r\n4,p,4,p,1\r\n4,q,4,q,1\r\n4,r,4,r,1\r\n4,s,4,s,1\r\n4,t,4,t,1\r\n4,u,4,u,1\r\n4,u:,4,u:,1\r\n4,v,4,v,1\r\n4,w,4,w,1\r\n4,x,4,x,1\r\n4,y,4,y,1\r\n4,y:,4,y:,1\r\n4,z,4,z,1\r\n5,%,6,~,-1\r\n5,`a,5,`a,1\r\n5,`a:,5,`a:,1\r\n5,`e,5,`e,1\r\n5,`e:,5,`e:,1\r\n5,`i,5,`i,1\r\n5,`i:,5,`i:,1\r\n5,`o,5,`o,1\r\n5,`o:,5,`o:,1\r\n5,`u,5,`u,1\r\n5,`u:,5,`u:,1\r\n5,`y,5,`y,1\r\n5,`y:,5,`y:,1\r\n5,a,5,a,1\r\n5,a:,5,a:,1\r\n5,b,5,b,1\r\n5,c,5,c,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,e:,5,e:,1\r\n5,f,5,f,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,i:,5,i:,1\r\n5,j,5,j,1\r\n5,k,5,k,1\r\n5,l,5,l,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,o:,5,o:,1\r\n5,p,5,p,1\r\n5,q,5,q,1\r\n5,r,5,r,1\r\n5,s,5,s,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,u:,5,u:,1\r\n5,v,5,v,1\r\n5,w,5,w,1\r\n5,x,5,x,1\r\n5,y,5,y,1\r\n5,y:,5,y:,1\r\n5,z,5,z,1\r\n6,+,7,,1\r\n6,`a,6,,-1\r\n6,`a:,6,,-1\r\n6,`e,6,,-1\r\n6,`e:,6,,-1\r\n6,`i,6,,-1\r\n6,`i:,6,,-1\r\n6,`o,6,,-1\r\n6,`o:,6,,-1\r\n6,`u,6,,-1\r\n6,`u:,6,,-1\r\n6,`y,6,,-1\r\n6,`y:,6,,-1\r\n6,a,6,,-1\r\n6,a:,6,,-1\r\n6,b,6,,-1\r\n6,c,6,,-1\r\n6,d,6,,-1\r\n6,e,6,,-1\r\n6,e:,6,,-1\r\n6,f,6,,-1\r\n6,g,6,,-1\r\n6,h,6,,-1\r\n6,i,6,,-1\r\n6,i:,6,,-1\r\n6,j,6,,-1\r\n6,k,6,,-1\r\n6,l,6,,-1\r\n6,m,6,,-1\r\n6,n,6,,-1\r\n6,o,6,,-1\r\n6,o:,6,,-1\r\n6,p,6,,-1\r\n6,q,6,,-1\r\n6,r,6,,-1\r\n6,s,6,,-1\r\n6,t,6,,-1\r\n6,u,6,,-1\r\n6,u:,6,,-1\r\n6,v,6,,-1\r\n6,w,6,,-1\r\n6,x,6,,-1\r\n6,y,6,,-1\r\n6,y:,6,,-1\r\n6,z,6,,-1\r\n7,%,1,,1\r\n7,`a,7,`a,1\r\n7,`a:,7,`a:,1\r\n7,`e,7,`e,1\r\n7,`e:,7,`e:,1\r\n7,`i,7,`i,1\r\n7,`i:,7,`i:,1\r\n7,`o,7,`o,1\r\n7,`o:,7,`o:,1\r\n7,`u,7,`u,1\r\n7,`u:,7,`u:,1\r\n7,`y,7,`y,1\r\n7,`y:,7,`y:,1\r\n7,a,7,a,1\r\n7,a:,7,a:,1\r\n7,b,7,b,1\r\n7,c,7,c,1\r\n7,d,7,d,1\r\n7,e,7,e,1\r\n7,e:,7,e:,1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,7,i,1\r\n7,i:,7,i:,1\r\n7,j,7,j,1\r\n7,k,7,k,1\r\n7,l,7,l,1\r\n7,m,7,m,1\r\n7,n,7,n,1\r\n7,o,7,o,1\r\n7,o:,7,o:,1\r\n7,p,7,p,1\r\n7,q,7,q,1\r\n7,r,7,r,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,7,u,1\r\n7,u:,7,u:,1\r\n7,v,7,v,1\r\n7,w,7,w,1\r\n7,x,7,x,1\r\n7,y,7,y,1\r\n7,y:,7,y:,1\r\n7,z,7,z,1\r\n'),
('Total - Malay nasal spread', '| Input | Output |\r\n|-------|-----------|\r\n| hamĩ | hãmĩ-hãmĩ |\r\n| waŋĩ | wãŋĩ-w̃ãŋĩ |\r\n| aŋãn | ãŋãn-ãŋãn |\r\n| aŋẽn | ãŋẽn-ãŋẽn |', 'Input=#X$\r\nOutput=#X\\~X$\r\n\r\nNasality will spread iteratively from nasals onto vowels. The sounds [h, w, j, ʔ] are transparent to the spread while oral obstruents are blockers. It will overapply.', 'Symbols use: V for vowel, V^\\~^ for nasalized vowel, N for nasal, O for the blocking oral obstruents, T for the transparent sounds /h, w, j, ʔ/.\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n\\node[state] (q1) [right of=q0] {$q_1$};\r\n\\node[state] (q2) [right of=q1] {$q_2$};\r\n%state q3 is for if word has nasal that precedes % without blocker\r\n\\node[state] (q3) [below left= of q2] {$q_3$};\r\n%state q4 is for if word doesnt have nasal that precedes % without blocker\r\n\\node[state] (q4) [below right= of q2] {$q_4$};\r\n\r\n%state q5 is for outputping segments that come after nasal spread; q6 is for those that don\'t\r\n\\node[state] (q5) [below of= q3] {$q_5$};\r\n\\node[state] (q6) [below of= q4] {$q_6$};\r\n\r\n%states q7, q8 are for returning to # and start the reduplication; q7 assumes the word ends in nasal spread, q8 assumes it doesnt\r\n\\node[state] (q7) [below of= q5] {$q_7$};\r\n\\node[state] (q8) [below of= q6] {$q_8$};\r\n\r\n%q9,q10 output the reduplicant. q9 assumes it came after nasal spread, q10 assumes it didnt. q11 is final state after see %\r\n\\node[state] (q9) [below of= q7] {$q_9$};\r\n\\node[state] (q10) [below of= q8] {$q_{10}$};\r\n\\node[state,accepting] (q11) [below right = 4cm and 2.5cm of q9] {$q_{11}$};\r\n\r\n\r\n\r\n\r\n\\path\r\n%check if word has a nasal that precedes % without a blocker\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge [loop above] node {($\\Sigma$,$\\epsilon$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\epsilon$,-1)} (q2)\r\n(q2) edge [loop above] node {(\\{V,T\\},$\\epsilon$,-1)} (q2)\r\n%two possible states can now be gone to, depending on if a nasal did precedes % without a blocker\r\n(q2) edge node [left] {(N,$\\epsilon$,0)} (q3)\r\n(q2) edge node {(\\{\\#,B\\},$\\epsilon$,0)} (q4)\r\n(q3) edge [loop left] node {($\\Sigma$,$\\epsilon$,-1)} (q3)\r\n(q4) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n(q3) edge node {(\\#,$\\epsilon$,+1)} (q5)\r\n(q4) edge node {(\\#,$\\epsilon$,+1)} (q6)\r\n\r\n(q5) edge [loop left] node {(\\{T,N\\},*,+1)} (q5)\r\n(q5) edge [loop below] node {(V,\\~V,+1)} (q5)\r\n(q5) edge [bend left] node {(B,B,+1)} (q6)\r\n\r\n(q6) edge [loop right] node {(\\{T,B\\},*,+1)} (q6)\r\n(q6) edge [loop below] node {(V,V,+1)} (q6)\r\n(q6) edge [bend left] node {(N,N,+1)} (q5)\r\n\r\n(q5) edge [bend right=80] node [left] {(\\%,$\\epsilon$,-1)} (q7)\r\n(q6) edge [bend left=80] node[right] {(\\%,$\\epsilon$,-1)} (q8)\r\n\r\n\r\n(q7) edge [loop left] node [left] {($\\Sigma$,$\\epsilon$,-1)} (q7)\r\n(q8) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q8)\r\n\r\n(q7) edge node [left] {(\\#,$\\sim$,+1)} (q9)\r\n(q8) edge node {(\\#,$\\sim$,+1)} (q10)\r\n\r\n(q9) edge [loop left] node {(\\{T,N\\},*,+1)} (q9)\r\n(q9) edge [loop below] node [left] {(V,\\~V,+1)} (q9)\r\n(q9) edge [bend left] node {(B,B,+1)} (q10)\r\n\r\n(q10) edge [loop right] node {(\\{T,B\\},*,+1)} (q10)\r\n(q10) edge [loop below] node [right] {(V,V,+1)} (q10)\r\n(q10) edge [bend left] node {(N,N,+1)} (q9)\r\n\r\n\r\n(q9) edge node [left] {(\\%,$\\epsilon$,+1)} (q11)\r\n(q10) edge node [right] {(\\%,$\\epsilon$,+1)} (q11)\r\n\r\n\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Total reduplication with backcopying nasal spread in Malay\r\n#In Malay the input undergoes total reduplication\r\n#There is a process of nasal spread that overapplies across the copies and backcopies\r\n#Nasals spread nasality onto any vowel sequence to its right\r\n#Nasality spreads transparently over glides and glottals but it is blocked by other consonants\r\n#If a vowels gets nasal spread in either copy in the output, then nasality also appears on its copy \r\n#e.g. pata--> pata~pata, pana --> panã~panã, panawa --> panãwã~panãwã, atana --> ãtanã~ãtanã\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'t\',\'k\',\'b\',\'d\',\'g\',\'f\',\'v\',\'s\',\'z\', \'h\',\'w\',\'j\',\'ʔ\', \'m\',\'n\',\'ŋ\', \'a\',\'e\',\'i\',\'o\',\'u\',\'ĩ\',\'ũ\',\'ẽ\',\'õ\',\'ã\']\r\nsubalphabets = 4\r\nblockers = [\'p\',\'t\',\'k\',\'b\',\'d\',\'g\',\'f\',\'v\',\'s\',\'z\']\r\ntransparent = [\'h\',\'w\',\'j\',\'ʔ\']\r\nnasals = [\'m\',\'n\',\'ŋ\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\',\'ĩ\',\'ũ\',\'ẽ\',\'õ\',\'ã\']\r\n\r\nfunctions = 1\r\nnasalize = { (\'a\',\'ã\'),(\'e\',\'ẽ\'),(\'i\',\'ĩ\'),(\'o\',\'õ\'),(\'u\',\'ũ\'),(\'ĩ\',\'ĩ\'),(\'ũ\',\'ũ\'),(\'ẽ\',\'ẽ\'),(\'õ\',\'õ\'),(\'ã\',\'ã\') }\r\n\r\n#states type = string\r\nstates = [\'start\',\'skip towards the end\',\'ignoring vowels and glides - check if it ends in nasal blocker or spreader\',\'ends in a nasal+vowels/transparents\',\'doesnt end in a nasal+vowels/transparents\',\'output first copy with nasal spread\',\'output first copy without nasal spread\',\'end first copy with nasal spread\',\'end first copy without nasal spread\',\'start second copy with nasal spread\',\'start second copy without nasal spread\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'skip towards the end\',\'\',1)\r\n(\'skip towards the end\',\\alphabet) = (\'skip towards the end\',\'\',1)\r\n(\'skip towards the end\',\'%\') = (\'ignoring vowels and glides - check if it ends in nasal blocker or spreader\',\'\',-1)\r\n(\'ignoring vowels and glides - check if it ends in nasal blocker or spreader\',\\vowels) = (\'ignoring vowels and glides - check if it ends in nasal blocker or spreader\',\'\',-1)\r\n(\'ignoring vowels and glides - check if it ends in nasal blocker or spreader\',\\transparent) = (\'ignoring vowels and glides - check if it ends in nasal blocker or spreader\',\'\',-1)\r\n\r\n(\'ignoring vowels and glides - check if it ends in nasal blocker or spreader\',\\nasals) = (\'ends in a nasal+vowels/transparents\',\'\',0)\r\n(\'ignoring vowels and glides - check if it ends in nasal blocker or spreader\',\'#\') = (\'doesnt end in a nasal+vowels/transparents\',\'\',0)\r\n(\'ignoring vowels and glides - check if it ends in nasal blocker or spreader\',\\blockers) = (\'doesnt end in a nasal+vowels/transparents\',\'\',0)\r\n(\'ends in a nasal+vowels/transparents\',\\alphabet ) = (\'ends in a nasal+vowels/transparents\',\'\',-1)\r\n(\'doesnt end in a nasal+vowels/transparents\',\\alphabet) = (\'doesnt end in a nasal+vowels/transparents\',\'\',-1)\r\n(\'ends in a nasal+vowels/transparents\',\'#\') = (\'output first copy with nasal spread\',\'\',1)\r\n(\'doesnt end in a nasal+vowels/transparents\',\'#\') = (\'output first copy without nasal spread\',\'\',1)\r\n\r\n(\'output first copy with nasal spread\',\\transparent) = (\'output first copy with nasal spread\',\\ID,1)\r\n(\'output first copy with nasal spread\',\\nasals) = (\'output first copy with nasal spread\',\\ID,1)\r\n(\'output first copy with nasal spread\',\\vowels) = (\'output first copy with nasal spread\',\\nasalize,1)\r\n(\'output first copy with nasal spread\',\\blockers) = (\'output first copy without nasal spread\',\\ID,1)\r\n\r\n(\'output first copy without nasal spread\',\\transparent) = (\'output first copy without nasal spread\',\\ID,1)\r\n(\'output first copy without nasal spread\',\\blockers) = (\'output first copy without nasal spread\',\\ID,1)\r\n(\'output first copy without nasal spread\',\\vowels) = (\'output first copy without nasal spread\',\\ID,1)\r\n(\'output first copy without nasal spread\',\\nasals) = (\'output first copy with nasal spread\',\\ID,1)\r\n\r\n(\'output first copy with nasal spread\',\'%\') = (\'end first copy with nasal spread\',\'~\',-1)\r\n(\'output first copy without nasal spread\',\'%\') = (\'end first copy without nasal spread\',\'~\',-1)\r\n\r\n\r\n(\'end first copy with nasal spread\',\\alphabet) = (\'end first copy with nasal spread\',\'\',-1)\r\n(\'end first copy without nasal spread\',\\alphabet) = (\'end first copy without nasal spread\',\'\',-1)\r\n\r\n(\'end first copy with nasal spread\',\'#\') = (\'start second copy with nasal spread\',\'\',1)\r\n(\'end first copy without nasal spread\',\'#\') = (\'start second copy without nasal spread\',\'\',1)\r\n\r\n(\'start second copy with nasal spread\',\\transparent) = (\'start second copy with nasal spread\',\\ID,1)\r\n(\'start second copy with nasal spread\',\\nasals) = (\'start second copy with nasal spread\',\\ID,1)\r\n(\'start second copy with nasal spread\',\\vowels) = (\'start second copy with nasal spread\',\\nasalize,1)\r\n(\'start second copy with nasal spread\',\\blockers) = (\'start second copy without nasal spread\',\\ID,1)\r\n\r\n(\'start second copy without nasal spread\',\\transparent) = (\'start second copy without nasal spread\',\\ID,1)\r\n(\'start second copy without nasal spread\',\\blockers) = (\'start second copy without nasal spread\',\\ID,1)\r\n(\'start second copy without nasal spread\',\\vowels) = (\'start second copy without nasal spread\',\\ID,1)\r\n(\'start second copy without nasal spread\',\\nasals) = (\'start second copy with nasal spread\',\\ID,1)\r\n\r\n\r\n(\'start second copy with nasal spread\',\'%\') = (\'end\',\'\',1)\r\n(\'start second copy without nasal spread\',\'%\') = (\'end\',\'\',1)\r\n\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Total reduplication with backcopying nasal spread in Malay\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 skip towards the end\r\n3 ignoring vowels and glides - check if it ends in nasal blocker or spreader\r\n4 ends in a nasal+vowels/transparents\r\n5 doesnt end in a nasal+vowels/transparents\r\n6 output first copy with nasal spread\r\n7 output first copy without nasal spread\r\n8 end first copy with nasal spread\r\n9 end first copy without nasal spread\r\n10 start second copy with nasal spread\r\n11 start second copy without nasal spread\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n10,%,1,,1\r\n10,a,10,ã,1\r\n10,b,11,b,1\r\n10,d,11,d,1\r\n10,e,10,ẽ,1\r\n10,f,11,f,1\r\n10,g,11,g,1\r\n10,h,10,h,1\r\n10,i,10,ĩ,1\r\n10,j,10,j,1\r\n10,k,11,k,1\r\n10,m,10,m,1\r\n10,n,10,n,1\r\n10,o,10,õ,1\r\n10,p,11,p,1\r\n10,s,11,s,1\r\n10,t,11,t,1\r\n10,u,10,ũ,1\r\n10,v,11,v,1\r\n10,w,10,w,1\r\n10,z,11,z,1\r\n10,ã,10,ã,1\r\n10,õ,10,õ,1\r\n10,ĩ,10,ĩ,1\r\n10,ŋ,10,ŋ,1\r\n10,ũ,10,ũ,1\r\n10,ʔ,10,ʔ,1\r\n10,ẽ,10,ẽ,1\r\n11,%,1,,1\r\n11,a,11,a,1\r\n11,b,11,b,1\r\n11,d,11,d,1\r\n11,e,11,e,1\r\n11,f,11,f,1\r\n11,g,11,g,1\r\n11,h,11,h,1\r\n11,i,11,i,1\r\n11,j,11,j,1\r\n11,k,11,k,1\r\n11,m,10,m,1\r\n11,n,10,n,1\r\n11,o,11,o,1\r\n11,p,11,p,1\r\n11,s,11,s,1\r\n11,t,11,t,1\r\n11,u,11,u,1\r\n11,v,11,v,1\r\n11,w,11,w,1\r\n11,z,11,z,1\r\n11,ã,11,ã,1\r\n11,õ,11,õ,1\r\n11,ĩ,11,ĩ,1\r\n11,ŋ,10,ŋ,1\r\n11,ũ,11,ũ,1\r\n11,ʔ,11,ʔ,1\r\n11,ẽ,11,ẽ,1\r\n2,%,3,,-1\r\n2,a,2,,1\r\n2,b,2,,1\r\n2,d,2,,1\r\n2,e,2,,1\r\n2,f,2,,1\r\n2,g,2,,1\r\n2,h,2,,1\r\n2,i,2,,1\r\n2,j,2,,1\r\n2,k,2,,1\r\n2,m,2,,1\r\n2,n,2,,1\r\n2,o,2,,1\r\n2,p,2,,1\r\n2,s,2,,1\r\n2,t,2,,1\r\n2,u,2,,1\r\n2,v,2,,1\r\n2,w,2,,1\r\n2,z,2,,1\r\n2,ã,2,,1\r\n2,õ,2,,1\r\n2,ĩ,2,,1\r\n2,ŋ,2,,1\r\n2,ũ,2,,1\r\n2,ʔ,2,,1\r\n2,ẽ,2,,1\r\n3,#,5,,0\r\n3,a,3,,-1\r\n3,b,5,,0\r\n3,d,5,,0\r\n3,e,3,,-1\r\n3,f,5,,0\r\n3,g,5,,0\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,j,3,,-1\r\n3,k,5,,0\r\n3,m,4,,0\r\n3,n,4,,0\r\n3,o,3,,-1\r\n3,p,5,,0\r\n3,s,5,,0\r\n3,t,5,,0\r\n3,u,3,,-1\r\n3,v,5,,0\r\n3,w,3,,-1\r\n3,z,5,,0\r\n3,ã,3,,-1\r\n3,õ,3,,-1\r\n3,ĩ,3,,-1\r\n3,ŋ,4,,0\r\n3,ũ,3,,-1\r\n3,ʔ,3,,-1\r\n3,ẽ,3,,-1\r\n4,#,6,,1\r\n4,a,4,,-1\r\n4,b,4,,-1\r\n4,d,4,,-1\r\n4,e,4,,-1\r\n4,f,4,,-1\r\n4,g,4,,-1\r\n4,h,4,,-1\r\n4,i,4,,-1\r\n4,j,4,,-1\r\n4,k,4,,-1\r\n4,m,4,,-1\r\n4,n,4,,-1\r\n4,o,4,,-1\r\n4,p,4,,-1\r\n4,s,4,,-1\r\n4,t,4,,-1\r\n4,u,4,,-1\r\n4,v,4,,-1\r\n4,w,4,,-1\r\n4,z,4,,-1\r\n4,ã,4,,-1\r\n4,õ,4,,-1\r\n4,ĩ,4,,-1\r\n4,ŋ,4,,-1\r\n4,ũ,4,,-1\r\n4,ʔ,4,,-1\r\n4,ẽ,4,,-1\r\n5,#,7,,1\r\n5,a,5,,-1\r\n5,b,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,p,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,z,5,,-1\r\n5,ã,5,,-1\r\n5,õ,5,,-1\r\n5,ĩ,5,,-1\r\n5,ŋ,5,,-1\r\n5,ũ,5,,-1\r\n5,ʔ,5,,-1\r\n5,ẽ,5,,-1\r\n6,%,8,~,-1\r\n6,a,6,ã,1\r\n6,b,7,b,1\r\n6,d,7,d,1\r\n6,e,6,ẽ,1\r\n6,f,7,f,1\r\n6,g,7,g,1\r\n6,h,6,h,1\r\n6,i,6,ĩ,1\r\n6,j,6,j,1\r\n6,k,7,k,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,õ,1\r\n6,p,7,p,1\r\n6,s,7,s,1\r\n6,t,7,t,1\r\n6,u,6,ũ,1\r\n6,v,7,v,1\r\n6,w,6,w,1\r\n6,z,7,z,1\r\n6,ã,6,ã,1\r\n6,õ,6,õ,1\r\n6,ĩ,6,ĩ,1\r\n6,ŋ,6,ŋ,1\r\n6,ũ,6,ũ,1\r\n6,ʔ,6,ʔ,1\r\n6,ẽ,6,ẽ,1\r\n7,%,9,~,-1\r\n7,a,7,a,1\r\n7,b,7,b,1\r\n7,d,7,d,1\r\n7,e,7,e,1\r\n7,f,7,f,1\r\n7,g,7,g,1\r\n7,h,7,h,1\r\n7,i,7,i,1\r\n7,j,7,j,1\r\n7,k,7,k,1\r\n7,m,6,m,1\r\n7,n,6,n,1\r\n7,o,7,o,1\r\n7,p,7,p,1\r\n7,s,7,s,1\r\n7,t,7,t,1\r\n7,u,7,u,1\r\n7,v,7,v,1\r\n7,w,7,w,1\r\n7,z,7,z,1\r\n7,ã,7,ã,1\r\n7,õ,7,õ,1\r\n7,ĩ,7,ĩ,1\r\n7,ŋ,6,ŋ,1\r\n7,ũ,7,ũ,1\r\n7,ʔ,7,ʔ,1\r\n7,ẽ,7,ẽ,1\r\n8,#,10,,1\r\n8,a,8,,-1\r\n8,b,8,,-1\r\n8,d,8,,-1\r\n8,e,8,,-1\r\n8,f,8,,-1\r\n8,g,8,,-1\r\n8,h,8,,-1\r\n8,i,8,,-1\r\n8,j,8,,-1\r\n8,k,8,,-1\r\n8,m,8,,-1\r\n8,n,8,,-1\r\n8,o,8,,-1\r\n8,p,8,,-1\r\n8,s,8,,-1\r\n8,t,8,,-1\r\n8,u,8,,-1\r\n8,v,8,,-1\r\n8,w,8,,-1\r\n8,z,8,,-1\r\n8,ã,8,,-1\r\n8,õ,8,,-1\r\n8,ĩ,8,,-1\r\n8,ŋ,8,,-1\r\n8,ũ,8,,-1\r\n8,ʔ,8,,-1\r\n8,ẽ,8,,-1\r\n9,#,11,,1\r\n9,a,9,,-1\r\n9,b,9,,-1\r\n9,d,9,,-1\r\n9,e,9,,-1\r\n9,f,9,,-1\r\n9,g,9,,-1\r\n9,h,9,,-1\r\n9,i,9,,-1\r\n9,j,9,,-1\r\n9,k,9,,-1\r\n9,m,9,,-1\r\n9,n,9,,-1\r\n9,o,9,,-1\r\n9,p,9,,-1\r\n9,s,9,,-1\r\n9,t,9,,-1\r\n9,u,9,,-1\r\n9,v,9,,-1\r\n9,w,9,,-1\r\n9,z,9,,-1\r\n9,ã,9,,-1\r\n9,õ,9,,-1\r\n9,ĩ,9,,-1\r\n9,ŋ,9,,-1\r\n9,ũ,9,,-1\r\n9,ʔ,9,,-1\r\n9,ẽ,9,,-1\r\n'),
('Total - men-X~X Indonesian nasal coalescence', '| Input | Output |\r\n|-------|----------------|\r\n| potoŋ | mə-motoŋ-motoŋ |\r\n| tulis | mə-nulis-nulis |\r\n| isi | məŋ-isi-isi |', 'Input=#X%\r\nOutput=#məŋ-X~X%\r\nWhen the prefix /məŋ/ is added to X, the initial consonant (if any) coalesces with the prefix\'s /ŋ/ and becomes a nasal. The nasal coalescence overapplies to the initial consonant in the second copy. \r\nNote that [h] and voweles do not undergo nasal coelescence. The prefix surfaces with a default velar nasal in such a case', '\r\nFST: The FST assumes B,D,G stand for bilabials, alveolars, and velars.\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%states q1-3 output the prefix and nasalize the base\'s first C, cotinue the base\r\n\\node[state] (q1) [right of= q0] {$q_{1}$};\r\n\\node[state] (q2) [right of= q1] {$q_{2}$};\r\n\\node[state] (q3) [right of= q2] {$q_{3}$};\r\n%states q3 and up output second base with correct initial C\r\n\\node[state] (q4) [below of= q1] {$q_{4}$};\r\n\\node[state] (q5) [right of= q4] {$q_{5}$};\r\n\\node[state,accepting] (q6) [right of= q5] {$q_{6}$};\r\n\r\n\\path\r\n\r\n(q0) edge node {(\\#,m\\textipa{@},+1)} (q1)\r\n(q1) edge[bend right=60] node[left] {(\\{B,D,G\\},+\\{m,n,\\textipa{N}\\},+1)} (q2)\r\n(q1) edge node {(\\{h,V\\},\\textipa{N}+\\{h,V\\},+1)} (q2)\r\n(q2) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q2)\r\n(q2) edge node {(\\%,$\\epsilon$,-1)} (q3)\r\n(q3) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(\\#,$\\sim$,+1)} (q4)\r\n(q4) edge[bend right=60] node[left] {(\\{B,D,G\\},\\{m,n,\\textipa{N}\\},+1)} (q5)\r\n(q4) edge node[below] {(\\{h,V\\},\\{h,V\\},+1)} (q5)\r\n(q5) edge[loop below] node {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\n', 1, '#Total reduplication in Indonesian men-X-X with initial C nasal coalescence\r\n#In Indonesian, the prefix /məŋ/ triggers the total reduplication of the input\r\n#In both copies, the stem initial stop (if any) is coalesced with the nasal to agree in placeInitial\r\n#e.g. pata--> mə+mata~mata, tata --> mə+nata~nata, kata --> mə+ŋata~ŋata, ata --> məŋ+ata~ata, hata --> məŋ+hata~hata\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'ŋ\',\'h\', \'a\',\'e\',\'i\',\'o\',\'u\',\'ə\']\r\nsubalphabets = 4\r\nlabials = [\'p\',\'b\',\'m\']\r\ncoronals = [\'t\',\'d\',\'n\']\r\ndorsals = [\'k\',\'g\',\'ŋ\']\r\nvowels = [\'a\',\'e\',\'i\',\'o\',\'u\',\'ə\']\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output C and coalesce\',\'output first copy\',\'return\',\'output C again and coalesce\',\'output second copy\',\'end\']\r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\',\'#\') = (\'output C and coalesce\',\'mə\',1)\r\n(\'output C and coalesce\',\\labials) = (\'output first copy\',\'+m\',1)\r\n(\'output C and coalesce\',\\coronals) = (\'output first copy\',\'+n\',1)\r\n(\'output C and coalesce\',\\dorsals) = (\'output first copy\',\'+ŋ\',1)\r\n(\'output C and coalesce\', \'h\') = (\'output first copy\',[\'ŋ+\' \\ID],1)\r\n(\'output C and coalesce\', \\vowels) = (\'output first copy\',[\'ŋ+\' \\ID],1)\r\n(\'output first copy\',\\alphabet) = (\'output first copy\',\\ID,1)\r\n(\'output first copy\',\'%\') = (\'return\',\'\',-1)\r\n(\'return\',\\alphabet) = (\'return\',\'\',-1)\r\n(\'return\',\'#\') = (\'output C again and coalesce\',\'~\',1)\r\n(\'output C again and coalesce\',\\labials) = (\'output second copy\',\'m\',1)\r\n(\'output C again and coalesce\',\\coronals) = (\'output second copy\',\'n\',1)\r\n(\'output C again and coalesce\',\\dorsals) = (\'output second copy\',\'ŋ\',1)\r\n(\'output C again and coalesce\',\'h\') = (\'output second copy\', \\ID,1)\r\n(\'output C again and coalesce\',\\vowels) = (\'output second copy\', \\ID,1)\r\n(\'output second copy\',\\alphabet) = (\'output second copy\',\\ID,1)\r\n(\'output second copy\',\'%\') = (\'end\',\'\',1)\r\n\r\n', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Total reduplication in Indonesian men-X-X with initial C nasal coalescence\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output C and coalesce\r\n3 output first copy\r\n4 return\r\n5 output C again and coalesce\r\n6 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,mə,1\r\n2,a,3,ŋ+a,1\r\n2,b,3,+m,1\r\n2,d,3,+n,1\r\n2,e,3,ŋ+e,1\r\n2,g,3,+ŋ,1\r\n2,h,3,ŋ+h,1\r\n2,i,3,ŋ+i,1\r\n2,k,3,+ŋ,1\r\n2,m,3,+m,1\r\n2,n,3,+n,1\r\n2,o,3,ŋ+o,1\r\n2,p,3,+m,1\r\n2,t,3,+n,1\r\n2,u,3,ŋ+u,1\r\n2,ŋ,3,+ŋ,1\r\n2,ə,3,ŋ+ə,1\r\n3,%,4,,-1\r\n3,a,3,a,1\r\n3,b,3,b,1\r\n3,d,3,d,1\r\n3,e,3,e,1\r\n3,g,3,g,1\r\n3,h,3,h,1\r\n3,i,3,i,1\r\n3,k,3,k,1\r\n3,m,3,m,1\r\n3,n,3,n,1\r\n3,o,3,o,1\r\n3,p,3,p,1\r\n3,t,3,t,1\r\n3,u,3,u,1\r\n3,ŋ,3,ŋ,1\r\n3,ə,3,ə,1\r\n4,#,5,~,1\r\n4,a,4,,-1\r\n4,b,4,,-1\r\n4,d,4,,-1\r\n4,e,4,,-1\r\n4,g,4,,-1\r\n4,h,4,,-1\r\n4,i,4,,-1\r\n4,k,4,,-1\r\n4,m,4,,-1\r\n4,n,4,,-1\r\n4,o,4,,-1\r\n4,p,4,,-1\r\n4,t,4,,-1\r\n4,u,4,,-1\r\n4,ŋ,4,,-1\r\n4,ə,4,,-1\r\n5,a,6,a,1\r\n5,b,6,m,1\r\n5,d,6,n,1\r\n5,e,6,e,1\r\n5,g,6,ŋ,1\r\n5,h,6,h,1\r\n5,i,6,i,1\r\n5,k,6,ŋ,1\r\n5,m,6,m,1\r\n5,n,6,n,1\r\n5,o,6,o,1\r\n5,p,6,m,1\r\n5,t,6,n,1\r\n5,u,6,u,1\r\n5,ŋ,6,ŋ,1\r\n5,ə,6,ə,1\r\n6,%,1,,1\r\n6,a,6,a,1\r\n6,b,6,b,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,k,6,k,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,p,6,p,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,ŋ,6,ŋ,1\r\n6,ə,6,ə,1\r\n'),
('Total - Only monosyllables', '| Input | Output |\r\n|---------------------|---------------------|\r\n| C~1~V~2~C~3~ | C~1~V~2~C~3~-C~1~V~2~C~3~ |\r\n| C~1~V~2~C~3~.C~4~V~5~C~6~ | C~1~V~2~C~3~C~4~V~5~C~6~ |', 'Input=#X% where X is monosyllabic string of symbols\r\nOutput=#X\\~X%\r\n\r\nIf X is monosyllabic, then the entire word is repeated. Otherwise, an alternative morphological construction is used. ', 'FST: The FST assumes the input has syllable boundaries \".\" between syllables. Syllable boundaries are not outputted. The symbol Sigma ∑ includes only segments, not syllable boundaries.\r\n\r\nDiagram: for readability, we visually represent state q6 twice \r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,semithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%states q1-q3 check if the word is . \r\n\\node[state] (q2) [right of=q0] {$q_2$};\r\n\\node[state] (q3) [right of=q2] {$q_3$};\r\n%states q4-q6 handle the case when the word is not monosyllabic. it returns back to #, outputs the base, and surfaces the input faithfully\r\n\r\n\\node[state] (q5) [above of=q3] {$q_5$};\r\n\\node[state,accepting] (q6) [right =4cm of q3] {$q_6$};\r\n\r\n%states q7-q11 handle the case when the word is monosyllabic\r\n%They return to #, output the word, then go back to # and output the word again\r\n\\node[state] (q7) [below of=q3] {$q_7$};\r\n\\node[state] (q8) [below= 4cm of q0] {$q_8$};\r\n\\node[state] (q9) [right of=q8] {$q_9$};\r\n\\node[state] (q10) [right of=q9] {$q_{10}$}; \r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q2)\r\n(q2) edge [loop below] node {($\\Sigma$,$\\epsilon$,+1)} (q2)\r\n(q2) edge node [below] {(.,$\\epsilon$,-1)} (q3)\r\n\r\n(q3) edge[loop right] node [right]{($\\Sigma$,$\\epsilon$,-1)} (q3)\r\n(q3) edge node {(\\#,$\\epsilon$,+1)} (q5)\r\n(q5) edge [loop above] node {(\\{$\\Sigma$,.\\},\\{$\\Sigma$,.\\},+1)} (q5)\r\n(q5) edge node {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n(q2) edge node {(\\%,$\\epsilon$,-1)} (q7)\r\n(q7) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q7)\r\n(q7) edge [bend right] node {(\\#,$\\epsilon$,+1)} (q8)\r\n(q8) edge [loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q8)\r\n(q8) edge node {(\\%,$\\sim$,-1)} (q9)\r\n(q9) edge [loop below] node {($\\Sigma$,$\\epsilon$,-1)} (q9)\r\n(q9) edge node {(\\#,$\\epsilon$,+1)} (q10)\r\n(q10) edge [loop below] node {($\\Sigma$,$\\Sigma$,+1)} (q10)\r\n(q10) edge[bend right] node[right] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 1, '#Total reduplication if monosyllabic\r\n#If the input is monosyllabic, then it undergoes reduplication\r\n#Otherwise it surfaces identically\r\n#Syllabification is represented by syllable boundaries \'.\' between adjacent\r\n#I assume the input does not contain ill-formed syllables\r\n#e.g. pa.ta --> pata, pat --> pat~pat\r\n#Note that we crucially need to use the segments subalphabet which exclused \'.\'\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'read first syllable\',\'word is polysyllabic so returning\',\'output first and only copy\',\'word is monosyllabic so returning\',\'output first copy\',\'return for second copy\',\'output second copy\', \'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'read first syllable\', \'\', 1)\r\n(\'read first syllable\', \\segments) = (\'read first syllable\', \'\', 1)\r\n(\'read first syllable\', \'.\') = (\'word is polysyllabic so returning\', \'\', -1)\r\n(\'word is polysyllabic so returning\', \\alphabet) = (\'word is polysyllabic so returning\', \'\',-1)\r\n(\'word is polysyllabic so returning\', \'#\') = (\'output first and only copy\', \'\', 1)\r\n(\'output first and only copy\', \\alphabet) = (\'output first and only copy\', \\ID, 1)\r\n(\'output first and only copy\', \'%\') = (\'end\', \'\', 1)\r\n(\'read first syllable\', \'%\') = (\'word is monosyllabic so returning\', \'\', -1)\r\n(\'word is monosyllabic so returning\', \\segments) = (\'word is monosyllabic so returning\', \'\',-1)\r\n(\'word is monosyllabic so returning\', \'#\') = (\'output first copy\', \'\', 1)\r\n(\'output first copy\', \\segments) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return for second copy\', \'~\', -1)\r\n(\'return for second copy\', \\segments) = (\'return for second copy\', \'\', -1)\r\n(\'return for second copy\', \'#\') = (\'output second copy\', \'\', 1)\r\n(\'output second copy\',\\segments ) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Total reduplication if monosyllabic\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 read first syllable\r\n3 word is polysyllabic so returning\r\n4 output first and only copy\r\n5 word is monosyllabic so returning\r\n6 output first copy\r\n7 return for second copy\r\n8 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,5,,-1\r\n2,.,3,,-1\r\n2,`a,2,,1\r\n2,`a:,2,,1\r\n2,`e,2,,1\r\n2,`e:,2,,1\r\n2,`i,2,,1\r\n2,`i:,2,,1\r\n2,`o,2,,1\r\n2,`o:,2,,1\r\n2,`u,2,,1\r\n2,`u:,2,,1\r\n2,`y,2,,1\r\n2,`y:,2,,1\r\n2,a,2,,1\r\n2,a:,2,,1\r\n2,b,2,,1\r\n2,c,2,,1\r\n2,d,2,,1\r\n2,e,2,,1\r\n2,e:,2,,1\r\n2,f,2,,1\r\n2,g,2,,1\r\n2,h,2,,1\r\n2,i,2,,1\r\n2,i:,2,,1\r\n2,j,2,,1\r\n2,k,2,,1\r\n2,l,2,,1\r\n2,m,2,,1\r\n2,n,2,,1\r\n2,o,2,,1\r\n2,o:,2,,1\r\n2,p,2,,1\r\n2,q,2,,1\r\n2,r,2,,1\r\n2,s,2,,1\r\n2,t,2,,1\r\n2,u,2,,1\r\n2,u:,2,,1\r\n2,v,2,,1\r\n2,w,2,,1\r\n2,x,2,,1\r\n2,y,2,,1\r\n2,y:,2,,1\r\n2,z,2,,1\r\n3,#,4,,1\r\n3,+,3,,-1\r\n3,.,3,,-1\r\n3,`a,3,,-1\r\n3,`a:,3,,-1\r\n3,`e,3,,-1\r\n3,`e:,3,,-1\r\n3,`i,3,,-1\r\n3,`i:,3,,-1\r\n3,`o,3,,-1\r\n3,`o:,3,,-1\r\n3,`u,3,,-1\r\n3,`u:,3,,-1\r\n3,`y,3,,-1\r\n3,`y:,3,,-1\r\n3,a,3,,-1\r\n3,a:,3,,-1\r\n3,b,3,,-1\r\n3,c,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,e:,3,,-1\r\n3,f,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,i:,3,,-1\r\n3,j,3,,-1\r\n3,k,3,,-1\r\n3,l,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,o:,3,,-1\r\n3,p,3,,-1\r\n3,q,3,,-1\r\n3,r,3,,-1\r\n3,s,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,u:,3,,-1\r\n3,v,3,,-1\r\n3,w,3,,-1\r\n3,x,3,,-1\r\n3,y,3,,-1\r\n3,y:,3,,-1\r\n3,z,3,,-1\r\n4,%,1,,1\r\n4,+,4,+,1\r\n4,.,4,.,1\r\n4,`a,4,`a,1\r\n4,`a:,4,`a:,1\r\n4,`e,4,`e,1\r\n4,`e:,4,`e:,1\r\n4,`i,4,`i,1\r\n4,`i:,4,`i:,1\r\n4,`o,4,`o,1\r\n4,`o:,4,`o:,1\r\n4,`u,4,`u,1\r\n4,`u:,4,`u:,1\r\n4,`y,4,`y,1\r\n4,`y:,4,`y:,1\r\n4,a,4,a,1\r\n4,a:,4,a:,1\r\n4,b,4,b,1\r\n4,c,4,c,1\r\n4,d,4,d,1\r\n4,e,4,e,1\r\n4,e:,4,e:,1\r\n4,f,4,f,1\r\n4,g,4,g,1\r\n4,h,4,h,1\r\n4,i,4,i,1\r\n4,i:,4,i:,1\r\n4,j,4,j,1\r\n4,k,4,k,1\r\n4,l,4,l,1\r\n4,m,4,m,1\r\n4,n,4,n,1\r\n4,o,4,o,1\r\n4,o:,4,o:,1\r\n4,p,4,p,1\r\n4,q,4,q,1\r\n4,r,4,r,1\r\n4,s,4,s,1\r\n4,t,4,t,1\r\n4,u,4,u,1\r\n4,u:,4,u:,1\r\n4,v,4,v,1\r\n4,w,4,w,1\r\n4,x,4,x,1\r\n4,y,4,y,1\r\n4,y:,4,y:,1\r\n4,z,4,z,1\r\n5,#,6,,1\r\n5,`a,5,,-1\r\n5,`a:,5,,-1\r\n5,`e,5,,-1\r\n5,`e:,5,,-1\r\n5,`i,5,,-1\r\n5,`i:,5,,-1\r\n5,`o,5,,-1\r\n5,`o:,5,,-1\r\n5,`u,5,,-1\r\n5,`u:,5,,-1\r\n5,`y,5,,-1\r\n5,`y:,5,,-1\r\n5,a,5,,-1\r\n5,a:,5,,-1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,e:,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,i:,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,o:,5,,-1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,u:,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,5,,-1\r\n5,y:,5,,-1\r\n5,z,5,,-1\r\n6,%,7,~,-1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n7,#,8,,1\r\n7,`a,7,,-1\r\n7,`a:,7,,-1\r\n7,`e,7,,-1\r\n7,`e:,7,,-1\r\n7,`i,7,,-1\r\n7,`i:,7,,-1\r\n7,`o,7,,-1\r\n7,`o:,7,,-1\r\n7,`u,7,,-1\r\n7,`u:,7,,-1\r\n7,`y,7,,-1\r\n7,`y:,7,,-1\r\n7,a,7,,-1\r\n7,a:,7,,-1\r\n7,b,7,,-1\r\n7,c,7,,-1\r\n7,d,7,,-1\r\n7,e,7,,-1\r\n7,e:,7,,-1\r\n7,f,7,,-1\r\n7,g,7,,-1\r\n7,h,7,,-1\r\n7,i,7,,-1\r\n7,i:,7,,-1\r\n7,j,7,,-1\r\n7,k,7,,-1\r\n7,l,7,,-1\r\n7,m,7,,-1\r\n7,n,7,,-1\r\n7,o,7,,-1\r\n7,o:,7,,-1\r\n7,p,7,,-1\r\n7,q,7,,-1\r\n7,r,7,,-1\r\n7,s,7,,-1\r\n7,t,7,,-1\r\n7,u,7,,-1\r\n7,u:,7,,-1\r\n7,v,7,,-1\r\n7,w,7,,-1\r\n7,x,7,,-1\r\n7,y,7,,-1\r\n7,y:,7,,-1\r\n7,z,7,,-1\r\n8,%,1,,1\r\n8,`a,8,`a,1\r\n8,`a:,8,`a:,1\r\n8,`e,8,`e,1\r\n8,`e:,8,`e:,1\r\n8,`i,8,`i,1\r\n8,`i:,8,`i:,1\r\n8,`o,8,`o,1\r\n8,`o:,8,`o:,1\r\n8,`u,8,`u,1\r\n8,`u:,8,`u:,1\r\n8,`y,8,`y,1\r\n8,`y:,8,`y:,1\r\n8,a,8,a,1\r\n8,a:,8,a:,1\r\n8,b,8,b,1\r\n8,c,8,c,1\r\n8,d,8,d,1\r\n8,e,8,e,1\r\n8,e:,8,e:,1\r\n8,f,8,f,1\r\n8,g,8,g,1\r\n8,h,8,h,1\r\n8,i,8,i,1\r\n8,i:,8,i:,1\r\n8,j,8,j,1\r\n8,k,8,k,1\r\n8,l,8,l,1\r\n8,m,8,m,1\r\n8,n,8,n,1\r\n8,o,8,o,1\r\n8,o:,8,o:,1\r\n8,p,8,p,1\r\n8,q,8,q,1\r\n8,r,8,r,1\r\n8,s,8,s,1\r\n8,t,8,t,1\r\n8,u,8,u,1\r\n8,u:,8,u:,1\r\n8,v,8,v,1\r\n8,w,8,w,1\r\n8,x,8,x,1\r\n8,y,8,y,1\r\n8,y:,8,y:,1\r\n8,z,8,z,1\r\n'),
('Total - X-meN-X Indonesian nasal coalescence', '| Input | Output |\r\n|--------|-------------------|\r\n| pukul | pukul-mə-mukul |\r\n| tari | tari-mə-nari |\r\n| hormat | hormat-məŋ-hormat |', 'Input=#X%\r\nOutput=#Xməŋ-X%\r\nWhen the prefix /məŋ/ is added between the two copies. The the initial consonant (if any) of the second copy coalesces with the prefix\'s /ŋ/ and becomes a nasal. Overapplication does not apply\r\nNote that [h] and vowels do not undergo nasal coalescence. The prefix surfaces with a default velar nasal in such a case', 'FST: The FST assumes B,D,G stand for bilabials, alveolars, and velars.\r\n\r\n\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%states q1-2 putput the first copy and go back\r\n\\node[state] (q1) [right of= q0] {$q_{1}$};\r\n\\node[state] (q2) [right of= q1] {$q_{2}$};\r\n%states q2 and up output the prefix and the second copy with correct initial C\r\n\\node[state] (q3) [below of= q1] {$q_{3}$};\r\n\\node[state] (q4) [right of= q3] {$q_{4}$};\r\n\\node[state,accepting] (q5) [right of= q4] {$q_{5}$};\r\n\r\n\r\n\r\n\\path\r\n\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\epsilon$,-1)} (q2)\r\n(q2) edge[loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q2)\r\n(q2) edge node[left] {(\\#,$\\sim$m\\textipa{@},+1)} (q3)\r\n(q3) edge[bend right=60] node[left] {(\\{B,D,G\\},\\{-m,-n,-\\textipa{N}\\},+1)} (q4)\r\n(q3) edge node[below] {(\\{V,h\\},\\textipa{N}-\\{V,h\\},+1)} (q4)\r\n(q4) edge[loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q4)\r\n(q4) edge node {(\\%,$\\epsilon$,+1)} (q5)\r\n\r\n\r\n;\r\n\\end{tikzpicture}', 1, '#Total reduplication X-men-X in Indonesian with nasal coalescence \r\n#In Indonesian, the input is reduplicated and an affix /məŋ/. is inserted between the two copies\r\n#The affix\'s final nasal will trigger nasal coalescence with the initial consonant in the second copy\r\n#The nasal-consonant sequence coalesces into a single nasal with the place of articulation of the consonant\r\n#Vowels and [h] do not undergo nasal coalescence; in this context the affix\'s nasal surfaces as [ŋ]\r\n#e.g. pata --> pata~pata\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = user\r\n\r\nalphabet = [\'p\',\'b\',\'m\', \'t\',\'d\',\'n\', \'k\',\'g\',\'ŋ\',\'h\',\'a\',\'e\',\'i\',\'u\',\'o\',\'ə\']\r\n\r\nsubalphabets=4\r\nlabials= [\'p\',\'b\',\'m\']\r\nalveolars= [\'t\',\'d\',\'n\']\r\nvelars= [\'k\',\'g\',\'ŋ\']\r\nvowels=[\'a\',\'e\',\'i\',\'u\',\'o\',\'ə\']\r\n\r\nfunctions = 1\r\nnasalize = { (\'p\',\'m\'),(\'b\',\'m\'), (\'m\',\'m\'),(\'t\',\'n\'),(\'d\',\'n\'), (\'n\',\'n\'),(\'k\',\'ŋ\'),(\'g\',\'ŋ\'), (\'ŋ\',\'ŋ\') }\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'add affix\',\'output second copy\', \'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\' ) = (\'output first copy\', \'\', 1)\r\n(\'output first copy\' ,\\alphabet) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'\', -1)\r\n(\'return\', \\alphabet) = (\'return\', \'\', -1)\r\n(\'return\', \'#\') = (\'add affix\',\'~mə\',1)\r\n(\'add affix\', \\labials) = (\'output second copy\', [\'-\' \\nasalize ],1)\r\n(\'add affix\', \\alveolars) = (\'output second copy\', [\'-\' \\nasalize],1)\r\n(\'add affix\', \\velars) = (\'output second copy\', [\'-\' \\nasalize],1)\r\n(\'add affix\', \\vowels) = (\'output second copy\', [\'ŋ-\' \\ID ], 1)\r\n(\'add affix\', \'h\') = (\'output second copy\', [ \'ŋ-\' \\ID], 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1) ', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Total reduplication X-men-X in Indonesian with nasal coalescence\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 add affix\r\n5 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,,-1\r\n2,a,2,a,1\r\n2,b,2,b,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,k,2,k,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,p,2,p,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,ŋ,2,ŋ,1\r\n2,ə,2,ə,1\r\n3,#,4,~mə,1\r\n3,a,3,,-1\r\n3,b,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,k,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,p,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,ŋ,3,,-1\r\n3,ə,3,,-1\r\n4,a,5,ŋ-a,1\r\n4,b,5,-m,1\r\n4,d,5,-n,1\r\n4,e,5,ŋ-e,1\r\n4,g,5,-ŋ,1\r\n4,h,5,ŋ-h,1\r\n4,i,5,ŋ-i,1\r\n4,k,5,-ŋ,1\r\n4,m,5,-m,1\r\n4,n,5,-n,1\r\n4,o,5,ŋ-o,1\r\n4,p,5,-m,1\r\n4,t,5,-n,1\r\n4,u,5,ŋ-u,1\r\n4,ŋ,5,-ŋ,1\r\n4,ə,5,ŋ-ə,1\r\n5,%,1,,1\r\n5,a,5,a,1\r\n5,b,5,b,1\r\n5,d,5,d,1\r\n5,e,5,e,1\r\n5,g,5,g,1\r\n5,h,5,h,1\r\n5,i,5,i,1\r\n5,k,5,k,1\r\n5,m,5,m,1\r\n5,n,5,n,1\r\n5,o,5,o,1\r\n5,p,5,p,1\r\n5,t,5,t,1\r\n5,u,5,u,1\r\n5,ŋ,5,ŋ,1\r\n5,ə,5,ə,1\r\n'),
('Total reduplication - General', '| Input | Output |\r\n|-------|---------|\r\n| X | X-X |', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\nThe entire word is repeated. \r\n', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n% q2 outputs first copy\r\n\\node[state] (q2) [right of=q0] {$q_2$};\r\n%states q4-5 return to the beginning of X, output the 2ndcopy\r\n\\node[state] (q4) [below of=q2] {$q_4$};\r\n\\node[state] (q5) [left of=q4] {$q_5$};\r\n\r\n%states q6-8 output suffix and redundantly \r\n\\node[state,accepting] (q6) [below of=q5] {$q_6$};\r\n\\node[state] (q7) [right= of q6] {$q_7$};\r\n\\node[state,accepting] (q8) [right of=q7] {$q_8$};\r\n\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q2)\r\n\r\n(q2) edge [loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q2)\r\n\r\n(q2) edge node {(\\%,$\\epsilon$,-1)} (q4)\r\n\r\n(q4) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n\r\n(q4) edge node {(\\#,$\\epsilon$,+1)} (q5)\r\n(q5) edge [loop left] node[] {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n\r\n(q5) edge node {(\\%,$\\epsilon$,1)} (q6) \r\n\r\n;\r\n\\end{tikzpicture}', 0, '#Total reduplication\r\n#The input is reduplicated \r\n#e.g. pata --> pata~pata\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return\',\'output second copy\', \'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\',\'\', 1)\r\n(\'output first copy\', \\alphabet) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return\', \'~\', -1)\r\n(\'return\', \\alphabet) = (\'return\', \'\',-1)\r\n(\'return\', \'#\') = (\'output second copy\', \'\', 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'end\', \'\', 1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Total reduplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return\r\n4 output second copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,~,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,#,4,,1\r\n3,+,3,,-1\r\n3,.,3,,-1\r\n3,`a,3,,-1\r\n3,`a:,3,,-1\r\n3,`e,3,,-1\r\n3,`e:,3,,-1\r\n3,`i,3,,-1\r\n3,`i:,3,,-1\r\n3,`o,3,,-1\r\n3,`o:,3,,-1\r\n3,`u,3,,-1\r\n3,`u:,3,,-1\r\n3,`y,3,,-1\r\n3,`y:,3,,-1\r\n3,a,3,,-1\r\n3,a:,3,,-1\r\n3,b,3,,-1\r\n3,c,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,e:,3,,-1\r\n3,f,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,i:,3,,-1\r\n3,j,3,,-1\r\n3,k,3,,-1\r\n3,l,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,o:,3,,-1\r\n3,p,3,,-1\r\n3,q,3,,-1\r\n3,r,3,,-1\r\n3,s,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,u:,3,,-1\r\n3,v,3,,-1\r\n3,w,3,,-1\r\n3,x,3,,-1\r\n3,y,3,,-1\r\n3,y:,3,,-1\r\n3,z,3,,-1\r\n4,%,1,,1\r\n4,+,4,+,1\r\n4,.,4,.,1\r\n4,`a,4,`a,1\r\n4,`a:,4,`a:,1\r\n4,`e,4,`e,1\r\n4,`e:,4,`e:,1\r\n4,`i,4,`i,1\r\n4,`i:,4,`i:,1\r\n4,`o,4,`o,1\r\n4,`o:,4,`o:,1\r\n4,`u,4,`u,1\r\n4,`u:,4,`u:,1\r\n4,`y,4,`y,1\r\n4,`y:,4,`y:,1\r\n4,a,4,a,1\r\n4,a:,4,a:,1\r\n4,b,4,b,1\r\n4,c,4,c,1\r\n4,d,4,d,1\r\n4,e,4,e,1\r\n4,e:,4,e:,1\r\n4,f,4,f,1\r\n4,g,4,g,1\r\n4,h,4,h,1\r\n4,i,4,i,1\r\n4,i:,4,i:,1\r\n4,j,4,j,1\r\n4,k,4,k,1\r\n4,l,4,l,1\r\n4,m,4,m,1\r\n4,n,4,n,1\r\n4,o,4,o,1\r\n4,o:,4,o:,1\r\n4,p,4,p,1\r\n4,q,4,q,1\r\n4,r,4,r,1\r\n4,s,4,s,1\r\n4,t,4,t,1\r\n4,u,4,u,1\r\n4,u:,4,u:,1\r\n4,v,4,v,1\r\n4,w,4,w,1\r\n4,x,4,x,1\r\n4,y,4,y,1\r\n4,y:,4,y:,1\r\n4,z,4,z,1\r\n');
INSERT INTO `2-way FST` (`2-way FST ID`, `example data`, `description`, `FST diagram`, `language specific`, `FST recipe`, `FST code`) VALUES
('Triplication of entire base', '| Input | Output |\r\n|-------|-------------|\r\n| X | X-X-X |', 'Input=#X%\r\nOutput=#X\\~X\\~X%\r\nThe entire input is triplicated', '\\begin{tikzpicture}[->,>=stealth\',shorten >=1pt,auto,node distance=2.8cm,\r\nsemithick]\r\n\\tikzstyle{every state}=[fill=white,draw=black,text=black]\r\n\r\n\\node[initial,state] (q0) {$q_0$};\r\n%state q1 outputs the base\r\n\\node[state] (q1) [right of = q0] {$q_1$};\r\n%state q1-q3 go back to # and output the base again\r\n\\node[state] (q2) [right of = q1] {$q_2$};\r\n\\node[state] (q3) [below of = q1] {$q_3$};\r\n\r\n%state q4-q5-q6 go back to # and output the base again\r\n\\node[state] (q4) [ right of = q3] {$q_4$};\r\n\\node[state] (q5) [below of = q3] {$q_5$};\r\n\\node[state,accepting] (q6) [ right of = q5] {$q_6$};\r\n\r\n\r\n\\path\r\n(q0) edge node {(\\#,$\\epsilon$,+1)} (q1)\r\n(q1) edge [loop above] node {($\\Sigma$,$\\Sigma$,+1)} (q1)\r\n(q1) edge node {(\\%,$\\sim$,-1)} (q2)\r\n\r\n(q2) edge [loop above] node {($\\Sigma$,$\\epsilon$,-1)} (q2)\r\n(q2) edge node {(\\#,$\\epsilon$,+1)} (q3)\r\n(q3) edge [loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q3)\r\n(q3) edge node {(\\%,$\\sim$,-1)} (q4)\r\n\r\n(q4) edge [loop right] node {($\\Sigma$,$\\epsilon$,-1)} (q4)\r\n(q4) edge node {(\\#,$\\epsilon$,+1)} (q5)\r\n(q5) edge [loop left] node {($\\Sigma$,$\\Sigma$,+1)} (q5)\r\n(q5) edge node[below] {(\\%,$\\epsilon$,+1)} (q6)\r\n\r\n\r\n\r\n;\r\n\\end{tikzpicture}\r\n\r\n', 0, '#Triplication\r\n#The input is duplicated three times \r\n#e.g. pata --> pata~pata~pata\r\n#alphabet type = char\r\n\r\nwhat type of alphabet will you use = keyboard ipa\r\n\r\nfunctions = 0\r\n\r\n#states type = string\r\nstates = [\'start\',\'output first copy\',\'return once\',\'output second copy\',\'return twice\', \'output third copy\', \'end\'] \r\ninitial states = [ \'start\' ] \r\ninitial value = \'\'\r\nfinal states = [ \'end\' ] \r\n\r\n(\'start\', \'#\') = (\'output first copy\',\'\', 1)\r\n(\'output first copy\', \\alphabet) = (\'output first copy\', \\ID, 1)\r\n(\'output first copy\', \'%\') = (\'return once\', \'~\', -1)\r\n(\'return once\', \\alphabet) = (\'return once\', \'\',-1)\r\n(\'return once\', \'#\') = (\'output second copy\', \'\', 1)\r\n(\'output second copy\', \\alphabet) = (\'output second copy\', \\ID, 1)\r\n(\'output second copy\', \'%\') = (\'return twice\', \'~\',-1)\r\n(\'return twice\', \\alphabet) = (\'return twice\', \'\', -1)\r\n(\'return twice\', \'#\') = (\'output third copy\', \'\',1)\r\n(\'output third copy\', \\alphabet) = (\'output third copy\', \\ID, 1)\r\n(\'output third copy\', \'%\') = (\'end\', \'\', 1)', '\"\"\"This is the list of transitions arcs for the 2-way FST that implements the following FST recipe:\r\n Triplication\r\nThe states in our FST recipe were written as strings.\r\nThese get mapped to the following natural numbers:\r\n0 start\r\n1 end\r\n2 output first copy\r\n3 return once\r\n4 output second copy\r\n5 return twice\r\n6 output third copy\r\nThe initial states are:\r\n0 start\r\nThe final states are:\r\n1 end\r\n\r\n\"\"\"\r\n\r\n0,#,2,,1\r\n2,%,3,~,-1\r\n2,+,2,+,1\r\n2,.,2,.,1\r\n2,`a,2,`a,1\r\n2,`a:,2,`a:,1\r\n2,`e,2,`e,1\r\n2,`e:,2,`e:,1\r\n2,`i,2,`i,1\r\n2,`i:,2,`i:,1\r\n2,`o,2,`o,1\r\n2,`o:,2,`o:,1\r\n2,`u,2,`u,1\r\n2,`u:,2,`u:,1\r\n2,`y,2,`y,1\r\n2,`y:,2,`y:,1\r\n2,a,2,a,1\r\n2,a:,2,a:,1\r\n2,b,2,b,1\r\n2,c,2,c,1\r\n2,d,2,d,1\r\n2,e,2,e,1\r\n2,e:,2,e:,1\r\n2,f,2,f,1\r\n2,g,2,g,1\r\n2,h,2,h,1\r\n2,i,2,i,1\r\n2,i:,2,i:,1\r\n2,j,2,j,1\r\n2,k,2,k,1\r\n2,l,2,l,1\r\n2,m,2,m,1\r\n2,n,2,n,1\r\n2,o,2,o,1\r\n2,o:,2,o:,1\r\n2,p,2,p,1\r\n2,q,2,q,1\r\n2,r,2,r,1\r\n2,s,2,s,1\r\n2,t,2,t,1\r\n2,u,2,u,1\r\n2,u:,2,u:,1\r\n2,v,2,v,1\r\n2,w,2,w,1\r\n2,x,2,x,1\r\n2,y,2,y,1\r\n2,y:,2,y:,1\r\n2,z,2,z,1\r\n3,#,4,,1\r\n3,+,3,,-1\r\n3,.,3,,-1\r\n3,`a,3,,-1\r\n3,`a:,3,,-1\r\n3,`e,3,,-1\r\n3,`e:,3,,-1\r\n3,`i,3,,-1\r\n3,`i:,3,,-1\r\n3,`o,3,,-1\r\n3,`o:,3,,-1\r\n3,`u,3,,-1\r\n3,`u:,3,,-1\r\n3,`y,3,,-1\r\n3,`y:,3,,-1\r\n3,a,3,,-1\r\n3,a:,3,,-1\r\n3,b,3,,-1\r\n3,c,3,,-1\r\n3,d,3,,-1\r\n3,e,3,,-1\r\n3,e:,3,,-1\r\n3,f,3,,-1\r\n3,g,3,,-1\r\n3,h,3,,-1\r\n3,i,3,,-1\r\n3,i:,3,,-1\r\n3,j,3,,-1\r\n3,k,3,,-1\r\n3,l,3,,-1\r\n3,m,3,,-1\r\n3,n,3,,-1\r\n3,o,3,,-1\r\n3,o:,3,,-1\r\n3,p,3,,-1\r\n3,q,3,,-1\r\n3,r,3,,-1\r\n3,s,3,,-1\r\n3,t,3,,-1\r\n3,u,3,,-1\r\n3,u:,3,,-1\r\n3,v,3,,-1\r\n3,w,3,,-1\r\n3,x,3,,-1\r\n3,y,3,,-1\r\n3,y:,3,,-1\r\n3,z,3,,-1\r\n4,%,5,~,-1\r\n4,+,4,+,1\r\n4,.,4,.,1\r\n4,`a,4,`a,1\r\n4,`a:,4,`a:,1\r\n4,`e,4,`e,1\r\n4,`e:,4,`e:,1\r\n4,`i,4,`i,1\r\n4,`i:,4,`i:,1\r\n4,`o,4,`o,1\r\n4,`o:,4,`o:,1\r\n4,`u,4,`u,1\r\n4,`u:,4,`u:,1\r\n4,`y,4,`y,1\r\n4,`y:,4,`y:,1\r\n4,a,4,a,1\r\n4,a:,4,a:,1\r\n4,b,4,b,1\r\n4,c,4,c,1\r\n4,d,4,d,1\r\n4,e,4,e,1\r\n4,e:,4,e:,1\r\n4,f,4,f,1\r\n4,g,4,g,1\r\n4,h,4,h,1\r\n4,i,4,i,1\r\n4,i:,4,i:,1\r\n4,j,4,j,1\r\n4,k,4,k,1\r\n4,l,4,l,1\r\n4,m,4,m,1\r\n4,n,4,n,1\r\n4,o,4,o,1\r\n4,o:,4,o:,1\r\n4,p,4,p,1\r\n4,q,4,q,1\r\n4,r,4,r,1\r\n4,s,4,s,1\r\n4,t,4,t,1\r\n4,u,4,u,1\r\n4,u:,4,u:,1\r\n4,v,4,v,1\r\n4,w,4,w,1\r\n4,x,4,x,1\r\n4,y,4,y,1\r\n4,y:,4,y:,1\r\n4,z,4,z,1\r\n5,#,6,,1\r\n5,+,5,,-1\r\n5,.,5,,-1\r\n5,`a,5,,-1\r\n5,`a:,5,,-1\r\n5,`e,5,,-1\r\n5,`e:,5,,-1\r\n5,`i,5,,-1\r\n5,`i:,5,,-1\r\n5,`o,5,,-1\r\n5,`o:,5,,-1\r\n5,`u,5,,-1\r\n5,`u:,5,,-1\r\n5,`y,5,,-1\r\n5,`y:,5,,-1\r\n5,a,5,,-1\r\n5,a:,5,,-1\r\n5,b,5,,-1\r\n5,c,5,,-1\r\n5,d,5,,-1\r\n5,e,5,,-1\r\n5,e:,5,,-1\r\n5,f,5,,-1\r\n5,g,5,,-1\r\n5,h,5,,-1\r\n5,i,5,,-1\r\n5,i:,5,,-1\r\n5,j,5,,-1\r\n5,k,5,,-1\r\n5,l,5,,-1\r\n5,m,5,,-1\r\n5,n,5,,-1\r\n5,o,5,,-1\r\n5,o:,5,,-1\r\n5,p,5,,-1\r\n5,q,5,,-1\r\n5,r,5,,-1\r\n5,s,5,,-1\r\n5,t,5,,-1\r\n5,u,5,,-1\r\n5,u:,5,,-1\r\n5,v,5,,-1\r\n5,w,5,,-1\r\n5,x,5,,-1\r\n5,y,5,,-1\r\n5,y:,5,,-1\r\n5,z,5,,-1\r\n6,%,1,,1\r\n6,+,6,+,1\r\n6,.,6,.,1\r\n6,`a,6,`a,1\r\n6,`a:,6,`a:,1\r\n6,`e,6,`e,1\r\n6,`e:,6,`e:,1\r\n6,`i,6,`i,1\r\n6,`i:,6,`i:,1\r\n6,`o,6,`o,1\r\n6,`o:,6,`o:,1\r\n6,`u,6,`u,1\r\n6,`u:,6,`u:,1\r\n6,`y,6,`y,1\r\n6,`y:,6,`y:,1\r\n6,a,6,a,1\r\n6,a:,6,a:,1\r\n6,b,6,b,1\r\n6,c,6,c,1\r\n6,d,6,d,1\r\n6,e,6,e,1\r\n6,e:,6,e:,1\r\n6,f,6,f,1\r\n6,g,6,g,1\r\n6,h,6,h,1\r\n6,i,6,i,1\r\n6,i:,6,i:,1\r\n6,j,6,j,1\r\n6,k,6,k,1\r\n6,l,6,l,1\r\n6,m,6,m,1\r\n6,n,6,n,1\r\n6,o,6,o,1\r\n6,o:,6,o:,1\r\n6,p,6,p,1\r\n6,q,6,q,1\r\n6,r,6,r,1\r\n6,s,6,s,1\r\n6,t,6,t,1\r\n6,u,6,u,1\r\n6,u:,6,u:,1\r\n6,v,6,v,1\r\n6,w,6,w,1\r\n6,x,6,x,1\r\n6,y,6,y,1\r\n6,y:,6,y:,1\r\n6,z,6,z,1\r\n');
-- --------------------------------------------------------
--
-- Table structure for table `matches`
--
CREATE TABLE `matches` (
`morpheme ID` varchar(200) NOT NULL COMMENT 'Foreign key that references the morpheme ID of the morpheme relation.',
`2-way FST ID` varchar(200) NOT NULL COMMENT 'Foreign key that references the 2-way FST ID of the 2-way FST relation.'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `matches`
--
INSERT INTO `matches` (`morpheme ID`, `2-way FST ID`) VALUES
('Agta-DIM-InitialC', 'Initial C - General with an affix'),
('Agta-PL-InitialCVC', 'Initial CVC - Onsetless vowels are okay'),
('aka-unclear-InitialCV', 'Initial CV - Akan palatalization'),
('Amele-ITER-Total', 'Total - Iterative AABB '),
('AoNaga-DISTR-FinalCVC', 'Final CVC - General reduplication '),
('ara-INT-FirstCafterSecondC', 'First C after Second C - Levantine Arabic & Zuni'),
('arm-ECHO-Echo', 'Echo - Initial C* is replaced '),
('Arrente-INSTR-FinalCV', 'Final CV - General reduplication'),
('Aztek-PROG-InitialCVC', 'Initial CVC - General'),
('Aztek-xbyx-InitialCV', 'Initial CV - Repair VX via C skipping'),
('Balangao-unclear-InitialCVCV', 'Initial CVCV - medial codas are okay'),
('bik-IMPF-InitialCV', 'Initial CV - Repair onset cluster by producing 1st'),
('bkl-polysemous-Initial C', 'Initial C - General with an affix'),
('bkl-unclear3-InitialCV', 'Initial CV - maN-CV~CV-X Tagalog nasal coalescence'),
('BoumaaFijian-INT-Total', 'Total - Iterative AABB '),
('cha-CONT-Stressed', 'Internal - Stressed CV Syllable + onsetless okay'),
('cha-INT-FinalCV', 'Final CV - final coda skiped + RED inside base'),
('chi-every-Total', 'Total - Only monosyllables'),
('chi-INT?-Total', 'Total - Iterative AABB '),
('Chinanteco-PLPoss-FinalC', 'Final C - General '),
('Chuckchee/Koryak-ABS-NonlocalInitialCVC', 'Non-local Initial CVC - General'),
('Chumash-unclear-InitialCVC', 'Initial CVC - Chumash minimality-induced prefix incorporation'),
('dak-VRBZ-FinalCVC', 'Final CVC - complex onsets & codaless vowels are okay'),
('Dholuo-mitigation-Total', 'Total reduplication - General'),
('Dyirbal-moreX-InitialCVCV', 'Initial CVCV - General'),
('Dyirbal-PL-Total', 'Total reduplication - General'),
('Dyirbal-RECP-Total', 'Total reduplication - General'),
('Dyirbal-unclear-InitialCVCV', 'Initial CVCV - medial codas are okay'),
('Emai-ADVZ-Triplication', 'Triplication of entire base'),
('eng-derisive-Echo', 'Echo - Initial C* is replaced '),
('ewe-CONT/NMNZ?-InitialCV', 'Initial CV - Repair onset cluster by producing 1st'),
('ewe-XbyX-Total', 'Total reduplication - General'),
('Fox-CONT?-InitialCVCV', 'Initial CVCV - General'),
('grc-PERF-InitialCV', 'Initial CV - Attic Greek sonority-sensitive cluster repair'),
('hau-INT/PLUR-InitialCV', 'Initial CV - General reduplication '),
('hau-PL-FinalCV', 'Final CV - General reduplication'),
('Hiaki-HAB-InitialCV', 'Final CV - General reduplication'),
('hin-ECHO-Echo', 'Echo - Initial C* is replaced + dissimilation in case of homophony'),
('Hopi-unclear-FinalCV', 'Final CV - General reduplication'),
('hun-occassionally-Total', 'Total reduplication - General'),
('ilo-IMPF-InitialCVC', 'Initial CVC - General'),
('ilo-PL/PROG-InitialCVC', 'Initial CVC - Ilocano monosyllable + glottal stop repairs'),
('ind-INT/REP-Total', 'Total - men-X~X Indonesian nasal coalescence'),
('ind-PL-Total', 'Total reduplication - General'),
('ind-RECP-Total', 'Total - men-X~X Indonesian nasal coalescence'),
('Kaingang-PL-FinalCVC', 'Final CVC - complex onsets & codaless vowels are okay'),
('kan-ECHO-Echo', 'Echo - Initial C*V is replaced + length is maintained'),
('Kanuri-glossonym-Total', 'Total reduplication - General'),
('kas-ECHO-Echo', 'Echo - Initial C* is replaced + dissimilation in case of homophony'),
('Kinande-unclear-InitialCVCV', 'Initial CVCV - Kinande'),
('Kolami-ECHO-Echo', 'Echo - Initial C*V is replaced + length is maintained'),
('Kwaza-PROG?-FinalCV', 'Final CV - General reduplication'),
('LimosKalinga-ITER', 'Initial CVCV - General'),
('Lushootseed-DIM-InitialCV', 'Initial CV - General reduplication '),
('Lushootseed-DISTR-InitialCVC', 'Initial CVC - General'),
('Lushootseed-OutofControlEtc-InitialVC', 'Initial VC - General'),
('mah-ADJZ-InitialC', 'Initial C - General with an affix'),
('mah-VBZ-FinalCVC', 'Final CVC - General reduplication '),
('Makassarese-unclear-InitialCVCV', 'Initial CVCV - Makassarese morpheme integrity of up until two syllables else extra coded added'),
('Manam-polysemous-FinalFoot', 'Final CV - final coda skiped + RED inside base'),
('Mangarayi-PL/INT-InitialVC', 'Initial VC - VCC* copied'),
('may-similar-Total', 'Total reduplication - General'),
('may-unclear-Total', 'Total - Malay nasal spread'),
('Mokilese-CONT-Triplication', 'Triplication of entire base'),
('Mokilese-NMNZ-FinalCVC', 'Final CVC - If no coda then add C between copies'),
('Mokilese-PROG-InitialCVC', 'Initial CVC - Mokilese mora minimality + gemination/lengthening'),
('Mokilese-PROG-Total', 'Total reduplication - General'),
('Mokilese-unclear-InitialCVC', 'Initial CVC - codaless V is okay'),
('Mokilese-VRBZ-FinalCVC', 'Final CVC - General reduplication '),
('mus-PL-NonlocalInitialCV', 'Non-local Initial CV - placed before final C'),
('Nakanai-unclear-InternalBeforeFinalFoot', 'Internal - RED before final foot Nakanai'),
('NezPerce-DIM-Total', 'Total reduplication - General'),
('Ngiyambaa-unclear-InitialCVCV', 'Initial CVCV - General'),
('Nitinaht-resemble-InitialCV', 'Initial CV - General reduplication '),
('Nupe-unclear-Initial C', 'Initial C - General with an affix'),
('Oykangand-unclear-InitialCVC', 'Initial CVC - complex codas & onsetless vowels are okay + syllable boundaries are ignored'),
('Pacoh-denominal verbalization-Initial C', 'Initial C - General with an affix'),
('Pacoh-DISTR-FinalCVC', 'Final CVC - General reduplication '),
('Pacoh-RECP-Total', 'Total reduplication - General'),
('Papago-PL-InitialCV', 'Initial CV - Vowel lengthening in RED'),
('Paumari-unclear-FinalCVCV', 'Final CVCV - General'),
('Pima-PL-Initial CV', 'Initial CV - Iterative AABB '),
('Quileute-FREQ/DISTR-FirstCafterFirstV', 'First C after First V - Quileute'),
('Quileute-PL-InitialCV', 'Initial CV - Repair VX via C skipping'),
('Rotuman-CONT,FREQ,HAB?-InitialCV', 'Initial CV - General reduplication '),
('Samala/Chumash-REP-InitialCVC', 'Initial CVC - General'),
('Semai-unclearFirstLastC', 'First-Last C - General'),
('Shilh-PROG-InitialC', 'Initial C - General with an affix'),
('Shipibo-CONT-Triplication', 'Triplication of entire base'),
('Shuswap-DIM-InternalStressedSyllable', 'Internal - Stressed CV Syllable + Stem vowel deletion '),
('Siriono-CONT-FinalCVCV', 'Final CVCV - General'),
('smo-PL-PenultimateCV', 'Penultimate CV - General and onsetless syllables allowed'),
('som-PL-InitialCVC', 'Initial CVC - General'),
('som-toXAtAllSides-Total', 'Total reduplication - General'),
('SouthernPaiute-unclear-InitialCVC', 'Initial CVC - only copy coda if it\'s a nasal'),
('sun-CONT-InitialCV', 'Initial CV - General reduplication '),
('sun-INT-Total', 'Total reduplication - General'),
('sun-notEvenX-Total', 'Total reduplication - General'),
('sun-pretend-InitialCV', 'Initial CV - General reduplication '),
('sun-RECP-Total', 'Total reduplication - General'),
('sun-transitivize-InitialCV', 'Initial CV - General reduplication '),
('swa-DIM-Total', 'Total reduplication - General'),
('tam-ECHO-Echo', 'Echo - Initial C*V is replaced + length is maintained'),
('Tausug-unclear-Total', 'Total reduplication - General'),
('tel-emphasis?-Triplication', 'Triplication of entire base'),
('Temiar-ACT/CONT-FirstLastC', 'First-Last C - Temiar cluster repair'),
('tgl-DIM-FinalCVCV', 'Final CVCV - Final codas are okay'),
('tgl-everyX-Total', 'Total reduplication - General'),
('tgl-IMPF-InitialCV', 'Initial CV - Vowel lengthening in RED'),
('tgl-NMNZ-InitialCV', 'Initial CV - General reduplication '),
('tgl-unclear-InitialCV', 'Initial CV - Repair onset cluster by producing 1st'),
('tgl-unclear-InitialCVCV', 'Initial CVCV - Tagalog morpheme integrity of up until two syllables else base coda is added'),
('tgl-unclear2-InitialCV', 'Initial CV - General reduplication '),
('tgl-unclear3-InitialCV', 'Initial CV - maN-CV~CV-X Tagalog nasal coalescence'),
('tha-DIM-Total', 'Total reduplication - General'),
('tha-INT-Total', 'Total reduplication - General'),
('Thao-INT-FinalCVCV', 'Final CVCV - Thao [(CC+CVC)V](C) pattern'),
('Thompson-DIM-InternalStressedSyllable', 'Internal - Stressed CV Syllable + Stem vowel deletion '),
('TohonoOodham-PL-InitialCV', 'Initial CV - Repair onset cluster with pre-V C inside base'),
('tsi-unclear-InitialCV', 'Initial CV - General reduplication '),
('tur-ECHO-Echo', 'Echo - Initial C* is replaced '),
('Tuvan-ECHO-Echo', 'Echo - Initial C* is replaced '),
('twi-ADVZ-Triplication', 'Triplication of entire base'),
('twi-DenomADJZ-Total', 'Total reduplication - General'),
('tzeltal-CONT-Total', 'Total reduplication - General'),
('Tzeltal-DISTR-Total', 'Total reduplication - General'),
('Tzeltal-unclear-FinalVC', 'Final VC - General reduplication '),
('Tzeltal-veryMuch-Total', 'Total reduplication - General'),
('Warlpiri-unclear-InitialCVCV', 'Initial CVCV - Warlpiri copy until CV(C)CV or CVV'),
('was-PL-InitialVCV', 'Initial VCV - Washo + Inside Base + Coalescence'),
('Yakan-repeated/distributed-Initial C', 'Initial C - General with an affix'),
('Yami-RECP-Total', 'Total reduplication - General'),
('YessanMayo-DISTR-Total', 'Total reduplication - General'),
('yor-PL-Total', 'Total reduplication - General'),
('yor-polysemous-Initial C', 'Initial C - General with an affix'),
('zun-REP-FirstCafterSecondC', 'First C after Second C - Levantine Arabic & Zuni');
-- --------------------------------------------------------
--
-- Table structure for table `morphemes`
--
CREATE TABLE `morphemes` (
`morpheme ID` varchar(200) NOT NULL COMMENT 'The general format for a morpheme ID is ISO-FUNC-FORM where ISO is the ISO code for the morpheme''s language (or the full language name if their isn''t an ISO), FUNC is the semantic function of the morpheme based on the Leipzig glossing system (otherwise the full name if the glossing abbreviation can''t be found), and the general form of the reduplicative process that is part of this morpheme. This is the primary key for the morpheme entity. ',
`language` varchar(200) NOT NULL COMMENT 'Name of the language that has this morpheme.',
`function` varchar(200) NOT NULL COMMENT 'The semantic function of the reduplicative morpheme.',
`default form name` varchar(200) NOT NULL COMMENT 'Assuming that the reduplicative morpheme has a default shape, this has the general label for it, e.g. total reduplication, initial CV, etc.',
`sources` text NOT NULL COMMENT 'Bibliographic sources used.',
`description` text NOT NULL COMMENT ' Prosaic description of the data, patterns, and surface shapes of the morpheme. This is written in Markdown because of the use of variables and subscripts.',
`example data` text COMMENT 'Markdown code for a table with example inputs and outputs.',
`Ambiguity` text NOT NULL COMMENT 'Description of any ambiguities present in the description of this morpheme in the bibliographic references which we used.',
`Shows allomorphy?` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Specifies if the morpheme has multiple, diverse surface patterns or shapes (1) or if it has one basic shape (0).',
`Has segmentalism?` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Specifies if the morpheme includes any segmentalism or fixed segments (1), including both phonological fixed segments (epenthetic vowels) or morphological fixed segments (affixes like shm-), or none at all (0).',
`Deeply searched?` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'There are some patterns that we only analyzed with secondary sources such as surveys (not deeply, thus 0); while others we analyzed using primary sources such as in-depth theoretical treatments or descriptive grammars (deeply analyzed, thus 1).',
`possible vowel modifications?` varchar(200) NOT NULL COMMENT 'Some reduplicative process have the reduplicant vowel undergo various modifications: lengthening, shortening, diphthong reduction. This lists any vowel changes seen.',
`Morpho-phonological subconstituents involved` varchar(200) NOT NULL COMMENT 'Some reduplicative may target specific morphological/prosodic subconstituents, usually roots. This lists any such subconstituents involved, if any.',
`involves affixes?` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Some reduplicative processes are either caused by or accompanied by affixes (1), while some do not involve any affixes (0).',
`affix incorporation?` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Sometimes an affix not only triggers reduplication but it also undergoes it with the stem it attached to (1); otherwise (0).',
`Involves phonological processes?` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Sometimes a reduplicative process will involve a phonological process or opacity (1); some cases do not involve any interactions with phonology (0).',
`data too ambiguous?` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Sometimes the source was too vague to specify the reduplicative process so no 2-way FST is provided (1). Fortunately, most cases were sufficiently described (0). ',
`Miscellaneous` varchar(200) NOT NULL COMMENT 'Miscellaneous information about this reduplicative process.'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `morphemes`
--
INSERT INTO `morphemes` (`morpheme ID`, `language`, `function`, `default form name`, `sources`, `description`, `example data`, `Ambiguity`, `Shows allomorphy?`, `Has segmentalism?`, `Deeply searched?`, `possible vowel modifications?`, `Morpho-phonological subconstituents involved`, `involves affixes?`, `affix incorporation?`, `Involves phonological processes?`, `data too ambiguous?`, `Miscellaneous`) VALUES
('Agta-DIM-InitialC', 'Agta ', 'diminutive ', 'Initial C', ' (Moravcsik, 1978, p.314), (Mattes, 2007, p.136) who cite (Healey 1960: 6) ', 'Input=#C-X$ where X is any string of symbols\r\nOutput=#C-ala\\~C-X%\r\n\r\nThe word-initial C string is repeated. An infix [ala] is added between the copies. I assume that inputs start with C and there is no modification done on the reduplicant. \r\n', '', '', 0, 1, 0, '', '', 0, 0, 0, 0, ''),
('Agta-PL-InitialCVC', 'Agta', 'plural', 'Initial CVC', '(Moravcsik, 1978, p.311; Marantz 1982) who cites (Healey 1960: 6ff)\n(Inkelas and Downing, 2015a,p.502) who cites (Marantz 1982:439)\n\n\n\n', 'Two allomorphs\r\nInput=#B-X% where X is any string of symbols and B is either CVC or VC\r\nOutput=#B\\~B-X%\r\n\r\nThe word-initial CVC or VC string is repeated. Onsetless vowels are thus okay. I assume that inputs start with CVC and there is no modification done on the reduplicant. ', '| Input | Gloss | Output | Gloss |\r\n|-------|---------|-----------|----------|\r\n| takki | \"leg\" | tak-takki | \"legs\" |\r\n| uffu | \"thigh\" | uf-uffu | \"thighs\" |', 'It is unclear what would happen if a word starts with CC or VV, or if the word is just CV or V. \r\n', 1, 0, 0, '', 'targets root', 0, 0, 0, 0, ''),
('aka-unclear-InitialCV', 'Akan', 'unclear', 'Initial CV', '(Raimy, 2000b, p.549),Samuels (2010) who cite (McCarthy and Prince 1995, Schachter\r\nand Fromkin 1968)', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CI\\~CV-X% where I is an epenthetic vowel\r\n\r\nThe word-initial C is repeated. An epenthetic vowel I string is inserted. It is prespecified as [+high] but it receives its [front] and [round] features through harmony with the root.\r\n\r\nProcess: Outside of reduplication, dorsal segments /k, g, w, ŋ^w^/ palatalize when followed by a non-front vowel. When the word involves reduplication, the reduplicant\'s C will not palatalize from the reduplicant\'s [i] (underapply) unless the base\'s C is also followed by a non-front vowel. When the base\'s C fits the context for palatalization, the reduplicant\'s C will be allowed to palatalize. It is not clear if the initial C is actually a consonant cluster or a complex segment', '| Input | Output (without reduplication | Input | Output (with reduplication |\r\n|-------|-------------------------------|-------|----------------------------|\r\n| kɛ | tɕe | kaʔ | kɪkaʔ |\r\n| ge | dʝe | hawʔ | hɪ-hawʔ |\r\n| wi | ɥi | ge | dʝɪ-dʝe |\r\n| hi | çi | kwe | tçɥɪ-tçɥe |\r\n| ŋwĩn | ɲɥĩn | | |', '', 0, 1, 0, 'vowel epenthesis and harmony', '', 0, 0, 1, 0, 'underapplication'),
('Amele-ITER-Total', 'Amele', 'iterative', 'Total Reduplication', ' (Inkelas and Downing, 2015a, p.505) who cites (Roberts 1991:130–31)', 'Input=#A+B% where A and B are strings of segments, A is a stem, B is an object marker, and + is a morpheme boundary\r\nOutput=#A\\~A+B\\~B% or #A\\~A+B% or #A+B\\~B% \r\n\r\nEither both or one of the constituents is repeated. If there is no B, then only A is repeated.', '| Input | Gloss | Output | Gloss |\r\n|----------|-------------|-------------------|----------------------------|\r\n| qu | \"hit\" | qu-qu | \"hit (iterative)\" |\r\n| ji | \"eat\" | ji-ji | \"eat (iterative)\" |\r\n| budu | \"to thud\" | budu-budu-eʔ | \"to thud (iterative)\" |\r\n| g͜batan | \"split-INF\" | g͜batan-g͜batan-eʔ | \"split-INF (iterative)\" |\r\n| hawa-+u | \"split-INF\" | hawa-du-du | \"ignore-3S-3S (iterative)\" |\r\n| gobil+du | \"hit\" | bobil-du-du | \"stir-3S-3S (iterative)\" |\r\n| guduc+du | \"run\" | goduc-du-du | \"run-3S-3S (iterative)\" |\r\n| bala+du | \"tear\" | bala-bala-du-d-eʔ | \"tear-3S-INF (iterative)\" |', '', 0, 0, 0, '', 'targets two morphological constituents', 0, 0, 0, 0, 'iterative, nondeterminism'),
('AoNaga-DISTR-FinalCVC', 'Ao Naga', 'distributive', 'Final CVC', '(Rubino, 2005, p.21) who cites (Gowda 1975: 39)', 'Input=#X-CVC$ where X is any string of symbols\r\nOutput=#X-CVC\\~CVC%\r\n\r\nThe word-final CVC string is repeated. I assume that inputs ends with CVC and there is no modification done on the reduplicant. An affix may be added before, between, or after the copies', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('ara-INT-FirstCafterSecondC', 'Levantine Arabic', 'intensive', 'First C after Second C', 'Broselow & McCarthy, 1983, p.36) who cites (Cowell 1964)\r\n', 'Input=#C~1~VC~2~VC~3~% \r\nOutput=#C~1~VC~2~\\~C~1~-VC~3~%\r\n\r\nThe sources argue that the output is derived not directly from the roots but after a V template has already been inserted. \r\nNote that bi-consonantly superficially look different from tri-consonantal because form like [lafaf] alternate with [laff]', '| Input | Gloss | Output | Gloss |\r\n|-------|-------|----------|---------------------|\r\n| lafaf | ? | laf-l-af | \"wrapped intensely\" |\r\n| ħalal | ? | ħal-ħ-al | \"untied, undone\" |\r\n| faraħ | ? | far-f-aħ | \"rejoiced\" |\r\n| barad | ? | bar-b-ad | \"shave unevenly\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('arm-ECHO-Echo', 'Armenian', 'Echo', 'Echo', '(Inkelas and Downing, 2015a, p.510) who cites (Vaux 1998:246)', 'Input=#C\\*VX% where X is a string of segments\r\nOutput=#C\\*VX\\~m-VX%\r\nThe entire string is reduplicated except that the word-initial onset is overwritten by a morphologically-specified segment [m]. If the word doesn\'t start with an onset, [m] is still inserted.', '', '', 1, 1, 0, '', '', 1, 0, 0, 0, ''),
('Arrente-INSTR-FinalCV', 'Arrente ', 'INSTR', 'Final CV', '(Samuels, 2010, p.166) who who cites (Breen & Pensalfini 1999, Raimy 2006) ', '', NULL, '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Aztek-PROG-InitialCVC', 'Aztek', 'progressive?', 'Initial CVC', '(Moravcsik, 1978, p.308) who cites (Key 1965)', 'Input=#CVC-X% where X is any string of symbols\r\nOutput=#CVC\\~CVC-X%\r\n\r\nThe word-initial CV string is repeated. I assume that inputs start with CVC and there is no modification done on the reduplicant. ', '| Input | Gloss | Output | Gloss |\r\n|-------|--------------|-----------|--------------------|\r\n| woman | \"bark at\" | wom-woman | \"he is barking at\" |', 'It is unclear what would happen if a word starts with V or CC, or if the word is just CV. ', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Aztek-xbyx-InitialCV', 'Aztek', '\"X by X\"', 'Initial CV', '(Moravcsik, 1978, p.325) who cites (Elson and Pickett 1965: 46) \r\n\r\n', 'Two allomorphs for RED\r\nInput=#B-X% where X is a string of symbols and B is either initial CV or V \r\nOutput=#B-h\\~B-X%\r\n\r\nThe word-initial CV or V string is repeated. [h] is inserted between the reduplicant and base.', '| Input | Gloss | Output | Gloss |\r\n|--------|---------|-------------|-------------------------|\r\n| se | \"one\" | se-h-se | \"ones/one by one\" |\r\n| makwil | \"five\" | ma-h-makwil | \"fives/five by five\" |\r\n| ome | \"two\" | o-h-ome | \"twos/two by two\" |\r\n| eyi | \"three\" | e-h-eyi | \"threes/three by three\" |', 'It is unclear what would happen if a word starts with CC or VV. ', 1, 1, 0, '', '', 0, 0, 0, 0, ''),
('Balangao-unclear-InitialCVCV', 'Balangao', 'unclear', 'Initial CVCV', '(Raimy, 2000a, p.142) who cites (McCarthy and Prince 1994b)', 'Two allomorphs\r\nInput=#B-X$ where X is any string of symbols and B is CVCV or CVCC\\*V\r\nOutput=#B\\~B-X%\r\n\r\nThe word-initial CVCC\\*V string is repeated. Thus medial codas in the reduplicant are okay. I assume that inputs start with CVCC\\*V and there is no modification done on the reduplicant. ', '| Input | Gloss | Output | Gloss |\r\n|---------|-------|-----------------|--------------------------------|\r\n| taynam | ? | ma-tayna-taynan | \"repeatedly be left behind\" |\r\n| ʔabulot | ? | ka-ʔabu-ʔabulot | \"believers of just everything\" |', '', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('bik-IMPF-InitialCV', 'Bikol ', 'INPF', 'Initial CV', '(Mattes, 2007, p.81-82,92-3)\r\n\r\n', 'Two allomorphs for RED\r\nInput=#C~1~C\\*V-X% where X is a string of symbols\r\nOutput=#C~1~V\\~C~1~C\\*V-X%\r\nThe word-initial CC*V is reduplicated such that non-initial Cs are skipped in the reduplicated. An onset cluster is repaired in this way\r\n\r\nRED targets the root. But some speakers allow it to target prefix+root. There is variability across speakers. For bisyllabic prefixes, some speakers reduplicative either the initial-CV of the root, or the 2nd syllable of the prefix. For monosyllabic prefixes, some repeat the initial-CV of either the root or the prefix. Similar variation is described in Tagalog', NULL, '', 1, 0, 0, 'diphthong reduction', 'Targets the root, sometimes prefix', 0, 0, 0, 0, 'nondeterminism\r\n'),
('bkl-polysemous-Initial C', 'Bikol', 'polysemous', 'Initial C', '(Mattes, 2007, p. 132)', 'Input=#C-X$ where X is any string of symbols\r\nOutput=#C-uru\\~C-X%\r\n\r\nThe word-initial C string is repeated. An infix [uru] is added between the copies. I assume that inputs start with C and there is no modification done on the reduplicant.', '', '', 0, 1, 0, '', '', 0, 0, 0, 0, ''),
('bkl-unclear3-InitialCV', 'Bikol', 'unclear', 'Initial CV', '(Mattes, 2007, p.83, 126) who cites (Mintz 2004: 36)', 'Two patterns\r\n1) Input=#CV-X% where X is a string of symbols\r\nOutput=#maŋ-CV\\~CV-X%\r\n2) Input=#V-X% where X is a string of symbols\r\nOutput=#maŋ-V\\~ŋV-X%\r\n\r\nWhen the prefix /maŋ/ is added, the initial consonant coalesces with the prefix\'s /ŋ/ and becomes a nasal. The nasal coalescence overapplies to the initial consonant in the second copy. \r\nIf the input starts with a vowel, the prefix surfaces with a default velar nasal in such a case. The second copy starts with the velar nasal', '', '', 1, 0, 0, '', '', 1, 1, 1, 0, 'overapplication'),
('BoumaaFijian-INT-Total', 'Boumaa Fijian ', 'intensity?', 'Total', '(Inkelas and Downing, 2015, p.505) who cites (Dixon 1988:226) ', 'Input=#A+B% where A and B are strings of segments and are two morphological constituents separated by a morpheme boundary \'+\'. Specfically A is a prefix and B is a root\r\nOutput=#A\\~A+B~B%\r\n\r\nEach of the morphological constituents is repeated.', NULL, '', 0, 0, 0, '', 'targets prefix and root', 0, 0, 0, 0, 'iterative'),
('cha-CONT-Stressed', 'Chamorro', 'continuative', 'Stressed syllable', '(Inkelas and Downing, 2015a, p.507) who cites (Topping 1973:259, Yu 2007:122)\r\n(Broselow & McCarthy 1983: 56-58) who cites (Topping 1980: 44)', 'Input=#X-( C )V\'-Y% where X and Y are strings of segments, V\' is a stressed vowel\r\nOutput=#X-( C )V\'-(C)V-Y%\r\n\r\nThe output has the stressed ( C )V be repeated. The second copy of the CV doesn\'t carry stress', '| Input | Gloss | Output | Gloss |\r\n|---------|-------|------------|-----------|\r\n| sága | ? | sá-saga | \"staying\" |\r\n| hugándo | ? | hugá-gando | \"playing\" |', 'If there\'s a vowel hiatus, it looks like a glottal stop is added', 0, 0, 0, 'reduplicant is unstressed', 'targets stressed syllable', 0, 0, 0, 0, ''),
('cha-INT-FinalCV', 'Chamorro', 'intensity\r\n', 'Final CV', '(Sande, 2014, p.192) who cites (Topping and Dungca, 1973; McCarthy and Prince, 1994b; Klein, 1997Key 1965: 91)\r\n(Broselow & McCarthy 1983:56-58) who cites (Topping 1983: 183)', 'Two allomorphs\r\nInput=#X-CV-(C~f~)$ where X is any string of symbols\r\nOutput=#X-CV\\~CV-(C~f~)%\r\n\r\nIf the word ends in CV, the final string is repeated. Else if the word ends in CVC~f~,then the CV is repeated and placed before the final C\r\n', '| Input | Gloss | Output | Gloss |\r\n|---------|----------|-------------|---------------|\r\n| dankolo | \"big\" | danko-lo-lo | \"very big\" |\r\n| bunita | \"pretty\" | bunita-ta | \"very pretty\" |\r\n| nalaŋ | \"hungry\" | nala-la-ŋ | \"very hungry\" |\r\n| metgot | \"strong\" | metgo-go-t | \"very strong\" |', '', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('chi-every-Total', 'Mandarin', '\"every X\"', 'Total ', '(Moravcsik, 1978, p.305) who cites (Chao 1968: 202).', 'Input=#X% where X is monosyllabic string of symbols\r\nOutput=#X\\~X%\r\n\r\nIf X is monosyllabic, then the entire word is repeated. Otherwise, an alternative morphological construction is used. ', '| Input | Gloss | Output | Gloss |\r\n|----------|----------|--------------|---------------|\r\n| jang | \"sheet\" | jang-jang | \"every sheet\" |\r\n| jia.luen | \"gallon\" | meei-jialuen | \"every sheet\" |', '', 1, 0, 0, '', '', 0, 0, 0, 0, 'syllable count allomorphy'),
('chi-INT?-Total', 'Mandarin', 'intensity?', 'Total Reduplication', '(Moravcsik, 1978, p.314) who cites (Chao 1968: 206)', 'Input=#A+B% where A and B are strings of segments and are two morphological constituents separated by a morpheme boundary \'+\'\r\nOutput=#A\\~A+B\\~B%\r\n\r\nEach of the morphological constituents is repeated.', '| Input | Gloss | Output | Gloss |\r\n|------------|-------------|-----------------------|--------------------------|\r\n| huang.jang | \"flustered\" | huang.huang.jang.jang | \"flustered (vivid form)\" |', 'It is unclear what is the targeted phonological/prosodic nature of each repeated substring\r\n', 0, 0, 0, '', 'targets two constituents', 0, 0, 0, 0, 'iterative'),
('Chinanteco-PLPoss-FinalC', 'Chinanteco', 'plural possessor', 'Final C', '(Moravcsik, 1978, p.309) who cites (Key 1965: 94)', 'Input=#X-C$ where X is any string of symbols\r\nOutput=#X-C\\~C%\r\nThe word-final C string is repeated. I assume there are reasons why this isn\'t just called gemination. \r\n', '| Input | Gloss | Output | Gloss |\r\n|-------|-------------------|--------|-------------------|\r\n| hmʔm | \"your (sg) blood\" | hmm-ʔm | \"your (pl) blood\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Chuckchee/Koryak-ABS-NonlocalInitialCVC', 'Chuckchee/Koryak', 'absolutive', 'Non-local InitialCVC', '(Riggle, 2004, p.3) who cites (Bogoras 1969, Kenstowicz 1979, Krause 1980)', 'Input=#CVC-X% where X is a string of symbols\r\nOutput=#CVC-X\\~CVC%\r\n\r\nThe initial CVC is reduplicated and suffixed to the word.', 'Chuckhee\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|---------|----------|----------------------|\r\n| nute | \"mute\" | nute-nut | \"mute (absolutive)\" |\r\n| měrě | \"tears\" | měrě-měr | \"tears (absolutive)\" |\r\n| quli | \"voice\" | quli-qul | \"voice (absolutive)\" |\r\n| tala | \"meat\" | tala-tal | \"meat (absolutive)\" |\r\n\r\nKoryak\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|-------------|-----------|--------------------------|\r\n| mɪtqa | \"oil\" | mɪtqa-mɪt | \"oil (absolutive)\" |\r\n| kilka | \"shellfish\" | kilka-kil | \"shellfish (absolutive)\" |\r\n| qanga | \"fire\" | qanga-qan | \"fire (absolutive)\" |\r\n| yilqa | \"sleep\" | yilqa-yil | \"sleep (absolutive)\" |\r\n', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Chumash-unclear-InitialCVC', 'Chumash', 'unclear', 'Initial CVC', '(Downing, 2000, p.23) who cites (McCarthy & Prince 1995, Applegate 1976)', '\r\nThere are two subpatterns. For clarityt the + sign is used to mark the beginning of the prefix \r\n\r\nPattern 1: If the input is consonant-initial, then initial CVC of the stem is repeated. Prefixes are ignored. e.g. redup(prefix-X)=prefix-X\'-X where X is a consonant-initial stem and where X\' is the first CVC sequence of X. I am not sure where the initial consonant clusters are actually prefixes or not.\r\n\r\nInput | Gloss | Output | Gloss \r\n------------- | -------|------ | ----------\r\ntʃumaʃ | ? | tʃum-tʃumaʃ | \"islanders, Chumash people\"\r\ns+tʃeq | ? | s-tʃeq-tʃeq | \"it is very torn\" \r\nʃtexex\'} | ? | ʃ-tex-texex\' | \"rivers\" \r\nskon | ? | s-kon-kin\' | \"worms, reptiles\" \r\n\r\nPattern 1: If the input is vowel-initial, then rightmost prefix\'s last consonant and the initial VC of the stem are, e.g. redup(P-X)=P-X\'-P\'-X where X is a vowel-initial stem, X\' is the first VC sequence of X, P is the prefixes, P\' is the last C of the prefix sequence\r\n\r\n\r\n\r\n\r\nInput | Gloss | Output | Gloss \r\n------------- | -------|------ | ----------\r\nk+ic\'is | ? | k-ic-k-ic\'is\' | \"my sisters\"\r\ns+ikuk | ? | s-ik-s-ikuk | \"he is chopping\"\r\ns-iʃ+expetʃ | ? | ʃi-ʃ-ex-ʃ-expetʃ | \"they two are singing\" \r\n\r\n', NULL, 'I assume the initial consonant clusters are tautomorphemic and that skipping the first consonant in a cluster is a repair strategy.', 1, 0, 0, '', '', 1, 0, 0, 0, 'affix incorporation because of minimality'),
('dak-VRBZ-FinalCVC', 'Dakota \r\n', 'verbalization ', 'Final CVC', '(Marantz, 1982, p.448) who cites (Shaw 1976)', 'Two allomorphs\r\nInput=#X-B$ where X is any string of symbols and B is ( C )CV( C )\r\nOutput=#X-B\\~B%\r\n\r\nThe word-final ( C )CV( C ) is repeated. Complex onsets are copied. Codaless vowels are okay', NULL, '', 1, 0, 0, '', 'targets roots', 0, 0, 0, 0, ''),
('Dholuo-mitigation-Total', 'Dholuo', 'mitigation', 'Total Reduplication', '(Rubino, 2005, p.17) who cites (Omondi 1982: 87)', 'Input=#X% where X is a string of segments\r\nOutput=#X-a\\~X%\r\n\r\nThe entire word is repeated. An infix [a] is added', '', '', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('Dyirbal-moreX-InitialCVCV', 'Dyirbal', 'more X than is appropriate', 'Initial CVCV', '(Moravcsik, 1978, p.308) (Sapir 1949: 78)', 'Input=#CVCV-X% where X is any string of symbols\r\nOutput=#CVCV\\~CVCV-X%\r\n\r\nThe word-initial CVCV string is repeated. I assume that inputs start with CVCV and there is no modification done on the reduplicant.', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Dyirbal-PL-Total', 'Dyirbal', 'plural', 'Total reduplication', ' (Moravcsik, 1978, p.307) who cites (Dixon 1972: 242)', 'Input=#A+B% where A and B are strings of symbols, A is a noun, and B is an adjective, and + is a morpheme boundary\r\nOutput=#A+B\\~B% or #A\\~A+B%\r\n\r\nTotal reduplication targets the adjective. Either of the two constituents can be copied.', '', '', 0, 0, 0, '', 'targets the adjective in an NP', 1, 0, 0, 0, 'nondeterminism'),
('Dyirbal-RECP-Total', 'Dyirbal', 'reciprocal', 'Total Reduplication', '(Moravcsik, 1978, p.320) who cites (Dixon 1972: 92f)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X-bariñu%\r\n\r\nThe entire word is repeated. A suffix [bariñu] is added', '', '', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('Dyirbal-unclear-InitialCVCV', 'Dyirbal ', 'unclear', 'Initial CVCV', '(Samuels, 2010, p.144) who cites (Poser 1982:7) ', 'Two allomorphs\r\nInput=#B-X% where X is any string of symbols and B is CVCV or CVCC\\*V\r\nOutput=#B\\~B-X%\r\n\r\nThe word-initial CVCC\\*V string is repeated. Thus medial codas in the reduplicant are okay. I assume that inputs start with CVCC\\*V and there is no modification done on the reduplicant. ', NULL, '', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('Emai-ADVZ-Triplication', 'Emai ', 'adverbalize ', 'Triplication', '(Inkelas, 2008, p.355) who cites (Schaefer 2001, cited in Wee 2005)', 'Input=#X%\r\nOutput=#X\\~X\\~X%\r\n\r\nThe entire input is triplicated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('eng-derisive-Echo', 'English', 'derisive', 'Echo', '(Inkelas and Downing, 2015a, p.509)who cites (Alderete et al. 1999) ; Nevins and Vaux (2003)', 'Input=#C\\*VX% where X is a string of segments\r\nOutput=#C\\*VX\\~ʃm-VX%\r\nThe entire string is reduplicated except that the word-initial onset is overwritten by a morphologically-specified segments [ʃm]. If the word doesn\'t start with an onset, [ʃm] is still inserted.', '', '', 1, 1, 0, '', '', 1, 0, 0, 0, 'It has various allomorphs depending on stress and syllable structure based on Nevins and Vaux'),
('ewe-CONT/NMNZ?-InitialCV', 'Ewe', 'Agent nominalization', 'Initial CV', '(Moravcsik, 1978, p.325) who cites (Ansre 1963)', 'Two allomorphs for RED\r\nInput=#C~1~C\\*V-X% where X is a string of symbols\r\nOutput=#C~1~V\\~C~1~C\\*V-X%\r\n\r\nThe word-initial CC\\*V is reduplicated such that non-initial Cs are skipped in the reduplicated. An onset cluster is repaired in this way', '| Input | Gloss | Output | Gloss |\r\n|-------|------------|-----------|-----------|\r\n| fo | \"beat (v)\" | fo-fo | \"beating\" |\r\n| kplɔ | \"lead (v)\" | kplɔ-kplɔ | \"leading\" |\r\n\r\nI assume the initial CC cluster is a double articulation\r\n', 'It is unclear what the general pattern because it is unstated. It is possible that the lowest sonority C is repeated instead.', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('ewe-XbyX-Total', 'Ewe', 'X by X', 'Total Reduplication', '(Moravcsik, 1978, p.305) who cites (Ansre 1963)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Fox-CONT?-InitialCVCV', 'Fox', 'continuative?', 'Initial CVCV', ' (Moravcsik, 1978, p.308) who cites (Bloomfield 1933: 218)', 'Input=#CVCV-X% where X is any string of symbols\r\nOutput=#CVCV\\~CVCV-X%\r\n\r\nThe word-initial CVCV string is repeated. I assume that inputs start with CVCV and there is no modification done on the reduplicant. ', ' | Input | Gloss | Output | Gloss |\r\n|--------|---------|------------|-------------------------|\r\n| wa:pamɛ:wa | \"he looks at him\" | wa:pa-wa:pamɛ:wa | \"he keeps looking at him\" | ', ' It is unclear what would happen if a word starts with V or CC or CVCC, or if the word is just CV, CVC, CVVCV,CVCC, CVCVV. ', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('grc-PERF-InitialCV', 'Attic Greek', 'perfect', 'Initial CV', '(Halle, 2008, p.334) who cites from (Steriade 1982, 195-208)', 'Form: There are four subpatterns. The each involve adding a suffix and some vowel alternations in the root. These two issues are not explained in the source however. \r\n\r\n\r\n1) Pattern 1: X=C~1~VY \r\n\r\nredup(X)=C~1~-e-X-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|---------|-------------|-------------------|\r\n| lu: | \"untie\" | l-e-lu:-k-a | \"untie (perfect)\" |\r\n\r\n2) Pattern 2: X=C~1~C~2~ such that C~1~C2 is [-voice,+stop][+sonorant] or [+voice,+stop][r]\r\n\r\nredup(X)=C~1~-e-X-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------|------------|-----------------|----------------------|\r\n| klep | \"steal\" | k-e-klop^h^-a | \"steal (perfect)\" |\r\n| tla: | \"endure\" | t-e-tla-men | \"endure (perfect)\" |\r\n| pneu | \"breathe\" | p-e-pneu-k-a | \"breathe (perfect)\" |\r\n| grap^h^ | \"write\" | g-e-grap^h^-a | \"write (perfect)\" |\r\n| bri:t^h^ | \"be heavy\" | b-e-bri:t^h^-a} | \"be heavy (perfect)\" |\r\n\r\n3) Pattern 3: X=C~1~C~2~Y such that C~1~C2 is not [-voice,+stop][+sonorant] or [+voice, +stop][r]\r\n\r\nredup(X)=e-X-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|--------|----------|--------------|--------------------|\r\n| sper | \"sow\" | e-sper-m-ai | \"sow (perfect)\" |\r\n| strep | \"turn\" | e-strop^h^-a | \"turn (perfect)\" |\r\n| kten | \"kill\" | e-kton-a | \"kill (perfect)\" |\r\n| gno: | \"know\" | e-gno:-k-a | \"know (perfect)\" |\r\n| blasta | \"sprout\" | e-blaste-k-a | \"sprout (perfect)\" |\r\n\r\n4) Pattern 4: X=VY \r\n\r\nredup(X)=V:-Y-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|---------|------------|---------------|----------------------|\r\n| angel | \"announce\" | a:-ngel-k-a | \"announce (perfect)\" |\r\n| et^h^el | \"want\" | e:-t^h^el-k-a | \"want (perfect)\" |\r\n| op^h^el | \"owe\" | o:-p^h^el-k-a | \"owe (perfect)\" |\r\n\r\n5) Pattern 5: X=VCY. It is not clear how these last two patterns are differentiated\r\n\r\nredup(X)=VC-V:C-Y-suffix \r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|-----------|---------------|---------------------|\r\n| od | \"smell\" | od-o:d-a | \"smell (perfect)\" |\r\n| ager | \"collect\" | ag-a:g-er-k-a | \"collect (perfect)\" |\r\n| eger | \"awaken\" | eg-e:g-er-m-a | \"awaken (perfect)\" |\r\n\r\n', NULL, '', 1, 1, 0, '', '', 0, 0, 0, 0, 'sonority-sensitive cluster repair'),
('hau-ideophones-InitialCVCV', 'Hausa', 'ideophones', 'Initial CVCV', ' (Downing, 2000, p.34) who cites (Abraham 1962, Newman 1989)', 'Given input X, redup(X)=X\'-X\' where X\' is either the first two syllables or the first CVC\\*CV sequences. The consonant after the 2nd vowel is variably copied. When the post-V~2~ consonant is a coda, it is copied. But when it is not the coda of V~2~ but the onset of V~3~, sometimes it is copied and sometimes it isn\'t. It is unclear what the productive rule is\r\n\r\n\r\n\r\n\r\n', '| Input | Gloss | Output | Gloss |\r\n|-----------|----------------------|---------------|----------------------|\r\n| cakwale | \"to be slushy\" | cakwal-cakwal | \"slushy\" |\r\n| bunstura | \"joggling\" | bunstur-bun | \"joggling\" |\r\n| facaka | \"squandering\" | faca-faca | \"squandering\" |\r\n| dabule | \"trampled\" | dabul-dabul | \"trampled\" |\r\n| cukunkune | \"to become trangled\" | cakun-cakun | \"state of confusion\" |', 'unclear', 1, 0, 0, '', '', 0, 0, 0, 1, 'truncation?'),
('hau-INT/PLUR-InitialCV', 'Hausa', 'intensity, pluractional', 'Initial CV', '(Sande, 2014, p.194) who cites (Newman 2000:424, cited by Inkelas 2014)', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CVC\\~CV-X%\r\n\r\nThe word-initial CV string is repeated. The second copy\'s initial C is geminated to form a coda for the 1st copy.', '| Input | Gloss | Output | Gloss |\r\n|--------|-----------------------|------------|--------------------------------------|\r\n| buga | \"beat\" | bub-buga | \"beat (pluractional)\" |\r\n| danne | \"press down, oppress\" | dad-danne | \"press down, oppress (pluractional)\" |\r\n| gautsi | \"brittle\" | gag-gautsi | \"brittle (intense)\" |\r\n| zartsi | \"salty, brackish\" | zaz-zartsi | \"salty, brackish (intense)\" |', 'I\'m not sure if this requires its own FST vs just specifying that the base undergoes gemination', 0, 0, 0, 'diphthong reduction', '', 0, 0, 0, 1, 'base gemination'),
('hau-PL-FinalCV', 'Hausa ', 'plural', 'Final CV', '(Moravcsik, 1978, p.308) who cites (Sapir 1949: 78) ', 'Input=#X-CV% where X is any string of symbols\r\nOutput=#X-CV\\~CV-ki%\r\n\r\nThe word-final CV string is repeated. I assume that inputs ends with CV and there is no modification done on the reduplicant. A suffix [ki] is added after the second copy', NULL, '', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('Hiaki-HAB-InitialCV', 'Hiaki/Yaqui', 'habitual', 'Initial CV', '(Inkelas and Downing, 2015, p.506) who cites (Harley and Leyva 2009', 'Input=#CV-X% where X is a string of symbols \r\nOutput=#CV\\~CV-X%\r\n\r\nThe word-initial CV string is repeated. ', '', '', 0, 0, 0, '', 'targets root', 0, 0, 0, 0, ''),
('hin-ECHO-Echo', 'Hindi', 'Echo', 'Echo', ' (Inkelas and Downing, 2015a, p.510) who cites (Singh 2005:266, Nevins 2005:280)', 'Two allomorphs\r\n1) Input=#B-VX% where X is a string of segments and B is C* but not [v]\r\nOutput=#C\\*-VX\\~v-VX%\r\n2) Input=#v-VX% where X is a string of segments\r\nOutput=#v-VX\\~š-VX\r\n\r\nThe entire string is reduplicated except that the word-initial C\\* is overwritten by a morphologically-specified string [v]. But if C\\* is [v], then use š instead \r\n', '| Input | Gloss | Output | Gloss |\r\n|----------|--------------------------|--------------------|------------------------------|\r\n| narendra | \"Narendra (proper name)\" | narendra-v-arendra | \"undesirables like Narendra\" |\r\n| tras | \"grief\" | tras-v-ras | \"grief and the like\" |\r\n| vakil | \"lawyer\" | vakil-š-akil | \"lawyers and the wakil\" |', '', 1, 1, 0, '', '', 0, 0, 0, 0, 'dissimilation effect in case of homophony'),
('Hopi-unclear-FinalCV', 'Hopi', 'unclear', 'Final CV', '(Moravcsik, 1978, p.309) who cites (Key 1965: 91)', 'Input=#X-CV$ where X is any string of symbols\r\nOutput=#X-CV\\~CV-ta%\r\n\r\nThe word-final CV string is repeated. I assume that inputs ends with CV and there is no modification done on the reduplicant. A suffix [ta] is added after the 2nd copy', '| Input | Gloss | Output | Gloss |\r\n|-------|------------------|------------|---------------------------|\r\n| ʔewi | \"a flame occurs\" | ʔewi-wi-ta | \"he keeps looking at him\" |', 'It is unclear what would happen if a word ends with C or VV, or if the word is just V\r\n\r\n', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('hun-occassionally-Total', 'Hungarian', 'occassionally x', 'Total reduplication', ' (Moravcsik, 1978, p.306) which cites (Tauli 1966: 182).', 'Input=#A+B% where A and B are strings of symbols, A is a prefix, and B is a root, and + is a morpheme boundary\r\nOutput=#A\\~A+B%\r\n\r\nTotal reduplication targets the prefix', '| Input | Gloss | Output | Gloss |\r\n|----------|--------------------|---------------|---------------------------------|\r\n| el+megy | \"he goes there\" | el+el+megy | \"he occasionally goes there\" |\r\n| bele+nez | \"he looks into it\" | bele+bele+nez | \"he occasionally looks into it\" |', '', 0, 0, 0, '', 'targets prefixes', 1, 0, 0, 0, ''),
('ilo-IMPF-InitialCVC', 'Ilocano', 'imperfective', 'Initial CVC', '(Mattes, 2007, p.83) who cites (Reid 1992: 78)', '', '', '', 0, 0, 0, '', 'targets the root', 0, 0, 0, 0, ''),
('ilo-PL/PROG-InitialCVC', 'Ilocano', 'plural or progressive\r\n', 'Initial CVC', '(Raimy, 2000a, p.128) who cites from (Hayes and Abad 1989:357-359)', 'Three patterns\r\n1) Input=#C~1~\\*VC~2~-X% where X is a string of symbols containing at least one vowel\r\nOutput=#C~1~\\*VC~2~\\~C~1~\\*VC~2~-X%\r\n2) Input=#C~1~\\*VP-X% where X is a string of segments containing at least one vowel, and P is a glottal stop\r\nOutput=#C~1~\\*VV\\~C~1~\\*VP-X%\r\n3) Input=#C~1~\\*VC~2~%\r\nOutput=#C~1~\\*VV\\~C~1~\\*V%\r\n\r\nIf the initial CVC ends in a glottal stop, the reduplicant is CVV. Else if the the input is monosyllable, the output is CVV. Otherwise the reduplicant is just CVC', '| Input | Gloss | Output | Gloss |\r\n|--------|----------|------------|---------------|\r\n| kaldiŋ | \"goat\" | kal-kaldiŋ | \"goats\" |\r\n| pusa | \"cat\" | pus-pusa | \"cats\" |\r\n| daʔit | \"to sew\" | daa-daʔit | \"is sewing\" |\r\n| roʔot | \"leaves\" | roo-roʔot | \"leaves (pl)\" |\r\n| trak | \"truck\" | traa-trak | \"trucks\" |\r\n| bas | \"bus\" | baa-bas | \"buses\" |', '', 1, 0, 0, '', '', 0, 0, 0, 0, 'mora minimality, coda restrictions, syllable count allomorphy '),
('ind-INT/REP-Total', 'Indonesian', 'intensive/repetitive', 'Total', ' (Raimy, 2000a, p.99) who cites (Uhrbach 1987, McCarthy and Prince 1995:334-335)', 'Input=#X%\r\nOutput=#məŋ-X\\~X%\r\n\r\nWhen the prefix /məŋ/ is added to X, the initial consonant (if any) coalesces with the prefix\'s /ŋ/ and becomes a nasal. The nasal coalescence overapplies to the initial consonant in the second copy. \r\nNote that [h] and voweles do not undergo nasal coelescence. The prefix surfaces with a default velar nasal in such a case', '| Input | Gloss | Output | Gloss |\r\n|-------|------------|----------------|-----------------------------------|\r\n| potoŋ | \"cut\" | mə-motoŋ-motoŋ | \"to cut (intensive/repetitive)\" |\r\n| tulis | \"write\" | mə-nulis-nulis | \"to write (intensive/repetitive)\" |\r\n| isi | \"contents\" | məŋ-isi-isi | \"to fill with various things\" |', '', 1, 0, 0, '', '', 1, 0, 1, 0, 'overapplication'),
('ind-PL-Total', 'Indonesian', 'plural', 'Total Reduplication', '(Inkelas and Downing, 2015a, p.502) who cites (Cohn 1989:185)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '| Input | Gloss | Output | Gloss |\r\n|-------|----------|-----------|-----------|\r\n| kəra | \"monkey\" | kəra-kəra | \"monkeys\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('ind-RECP-Total', 'Indonesian', 'reciprocal', 'Total', '(Raimy, 2000a, p.99) who cites (Uhrbach 1987, McCarthy and Prince 1995:334-335)', 'Input=#X%\r\nOutput=#X-məŋ-X%\r\n\r\nWhen the prefix /məŋ/ is added between the two copies. The the initial consonant (if any) of the second copy coalesces with the prefix\'s /\\textipa{N}/ and becomes a nasal. Overapplication does not apply\r\nNote that [h] and vowels do not undergo nasal coalescence. The prefix surfaces with a default velar nasal in such a case', '| Input | Gloss | Output | Gloss |\r\n|--------|-----------|-------------------|---------------------------|\r\n| pukul | \"hit\" | pukul-mə-mukul | \"to hit (reciprocal)\" |\r\n| tari | \"dance\" | tari-mə-nari | \"to dance (reciprocal)\" |\r\n| hormat | \"respect\" | hormat-məŋ-hormat | \"to respect (reciprocal)\" |', '', 1, 0, 0, '', '', 1, 0, 0, 0, 'normal application'),
('Kaingang-PL-FinalCVC', 'Kaingang ', 'plural', 'Final CVC', '(Samuels, 2010, p.142) who cites (Poser 1982:5)', 'Two allomorphs\r\nInput=#X-B% where X is any string of symbols and B is C\\*CV or C\\*CVC\r\nOutput=#X-B\\~B%\r\n\r\nThe word-final C\\*CVC or C\\*CV is repeated. Complex onsets are copied. Codaless vowels are okay', '| Input | Gloss | Output | Gloss |\r\n|---------|-------|------------|-------------------------|\r\n| vã | \"to throw away\" | vã-vã |\"to throw away (PL)\" |\r\n| kry | \"to itch\" | kry-kry | \"to itch (PL)\" |\r\n| mrãn | \"to strike\" | mrãn-mrãn | \"to strike (PL)\" |\r\n| mrãn | \"to strike\" | mrãn-mrãn | \"to strike (PL)\" |\r\n| jẽmĩ | \"to grasp | jẽmĩ-jẽmĩ | \"to grasp \"|\r\n | vãsãn |\"to exert, fatigue\" | vãsãn-sãn | \"to exert, fatigue (PL)\" |\r\n\r\n\r\n\r\n', 'It is unclear what would happen if the last vowel was part of a diphthong or vowel hiatus', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('kan-ECHO-Echo', 'Kannada', 'Echo', 'Echo', '(Inkelas and Downing, 2015a, p.507) who cites (Lidz 2001) ', 'Input=#C\\*V-X% where X is a string of segments\r\nOutput=#C\\*V-X\\~gi-X%\r\nThe entire string is reduplicated except that the word-initial C\\*V is overwritten by a morphologically-specified string [gi]. \r\n\r\nLength of the base\'s V is maintained in [gi]', NULL, '', 0, 1, 0, 'vowel length maintenance', '', 1, 0, 0, 0, ''),
('Kanuri-glossonym-Total', 'Kanuri', 'glossonym construction', 'Total Reduplication', '(Moravcsik, 1978, p.313) who cites (Lukas 1937: 8)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('kas-ECHO-Echo', 'Kashmiri', 'Echo', 'Echo', '(Inkelas and Downing, 2015a, p.510) who cites (Koul, 2005:149) ', 'Two allomorphs\r\n1) Input=#B-VX% where X is a string of segments and B is C\\* but not [v]\r\nOutput=#C\\*-VX\\~v-VX%\r\n2) Input=#v-VX% where X is a string of segments\r\nOutput=#v-VX\\~p-VX\r\n\r\nThe entire string is reduplicated except that the word-initial C\\* is overwritten by a morphologically-specified string [v]. But if C\\* is [v], then use [p] instead \r\n', NULL, '', 1, 1, 0, '', '', 0, 0, 0, 0, 'dissimilation effect in case of homophony'),
('kik-unclear-InitialCVCV', 'Kikuya', 'unclear', 'Initial CVCV', '(Downing, 2000, p.20)', 'Kikuya is briefly gone over in (Downing, 2000, p.20) but it is not clear what all the patterns are. The orthography and her discussion makes it look like that RED causes vowel lengthening on both the reduplicant and the base for vowel-initial stems. But without further discssion of it, I won\'t model an FST for it\r\n', NULL, 'yup...', 1, 0, 0, '', '', 0, 0, 0, 1, 'bantu, mora minimality'),
('Kinande-unclear-InitialCVCV', 'Kinande', 'unclear', 'Initial CVCV', 'Downing (2000)', 'The reduplicative patterns differ based on the structure of the input/base. It involves overcopying, different outputs for vowel vs consonant initial stems, foot minimality, and reference to multiple morhpological and prosodic constituents. I have refrained from using prosodic constituents (P-stems) in the FST and discussion because those prosodic constituents are derived from the morphological constituents\r\n\r\nThe general template for the input is: Pre-verbal prefixes + root + derivational suffixes or \"extensions\" + inflectional final suffix IFS. \r\n\r\n\r\nOnly the root and inflectional final suffix are obligatory. \r\nThe root + extensions + IFS look like they are always a sequence of alternating vowels and consonants that ends in a vowel: VC(VC)\\*V or (CV)\\*CV.\r\n\r\nI assume that what look like consonant clusters in the orthography are actually complex segments\r\n\r\nThe reduplication patterns ignore the prefixes\r\n\r\n1) Pattern 1: redup(prefixes\\* - CVC root - V I(FS )= prefixes\\* - CVC root - V IFS - CVC root - V IFS\r\n\r\nCVC root (hum, tum) + IFS (a or e)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-----------|-------|-----------------|--------------|\r\n| eri-hum-a | ? | eri-hum-a\\~hum-a | \"to beat\" |\r\n| eri-hum-e | ? | eri-hum-e\\~hum-e | \"let\'s beat\" |\r\n| eri-tum-a | ? | eri-tum-a\\~tum-a | \"to send\" |\r\n| eri-tum-e | ? | eri-tum-e\\~tum-e | \"let\'s send\" |\r\n\r\n2) Pattern 2: redup(prefixes\\* - CVC root - (VC)\\* extensions - V IFS)= prefixes\\* - CVC root - a - CVC root - (VC)\\* extensions - IFS\r\n\r\nCVC root (hum, tum) + VC extensions (ir, an) + IFS (a or e)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------------|-------|----------------------|--------------------------|\r\n| eri-hum-ir-a | ? | eri-hum-a\\~hum-ir-a | \"to beat for\" |\r\n| eri-hum-iran-a | ? | eri-hum-a\\~hum-iran-a | \"to beat for each other\" |\r\n| eri-tum-ir-a | ? | eri-tum-a\\~tum-ir-a | \"to send to\" |\r\n| eri-tum-an-a | ? | eri-tum-a\\~tum-an-a | \"to send each other\" |\r\n| eri-tum-iran-a | ? | eri-tum-a\\~tum-iran-a | \"to send to each other\" |\r\n\r\n3) Pattern 3: redup(prefixes\\* - C root - V IFS)= prefixes\\* - C root - V IFS - C root - V IFS - C root - V IFS\r\n\r\nC root (sw, tm ly, hw) + IFS (a)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------|-------|--------------------|-------------|\r\n| eri-sw-a | ? | eri-sw-a-sw-a\\~sw-a | \"to grind\" |\r\n| eri-t-a | ? | eri-t-a-t-a\\~t-a | \"to bury\" |\r\n| eri-ly-a | ? | eri-ly-a-ly-a\\~ly-a | \"to eat\" |\r\n| eri-hw-a | ? | eri-hw-a-hw-a\\~hw-a | \"to finish\" |\r\n\r\nC root (s) + VC extension (er) + IFS (e)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------------|-------|---------------------|------------|\r\n| eri-sw-er-e | ? | eri-sw-er-e\\~w-er-a | \"to grind\" |\r\n\r\n4) Pattern 4: redup(prefixes\\* - VC root - V IFS)= prefixes\\* - VC root - VC root - VC root - V IFS \r\n\r\nVC root (es, oh, ot, um, ib) + IFS (a)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------|-------|-----------------|------------|\r\n| ery-es-a | ? | ery-es-es\\~es-a | \"to play\" |\r\n| ery-oh-a | ? | ery-oh-oh\\~oh-a | \"to pick\" |\r\n| ery-ot-a | ? | ery-ot-ot\\~ot-a | \"to light\" |\r\n| ery-um-a | ? | ery-um-um\\~um-a | \"to dry\" |\r\n| er-ib-a | ? | er-ib-ib\\~ib-a | \"to steal\" |\r\n\r\n5) Pattern 5: redup(prefixes\\* - VC root - VC extension - V IFS)= prefixes\\* - VC root - VC extension - V IFS - C root - VC extension - V IFS \r\n\r\nVC root (es, oh) + VC extensions (er) + IFS (a)\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|--------------|-------|------------------------|----------------|\r\n| ery-es-er-a | ? | ery-e-s-er-a\\~s-er-a | \"to play for\" |\r\n| ery-oh-er-a | ? | ery-o-h-er-a\\~h-er-a | \"to pick for\" |\r\n| ery-ot-er-a | ? | ery-o-t-er-a+t-er-a | \"to light for\" |\r\n| ery-amb-al-a | ? | ery-a-mb-al-a\\~mb-al-a | \"to clothe\" |\r\n| ery-us-al-a | ? | ery-u-s-al-a\\~s-al-a | \"to fill\" |', 'Too complex. Inserted into description', '', 1, 1, 0, '', 'stems, root, PStem, DStem', 0, 1, 0, 0, 'overcopy, minimality, V vs. C initial, bantu'),
('Kolami-ECHO-Echo', 'Kolami', 'Echo', 'Echo', '(Inkelas and Downing, 2015a, p.507,509) who cites (Emeneau 1955);\r\n(Halle, 2008, p.336) who cites (Steriade 1988, 89)', 'Input=#C\\*V-X% where X is a string of segments\r\nOutput=#C\\*V-X\\~gi-X%\r\nThe entire string is reduplicated except that the word-initial C\\*V is overwritten by a morphologically-specified string [gi]. \r\n\r\nLength of the base\'s V is maintained in [gi]', '| Input | Gloss | Output | Gloss |\r\n|-------------|------------|-------------------------|-----------------------------|\r\n| mekel totev | \"goat not\" | mekel totev-gi-keltotev | \"There are no goats at all\" |', '', 0, 1, 0, 'vowel length maintained', '', 1, 0, 0, 0, ''),
('Kwaza-PROG?-FinalCV', 'Kwaza', 'progressive?', 'Final CV', '(Mattes, 2007, p.7) who cites (van der Voort 2003:75) ', 'Input=#X-CV$ where X is any string of symbols\r\nOutput=#X-CV-en\\~CV-en%\r\n\r\nThe word-final CV string is repeated. I assume that inputs ends with CV and there is no modification done on the reduplicant. A suffix [en] is added between the two copies, and after the second copy. ', NULL, '', 0, 0, 0, '', '', 1, 1, 0, 0, ''),
('LimosKalinga-ITER', 'Limos Kalinga', 'iterative', 'Initial CVCV', '(Rubino, 2005, p.16) who cites (Ferreirinho 1993:90)', 'Input=#CVCV-X% where X is any string of symbols\r\nOutput=#CVCV\\~CVCV-X%\r\n\r\nThe word-initial CVCV string is repeated. I assume that inputs start with CVCV and there is no modification done on the reduplicant. The root is targeted. \r\n\r\nIf there is a prefix, then the initial C of the first copy is geminated: \r\nredup(pre-CVCV-X)=pre-C:VCV\\~CVCV-X%', '', '', 0, 0, 0, '', 'targets the root', 0, 0, 0, 0, 'If there is a prefix, then the initial C of the first copy is geminated'),
('Lushootseed-DIM-InitialCV', 'Lushootseed', 'diminutive', 'Initial CV', '(Fitzpatrick, 2006, p.13) who cites (Bates et al. 1986, 1994; Broselow 1983; Urbanczyk 2001)', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CV\\~CV-X%\r\n\r\nThe word-initial CV string is repeated. I assume that inputs start with CV and there is no modification done on the reduplicant.', '', '0', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Lushootseed-DISTR-InitialCVC', 'Lushootseed', 'distributive', 'Initial CVC', '(Fitzpatrick, 2006, p.13) who cites (Bates et al. 1986, 1994; Broselow 1983; Urbanczyk 2001', '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Lushootseed-OutofControlEtc-InitialVC', 'Lushootseed ', 'out of control, particular, counting, plural,', 'Initial VC', '(Broselow & McCarthy 1983: 68-71) who cites (Hess and Hilbert 1976: 161);\r\n(Fitzpatrick, 2004, p.13) who cites (Bates et al. 1986, 1994; Broselow 1983; Urbanczyk 2001)\r\n', 'Input=#( C )VC-X% where X is any string of symbols\r\nOutput=#( C )-VC\\~VC-X%\r\n\r\nThe word-initial VC string is repeated. If the word starts with a C, it is ignored in the reduplication. The reduplicant is thus inside the base', '| Input | Gloss | Output | Gloss |\r\n|----------|---------------|-------------|------------------------|\r\n| g^w^ədil | \"sit\" | g^w^əd-ədil | \"just sitting around\" |\r\n| yubil | \"die, starve\" | yub-ubil | \"be run down\" |\r\n| sladəy? | \"woman\" | slad-adəy? | \"woman (living) alone\" |\r\n| stubš | \"man\" | stub-ubš | \"men\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('mah-ADJZ-InitialC', 'Marshallese', 'adjectivalization', 'Iniital C', ' (Moravcsik, 1978, p.308) who cites (Bender 1971: 452)', 'Input=#C-X% where X is any string of symbols\r\nOutput=#C\\~C-X%\r\n\r\nThe word-initial C string is repeated. I assume that inputs start with C and there is no modification done on the reduplicant. I assume there are reasons why this isn\'t just called gemination. \r\n', '| Input | Gloss | Output | Gloss |\r\n|-------|---------|--------|---------|\r\n| liw | \"scold\" | l-liw | \"angry\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('mah-VBZ-FinalCVC', 'Marshallese', 'verbalization', 'Final CVC', ' (Moravcsik, 1978, p.306) who cites (Bender 1969: 38, 1971: 453)', 'Input=#X-CVC$ where X is any string of symbols\r\nOutput=#X-CVC\\~CVC%\r\n\r\nThe word-final CVC string is repeated. I assume that inputs ends with CVC and there is no modification done on the reduplicant. ', '| Input | Gloss | Output | Gloss |\r\n|-------|----------|-----------|----------------|\r\n| takin | \"socks\" | takin-kin | \"wear socks\" |\r\n| kagir | \"belt\" | kagir-gir | \"wear a belt\" |\r\n| wah | \"canoe\" | wah-wah | \"go by canoe\" |\r\n| wit | \"flower\" | wit-wit | \"war a flower\" |', 'It is unclear what would happen if a word ends with CC or V or VCC, or if the word is just VC', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Makassarese-unclear-InitialCVCV', 'Makassarese', 'unclear', 'Initial CVCV', '(Downing, 2000, p.9) who cites (Aronoff et al. 1987)', 'There are two subpatterns.\r\n\r\n1) Pattern 1: If the input is bisyllabic, then the whole input is copied and this is a normal case of total reduplication. It looks like vowel sequences are treated as hetero-syllabic, e.g. redup(X)=X-X if X is bisyllabic\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|-------|-------------|--------------|\r\n| batu | ? | batu-batu | \"small stones\" |\r\n| golla | ? | golla-golla | \"sweets\" |\r\n| bulaŋ | ? | bulaŋ-bulaŋ | \"monthly\" |\r\n| tau | ? | tau-tau | \"person\" |\r\n\r\n2) Pattern 2: If the input larger than bisyllabic, then the whole the first ( C )V( C )V sequence is copied. A segment [ʔ] is then inserted between the reduplicant and base, e.g. redup(X)=X\'-[ʔ]-X where X\' is the first ( C )V( C )V sequences\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|----------|-------|-----------------|-----------------|\r\n| manara | ? | mana-ʔ-manara | \"sort of tower\" |\r\n| balao | ? | bala-ʔ-balao | \"toy rat\" |\r\n| baine | ? | bai-ʔ-baine | many women |\r\n| baramban | ? | bara-ʔ-baramban | \"sort of chest\" |', NULL, '', 1, 1, 0, '', '', 0, 0, 0, 0, 'morpheme integrity, mora minimality?');
INSERT INTO `morphemes` (`morpheme ID`, `language`, `function`, `default form name`, `sources`, `description`, `example data`, `Ambiguity`, `Shows allomorphy?`, `Has segmentalism?`, `Deeply searched?`, `possible vowel modifications?`, `Morpho-phonological subconstituents involved`, `involves affixes?`, `affix incorporation?`, `Involves phonological processes?`, `data too ambiguous?`, `Miscellaneous`) VALUES
('Manam-polysemous-FinalFoot', 'Manam', 'polysemous \r\n', 'Final Foot', '(Fitzpatrick, 2006, p.7-8) who cites (Lichtenberk 1983:608; Buckley 1998)', 'Input=#X-B% where X is a sting of symbols and B is a bimoraic foot\r\nOutput=#X-B\\~B%\r\n\r\nWord-final bimoraic foot is repeated, e.g. X-(CVV)~2~ or X-(CVCV)~2~ or X-(VCV)~2~ or X-(CVC)~2~', '| Input | Gloss | Output | Gloss |\r\n|---------|------------------------|-------------|-------------------------------------|\r\n| salaga | \"be long\" | salaga-laga | \"long (sg.)\" |\r\n| malipi | \"work\" | malipi-lipi | \"work (cont.)\" |\r\n| mo.ita | \"knife\" | moita-ita | \"cone shell (knife-like)\" |\r\n| dara | \"blood\" | dara-dara | \"red (blood-like)\" |\r\n| ʔa.rai | \"ko ginger\" | ʔarai-rai | \"green (the color of ʔarai leaves)\" |\r\n| zama | \"tomorrow\" | zama-zama | \"pertaining to tomorrow\" |\r\n| pile | \"speaker\" | pile-pile | \"speaker\" |\r\n| malaboŋ | \"flying fox (generic)\" | malbom-boŋ | \"ko flying fox\" |\r\n| ʔula | \"desire (vb.)\" | ʔulan-laŋ | \"desirable\" |\r\n\r\nHowever, if the last two syllables in the input are identical, then the output only has three identical copies (not four). These inputs are argued to have inherent reduplication\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|--------|-------------------|-----------|----------------------|\r\n| ragogo | \"be warm\" | ragogo-go | \"warm\" |\r\n| ʔoʔo | \"be plentiful\" | ʔoʔo-ʔo | \"many, much\" |\r\n| rere | \"like\" | rere-re | \"like (contin.)\" |\r\n| lele | \"look for\" | lele-le | \"look for (contin.)\" |\r\n| wawa | \"discolored skin\" | wawa-wa | \"white\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, 'mora maximality, anti-homophony effects'),
('Mangarayi-PL/INT-InitialVC', 'Mangarayi', ' plurality, intensification', 'Initial VC', '(Inkelas and Downing, 2015a, p.507) who cites (Yu 2007:92, Merlan 1982,Kurisu &\r\nSanders 1999); (Samuels, 2010, p.144) who cites (Raimy 2000a: 135)', 'Input=#( C )VCC\\*-X$ where X is any string of symbols\r\nOutput=#( C )-VCC\\*\\~VCC\\*-X%\r\n\r\nThe word-initial VCC\\* string is repeated. If the word starts with a C, it is ignored in the reduplication. The reduplicant is thus inside the base', '| Input | Gloss | Output | Gloss |\r\n|--------|-------|----------------|--------------------------|\r\n| gurjag | ? | gurj-urj-ag-ji | \"having a lot of lilies\" |\r\n| gabuji | ? | g-ab-ab-uji | \"old person\" |\r\n| jimgan | ? | j-img-imgan | \"knowledgeable one(s)\" |\r\n| yirag | ? | y-ir-irag | \"father(s)\" |\r\n| waŋgij | ? | w-aŋg-aŋgij | \"child(ren)\" |', 'It appears that an unspecified suffix is added', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('may-similar-Total', 'Malay', 'similar/pretend to X', 'Total Reduplication', '(Moravcsik, 1978, p.323) who cites (Gonda 1949: 172, 190f)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('may-unclear-Total', 'Malay', 'unclear', 'Total', '(Raimy, 2000a, p.17) who cites (Onn 1980, Kenstowicz 1981);(Inkelas and Downing,\r\n2015b, p.517) who cites (Onn 1976); (Raimy, 2000b, p.542) who cites (Onn 1976, Kenstowicz 1981, Seong 1994). ', 'Input=#X$\r\nOutput=#X\\~X$\r\n\r\nNasality will spread itteratively from nasals onto vowels. The sounds [h, w, j, ʔ] are transparent to the spread while oral obstruents are blockers. It will overapply.', '| Input | Gloss | Output | Gloss |\r\n|-------|------------|-----------|----------------------|\r\n| hamĩ | \"germ\" | hãmĩ-hãmĩ | \"germs\" |\r\n| waŋĩ | \"fragrant\" | wãŋĩ-w̃ãŋĩ | \"fragrant (intens.)\" |\r\n| aŋãn | \"reverie\" | ãŋãn-ãŋãn | \"ambition\" |\r\n| aŋẽn | \"wind\" | ãŋẽn-ãŋẽn | \"unconfirmed news\" |', '', 0, 0, 0, '', '', 0, 0, 1, 0, 'overapplication, backcopying'),
('Mokilese-CONT-Triplication', 'Mokilese', 'continuative', 'Triplication', '(Moravcsik, 1978, p.312) who cites (Harrison 1973: 426)', 'Input=#X%\r\nOutput=#X\\~X\\~X%\r\n\r\nThe entire input is triplicated', '| Input | Gloss | Output | Gloss |\r\n|-------|------------------|-------------------|--------------------------|\r\n| roar | \"give a shudder\" | roar-roar-roar | \"to continue to shudder\" |\r\n| soang | \"tight\" | soang-soang-soang | \"still tight\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Mokilese-NMNZ-FinalCVC', 'Mokilese', 'denominal adjectivalization', 'Final CVC', '(Moravcsik, 1978, p.324) who cites (Harrison 1973: 424)', 'Two allomorphs\r\n1) Input=#X-CVC$ where X is any string of symbols\r\nOutput=#X-CVC\\~CVC%\r\n2) Input=#X-CV$ where X is any string of symbols\r\nOutput=#X-CV-h\\~CV%\r\n\r\nIf word ends in CVC, then CVC is repeated. Else if the word ends in CV, then [h] is added is added CV is copied', '| Input | Gloss | Output | Gloss |\r\n|--------|-------------------|-----------|----------------------|\r\n| dikol | \"lump\"| dikol-kol| \"lumpy\" | \r\n| koalo | \"root\" | koalo-h-lo | \"full of roots\" | \r\n ', 'It is unclear what the pattern is.\r\n', 1, 1, 0, '', '', 0, 0, 0, 0, ''),
('Mokilese-PROG-InitialCVC', 'Mokilese', 'progressive', 'Initial CVC', '(Downing, 2000, p.23) who cites (McCarthy & Prince 1995, Applegate 1976)\r\n(Inkelas 2014, 117) who cites (Blevins 1996: 523, citing Harrison 1973, 1976)', 'There are multiple subpatterns. The general pattern is initial CVC reduplication. However there different strategies depending on whether stem starts with a vowel vs. consonant, whether the first vowel is long, and whether the first vowel is succeeded by a consonant. The different strategies involve simple copying, vowel lengthenening, or consonant gemination. I assume the consonant clusters are actually complex segments, though the orthography+syllabification+description are inconsistent. Likewise an additional source (Halle 2008) who cites (Blevins 1996) argues that monosyllables undergo triplicaton: /caak}/-->[caa-caa-caak] \"bending\" which contradicts the monosyllables from my first source.\r\n\r\n\r\n1) Pattern 1: If the input is of the form \\#CVC-Σ\\*\\%, then redup(X)=CVC-X\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|----------------------|-----------|---------------------------|\r\n| pɔdok | \"to plant\" | pɔd-pɔdok | \"to plant (prog)\" |\r\n| pilɔd | \"to pick breadfruit\" | pil-pilɔd | \" pick breadfruit (prog)\" |\r\n\r\n2) Pattern 2: If the input is of the form \\#CV:-Σ\\*\\%, then redup(X)=CV:-X\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|--------|-----------|------------|------------------|\r\n| sɔ:rak | \"to tear\" | sɔ:-sɔ:rak | \"to tear (prog)\" |\r\n\r\n3) Pattern 3: If the input is of the form \\#CV-(VΣ\\*)\\%, then redup(X)=CV:-X\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|------------|---------|-------------------|\r\n| pa | \"to weave\" | pa:-pa | \"to weave (prog)\" |\r\n| wia | \"to do\" | wi:-wia | \"to do (prog)\" |\r\n\r\n4) Pattern 4: If the input is of the form \\#VC-Σ\\%, then redup(X)=VC:-X\r\n\r\n| Input | Gloss | Output | Gloss |\r\n|-------|--------------|-----------|---------------------|\r\n| alu | \"to walk\" | all-lu | \"to walk (prog)\" |\r\n| andip | \"to split\" | and-andip | \"to split (prog)\" |\r\n| onop | \"to prepare\" | onn-onop | \"to prepare (prog)\" |\r\n', NULL, '', 1, 0, 0, 'vowel lengthening', '', 0, 0, 0, 0, 'weight minimality, lengthening and gemination'),
('Mokilese-PROG-Total', 'Mokilese', 'progressive', 'Total Reduplication', '(Moravcsik, 1978, p.312) who cites (Harrison 1973: 426)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Mokilese-unclear-InitialCVC', 'Mokilese', 'unclear', 'Initial CVC', '(Moravcsik, 1978, p.311) who cites (Harrison 1973: 416, 423)\n', 'Two allomorphs\r\nInput=#B-X$ where X is any string of symbols and B is either CVC or CV\r\nOutput=#B~B-X%\r\nThe word-initial CVC or CV string is repeated. Codaless vowels are thus okay. I assume that inputs start with CVC and there is no modification done on the reduplicant. ', NULL, '', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('Mokilese-VRBZ-FinalCVC', 'Mokilese', 'verbalization', 'Final CVC', '(Moravcsik, 1978, p.309) who cites (Harrison 1973: 417)', 'Input=#X-CVC$ where X is any string of symbols\r\nOutput=#X-CVC\\~CVC%\r\nThe word-final CVC string is repeated. I assume that inputs ends with CVC and there is no modification done on the reduplicant. An affix may be added before, between, or after the copies', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('mus-PL-NonlocalInitialCV', 'Creek', 'plural', 'Non-local Initial CV', '(Riggle, 2004, p.3) who cites (Martin and Mauldin 2000)', 'Input=#CV-X-C~f~% where X is a string of symbols\r\nOutput=#CV-X\\~CV-C~f~%\r\n\r\nThe first CV is copied and placed before the final C', '| Input | Gloss | Output | Gloss |\r\n|-----------|----------------------|---------------|---------------------------|\r\n| a-ca:k-i: | \"precious\" | a-ca:-ca-k-i: | \"precious (pl)\" |\r\n| cakh-i: | \"sticking in\" | cak-ca-h-i: | \"sticking in (pl)\" |\r\n| citakk-i: | \"torn up, mashed\" | citak-ci-k-i: | \"torn up, mashed (pl)\" |\r\n| falapk-i: | \"split (as of wood)\" | falap-fa-k-i: | \"split (as of wood) (pl)\" |\r\n| holwak-i: | \"ugly, naughty\" | holwa-ho-k-i: | \"ugly, naughty (pl)\" |\r\n| heyy-i | \"hot\" | hey-ho-y-i: | \"hot (pl)\" |', 'It is not clear what would happen if the word did not start with CV. However the language doesn\'t have stems that end in V \\citep[p.7]{Riggle-2004-Nonlocal}. It looks like if the base V is long, then the reduplicant V is shortened. Likewise the reduplicated V may differ from the base', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Nakanai-unclear-InternalBeforeFinalFoot', 'Nakanai', 'unclear', 'Internal before final foot', '(Broselow & McCarthy 1983 p.57-64) who cite (Williams 1983; Johnston 1980).', 'Stress is assigned on penultimate syllable thus words end in a trochaic metrical foot. Onsetless syllables are okay, thus vowel sequences are heterosyllabic\r\nRED is infixed to before the metrical foot (C~1~V~1~C~2~2V~2~, C~1~V~1~V~2~). In some cases RED surfaces as C~1~V~1~C~2~V~2~, C~1~V~1~, C~1~V~2~, or C~1~V~1~V~2~\r\nIt is unclear if the foot can to be CVV for all the above RED allomorphs\r\n\r\nIf the metrical foot starts with a onsetless syllable (V~1~C~2~V~2~), then only V~1~C~2~ is copied\r\n\r\nThe source won\'t specify the distribution of the various RED allomorphs, and it implies they are the same morpheme. I\'m forced to nondeterminism\r\n', '| Input | Gloss | Output | Gloss |\r\n|----------|-------|----------------|-------------------------------|\r\n| sekela | ? | se-kela-kela | \"one at a time\" |\r\n| burulele | ? | buru-le-lele | \"sliding on buttocks\" |\r\n| susu | ? | su-susu | \"drink from breast\" |\r\n| goo | ? | go-goo | \"smoldering\" |\r\n| bilau | ? | bi-la-lau | \"songs\" |\r\n| pati | ? | pai-pati | \"floating\" |\r\n| pita | ? | pa-pita | \"muddy\" |\r\n| valua | ? | va-la-lua | \"men\" |\r\n| abi | ? | ab-abi | \"getting\" |\r\n| kaiamo | ? | kai-am-amo | \"residents of Kaiamo village\" |', 'Allomorphy looks nondeterministic without further clarification', 1, 0, 0, '', 'final foot', 0, 0, 0, 0, 'nondeterminism, morpheme interaction'),
('NezPerce-DIM-Total', 'Nez Perce', 'diminutive', 'Total Reduplication', '(Moravcsik, 1978, p.322) who cites (Aoki 1963)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Ngiyambaa-unclear-InitialCVCV', 'Ngiyambaa', 'unclear', 'Initial CVCV', '(Rubino, 2005, p.15) who cites (Donaldson 1980)', 'Input=#CVCV-X% where X is any string of symbols\r\nOutput=#CVCV\\~CVCV-X%\r\n\r\nThe word-initial CVCV string is repeated. I assume that inputs start with CVCV and there is no modification done on the reduplicant. The second V is shortened if it\'s long', '', '', 0, 0, 0, 'vowel shortening', '', 0, 0, 0, 0, ''),
('Nitinaht-resemble-InitialCV', 'Nitinaht', 'resemble', 'Initial CV', '(Inkelas and Downing, 2015a, p.524) who cites (Stonham 1994)', 'Input=#CV-X% where X is a string of symbols\r\nOutput=#CV\\~CV-X%\r\nThe word-initial CV is reduplicated. The root is targeted', '', '', 0, 0, 0, '', 'targets the root', 0, 0, 0, 0, ''),
('Nupe-unclear-Initial C', 'Nupe', 'unclear', 'Initial C', '(Inkelas and Downing, 2015b, p. 518) who cites (Akinlabi 1997, Smith 1969)', 'Input=#C-X$ where X is any string of symbols\r\nOutput=#C-V\\~C-X%\r\n\r\nThe word-initial C string is repeated. A [+high,mid tone,vowel harmony] vowel is added between the copies. I assume that inputs start with C and there is no modification done on the reduplicant.', '', '', 0, 1, 0, '', '', 0, 0, 0, 0, ''),
('Oykangand-unclear-InitialCVC', 'Oykangand ', 'unclear', 'Initial CVC', ' (Samuels, 2010, p.144) who cites (McCarthy & Prince 1996 [1986]: 12)', 'Input=#B-X% where X is any string of symbols and B is CVCC* or VCC*\r\nOutput=#B\\~B-X%\r\n\r\nThe word-initial CVCC\\* or VCC\\* is repeated. Complex codas and the following syllable\'s onsets are copied. Onsetless vowels are okay I assume that inputs start with CVCC\\* and there is no modification done on the reduplicant. ', '| Input | Gloss | Output | Gloss |\r\n|-------|-------|-----------|------------|\r\n| eder | ? | ed-eder | \"rain\" |\r\n| algal | ? | alg-algal | \"straight\" |\r\n| igu- | ? | ig-igun | \"go\" |', 'It is unclear what would happen if V did not have a C after it\r\n', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('Pacoh-denominal verbalization-Initial C', 'Pacoh', 'denominal verbalization', 'Initial C', '(Moravcsik, 1978, p.324) who cites (Watson 1966: 99)', 'Input=#C-X$ where X is any string of symbols\r\nOutput=#C-am\\~C-X%\r\n\r\nThe word-initial C string is repeated. An infix [am] is added between the copies. I assume that inputs start with C and there is no modification done on the reduplicant.', '', '', 0, 1, 0, '', '', 0, 0, 0, 0, ''),
('Pacoh-DISTR-FinalCVC', 'Pacoh', 'distribution', 'Final CVC', '(Moravcsik, 1978, p.323) who cites (Watson 1966:95', 'Input=#X-CVC$ where X is any string of symbols\r\nOutput=#qam-X-CVC\\~CVC%\r\n\r\nThe word-final CVC string is repeated. I assume that inputs ends with CVC and there is no modification done on the reduplicant. A prefix qam is added before the word', '', '', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('Pacoh-RECP-Total', 'Pacoh', 'reciprocal', 'Total Reduplication', '(Moravcsik, 1978, p.320) who cites (Watson 1966: 96)', 'Input=#X% where X is a string of segments\r\nOutput=#tar-X\\~X%\r\n\r\nThe entire word is repeated. A prefix [tar] is added', '', '', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('Papago-PL-InitialCV', 'Papago', 'pluralize', 'Initial CV', '(Moravcsik, 1978, p.308,317) who cites (Langacker 1972: 266f,267)', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CV:\\~CV-X%\r\n\r\nThe word-initial CV string is repeated. The reduplicant V is lengthened.', '| Input | Gloss | Output | Gloss |\r\n|-------|-----------|----------|-----------|\r\n| kuna | \"husband\" | kuu-kuna | \"husband\" |\r\n| paga | \"hole\" | paa-paga | \"holes\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Paumari-unclear-FinalCVCV', 'Paumari ', 'unclear', 'Final CVCV', '(Rubino, 2005, p.14) who cites (Chapman and Derbyshire 1991)', 'Input=#X-CVCV% where X is any string of symbols\r\nOutput=#X-CVCV\\~CVCV%\r\n\r\nThe word-final CVCV string is repeated. I assume that input ends with CVCV and there is no modification done on the reduplicant. ', NULL, '', 0, 0, 0, '', 'targets root', 0, 0, 0, 0, ''),
('Pima-PL-Initial CV', 'Pima', 'plural', 'Initial CV', ' (Inkelas and Downing, 2015a, p.506) who cites (Haugen 2009)', 'Input=#A+B% where A and B are strings of segments, A is a stem, B is stem, A & B form a compound, and + is a morpheme boundary\r\nOutput=#A\\~A+B\\~B% or #A\\~A+B% or #A+B\\~B% \r\nEither both or one of the constituents is repeated.', '', '', 0, 0, 0, '', 'targets two morphological constituents', 0, 0, 0, 0, 'iterative, nondeterminism'),
('Quileute-FREQ/DISTR-FirstCafterFirstV', 'Quileute ', 'frequentative or distributive', 'First C after First V', '(Broselow & McCarthy, 1983) who cites (Andrade 1933: 187,188) \r\n', 'Input=#C~1~VX% \r\nOutput=#C~1~V\\~C~1~\\~X%\r\n\r\nInitial C is copied at placed after first V', '| Input | Gloss | Output | Gloss |\r\n|---------|-------------|------------|-----------------------------|\r\n| qa:le? | \"he failed\" | qa-q-le? | \"he failed (frequentative)\" |\r\n| tuko:yo | \"snow\" | tu-t-ko:yo | \"snow here and there\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Quileute-PL-InitialCV', 'Quileute ', 'pluralization', 'Initial CV', '(Moravcsik, 1978, p.308,319; (Broselow & McCarthy, 1983) who cites (Andrade 1933: 187,188) \r\n', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CV\\~CV\'-X% where V\' is a modified reduplicant vowel\r\n\r\nThe word-initial CV string is repeated. The reduplicant is placed after the first CV. The redplicant\'s vowel undergoes the following changes: \"if the stem vowel is a, the infixed vowel is e or i, whereas if the stem vowel is e, the copied vowel is generally i\". \r\n\r\nFor the sake of determinism I assume that /a/ surfaces as [e] in the reduplicant. There is an unspecified vowel shortening in the base', '| Input | Gloss | Output | Gloss |\r\n|----------|--------------------|--------------|-----------------|\r\n| t\'a:dax | \"tail (of a bird)\" | t\'a-te:-dax | \"tails\" |\r\n| haba: | \"tree\" | ha-hi-ba? | \"trees\" |\r\n| deq\'deq\' | \"mallard duck\" | de-di-q\'deq\' | \"mallard ducks\" |', 'Moravczik doesn\'t discuss or show the vowel modification, but instead shows that initial V is still copied. I had catalogued this as initial CV - Repair VX', 0, 1, 0, '', '', 0, 0, 0, 0, ''),
('Rotuman-CONT,FREQ,HAB?-InitialCV', 'Rotuman', 'continuative/frequentative/habitual?', 'Initial CV', '(Moravcsik, 1978, p.320) who cites (Churchward 1940)', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CV\\~CV-X%\r\n\r\nThe word-initial CV string is repeated. I assume that inputs start with CV and there is no modification done on the reduplicant.', '', '0', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Samala/Chumash-REP-InitialCVC', 'Samala/Chumash', 'repetitive ', 'Initial CVC', '(Inkelas and Downing, 2015a,p.507) who cites (Applegate 1972:383–84; 1976)\n', 'Input=#CVC-X$ where X is any string of symbols\r\nOutput=#CVC\\~CVC-X%\r\n\r\nThe word-initial CVC string is repeated. The root is targeted', '', '', 0, 0, 0, '', 'root is targeted', 0, 0, 0, 0, ''),
('Semai-unclearFirstLastC', 'Semai', 'unclear', 'First-Last C', '(Raimy, 2000a, p.146) who cites (Diffolth 1976)', 'Input=#C~1~-X-C~f~% where X is a string of segments\r\nOutput=#C~1~C~f~\\~C~1~-X-C~f~%\r\n\r\nThe first and last consonants are copied and placed before the base', '| Input | Gloss | Output | Gloss |\r\n|---------|-------|------------|-------------------------|\r\n| dŋɔh | ? | dh-dŋɔh | \"appearance of nodding\" |\r\n| cʔe:t | ? | ct-cʔe:t | \"sweet\" |\r\n| bʔəl | ? | bl-bʔəl | \"painful embarrassment\" |\r\n| ghup | ? | gp-ghup | \"irritation on skin\" |\r\n| kmrʔE:c | ? | kc-kmrʔE:c | \"short fat arms\" |', ' It is not clear what would happen if the input started with or ending with a vowel. Though \\cite[p.139]{Samuels-2010-TopologyInfixRedup} cites that Frampton (2009) admits that all words are consonant-final\r\n', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Shilh-PROG-InitialC', 'Shilh ', 'progressive ', 'Initial C', ' (Moravcsik, 1978, p.308) who cites (Sapir 1949: 78) ', 'Input=#C-X$ where X is any string of symbols\r\nOutput=#C\\~C-X%\r\n\r\nThe word-initial C string is repeated. I assume that inputs start with C and there is no modification done on the reduplicant. I assume there are reasons why this isn\'t just called gemination. \r\n', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Shipibo-CONT-Triplication', 'Shipibo', 'continuative', 'Triplication', '(Moravcsik, 1978, p.312) who cites (Key 1965: 91)', 'Input=#X%\r\nOutput=#X\\~X\\~X%\r\n\r\nThe entire input is triplicated', NULL, 'There\'s an undefined glottal stop insertion or deletion procecss involved', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Shuswap-DIM-InternalStressedSyllable', 'DIM', 'diminitive', 'Internal Stressed Syllable', '(Broselow and McCarthy, 1983, p.64-68) who cites (Bell 1983; Broselow 1983; Kuipers 1974; Thompson and Thompson 1981; Hess and Hilbert 1976)', 'Input=#X-CV\'-Y% where X and Y are strings of segments, V\' is stressed\r\nOutput=#X-CV\'-CV\'-Y%\r\n\r\nThe output has the stressed CV be repeated. The second V however tends to delete but in unspecified contexts. This forced me into nondeterminism. The sources state the first CV is the reduplicant.', '| Input | Gloss | Intermediate | Output | Gloss |\r\n|------------|------------------|---------------|--------------|-------------------|\r\n| pésəʎk^w^e | \"lake\" | pé-pésəʎk^w^e | pé-psəʎk^w^e | \"little lake\" |\r\n| kəpqín\' | \"her head aches\" | kəpqí-qín\' | kəpqí-qn\' | \"my head aches\" |\r\n| sqéxˇe | \"dog\" | sqé-qéxˇe\' | sqé-qxˇe\' | \"little dogs\" |\r\n| cqéʎp | \"fir tree\" | cqé-qéʎp | cqé-qʎp | \"little fir tree\" |', 'unspecifed vowel deletion rule forced me into nondeterminism', 1, 0, 0, '', 'stresed syllable', 0, 0, 0, 0, 'nondeterminism'),
('Siriono-CONT-FinalCVCV', 'Siriono', 'continuative tense', 'Final CVCV', ' (Moravcsik, 1978, p.309) who cites (Key 1965: 91)', 'Input=#X-CVCV$ where X is any string of symbols\r\nOutput=#X-CVCV\\~CVCV%\r\n\r\nThe word-final CVCV string is repeated. I assume that input ends with CVCV and there is no modification done on the reduplicant. ', '| Input | Gloss | Output | Gloss |\r\n|-------|--------------|------------|---------------------------|\r\n| erasi | \"he is sick\" | erasi-rasi | \"he continues to be sick\" |', 'It is unclear what would happen if a word ends with C or VV or CCV or CVVCC, or if the word is just CVC or CV', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('smo-PL-PenultimateCV', 'Samoan', ' plural ', 'Penultimate CV', '(Moravcsik, 1978, p.301,310) who cites (Pratt, 1862);\r\n(Broselow and McCarthy, 1983, p.30) who cites (Marantz 1982)', 'Input=#X-( C )V-Y% where X is (C\\*V)\\* and Y is C\\*VC\\* though Samoan phonology seems to only allow V and CV syllables\r\nOutput=#X-( C )V\\~( C )V-Y%\r\n\r\nThe penultimate CV string is repeated. The penultimate vowel doesn\'t need to follow a C. Onsetless vowels can follow the base/reduplicant and won\'t be copied. According to Broselow & McCarthy 1983, Samoan\'s pattern is identical to Chamorro. It targets stressed syllables which happen to be penultimate', '| Input | Gloss | Output | Gloss |\r\n|---------|--------------|------------|---------------|\r\n| ta.a | \"he strikes\" | ta-ta-a | \"they strike\" |\r\n| tu.u | \"he stands\" | tu-tu-u | \"they stand\" |\r\n| ma.te | \"he dies\" | ma-ma-te | \"they die\" |\r\n| no.fo | \"he sits\" | no-no-fo | \"they sit\" |\r\n| ta.o.to | \"he lies\" | ta.o-o-to | \"they lie\" |\r\n| a.lo.fa | \"he loves\" | a.lo-lo-fa | \"they love\" |', '', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('som-PL-InitialCVC', 'Somali', 'plural', 'Initial CVC', '(Rubino, 2005, p.23) who cites (Saeed 1999: 48-49)', 'Input=#CVC-X$ where X is any string of symbols\r\nOutput=#CVC\\~CVC-X%\r\n\r\nThe word-initial CVC string is repeated. I assume that inputs start with CV and there is no modification done on the reduplicant.', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('som-toXAtAllSides-Total', 'Somali', '\"to X at all sides\"', 'Total Reduplication', '(Moravcsik, 1978, p.321) who cites (Sapir 1949: 77)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('SouthernPaiute-unclear-InitialCVC', 'Southern Paiute', 'unclear', 'Initial CVC', '(Marantz, 1982, p.454) who cites (Pranka 1981) ', 'Two allomorphs\r\nInput=#CV-X$ where X is any string of symbols and B is either CV or CVN where N is a nasal\r\nOutput=#B\\~B-X%\r\n\r\nThe word-initial CVN or CV string is repeated. The reduplicant thus only has a coda when the base\'s post-V C is a nasal. I assume that inputs start with CVC and there is no modification done on the reduplicant. ', NULL, '', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('sun-CONT-InitialCV', 'Sundanese', 'continuative', 'Initial CV', '(Moravcsik, 1978, p.319) who cites (Robins 1959: 354)', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CV\\~CV-X%\r\n\r\nThe word-initial CV string is repeated. I assume that inputs start with CV and there is no modification done on the reduplicant.', '', '0', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('sun-INT-Total', 'Sundanese', 'intensity', 'Total Reduplication', '(Moravcsik, 1978, p.321) who cites (Robins 1959: 355)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('sun-notEvenX-Total', 'Sundanese', 'not even X', 'Total Reduplication', '(Moravcsik, 1978, p.301) who cites (Robins 1959: 363)', 'Input=#X% where X is a string of segments\r\nOutput=#sa-X\\~X%\r\n\r\nThe entire word is repeated. A prefix [sa] is added', '', '', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('sun-pretend-InitialCV', 'Sundanese', 'pretend to X', 'Initial CV', '(Moravcsik, 1978, p.314,323) who cites (Robins 1959: 360,361)\r\n(Rubino, 2005, p.21) who cites (Beaumont 1979)', 'Input=#CV-X$ where X is any string of symbols\r\nOutput=#CV~CV-X-ən% \r\n\r\nThe word-initial CV string is repeated. I assume that inputs start with CV and there is no modification done on the reduplicant. A suffix /ən/ is added, though only Moravcsik says so. I might have conflated two patterns', '', '', 0, 0, 0, 'diphthong reduction', '', 1, 0, 0, 0, ''),
('sun-RECP-Total', 'Sundanese', 'reciprocal', 'Total Reduplication', '(Moravcsik, 1978, p.314) who cites (Robins 1959: 363)', 'Input=#X% where X is a string of segments\r\nOutput=#pa-X\\~X%\r\n\r\nThe entire word is repeated. A prefix [pa] is added', '', '', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('sun-transitivize-InitialCV', 'Sundanese ', 'transitivize', 'Initial CV', '(Moravcsik, 1978, p.325) who cites (Robins 1959: 354)', 'Input=#CV-X$ where X is any string of symbols\r\nOutput=#Na-CV\\~CV-X%\r\nThe word-initial CV string is repeated. A prefix Na is inserted\r\n\r\nThere is some undefined nasal allomorphy occuring between the prefix\'s nasal and the reduplicant\'s C. It is not clear because the pattern is not stated.', NULL, 'There is some undefined nasal allomorphy occuring between the prefix\'s nasal and the reduplicant\'s C. It is not clear because the pattern is not stated.', 0, 0, 0, '', '', 1, 0, 1, 0, ''),
('swa-DIM-Total', 'Swahili', 'diminutive', 'Total Reduplication', '(Moravcsik, 1978, p.323) who cites (Ashton 1952: 316)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('tam-ECHO-Echo', 'Tamil', 'Echo', 'Echo', '(Rubino, 2005, p.516) who cites (Schiffman 1999: 172)', 'Input=#C\\*V-X% where X is a string of segments\r\nOutput=#C\\*V-X\\~gi-X%\r\nThe entire string is reduplicated except that the word-initial C\\*V is overwritten by a morphologically-specified string [gi]. \r\n\r\nLength of the base\'s V is maintained in [gi]', NULL, '', 0, 1, 0, 'vowel length maintenance', '', 1, 0, 0, 0, ''),
('Tausug-unclear-Total', 'Tausug ', 'unclear', 'Total Reduplication', '(Rubino, 2005, p.11) who cites (Hassan et al 1994) ', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire root is repeated.', '', '', 0, 0, 0, '', 'targets the root', 0, 0, 0, 0, ''),
('tel-emphasis?-Triplication', 'Telugu', 'emphasis?', 'Triplication', '(Moravcsik, 1978, p.313) who cites (Krishnamurti, p.c.)', 'Input=#X%\r\nOutput=#X\\~X\\~X%\r\nThe entire input is triplicated\r\n', NULL, 'It\'s not clear if this is productive morphology, or syntactic repetition', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Temiar-ACT/CONT-FirstLastC', 'Temiar', 'active continuative', 'First-Last C', '(Raimy, 2000a, p.146),(Broselow and McCarthy, 1983, p.39) who cites (Benjamin 1976, Gafos 1998)', 'Two allomorphs\r\n1) Input=#C~1~-VX-C_~f~% where X is a string of segments\r\nOutput=#C~1~C~f~\\~C~1~-X-C~f~%\r\n2) Input=#C~1~C~2~-VX-C~f~% where X is a string of segments\r\nOutput=#C~1~C~f~\\~C~2~-X-C~f~%\r\n\r\nIf there is no initial cluster, the first and last consonants are copied and placed before the base. Else if there is, the final consonant is copied and placed inside the cluster', '| Input | Gloss | Output | Gloss |\r\n|-------|-------|---------|---------------------|\r\n| slɔg | ? | s-g-lɔg | \"to sleep with\" |\r\n| smaɲ | ? | s-ɲ-maɲ | \"to ask a question\" |\r\n| kɔ̃w | ? | kw-kɔ̃w | \"to call\" |\r\n| gəl | ? | gl-gəl | \"to sit down\" |\r\n| rec | ? | rɲ-rec | \"to eat\" |', 'It is not clear what would happen if the input started with or ending with a vowel\r\n', 1, 0, 0, '', '', 0, 0, 0, 0, 'cluster repair'),
('tgl-DIM-FinalCVCV', 'Tagalog', 'diminutive', 'Final CVCV', '(Moravcsik, 1978, p.322) who cites (Schachter and Otanes 1972: 340)', 'Input=#X-B% where X is any string of symbols and B is CVCV or CVCVC\r\nOutput=#X-B\\~B%\r\n\r\nThe word-final CVCV or CVCVC string is repeated. Thus a final coda in the reduplicant is okay. I assume that inputs end with CVCV or CVCVC and there is no modification done on the reduplicant. ', '| Input | Gloss | Output | Gloss |\r\n|----------|-----------|----------------|-----------------------|\r\n| mahiya | \"ashamed\" | mahiya-hiya | \"be a little ashamed\" |\r\n| magwalis | \"sweept\" | magwalis-walis | \"sweep a little\" |', 'The pattern is not stated though.\r\n', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('tgl-everyX-Total', 'Tagalog', 'every X', 'Total Reduplication', '(Moravcsik, 1978, p.318) who cites (Blake 1917: 4Z5ff)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('tgl-IMPF-InitialCV', 'Tagalog', 'imperfective ', 'Initial CV', '(Mattes, 2007, p.83) who cites (Reid 1992: 85) ', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CV:\\~CV-X%\r\n\r\nThe word-initial CV string is repeated. The reduplicant V is lengthened. RED targets the root', NULL, '', 0, 0, 0, 'vowel lengthening', 'targets the root', 0, 0, 0, 0, ''),
('tgl-NMNZ-InitialCV', 'Tagalog', ' agent nominalization ', 'Initial CV', '(Moravcsik, 1978, p.325) who cites (Bloomfield 19 33: 218, 221£) \n', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CV\\~CV-X%\r\n\r\nThe word-initial CV string is repeated. I assume that inputs start with CV and there is no modification done on the reduplicant.\r\n\r\nLong vowels are retained', NULL, '', 0, 0, 0, 'long vowel retention', '', 0, 0, 0, 0, ''),
('tgl-unclear-InitialCV', 'Tagalog', 'unclear', 'Initial CV', '(Rubino, 2005, p.18)', 'Two allomorphs for RED\r\nInput=#C~1~C\\*V-X% where X is a string of symbols\r\nOutput=#C~1~V\\~C~1~C\\*V-X-suf%\r\n\r\nThe word-initial CC\\*V is reduplicated such that non-initial Cs are skipped in the reduplicated. An onset cluster is repaired in this way. A suffix is added after the 2nd copy', NULL, 'This may also be picking the lowest sonority consonant', 1, 0, 0, '', '', 1, 0, 0, 0, ''),
('tgl-unclear-InitialCVCV', 'Tagalog', 'unclear', 'Initial CVCV', '(Marantz, 1982, p.474) who cites (Carrier 1979)', 'Two patterns\r\n1) Input=#X# where X is CV( C )CV( C )\r\nOutput=#X\\~X%\r\n2) Input=#B-X# where X is a string of segments and B is CV( C )CV\r\nOutput=#B\\~B-X%\r\n\r\nIf the input is bisyllabic, then the whole input is copied and this is a normal case of total reduplication. \r\nIf the input larger than bisyllabic, then the whole the first (C)V(C)V sequence is copied. ', NULL, '', 0, 0, 0, 'vowel lengthening', 'targets the root', 0, 0, 0, 0, 'morpheme integrity'),
('tgl-unclear2-InitialCV', 'Tagalog', 'unclear', 'Initial CV', '(Marantz, 1982, p.474) who cites (Carrier 1979)', 'Input=#CV-X% where X is a string of symbols\r\nOutput=#CV\'~CV-X% where V\' is a short vowel\r\n\r\nThe word-initial CV is reduplicated.\r\n\r\nThe V of the reduplicant is shortened if it\'s long', NULL, '', 0, 0, 0, 'vowel shortening', '', 0, 0, 0, 0, ''),
('tgl-unclear3-InitialCV', 'Tagalog', 'unclear', 'Initial CV', '(Inkelas and Downing, 2015b, p.23) who cites (Schachter & Otanes 1972)', 'Two allomorphs\r\n1) Input=#CV-X% where X is a string of symbols\r\nOutput=#maŋ-CV\\~CV-X%\r\n2) Input=#V-X% where X is a string of symbols\r\nOutput=#maŋ-V\\~ŋV-X%\r\n\r\nWhen the prefix /maŋ/ is added, the initial consonant coalesces with the prefix\'s /ŋ/ and becomes a nasal. The nasal coalescence overapplies to the initial consonant in the second copy. \r\nIf the input starts with a vowel, the prefix surfaces with a default velar nasal in such a case. The second copy starts with the velar nasal', '| Input | Gloss | Output | Gloss |\r\n|-------|------------------|-------------|------------------------------|\r\n| bayan | \"town\" | ma-ma-mayan | \"resident of a city or town\" |\r\n| ibig | \"to be a suitor\" | ma-ŋi-ŋibig | \"love, fondness\" |', '', 1, 0, 0, '', '', 1, 1, 1, 0, 'overapplication'),
('tha-DIM-Total', 'Thai', 'diminutive', 'Total Reduplication', '(Moravcsik, 1978, p.323) who cites (Noss 1964: 68)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('tha-INT-Total', 'Thai', 'intensity', 'Total Reduplication', '(Moravcsik, 1978, p.321) who cites (Haas 1946: 128)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Thao-INT-FinalCVCV', 'Thao', 'intensity', 'Final CVCV', ' (Samuels, 2010, p.146) who cites (Fitzpatrick 2004: 20)', 'Input=#X-B-( C )% where X is a string of segments and B is (CC+CVC)V\r\nOutput=#X-B\\~B-( C )%\r\n\r\nThe output repeats the last vowel + the two segments before the last vowel. If the first of those two segments is a vowel, that vowel\'s onset is likewise copied. A final coda isn\'t copied', '| Input | Gloss | Output | Gloss |\r\n|--------|-------|---------------|--------------------------------|\r\n| šnara | ? | pa-šnara-nara | \"to ignite/burn (repeatedly)\" |\r\n| kikali | ? | kikali-kali | \"to ask (around)\" |\r\n| agqtu | ? | agqtu-qtu | \"to contemplate/think (about)\" |\r\n| arfaz | ? | arfa-rfaz | \"to fly (continuously)\" |', '', 1, 0, 0, '', '', 0, 0, 0, 0, ''),
('Thompson-DIM-InternalStressedSyllable', 'Thompson', 'diminitive', 'Internal Stressed Syllable', '(Broselow and McCarthy, 1983, p.64-68) who cites (Bell 1983; Broselow 1983; Kuipers 1974; Thompson and Thompson 1981; Hess and Hilbert 1976)', 'Input=#X-CV\'-Y% where X and Y are strings of segments, V\' is stressed\r\nOutput=#X-CV\'-CV\'-Y%\r\n\r\nThe output has the stressed CV be repeated. The second V however tends to delete but in unspecified contexts. This forced me into nondeterminism. The sources state the first CV is the reduplicant.', '', 'unspecifed vowel deletion rule forced me into nondeterminism', 1, 0, 0, '', 'stresed syllable', 0, 0, 0, 0, 'nondeterminism'),
('TohonoOodham-PL-InitialCV', ' Tohono O\'odham\r\n', 'plural', 'Initial CV', '(Raimy, 2000a, p.112) who cites (Saxton, Saxton and Enos 1989; Zepeda 1983)\r\n(Inkelas 2014: 119) who cites (Fitzgerald 2001: 942, 945)', 'Two allomorphs for RED\r\nInput=#C\\*C~f~V-X% where X is a string of symbols\r\nOutput=#C\\*C~f~V\\~C~f~V-X%\r\n\r\nThe word-initial CC\\*V is reduplicated such that only the pre-V C is produced in the reduplicant. An onset cluster is repaired in this way. The reduplicant is inside the base\r\n\r\nDiphthongs are reduced in the reduplicant\r\n\r\n', '| Input | Gloss | Output | Gloss |\r\n|---------|-------|------------|--------------|\r\n| gimai | ? | gi-gimai | \"a braggart\" |\r\n| pualt | ? | pu-pualt | \"a door\" |\r\n| tlaamba | ? | t-la-lamba | \"a tramp\" |\r\n| klaawo | ? | k-la-lwo | \"a nail\" |', '', 1, 0, 0, 'diphtong reduction', '', 0, 0, 0, 0, ''),
('tsi-unclear-InitialCV', 'Tsimshian', 'unclear', 'Initial CV', '(Moravcsik, 1978, p.321) who cites (Sapir 1949: 77), (Bloomfield 1915: 157)', 'Input=#CV-X% where X is any string of symbols\r\nOutput=#CV-P\\~CV-X% where P is a glottal stop\r\n\r\nThe word-initial CV string is repeated. I assume that inputs start with CV and there is no modification done on the reduplicant. A glottal stop inserted between the copies. It\'s unclear if this is phonological or morphological segmentalism', '', '0', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('tur-ECHO-Echo', 'Turkish', 'Echo', 'Echo', ' (Inkelas and Downing, 2015a, p.507,510) who cites (Lewis 1967:237)', 'Input=#C\\*VX% where X is a string of segments\r\nOutput=#C\\*VX\\~m-VX%\r\nThe entire string is reduplicated except that the word-initial onset is overwritten by a morphologically-specified segment [m]. If the word doesn\'t start with an onset, [m] is still inserted. ', '| Input | Gloss | Output | Gloss |\r\n|----------------|---------------------|-------------------------------|---------------------------------|\r\n| tarih hocaymiş | \"a history teacher\" | tarih hocaymiş-marih hocaymiş | \"a history teacher or whatever\" |', '', 0, 1, 0, '', '', 1, 0, 0, 0, ''),
('Tuvan-ECHO-Echo', 'Tuvan', 'diminutive', 'Echo', '(Rubino, 2005, p.516) who (Harrison 2000)', 'Input=#C\\*VX% where X is a string of segments\r\nOutput=#C\\*VX\\~m-VX%\r\nThe entire string is reduplicated except that the word-initial onset is overwritten by a morphologically-specified segment [m]. If the word doesn\'t start with an onset, [m] is still inserted.', '', '', 0, 1, 0, '', '', 1, 0, 0, 0, ''),
('twi-ADVZ-Triplication', 'twi', 'adverbalization ', 'Triplication', '(Moravcsik, 1978, p.313) who cites (Christaller 1875: 47) ', 'Input=#X%\r\nOutput=#X\\~X\\~X%\r\n\r\nThe entire input is triplicated', NULL, 'It sometimes has 4 copies. It\'s unclear what\'s going on', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('twi-DenomADJZ-Total', 'Twi', 'denonimal adjectivalization', 'Total Reduplication', '(Moravcsik, 1978, p.313,324) who cites (Christaller 1875: 46,47; 1973: 426)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('tzeltal-CONT-Total', 'Tzeltal', 'continuative', 'Total Reduplication', '(Moravcsik, 1978, p.319) who cites (Berlin 1963: 214)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X%\r\n\r\nThe entire word is repeated', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, ''),
('Tzeltal-DISTR-Total', 'Tzeltal', 'distributive', 'Total reduplication', ' (Moravcsik, 1978, p.307) which cites (Berlin 1963: 213f).', 'Input=#A+B% where A and B are strings of symbols, A is a numeral, and B is a root, and + is a morpheme boundary\r\nOutput=#A\\~A+B%\r\n\r\nTotal reduplication targets the numeral', '', '', 0, 0, 0, '', 'targets numerals in the NP', 1, 0, 0, 0, ''),
('Tzeltal-unclear-FinalVC', 'Tzeltal', 'unclear', 'Final VC', ' (Moravcsik, 1978, p.309,314) who cites (Berlin 1963:214)', 'Input=#X-VC% where X is any string of symbols\r\nOutput=#X-VC\\~VC%\r\n\r\nThe word-final VC string is repeated. I assume that inputs ends with VC and there is no modification done on the reduplicant. A suffix [an] is added after the second copy', '| Input | Gloss | Output | Gloss |\r\n|-------|--------------------|-----------|-----------------------------------------------------------|\r\n| -nit | \"to push it\" | nit-it-an | \"to push it rapidly in a curvy, crooked path\" |\r\n| -net | \"to press it down\" | net-et-an | \"to press it down, twisting rapidly the ball of the hand\" |', 'It is unclear what would happen if a word ends with V or CC. \r\n', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('Tzeltal-veryMuch-Total', 'Tzeltal', 'very much X/diminutive?', 'Total Reduplication', '(Moravcsik, 1978, p.318,22) who cites (Berlin 1963:212,216f)', 'Input=#X% where X is a string of segments\r\nOutput=#X\\~X-tik%\r\n\r\nThe entire word is repeated. A suffix [tar] is added', '', '', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('Warlpiri-unclear-InitialCVCV', 'Warlpiri ', 'unclear', 'Initial CVCV', '(Marantz, 1982, p.452) who cites (Nash 1980)', 'Input=#B-X$ where X is any string of symbols and B is CV( C )CV or CVV \r\nOutput=#B\\~B-X%\r\n\r\nIf the word starts with a CVCC\\*V string, then it is repeated. If it starts with CVV, then CVV is repeated.', NULL, '', 0, 0, 0, '', '', 0, 0, 0, 0, 'weight maximality, long vowel vs bisyllabic'),
('was-PL-InitialVCV', 'Washo', 'plural', 'Initial VCV', '(Broselow & McCarthy 1983: 45-53) who cites (Winter 1970, Jacobsen 1964)', 'Input=#( C )-VCVX$\r\nOutput=#( C )~VCV~VCVX\r\nThe initial VCV is copied. The first copy is the reduplicant. The first V of the reduplicant is shortened and unstressed. The two V\'s across the \\~ boundary are coalescend according to the following patterns:\r\n1) [+round]a --> o, vowel harmony spreads o onto following vowels\r\n2) [-round]a --> a\r\n3) V[not a]-->V\r\n4) VV are identical -> V\r\nlength and stress are preserved in vowel coalescence\r\n\r\nUnstressed word-initial vowels are deleted thus in VCV\\~VCVX, the initial V will delete because it is unstressed by the reduplicant\'s TETU effects\r\n\r\nFor simplicity I ignore the rare cases of monosyllabic roots', '| Input | Intermediate | Output |\r\n|-------|--------------|------------|\r\n| dámal | d-ama-ámal | dámal |\r\n| má:gu | m-agu-águ | m-ago:-go |\r\n| báli? | b-ali-áli? | b-al-áli? |\r\n| dúwe? | d-uwe-úwe? | d-uw-éwe? |\r\n| ícis | ici-ícis | c-ícis |\r\n| íleg | ile-íleg | l-éleg |', '', 1, 0, 0, 'shortening, coalescence, unstressed word-initial vowel deletion', 'targets roots', 0, 0, 0, 0, ''),
('Yakan-repeated/distributed-Initial C', 'Yakan', 'repeated/distributed', 'Initial C', '(Rubino, 2005, p. 16) who cites (Behrens 2002: 71)', 'Input=#C-X$ where X is any string of symbols\r\nOutput=#C-ew\\~C-X%\r\n\r\nThe word-initial C string is repeated. An infix [ew] is added between the copies. I assume that inputs start with C and there is no modification done on the reduplicant.', '', '', 0, 1, 0, '', '', 0, 0, 0, 0, ''),
('Yami-RECP-Total', 'Yami', 'reciprocal', 'Total Reduplication', '(Moravcsik, 1978, p.320) who cites (Gonda 1949: 182)', 'Input=#X% where X is a string of segments\r\nOutput=#mi-X\\~X%\r\n\r\nThe entire word is repeated. A prefix [mi] is added', '', '', 0, 0, 0, '', '', 1, 0, 0, 0, ''),
('YessanMayo-DISTR-Total', 'Yessan-Mayo', 'distributive', 'Total Reduplication', '(Samuels, 2010, p.165) who cites (Foreman 1974)', 'Input=#X% where X is a string of segments\r\nOutput=#X-suf\\~X-suf%\r\n\r\nThe entire word is repeated. A suffix is added after each copy', '', '', 0, 0, 0, '', '', 1, 1, 0, 0, ''),
('yor-PL-Total', 'Yoruba', 'plural', 'Total reduplication', ' (Moravcsik, 1978, p.307) who cites (Bamgbose 1966:113)\r\n', 'Input=#A+B% where A and B are strings of symbols, A is a noun, and B is an adjective, and + is a morpheme boundary\r\nOutput=#A+B\\~B%\r\n\r\nTotal reduplication targets the adjective', '| Input | Gloss | Translation | Output | Gloss | Translation |\r\n|------------|------------|-------------|-------------------|----------------|---------------|\r\n| aşa buruku | custom bad | translation | aşa buruku buruku | custom bad bad | \"bad customs\" |', '', 0, 0, 0, '', 'targets the adjective in an NP', 1, 0, 0, 0, ''),
('yor-polysemous-Initial C', 'Yoruba', 'polysemous', 'Initial C', '(Mattes, 2007, p. 137) who cites (Pulleyblank 1988: 265)', 'Input=#C-X$ where X is any string of symbols\r\nOutput=#C-i\\~C-X%\r\n\r\nThe word-initial C string is repeated. An infix [i] is added between the copies. I assume that inputs start with C and there is no modification done on the reduplicant.', '', '', 0, 1, 0, '', '', 0, 0, 0, 0, ''),
('zun-REP-FirstCafterSecondC', 'Zuni', 'medio-passive repetitive', 'First C after Second C', 'Broselow & McCarthy, 1983, p.43) who cites (Newman 1965: 55)', 'Input=#C~1~VC~2~V% \r\nOutput=#C~1~VC~2~\\~C~1~-V%\r\n\r\nThe sources argue that the output is derived from a canonical CVCV input', '| Input | Gloss | Output | Gloss |\r\n|-------|----------------------------------------|-----------------|-----------------------------------------|\r\n| čolo | \"to make the sound of crackling paper\" | čol-č-o+?a | \"it makes irregular cracking sounds\" |\r\n| tomo | \"to strike the skin drum\" | tom-t-o+k?+e+?a | \"who is making noises on the skin drum\" |', '', 0, 0, 0, '', '', 0, 0, 0, 0, '');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `2-way FST`
--
ALTER TABLE `2-way FST`
ADD PRIMARY KEY (`2-way FST ID`);
--
-- Indexes for table `matches`
--
ALTER TABLE `matches`
ADD PRIMARY KEY (`morpheme ID`,`2-way FST ID`),
ADD KEY `natural language pattern ID` (`morpheme ID`),
ADD KEY `matches_ibfk_3` (`2-way FST ID`);
--
-- Indexes for table `morphemes`
--
ALTER TABLE `morphemes`
ADD PRIMARY KEY (`morpheme ID`),
ADD KEY `language pattern ID` (`morpheme ID`),
ADD KEY `language pattern ID_2` (`morpheme ID`);
--
-- Constraints for dumped tables
--
--
-- Constraints for table `matches`
--
ALTER TABLE `matches`
ADD CONSTRAINT `matches_ibfk_3` FOREIGN KEY (`2-way FST ID`) REFERENCES `2-way FST` (`2-way FST ID`) ON UPDATE CASCADE,
ADD CONSTRAINT `matches_ibfk_4` FOREIGN KEY (`morpheme ID`) REFERENCES `morphemes` (`morpheme ID`) ON UPDATE CASCADE;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;