Improve source code comment
[xapian.git] / xapian-core / languages / lithuanian.sbl
blobd919d89bf4a2232df22404295dc480d4007f993e
1 // Alias: lt
3 externals ( stem )
5 // escape symbols for substituting lithuanian characters
6 stringescapes { }
8 /* Special characters in Unicode Latin Extended-A */
9 // ' nosine
10 stringdef a'   '{U+0105}'  // ą a + ogonek
11 stringdef e'   '{U+0119}'  // ę e + ogonek
12 stringdef i'   '{U+012F}'  // į i + ogonek
13 stringdef u'   '{U+0173}'  // ų u + ogonek
15 // . taskas
16 stringdef e.   '{U+0117}'  // ė e + dot
18 // - ilgoji
19 stringdef u-   '{U+016B}'  // ū u + macron
21 // * varnele
22 stringdef c*   '{U+010D}'  // č c + caron (haček)
23 stringdef s*   '{U+0161}'  // š s + caron (haček)
24 stringdef z*   '{U+017E}'  // ž z + caron (haček)
26 // [C](VC)^m[V|C]
27 // definitions of variables for
28 // p1 - position of m = 0
29 integers ( p1 )
31 // groupings
32 // v - lithuanian vowels
33 groupings ( v )
35 // v - all lithuanian vowels
36 define v 'aeiyou{a'}{e'}{i'}{u'}{e.}{u-}'
38 // all lithuanian stemmer routines: 4 steps
39 routines (
40   step2 R1 step1 fix_chdz fix_gd fix_conflicts
43 backwardmode (
45   define R1 as $p1 <= cursor
46   define step1 as (
47     setlimit tomark p1 for ([substring]) R1 among (
48       // Daiktavardžiai (Nouns)
49       // I linksniuotė (declension I)
50       'as' 'ias' 'is' 'ys'        // vyras, kelias, brolis, gaidys
51       'o'    'io'                 // vyro, kelio
52       'ui'   'iui'                // vyrui, keliui
53       '{a'}' 'i{a'}' '{i'}'       // vyrą, kelią, brolį
54       'u'    'iu'                 // vyru, keliu
55       'e'    'yje'                // vyre, kelyje
56       'y'    'au'    'i'          // kely, brolau, broli,
57       'an'                        // nusižengiman
59       'ai'   'iai'                // vyrai, keliai
60       '{u'}' 'i{u'}'              // vyrų, kelių
61       'ams'  'am'                 // vyrams, vyram
62       'iams' 'iam'                // broliams, broliam
63       'us'   'ius'                // vyrus, brolius
64       'ais'  'iais'               // vyrais, keliais
65       'uose' 'iuose' 'uos' 'iuos' // vyruose, keliuose, vyruos, keliuos
66       'uosna' 'iuosna'            // vyruosna, keliuosna
67       'ysna'                      // žutysna
69       'asis' 'aisi'               // sukimasis, sukimaisi
70       'osi'  '{u'}si'             // sukimosi, sukimųsi
71       'uisi'                      // sukimuisi
72       '{a'}si'                    // sukimąsi
73       'usi'                       // sukimusi
74       'esi'                       // sukimesi
76       'uo'                        // mėnuo
79       // II linksniuote (declension II)
80       'a'  'ia'                   // galva, vysnios
81       'os' 'ios'                  // galvos, vysnios
82       'oj' 'oje' 'ioje'           // galvoje, vysnioje
83       'osna' 'iosna'              // galvosna, vyšniosna
84       'om' 'oms' 'ioms'           // galvoms, vysnioms
85       'omis' 'iomis'              // galvomis, vysniomis
86       'ose' 'iose'                // galvose, vysniose
87       'on' 'ion'                  // galvon, vyšnion
90       // III linksniuote (declension III)
91       '{e.}'                      // gervė
92       '{e.}s'                     // gervės
93       'ei'                        // gervei
94       '{e'}'                      // gervę
95       '{e.}j' '{e.}je'            // gervėj, gervėje
96       '{e.}ms'                    // gervėms
97       'es'                        // gerves
98       '{e.}mis'                   // gervėmis
99       '{e.}se'                    // gervėse
100       '{e.}sna'                   // gervėsna
101       '{e.}n'                     // žydaitėn
104       // IV linksniuote (declension IV)
105       'aus' 'iaus'                // sūnaus, skaičiaus
106       'umi' 'iumi'                // sūnumi, skaičiumi
107       'uje' 'iuje'                // sūnuje, skaičiuje
108       'iau'                       // skaičiau
110       '{u-}s'                     // sūnūs
111       'ums'                       // sūnums
112       'umis'                      // sūnumis
113       'un' 'iun'                  // sūnun, administratoriun
116       // V linksniuote (declension V)
117       'ies' 'ens' 'enio' 'ers'    // avies, vandens, sesers
118       'eniui' 'eriai'             // vandeniui, eriai
119       'en{i'}' 'er{i'}'           // vandenį, seserį
120       'imi' 'eniu' 'erimi' 'eria' // avimi, vandeniu, seserimi, seseria
121       'enyje' 'eryje'             // vandenyje, seseryje
122       'ie' 'enie' 'erie'          // avie, vandenie, seserie
124       'enys' 'erys'               // vandenys, seserys
125       // 'en{u'}' konfliktas su 'žandenų' 'antenų'
126       'er{u'}'                    // seserų
127       'ims' 'enims' 'erims'       // avims, vandemins, seserims
128       'enis'                      // vandenis
129       'imis'                      // žebenkštimis
130       'enimis'                    // vandenimis
131       'yse' 'enyse' 'eryse'       // avyse, vandenyse, seseryse
134       // Būdvardžiai (Adjectives)
135       // (i)a linksniuotė
136       'iem' 'iems'                // geriem, geriems
137       'ame' 'iame'                // naujame, mediniame
140       // Veiksmažodžiai (Verbs)
141       // Tiesioginė nuosaka (indicative mood)
142       // esamasis laikas (present tense)
143       // (i)a asmenuotė (declension (i)a)
144       'uosi' 'iuosi'              // dirbuosi, traukiuosi
145       'iesi'                      // dirbiesi
146       'asi' 'iasi'                // dirbasi, traukiasi
147       'am{e.}s' 'iam{e.}s'        // dirbamės, traukiamės
148       'at' 'ate' 'iat' 'iate'     // dirbat, dirbate, ariat, traukiate
149       'at{e.}s' 'iat{e.}s'        // dirbatės, traukiatės
151       // i asmenuotė (declension i)
152       'isi'                       // tikisi
153       'im'                        // mylim
154       // 'ime' konfliktassu daiktavardžiu vietininku, pvz. 'gėrime'
155       'im{e.}s'                   // tikimės
156       'it' 'ite'                  // mylit, mylite, tikitės
157       // 'it{e.}s' konfliktas su priesaga ir dgs. vardininko galūne -ait-ės pvz. žydaitės
159       // o asmenuotė (declension o)
160       'ome'                       // mokome
161       'ot' 'ote'                  // mokot, mokote
163       // būtasis laikas
164       // o asmenuotė (declension o)
165       '{e.}jo' '{e.}josi'         // tikėjo, tikėjosi
166       'ot{e.}s'                   // tikėjotės/bijotės
168       // ė asmenuotė (declension ė)
169       'eisi'                      // mokeisi
170       '{e.}si'                    // mokėsi
171       '{e.}m' '{e.}me'            // mokėm, mokėme
172       '{e.}m{e.}s'                // mokėmės
173       '{e.}t' '{e.}te'            // mokėt, mokėte
174       '{e.}t{e.}s'                // mokėtės
176       // būtasis dažninis laikas (frequentative past tense)
177       'ausi'                      // mokydavausi
178       'om{e.}s'                   // mokydavomės/bijomės
181       // būsimasis laikas (future tense)
182       'siu' 'siuosi'              // dirbsiu, mokysiuosi
183       'si' 'siesi'                // dirbsi, dirbsiesi
184       's' 'ysis'                  // dirbs, mokysis
185       'sim' 'sime'                // dirbsim, dirbsime
186       'sit' 'site'                // gersit, gersite
188       // tariamoji nuosaka (subjunctive mood)
189       '{c*}iau' '{c*}iausi'       // dirbčiau
190       'tum' 'tumei'               // dirbtum, dirbtumei
191       'tumeis' 'tumeisi'          // mokytumeis, mokytumeisi
192       // 't{u'}' nes blogai batutų -> batų
193       't{u'}si'                   // mokytųsi
194       // 'tume' konfliktas su 'šventume'
195       'tum{e.}m'                  // dirbtumėm
196       'tum{e.}me'                 // dirbtumėme
197       'tum{e.}m{e.}s'             // mokytumėmės
198       'tute' 'tum{e.}t'           // dirbtute, dirbtumėt
199       'tum{e.}te'                 // dirbtumėte
200       'tum{e.}t{e.}s'             // mokytumėtės
202       // liepiamoji nuosaka (imperative mood)
203       'k' 'ki'                    // dirbk, dirbki, mokykis
204       // 'kis' konfliktas viln-išk-is
205       // 'kime' konfliktas, nes pirkime
206       'kim{e.}s'                  // mokykimės
208       // bendratis (infinitive)
209       'uoti' 'iuoti'              // meluoti, dygsniuoti
210       'auti' 'iauti'              // draugauti, girtuokliauti
211       'oti' 'ioti'                // dovanoti, meškerioti
212       '{e.}ti'                    // auklėti
213       'yti'                       // akyti
214       'inti'                      // auginti
215       'in{e.}ti'                  // blusinėti
216       'enti'                      // gyventi
217       'tel{e.}ti'                 // bumbtelėti
218       'ter{e.}ti'                 // bumbterėti
220       'ti'                        // skalbti
221       // 'tis' konfliktas, nes rytme-tis -> rytme
223       // dalyviai (participles)
224       '{a'}s' 'i{a'}s' '{i'}s'    // dirbąs, žaidžiąs, gulįs
225       't{u'}s'                    // suktųs -> suk
226       'sim{e.}s'                  // suksimės
227       'sit{e.}s'                  // suksitės
228       'kite'                      // supkite
229     )
231     delete
232   )
234   define step2 as repeat (
235     setlimit tomark p1 for ([substring]) among (
236       // daiktavardziu priesagos (Noun suffixes)
238       // budvardziu priesagos (Adjective suffixes)
239       // 'in' // konfliktas su 'augintinis' ir 'akiniais' // lauk-in-is
240       'ing'                       // tvark-ing-as
241       'i{s*}k'                    // lenk-išk-as
242       '{e.}t'                     // dem-ėt-as
243       'ot'                        // garban-ot-as
244       'uot' 'iuot'                // lang-uot-as, akin-iuot-as
245       // 'tin', nes augintinis    // dirb-tin-is
246       // 'ut', nes batutas, degutas etc. // maž-ut-is
247       'yt'                        // maž-yt-is
248       'iuk'                       // maž-iuk-as
249       'iul'                       // maž-ul-is
250       '{e.}l'                     // maž-ėl-is
251       'yl'                        // maž-yl-is
252       'u{c*}iuk'                  // maž-učiuk-as
253       'uliuk'                     // maž-uliuk-as
254       'ut{e.}ait'                 // maž-utėlait-is
255       'ok'                        // did-ok-as
256       'iok'                       // višč-iok-as
257       'sv' '{s*}v' 'zgan'         // sal-sv-as, pilk-šv-as, bal-zgan-as
258       'op' 'iop'                  // dvej-op-as, viener-iop-as
259       'ain'                       // apval-ain-as
260       'yk{s*}t' 'yk{s*}{c*}'      // ten-ykšt-is, vakar-ykšč-ias
262       // laisniai
263       'esn'                       // did-esn-is
264       'aus' 'iaus'                // nauj-aus-ias, ger-iaus-ias
266       // ivardziuotiniai budvardziai (Pronominal adjectives)
267       // vyriska gimine (Male gender)
268       'ias'                       // žaliasis
269       'oj' 'ioj'                  // gerojo, žaliojo
270       'aj' 'iaj'                  // gerajam, žaliajam
271       '{a'}j' 'i{a'}j'            // garąjį, žaliąjį
272       'uoj' 'iuoj'                // geruoju, žaliuoju
273       'iej'                       // gerieji
274       '{u'}j' 'i{u'}j'            // gerųjų, žaliųjų
275       'ies'                       // geriesiems
276       'uos' 'iuos'                // geruosius, žaliuosius
277       'ais' 'iais'                // geraisiais, žaliaisiais
279       // moteriska gimine (Female gender)
280       'os' 'ios'                  // gerosios, žaliosios
281       '{a'}s' 'i{a'}s'            // gerąsios, žaliąsias
283       // būtasis dažninis laikas (frequentative past tense)
284       'dav'                       // ei-dav-o
286       // dalyvių priesagos (particple suffix)
287       'ant' 'iant'
288       'int'                       // tur-int-is
289       '{e.}j'                     // tur-ėj-o
290       '{e'}'                      //
291       '{e.}j{e'}'
292       '{e'}s'                     // dirb-ęs-is
294       'siant'                     // dirb-siant
296       // pusdalyviai (participle)
297       'dam'                       // bėg-dam-as
299       'auj'                       // ūkinink-auj-a
300       'jam'
301       'iau'
302       'am'                        // baiminim-ams-i
303     )
305     delete
306   )
308   define fix_conflicts as (
309     [substring] among (
310       // 'lietuvaite' -> 'lietuvaitė', konfliktas su 'myl-ite'
311       'aite' (<-'ait{e.}')
312       // 'lietuvaitės' -> 'lietuvaitė', konfliktas su 'myl-itės'
313       'ait{e.}s' (<-'ait{e.}')
315       // ''ūs-uotės' -> 'ūs-uotė', konfliktas 'mokotės'
316       'uot{e.}s' (<-'uot{e.}')
317       // ''ūs-uote' -> 'ūs-uotė', konfliktas 'mokote'
318       'uote' (<-'uot{e.}')
320       // 'žerėjime' -> 'žėrėjimas', konfliktas su 'žais-ime'
321       '{e.}jime' (<-'{e.}jimas')
323       // 'žvilgesiu' -> 'žvilgesys', konfliktas su 'dirb-siu'
324       'esiu' (<-'esys')
325       // 'duobkasiu' -> 'duobkasys', konfliktas su 'pakasiu'
326       'asius' (<-'asys')
328       // 'žioravime' -> 'žioravimas', konfliktas su 'myl-ime'
329       'avime' (<-'avimas')
330       'ojime' (<-'ojimas')
332       // 'advokatės' -> 'advokatė', konfliktas su 'dirb-atės'
333       'okat{e.}s' (<-'okat{e.}')
334       // 'advokate' -> 'advokatė', konfliktas su 'dirb-ate'
335       'okate' (<-'okat{e.}')
336     )
337   )
339   define fix_chdz as (
340     [substring] among (
341       '{c*}' (<-'t')
342       'd{z*}' (<-'d')
343     )
344   )
346   define fix_gd as (
347     [substring] among (
348       'gd' (<-'g')
349       // '{e.}k' (<-'{e.}g')
350     )
351   )
355 define stem as (
357   $p1 = limit
359   do (
360     // priešdėlis 'a' ilgeniuose nei 6 raidės žodžiuose, pvz. 'a-liejus'.
361     try (test 'a' $(len > 6) hop 1)
363     gopast v  gopast non-v  setmark p1
364   )
366   backwards (
367     do fix_conflicts
368     do step1
369     do fix_chdz
370     do step2
371     do fix_chdz
372     do fix_gd
373   )