-
Notifications
You must be signed in to change notification settings - Fork 0
/
apertium-sme-nob.sme-nob.lex
3333 lines (2316 loc) · 137 KB
/
apertium-sme-nob.sme-nob.lex
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
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# -*- cg-pre-pipe: "apertium -d . sme-nob-biltrans | cg-conv -a 2>/dev/null" -*-
SOFT-DELIMITERS = "<,>" cm ;
DELIMITERS = "<.>" "<:>" "<!>" "<?>" "<...>" "<|>" "<$.>" "<$:>" "<$!>" "<$?>" "<$|>" sent ;
SETS
# I define end of clause and beginning of clause in a way so that the file
# may be read both by the CG-2 and the vislcg formalisms.
LIST BOS = (>>>) (<s>) (sent) ;
LIST EOS = (<<<) (</s>) (sent) ;
# CG3 doesn´t function without >>> and <<< !
# Tags declared as single-membered LISTs
# ======================================
# Parts of speech
# ---------------
LIST n = n ;
LIST adj = adj ;
LIST adv = adv ;
LIST vblex = vblex ;
LIST prn = prn ;
LIST det = det ;
LIST ind = ind ;
LIST cnjsub = cnjsub ;
LIST cnjcoo = cnjcoo ;
LIST post = post ;
LIST pr = pr ;
LIST pcle = pcle ;
LIST num = num ;
LIST interj = ij ;
LIST abbr = abbr ;
LIST acr = acr ;
LIST arab = arab ;
LIST clb = clb sent cm ;
LIST left = left lquot ;
LIST right = right rquot ;
LIST web = web ;
LIST punct = punct guio quot ;
LIST COMMA = "," ;
LIST ¶ = ¶;
#LIST V* = V* ;
#!! * Sets for POS sub-categories
# ------------------
LIST pers = pers ;
LIST dem = dem ;
LIST itgitg = itg ;
LIST indic = indic ;
LIST res = res ;
LIST ref = ref ;
LIST rel = rel ;
LIST pos = pos ;
LIST coll = coll ;
LIST nomag = nomag ;
LIST g3 = g3 ;
LIST np = np ;
#!! * Sets for Semantic tags
# -------------
LIST sem_ani = np.sem_ani sem_ani sem_ani-fish sem_ani_body-abstr_hum sem_ani_build sem_ani_build-part sem_ani_build_hum_txt sem_ani_group sem_ani_group_hum sem_ani_hum sem_ani_hum_plc sem_ani_hum_time sem_ani_plc sem_ani_plc_txt sem_ani_time sem_ani_veh ;
LIST sem_build = sem_amount_build sem_ani_build sem_ani_build-part sem_ani_build_hum_txt sem_build sem_build_event_org sem_build_obj sem_build-part sem_build-part_plc sem_build_build-part sem_build_clth-part sem_build_edu_org sem_build_event_org sem_build_org sem_build_route ;
LIST sem_ani-fish = sem_ani-fish ;
LIST sem_curr = sem_clth-jewl_curr sem_clth-jewl_curr_obj sem_clth-jewl_curr_obj_org sem_curr sem_curr_org ;
LIST sem_date = sem_date ;
LIST sem_domain = sem_domain sem_domain_food-med sem_domain_prod-audio ;
LIST sem_edu = sem_edu sem_build_edu_org sem_edu_event sem_edu_group_hum sem_edu_mat sem_edu_org ;
LIST sem_fem = sem_fem (ant f);
LIST sem_food = sem_body_food sem_domain_food-med sem_event_food sem_food sem_food-med sem_food_perc-phys sem_food_plant ;
LIST sem_clth = sem_body_clth sem_build_clth-part sem_clth sem_clth-jewl sem_clth-jewl_curr sem_clth-jewl_money sem_clth-jewl_org sem_clth-jewl_plant sem_clth-part sem_clth_hum ;
LIST sem_group = sem_act_group sem_ani_group sem_ani_group_hum sem_body_group_hum sem_body_group_hum_time sem_edu_group_hum sem_group sem_group_hum sem_group_hum_org sem_group_hum_plc sem_group_hum_prod-vis sem_group_org sem_group_sign sem_group_txt ;
LIST sem_hum = sem_ani_body-abstr_hum sem_ani_build_hum_txt sem_ani_group_hum sem_ani_hum sem_ani_hum_plc sem_ani_hum_time sem_aniprod_hum sem_body_group_hum sem_body_group_hum_time sem_body_hum sem_clth_hum sem_edu_group_hum sem_event_hum sem_feat-psych_hum sem_group_hum sem_group_hum_org sem_group_hum_plc sem_group_hum_prod-vis sem_hum sem_hum-abstr sem_hum_lang sem_hum_lang_plc sem_hum_lang_time sem_hum_obj sem_hum_org sem_hum_plant sem_hum_plc sem_hum_tool sem_hum_veh sem_hum_wthr ;
LIST sem_lang = sem_hum_lang sem_hum_lang_plc sem_hum_lang_time sem_lang sem_lang_tool ;
LIST sem_mal = sem_mal (ant m) ;
LIST sem_measr = sem_body_measr sem_measr sem_measr_sign sem_measr_time ;
LIST sem_money = sem_money ;
LIST sem_obj = sem_aniprod_obj-clo sem_body_obj_tool-catch sem_build_obj sem_game_obj-play sem_geom_obj sem_hum_obj sem_money_obj sem_obj sem_obj-clo sem_obj-cogn sem_obj-el sem_obj-ling sem_obj-play sem_obj-play_sport sem_obj-rope sem_obj-surfc sem_obj_semcon sem_obj_state ;
LIST sem_org = np.sem_org sem_build_event_org sem_build_edu_org sem_build_event_org sem_build_org sem_clth-jewl_org sem_ctain-abstr_org sem_curr_org sem_dance_org sem_edu_org sem_group_hum_org sem_group_org sem_hum_org sem_org sem_org_prod-cogn sem_org_rule sem_org_txt sem_org_veh sem_org org ;
LIST sem_plant = sem_clth-jewl_plant sem_ctain-clth_plant sem_drink_plant sem_feat_plant sem_food_plant sem_hum_plant sem_mat_plant sem_plant sem_plant-part sem_plant_plant-part sem_plant_tool sem_plant_tool-measr ;
LIST sem_plc = sem_act_plc sem_ani_hum_plc sem_ani_plc sem_ani_plc_txt sem_aniprod_plc sem_body_plc sem_build-part_plc sem_event_plc sem_event_plc-elevate sem_feat-measr_plc sem_group_hum_plc sem_hum_lang_plc sem_hum_plc sem_plc sem_plc-abstr sem_plc-abstr_rel_state sem_plc-abstr_route sem_plc-elevate sem_plc-line sem_plc-water sem_plc_pos sem_plc_route sem_plc_state sem_plc_substnc sem_plc_substnc_wthr sem_plc_time sem_plc_tool-catch sem_plc_wthr sem_plc top ;
LIST sem_rule = sem_rule ;
LIST sem_state = sem_state sem_obj_state sem_plc-abstr_rel_state sem_plc_state sem_state-sick sem_state-sick_substnc ;
LIST sem_sur = sem_sur ;
LIST sem_time = sem_time sem_ani_hum_time sem_ani_time sem_body_group_hum_time sem_body_time sem_event_time sem_hum_lang_time sem_measr_time sem_plc_time sem_time_wthr ;
LIST sem_veh = sem_ani_veh sem_ctain-clth_veh sem_feat-phys_veh sem_hum_veh sem_org_veh sem_veh ;
LIST sem_year = sem_year ;
LIST sem_txt = sem_txt sem_ani_build_hum_txt sem_ani_plc_txt sem_group_txt sem_mat_txt sem_money_txt sem_org_txt sem_prod-audio_txt sem_prod-cogn_txt sem_semcon_txt sem_txt ;
LIST sem_semcon = sem_semcon sem_semcon_txt ;
LIST sem_build-part = sem_build-part sem_build-part_plc ;
SET FIRSTNAME = (np ant f) OR (np ant m) OR (prop sem_fem) OR (prop sem_mal) ;
LIST TIME-N-SET = (n sem_time) ;
LIST NOT-TIME = "<dulvi>" "<lohpi>" "<vuorru>" ;
SET TIME-N = TIME-N-SET - NOT-TIME ;
LIST HUMAN = sem_hum sem_mal sem_fem cog ant sem_sur pers nomag der_nomag ;
SET LANGUAGE = (sem_lang) OR ("<.*giel>"ri n) OR ("<dárrolaš>"i) OR ("<nuortalaš>"i) OR ("<sápmelaš>"i) ;
#!! * Sets for Morphosyntactic properties
# --------------------------
LIST nom = nom ;
LIST acc = acc ;
LIST gen = gen ;
LIST ill = ill ;
LIST loc = loc ;
LIST com = com ;
LIST ess = ess ;
LIST sg = sg ;
LIST du = du ;
LIST pl = pl ;
LIST cmp_splitr = cmp_splitr ;
LIST cmp_attr = cmp_attr ;
LIST cmp = cmp ;
LIST px1sg = px1sg ;
LIST px2sg = px2sg ;
LIST px3sg = px3sg ;
LIST px1du = px1du ;
LIST px2du = px2du ;
LIST px3du = px3du ;
LIST px1pl = px1pl ;
LIST px2pl = px2pl ;
LIST px3pl = px3pl ;
LIST PX = px1sg px2sg px3sg px1du px2du px3du px1pl px2pl px3pl ;
LIST comp = comp ;
LIST sup = sup ;
LIST attr = attr ;
LIST ord = ord ;
LIST qst = qst ;
# The ("ge" pcle) etc. are used in Apertium
LIST foc_ge = foc_ge ("<ge>" pcle) ;
LIST foc_gen = foc_gen ("<gen>" pcle) ;
LIST foc_ges = foc_ges ("<ges>" pcle) ;
LIST foc_gis = foc_gis ("<gis>" pcle) ;
LIST foc_naj = foc_naj ("<nai>" pcle) ;
LIST foc_ba = foc_ba ("<ba>" pcle) ;
LIST foc_be = foc_be ("<be>" pcle) ;
LIST foc_hal = foc_hal ("<hal>" pcle) ;
LIST foc_han = foc_han ("<han>" pcle) ;
LIST foc_bat = foc_bat ("<bat>" pcle) ;
LIST foc_son = foc_son ("<son>" pcle) ;
LIST iv = iv ;
LIST tv = tv ;
LIST pasv = pasv ; # bidix-added
LIST der_pass = der_passl der_passs ;
LIST pret = pret;
LIST pres = pres ;
LIST pot = pot ;
LIST cond = cond ;
LIST imp = imp ;
LIST sg1 = (p1 sg) ;
LIST sg2 = (p2 sg) ;
LIST sg3 = (p3 sg) ;
LIST du1 = (p1 du) ;
LIST du2 = (p2 du) ;
LIST du3 = (p3 du) ;
LIST pl1 = (p1 pl) ;
LIST pl2 = (p2 pl) ;
LIST pl3 = (p3 pl) ;
LIST inf = inf ;
LIST conneg = conneg ;
LIST neg = neg ;
LIST prfprc = prfprc ;
LIST vgen = vgen ;
LIST prsprc = prsprc ;
LIST ger = ger ;
LIST supn = supn ;
LIST actio = actio ;
LIST der_passl = der_passl ;
LIST der_nomag = der_nomag ;
LIST Actor = nomag der_nomag ;
LIST vabess = vabess ;
# Derivation
# ----------
LIST der_adda = der_adda ;
LIST der_ahtti = der_ahtti ;
LIST der_alla = der_alla ;
LIST der_asti = der_asti ;
LIST der_easti = der_easti ;
LIST der_d = der_d ;
LIST der_nomact = der_nomact ;
LIST der_eamoš = der_eamoš ;
LIST der_amoš = der_amoš ;
LIST der_geahtes = der_geahtes ;
LIST !better: = !better: ;
LIST der_h = der_h ;
LIST der_heapmi = der_heapmi ;
LIST der_hudda = der_hudda ;
LIST der_huhtti = der_huhtti ;
LIST der_huvva = der_huvva ;
LIST der_halla = der_halla ;
LIST der_j = der_j ;
LIST der_l = der_l ;
LIST der_lasj = der_lasj ;
LIST der_las = der_las ;
LIST der_hat = der_hat ;
LIST der_meahttun = der_meahttun ;
LIST der_muš = der_muš ;
LIST der_n = der_n ;
LIST der_st = der_st ;
LIST der_stuvva = der_stuvva ;
LIST der_upmi = der_upmi ;
LIST der_supmi = der_supmi ;
LIST der_vuota = der_vuota ;
LIST der_inchl = der_inchl ;
LIST der_lágan = der_lágan ;
LIST der_lágán = der_lágán ;
LIST der_lágaš = der_lágaš ;
LIST der_jagáš = der_jagáš ;
LIST der_jahkásaš = der_jahkásaš ;
LIST der_diibmosaš = der_diibmosaš ;
LIST der_Dimin = der_dimin ;
LIST der_viđá = der_viđá ;
LIST der_viđi = der_viđi ;
LIST der_veara = der_veara ;
LIST der_duohke = der_duohke ;
LIST der_duohkai = der_duohkai ;
LIST der_vuolle = der_vuolle ;
LIST der_vuollai = der_vuollai ;
LIST der_vuolde = der_vuolde ;
# Syntactic tags
# --------------
LIST @+FAUXV = @+FAUXV ;
LIST @+FMAINV = @+FMAINV ;
LIST @-FAUXV = @-FAUXV ;
LIST @-FMAINV = @-FMAINV ;
LIST @-FSUBJ→ = @-FSUBJ→ ;
LIST @-F←OBJ = @-F←OBJ ;
LIST @-FOBJ→ = @-FOBJ→ ;
LIST @SPRED←OBJ = @SPRED←OBJ ;
LIST @-FADVL = @-FADVL ;
SET FOBJ = @-F←OBJ OR @-FOBJ→ ;
SET FMAINV = @-FMAINV OR @+FMAINV OR (vblex @←OBJ) OR (vblex @N←) OR (vblex @A←) OR (vblex @←SUBJ) OR (vblex @←ADVL) ;
SET FAUXV = @-FAUXV OR @+FAUXV ;
LIST @ADVL = @ADVL @ADVL→ @ADVL← @←ADVL @→ADVL @-F←ADVL ;
LIST @→ADVL = @→ADVL ;
LIST @ADVL← = @ADVL← ;
LIST @←ADVL = @←ADVL ;
LIST @ADVL→ = @ADVL→ ;
LIST @ADVL→CS = @ADVL→CS ;
LIST ←hab→ = ←hab→ (@ADVL→ prn loc) (@←ADVL prn loc);
LIST ←ext→ = ←ext→ ;
LIST HAB-V-TAGS = (p3 pl) (p3 sg) conneg prfprc inf ;
LIST @→N = @→N ;
LIST @N← = @N← ;
LIST @→A = @→A ;
LIST @P← = @P← ;
LIST @→P = @→P ;
LIST @HNOUN = @HNOUN ;
LIST @INTERJ = @INTERJ ;
LIST @→Num = @→Num;
LIST @Pron← = @Pron← ;
LIST @→Pron = @→Pron ;
LIST @Num← = @Num← ;
LIST @OBJ = @OBJ ;
LIST @←OBJ = @←OBJ ;
LIST @OBJ→ = @OBJ→ ;
LIST @OPRED = @OPRED ;
LIST @←OPRED = @←OPRED ;
LIST @OPRED→ = @OPRED→ ;
LIST @PCLE = @PCLE ;
LIST @COMP-CS← = @COMP-CS← ;
LIST @SPRED = @SPRED ;
LIST @←SPRED = @←SPRED ;
LIST @SPRED→ = @SPRED→ ;
LIST @SUBJ = @SUBJ ;
LIST @←SUBJ = @←SUBJ ;
LIST @SUBJ→ = @SUBJ→ ;
SET SUBJ = @←SUBJ OR @SUBJ→ OR @SUBJ ;
SET SPRED = @←SPRED OR @SPRED→ OR @SPRED ;
SET OPRED = @←OPRED OR @OPRED→ OR @OPRED ;
LIST @PPRED = @PPRED ;
LIST @APP = @APP ;
LIST @APP-N← = @APP-N← ;
LIST @APP-Pron← = @APP-Pron← ;
LIST @APP→Pron = @APP→Pron ;
LIST @APP-Num← = @APP-Num← ;
LIST @APP-ADVL← = @APP-ADVL← ;
LIST @VOC = @VOC ;
LIST @CVP = @CVP ;
LIST @CNP = @CNP ;
SET OBJ = (@←OBJ) OR (@OBJ→) OR (@OBJ) OR (@-F←OBJ) OR (@-FOBJ→) ;
LIST ←OBJ = @-F←OBJ @←OBJ ;
LIST OBJ→ = @OBJ→ @-FOBJ→ ;
SET ←OBJ-OTHERS = ←OBJ OR gen OR nom OR ess OR loc OR adv ;
SET OBJ→-OTHERS = OBJ→ OR gen OR nom OR ess OR loc OR adv ;
SET SYN-V = vblex + SUBJ OR OBJ + vblex OR @ADVL + vblex OR (vblex @N←) OR (vblex @A←) OR vblex + SPRED OR (vblex @COMP-CS←) ;
LIST @X = @X ;
LIST OKTA = "<akta>" "<okta>";
LIST go = "<go>" ;
# Initials
# --------
LIST INITIAL = "adj" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m"
"n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
"á" "æ" "ø" "å" "ö" "ä" ;
LIST CAP-INITIAL = "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
"Á" "Æ" "Ø" "Å" "Ö" "Ä" ;
# Tag sets
# ========
SETS
# ========
# Word or not
# -----------
LIST WORD = n adj adv vblex prn cnjsub cnjcoo post pr ij pcle num abbr acr \? ;
# any word
SET REALWORD = WORD - num - ord ;
SET REALWORD-NOTABBR = WORD - num - ord - abbr ;
SET WORD-NOTDE = WORD - ("<de>") ;
# Verb sets
# ---------
# Verbs and their complements
# - - - - - - - - - - - - - -
SET NOT-VERB = WORD - vblex;
# Finiteness and mood
# - - - - - - - - - -
SET V-IND-FIN = pres OR pret ;
# Problem: "In boahtán" is an invisible indicative
SET V-MOOD = indic OR pot OR imp OR cond OR (neg supn) ;
LIST GC = ("<gč>") ;
SET VFIN = GC OR V-MOOD - conneg ;
SET VFIN-POS = V-MOOD - conneg - neg ;
SET VFIN-NOT-IMP = VFIN - imp ;
SET VFIN-NOT-NEG = VFIN - neg ;
# this might be to strict, besides, "iige" can be written "ii ge"
SET NOT-PRFPRC = WORD - prfprc ;
# Person
# - - - -
LIST V-SG1 = (vblex p1 sg) ;
LIST V-SG2 = (vblex p2 sg) ;
LIST V-SG3 = (vblex p3 sg) ;
LIST V-DU1 = (vblex p1 du) ;
LIST V-DU2 = (vblex p2 du) ;
LIST V-DU3 = (vblex p3 du) ;
LIST V-PL1 = (vblex p1 pl) ;
LIST V-PL2 = (vblex p2 pl) ;
LIST V-PL3 = (vblex p3 pl) ;
# Note that imperative verbs are not included in these sets!
# Some subsets of the VFIN sets
# - - - - - - - - - - - - - - -
SET V-SG = V-SG1 OR V-SG2 OR V-SG3 ;
SET V-DU = V-DU1 OR V-DU2 OR V-DU3 ;
SET V-PL = V-PL1 OR V-PL2 OR V-PL3 ;
SET V-DU-PL = V-DU1 OR V-DU2 OR V-DU3 OR V-PL1 OR V-PL2 OR V-PL3 ;
SET V-NOT-SG1 = VFIN-NOT-IMP - V-SG1 ;
SET V-NOT-SG2 = VFIN-NOT-IMP - V-SG2 ;
SET V-NOT-SG3 = VFIN-NOT-IMP - V-SG3 ;
SET V-NOT-DU1 = VFIN-NOT-IMP - V-DU1 ;
SET V-NOT-DU2 = VFIN-NOT-IMP - V-DU2 ;
SET V-NOT-DU3 = VFIN-NOT-IMP - V-DU3 ;
SET V-NOT-PL1 = VFIN-NOT-IMP - V-PL1 ;
SET V-NOT-PL2 = VFIN-NOT-IMP - V-PL2 ;
SET V-NOT-PL3 = VFIN-NOT-IMP - V-PL3 ;
SET V-1-2 = V-SG1 OR V-SG2 OR V-DU1 OR V-DU2 OR V-PL1 OR V-PL2 ;
SET V-3 = V-SG3 OR V-DU3 OR V-PL3 ;
# Sets consisting of LEAT
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LIST LEAT = "<leat>"i ;
SET LEAT-FIN-NOT-IMP = LEAT - imp;
LIST VPRFPRC = (vblex prfprc) ;
LIST LEATPRFPRC = ("<leat>"i prfprc) ;
SET PRC-NOT-LEAT = VPRFPRC - LEATPRFPRC ;
# In order to distinguish between real leat-constructions and participles of other verbs
LIST HABEO-SG3 = ("<leat>"i p3 sg) (vblex neg p3 sg) ("<šaddat>" p3 sg) ;
LIST HABEO-PL3 = ("<leat>"i p3 pl) (vblex neg p3 pl) ("<šadda>t" p3 pl) ;
SET HABEO-3 = HABEO-SG3 OR HABEO-PL3 ;
# Pronoun sets
# ------------
LIST MUN = (pers p1 sg nom) ;
LIST DON = (pers p2 sg nom) ;
LIST SON = ("son" pers p3 sg nom) ;
LIST MOAI = (pers p1 du nom) ;
LIST DOAI = (pers p2 du nom) ;
LIST SOAI = (pers p3 du nom) ;
LIST MII-PERS = (pers p1 pl nom) ;
LIST DII = (pers p2 pl nom) ;
LIST SII = ("son" pers p3 pl nom) ;
SET PPRON-NOM-NOT-DAT = MUN OR DON OR SON OR MOAI OR DOAI OR SOAI OR MII-PERS OR DII OR SII ;
SET PPRON-NOT-DAT = pers - ("<dat>") ;
SET PPRON-DU-PL = MOAI OR DOAI OR SOAI OR MII-PERS OR DII OR SII ;
SET PPRON-PL = MII-PERS OR DII OR SII ;
SET PRON-DU = MOAI OR DOAI OR SOAI ;
SET PPRON-NOT-SII = MUN OR DON OR SON OR MOAI OR DOAI OR SOAI OR MII-PERS OR DII ;
LIST PPRON-GEN = (p1 sg gen) (p2 sg gen) (p3 sg gen) (p1 du gen) (p2 du gen) (p3 du gen)
(p1 pl gen) (p2 pl gen) (p3 pl gen) ;
SET PPRON-NOT-GEN = pers - PPRON-GEN ;
LIST DEM-SG = (prn dem sg nom) ;
LIST DEM-PL = (prn dem pl nom) ;
SET NOT-DEM = WORD - dem ;
LIST SGPRON = (prn p1 sg) (prn p2 sg) (prn p3 sg) (prn sg) (prn px1sg) (prn px2sg) (prn px3sg) ;
LIST DUPRON = (prn p1 du) (prn p2 du) (prn p3 du) (prn px1du) (prn px2du) (prn px3du) ;
LIST PLPRON = (prn p1 pl) (prn p2 pl) (prn p3 pl) (prn pl) (prn px1pl) (prn px2pl) (prn px3pl) ;
LIST DUPRON-NOTPX = (prn p1 du) (prn p2 du) (prn p3 du) ;
SET PRON-NOT-SG = DUPRON OR PLPRON ;
LIST DAT-PRON = ("<dat>") ("<dát>") ("<diet>") ("<duot>") ("<dot>") ;
LIST QUANT-PRON = "<ollu>" "<olu>" "<unnán>" "<váháš>" "<veaháš>" "<veháš>" ;
# This set is for choosing between Adv and Pron Indef.
# Adjectival sets and their complements
# -------------------------------------
SET NOT-A = WORD - adj ;
SET NOT-A-COMMA = WORD - adj - COMMA ;
SET NOT-Attr = WORD - attr ;
SET NOT-A-PCLE = WORD - adj - pcle ;
SET NOT-A-ADV = WORD - adj - adv OR ("<maid>") ;
LIST NOMINAL-ADJ = "<guoktilaš>" "<lámis>" "<oasálaš>" ("<suddu>" der_lasj) "<viissis>";
# and many others
# Adverbial sets and their complements
# ------------------------------------
SET LEX-ADV = adv - (a*) ;
SET NOT-ADV-DE = WORD - adv ;
SET NOT-ADV = NOT-ADV-DE OR ("<de>" adv) OR clb ;
SET NOT-ADV-PCLE = NOT-ADV - pcle ;
LIST MO-MANge = "<goas>" "<gokko>" "<gos>" "<gosa>" "<govt>" "<makkár>" "<man>" "<manne>" ("<manin>" adv) "<mo>" "<mot>" "<movt>" ("<nugo>" @CVP) (vblex qst) ;
SET MO = MO-MANge - ("man" foc_ge) ;
# Introduce finite clauses.
LIST PLACE-ADV = (sem_plc adv) ;
# There will usually be adj Gen in front.
LIST TIME-ADVL = (sem_time gen) (sem_time loc) ;
LIST TIME-ADV = (adv sem_time) ;
LIST DOPPE = "<badjin>"i "<bajil>"i "<dakko>"i "<dá>"i "<dákko>"i "<dáppe>"i "<diekko>"i "<dieppe>"i "<do>"i "<dokko>"i "<doppe>"i "<duo>"i "<duokko>"i "<duoppe>"i "<olgun>"i ;
# Adverbs with a locativic form, but don´t get Loc as a tag.
LIST DOHKO = "<bajás>" "<bajit>" "<deike>" "<diehke>" "<diehko>" "<dohko>" "<duohko>" "<lulás>" "<olggos>" "<ruoktot>" "<sisa>" "<vuovdimassii>" ;
# Adverbs with a illativic form, but they don´t get Ill as a tag.
# Coordinators
# ------------
LIST foc = foc_ge foc_gen foc_ges foc_gis foc_naj foc_ba foc_be foc_hal foc_han foc_bat foc_son foc_s foc_miss ;
LIST NEGFOC = (neg foc_ge) ;
LIST XGO = "<dego>" "<dugo>" "<nugo>" "<seammaládjego>" "<seammaláhkaigo>" ;
# Compounds
LIST SEAMMAX = "<seamma ládje>" "<seamma láhkai>" ;
# Those combine with go
LIST MADE = "<mađe>" "<mađi>" ;
LIST DADE = "<dađe>" "<dađi>" ;
SET CRD = (@CNP) OR COMMA OR NEGFOC OR XGO OR ("_") OR ("-") OR DADE ;
# AFTER LCRD vs. GCRD disambiguation
LIST HAB-CASE = loc (←smj→ ine) (←sma→ gen) ;
LIST HAB-ACTOR-ALL = sem_hum sem_mal sem_sur sem_fem ant sem_ani pers ("<gii>") (prn ind) coll ;
SET HAB-ACTOR = HAB-ACTOR-ALL - ("<cihca>") ;
SET HAB-ACTOR-NOT-HUMAN = sem_org ;
# Sets of elements with common syntactic behaviour
# ================================================
SETS
#!! * Sets for verbs
# -----
LIST NOT-REAL-V = (actio nom) (actio gen) (actio loc) (actio com) prsprc ;
SET REAL-V = vblex - NOT-REAL-V ;
#!! ** V is all readings with a V tag in them, REAL-V should
#!! be the ones without an N tag following the V.
#!! The REAL-V set thus awaits a fix to the preprocess V ... N bug.
# The set REAL is smaller than COPULAS, made for verbs with PrfPrc complements: Seammás REAL-COPULAS son dovdan iežas...
LIST REAL-COPULAS = "<dáidit>" "<leat>"i "<soaitit>" "<veadjit>" ;
#!! * The set COPULAS is for predicative constructions
LIST COPULAS = "<dáidit>" "<gártat>" "<leat>"i "<soaitit>" "<šaddat>" "<orrut>" "<veadjit>" ;
# "bissut" ?
# 'Dáidit' can appear without 'leat'.
SET NOT-COP-V = vblex - COPULAS ;
SET MAIN-V = vblex - FAUXV ;
# All active verbs with a TV tag, including AUX-OR-MAIN.
LIST V-TRANS = (vblex tv) (iv der_ahtti) (iv der_h) ;
SET TRANS-V = V-TRANS - der_pass + REAL-V ;
#!! * NP sets defined according to their morphosyntactic features
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LIST N-SG-NOM = (n sg nom) ;
SET HEAD-N = n - cmp_splitr ;
SET HEAD-N-NOM = (n nom) - cmp_splitr ;
SET SUBJECTHEAD = n OR adj OR prn - ref ; # These, can be subject heads
SET NP = n OR adj ; # anything that can take except numerals
SET NP-HEAD = prn OR HEAD-N - ("<buorre>") ;
SET NP-HEAD-SG = SGPRON OR (n sg) OR (adj sg) - cmp_splitr - dem - ("<buorre>") ;
SET NP-HEAD-PL = PLPRON OR (n pl) OR (adj pl) - cmp_splitr - dem - ("<buorre>") ;
SET NP-HEAD-SG-NOM = SGPRON + nom OR (n sg nom) OR (adj sg nom) - ("<buorre>") - cmp_splitr ;
SET NP-HEAD-PL-NOM = PLPRON + nom OR (n pl nom) OR (adj pl nom) - cmp_splitr - ("<buorre>") ;
SET NP-HEAD-NOM = NP-HEAD-SG-NOM OR NP-HEAD-PL-NOM ;
SET NP-HEAD-ACC = (prn acc) OR (n acc) OR (adj acc) - cmp_splitr - (dem attr) - ("<buorre>") ;
SET NP-HEAD-GEN = (prn gen) OR (n gen) OR (adj gen) - der_nomact - cmp_splitr - (dem attr) - ("<buorre>") ;
#!! * The PRE-NP-HEAD family of sets
#!! These sets model noun phrases (NPs). The idea is to first define whatever can
#!! occur in front of the head of the NP, and thereafter negate that with the
#!! expression __WORD - premodifiers__.
SET PRE-NP-HEAD = (np attr) OR (np @→N) OR (adj attr) OR (abbr attr) OR ("<buorre>")
OR (pers gen) OR (n gen) OR (adj gen) OR ("<buot>") OR (cmp) OR
num OR cmp_splitr OR cnjcoo OR (prn dem) OR (prn ref gen) OR (ind attr) OR
(prfprc @→N) OR prsprc OR (adj ord) OR (num @→N) OR (adj @→N) OR @→N OR @→A OR @→Pron OR @Num← OR (cnjcoo @CNP) OR (@→CC) OR (action gen) OR (@Pron←) ;
# The strict version of items that can only be premodifiers, not parts of the predicate
#LIST PRE-NP-HEAD = @>N @>A @>Pron @Num< @CNP ;
SET PRE-NP-V = prfprc OR prsprc OR der_nomag OR actio OR der_nomact OR (vblex adj) OR (pres p3 sg) + indic OR (pres p1 sg) + indic OR (imp p2 du) ;
# to be used together with PRE-NP-HEAD before @>N is disambiguated
SET NP-MEMBER = PRE-NP-HEAD OR n ;
SET PRE-A-N = (pers gen) OR (pers acc) OR (prn ind) OR num OR (adj ord) OR (adj attr) OR (prn dem) OR (prn ref gen) OR (prn ref acc) ; # Acc pga av manglende disambiguering tidlig i fila
SET NOT-PRE-A-N = WORD - PRE-A-N ;
LIST PUNCT-LEFT = lquot ;
LIST PUNCT-RIGHT = rquot ;
SET PRE-APP = COMMA OR PUNCT-LEFT OR PRE-NP-HEAD ;
# This set ist not only for what can
# stand in front of appositions but also
# postmodifiers.
#!! The set __NOT-NPMOD__ is used to find barriers between NPs.
#!! Typical usage: ... (*1 N BARRIER NPT-NPMOD) ...
#!! meaning: Scan to the first noun, ignoring anything that can be
#!! part of the noun phrase of that noun (i.e., "scan to the next NP head")
SET NOT-NPMOD = WORD - PRE-NP-HEAD OR abbr ;
# This is the previous NPNH (npnh) set.
# NOT-NPMOD = "NOT-PRE-NP-HEAD"
SET NOT-NPMOD-ACC = NOT-NPMOD - acc OR abbr ;
SET NOT-NPMOD-ACC-ADV = NOT-NPMOD - acc - adv OR abbr ;
# To be used in mappingrules, before the disambuation of Acc and Gen.
SET NOT-NPMODADV = WORD - PRE-NP-HEAD - adv ;
# NOT-NPMODADV = "NOT-PRE-NP-HEAD-OR-ADV"
SET NOT-NPMODADV-INDEF = WORD - PRE-NP-HEAD - adv - ind ;
## NOT-NPMODADVI = " ...-OR-INDEF"
SET NOT-NPMODADVII = WORD - PRE-NP-HEAD - adv - ind - ill ;
# Illative indir.obj.
SET NOT-NPMODADVIIP = WORD - PRE-NP-HEAD - adv - ind - ill - pcle ;
# <== is this our NOT-NPMOD set?
SET NOT-NPMODCC = WORD - PRE-NP-HEAD - COMMA - @CNP ;
SET NAPP = WORD - PRE-APP ;
#!! * Miscellaneous sets
# ------------------
LIST Px = px1sg px2sg px3sg px1du px2du px3du px1pl px2pl px3pl ;
LIST GASKAL = "<gaskal>" "<gaskkal>" "<gaskii>" "<gaskka>" "<gaskkas>" ;
# p-positions that like coordination
LIST TIME-PP = "<badjel>" "<čađa>" "<earret>" "<gaskkal>" "<guovddáš>" "<maŋŋel>" "<maŋŋil>" "<maŋŋá>" "<miehtá>" "<ovdal>" ;
SET NUM = num - OKTA ;
# this set does not contain ordinals, I am not sure if that is necessary.
SET NOT-NUM = WORD - num ;
LIST MANGA = "<máŋga>" "<galle>" ;
# Not referred to by any rule.
SET CARDINALS = num - ord - MANGA ;
SET NOT-CC = WORD - cnjcoo ;
SET NOT-PCLE = WORD - pcle ;
LIST COMPAR = "<dávji>" "<eanet>" "<earalágan>" "<eará>" "<earret>" "<seammás>" "<seammalágan>" "<seamma láhkái>" ;
# These combine with "go" Pcle, but COMPAR stands for 'comparison' rather than
# 'comparative'.
LIST CONTRA = "<muhto>" ;
# In lean muitalan, muhto dál muitalan.
LIST PROSEANTA = "<proseanta>" "<%>" ;
SET REAL-CLB = clb - COMMA ;
SET NOT-INITIAL-CC = WORD - INITIAL - cnjcoo ;
#!! * Border sets and their complements
# ---------------------------------
SET CP = (prn itg) OR (prn rel) OR MO ;
LIST BOUNDARYSYMBOLS = "<\;>" "<:>" "<->" "<–>" ;
SET S-BOUNDARY = CP OR BOUNDARYSYMBOLS OR ("<muhto>") OR ("<de>" adv) OR (neg supn) OR @CVP OR ("<vel>" adv qst) ;
# does not include CS, because of "go" in questions, before it is disambugated.
# includes CP
# this one includes @CVP, the conjunction which actually connects two sentences (each with a finite verb) to each other,
# and not @CNP, which coordinates internal NP-/AdvP-/AP ... coordination
# To be used only AFTER the disambiguation of @CVP and @CNP taking place in the chapter right before "Disambiguating pronouns"
SET BOC = S-BOUNDARY OR BOS ;
SET BOC-PUNCT = BOC - ("-") - ("–") ;
SET EOC = S-BOUNDARY OR EOS ;
SET NP-BOUNDARY = BOS OR EOS OR REAL-CLB OR VFIN OR inf OR (actio ess) OR conneg OR vgen OR supn OR PPRON-NOT-GEN OR res OR post OR pr OR pcle OR interj OR cnjsub OR @CVP ;
SET APP-BOUNDARY = REAL-CLB OR VFIN OR inf OR (actio ess) OR conneg OR vgen OR supn OR res OR post OR pr OR pcle OR interj OR cnjsub OR prfprc - @→N ;
# A special barrier used with mapping of appositions.
# This set contains FMAINV with @, which means that it functions for all kind of mainverbs after the verb-mapping rules
SET SV-BOUNDARY = S-BOUNDARY OR inf - FAUXV OR supn OR FMAINV ;
# VFIN-NOT-AUX ;
# should be MAIN-V linked to VFIN-aux to the left. (cg-3)
# This set is ment to use in rules for disambiguating due to verbs or verbsets. It contents @.
SET SVF-BOUNDARY = S-BOUNDARY OR VFIN ;
# This set is ment to use in rules for disambiguating due to verbs or verbsets.
# Here we search for either an S-BOUNDARY or a finite verb, either aux or main.
LIST ADVLCASE = ill loc com ess ine ela ;
LIST CASE = nom acc gen ill loc com ess ine ela ;
#!! * Syntactic sets
# --------------
LIST HEAD = @SUBJ→ @←SUBJ @SUBJ @OBJ @OBJ→ @←OBJ @ADVL @ADVL→ @←ADVL @SPRED→ @←SPRED @SPRED @OPRED→ @←OPRED @OPRED @-FSUBJ→ @-FOBJ→ @-FADVL→ @-FSPRED→ @-F←SUBJ @-F←OBJ @-F←ADVL @-F←SPRED ;
#!! These were the set types.
# Then come the rules
# Then come the rules
# Then come the rules
# Then come the rules
# Then come the rules
# Then come the rules
SECTION
REMOVE cmp (0 n) ;
# Conditionalis: kunne vs skulle vs ville
SELECT:buoremus-livččii (cond-ville) (-1 adj + sup) (0 ("<leat>"i)) ;
SELECT:sáhttit (cond-skulle) (0 ("<sáhttit>"i)) ;
SELECT:fallback-kunne (cond) ;
SET OLLU = ("<ollu>"i) OR ("<olu>"i) ;
#SELECT ("mange"i) (0 OLLU LINK 1 ("<giitu>"i)) ;
SELECT ("mye"i) (0 OLLU LINK *1 (sem_plc_substnc_wthr) OR n + sg BARRIER n) ;
SELECT ("mye"i) (0 OLLU LINK 1 comp) ;
SELECT ("mange"i) (0 OLLU LINK *1 pl BARRIER WORD - attr) ;
SELECT:fallback ("mye"i) (0 OLLU) ;
SELECT ("bak"i) (0 ("<duohken>"i) LINK -1 sem_build OR sem_plc - (top) OR ("<lohku>"i)) ;
SELECT:fallback ("avhengig av"i) (0 ("<duohken>"i)) ;
SELECT ("om"i) (0 ("<alde>"i) OR ("<nalde>"i) LINK *-2 ("<nággu>"i) OR ("<gilvu>"i) OR ("<gilvalit>"i) OR ("<nágget>"i) OR ("<riidu>"i) OR ("<riidalit>"i) BARRIER SV-BOUNDARY) ;
SELECT:fallback ("på"i) (0 ("<alde>"i) OR ("<nalde>"i)) ;
# go (default)=> når
# go:1 => at, go:2 => enn, go:3 => som, go:4 => da, go:5 => fordi
SELECT:når ("når"i) (0 ("<go>"i)) (-1 ("<rápmi>"i) + loc) ;
SELECT:så-langt-som ("som"i) (0 ("<go>"i)) (-2 ("så" "<nu>")) (-1 adj OR adv OR ind) (0 cnjsub) ;
SELECT:som ("som"i) (0 ("<go>"i)) (*-1 ("<seammá>"i) OR ("<liikka>"i) BARRIER SV-BOUNDARY) ;
SELECT:som ("som"i) (0 ("<go>"i)) (1 ("<eará>"i) OR ("<navdit>") OR ("<jáhkkit>")) ;
SELECT:som ("som"i) (0 ("<go>"i)) (-1 comp LINK -1 ("<beali>"i)) ;
SELECT ("at"i) (0 ("<go>"i)) (0 cnjsub) (-1 ("<maŋŋel>"i) OR ("<ovdal>"i) OR ("<dan dihte>"i) LINK 0 adv) ;
SELECT ("at"i) (0 ("<go>"i)) (0 cnjsub) (-1 COPULAS LINK -1 (adj nom)) ;
#SELECT ("at"i) (0 ("<go>"i)) (0 cnjsub) (-1 adj - comp) ;
## Son bijai vuosttaš spáppa mollii 22 minuvtta maŋŋel go čiekčamat ledje álgán.
## Buorre lei go bohtet.
## Gummá go ii boahtán.
SELECT ("enn"i) (0 ("<go>"i)) (0 cnjsub LINK 1 ("<vejolaš>"i)) ;
SELECT ("enn"i) (0 ("<go>"i)) (0 cnjsub LINK 1 (@COMP-CS←)) ;
SELECT ("enn"i) (0 ("<go>"i)) (0 cnjsub LINK -1 (@COMP-CS←)) ;
SELECT ("enn"i) (0 ("<go>"i)) (0 cnjsub) (-1 ("<veara>"i) OR ("<eará>"i)) ;
SELECT ("enn"i) (0 ("<go>"i)) (-1 ("<veara>"i) OR ("<eará>"i)) ;
SELECT ("enn"i) (0 ("<go>"i)) (1 ("<dušše>"i) OR ("<goassege>"i)) ;
SELECT ("enn"i) (0 ("<go>"i)) (-1 conneg LINK -1 neg)(NEGATE 1 VFIN) ;
SELECT ("enn"i) (0 ("<go>"i)) (0 cnjsub) (*-1 ("<ovdal>"i) OR ("<eará>"i) BARRIER S-BOUNDARY) ;
SELECT ("enn"i) (0 ("<go>"i)) (0 cnjsub) (*-1 comp BARRIER VFIN OR S-BOUNDARY) ;
## Son lea viššaleabbo go mun.
## Dat dáidá riggát go mii jáhkkit.
## Dii han lehpet eanet veara go ollu cizážat.
## Viššalat ohppet eanet go láikkit.
## Ovdal buorida son dálkkiidis go neavrres olmmoš dábiidis.
SELECT ("som"i) (0 ("<go>"i)) (0 cnjsub) ((-1 ("<nu>"i) OR ("<seammá>"i) OR ("<seammás>"i) LINK 0 adv) OR (-1 adv OR adj LINK -1 ("<nu>"i))) ;
## Elvenes oaččui Niehkostipeandda nu go lei sávvan.
SELECT ("da"i) (0 ("<go>"i)) (0 cnjsub) (*1 (vblex pret) BARRIER (←hab→) OR (@ADVL→)) ;
SELECT ("fordi"i) (0 ("<go>"i)) (0 cnjsub) (1 (@ADVL→) OR (←hab→) LINK 1 COPULAS) ;
## Olbmot leat čoagganan Kárášjoga márkanii, go márkanis leat beassášdoalut.
SELECT ("fordi"i) (0 ("<go>"i)) (-1 adj + nom) ;
SELECT ("når"i) (0 ("<go>"i) LINK *1 indic) ;
SELECT:fallback ("når"i) (0 ("<go>"i) + cnjsub) ;
#SELECT ("i"i) (0 ("<otná>"i) LINK 1 (sem_time)) ;
SELECT ("i dag"i) (0 ("<otná>"i) LINK 1 post) ;
SELECT:fallback ("dagens"i) (0 ("<otná>"i)) ;
SELECT:fallback ("hvilken av de to"i) (0 ("<goabbá>"i)) ;
SELECT ("fra hele"i) (0 ("<miehtá>"i) LINK -1 ("<boahtit>"i)) ;
SELECT:fallback ("i hele"i) (0 ("<miehtá>"i)) ;
SELECT ("rundt"i) (0 ("<birra>"i) LINK 0 post LINK *0 ("<vuodjit>"i) ) ;
SELECT ("på"i) (0 ("<birra>"i) LINK 0 post LINK *-1 ("<jurddašit>"i) BARRIER SV-BOUNDARY ) ;
SELECT:fallback ("om"i) (0 ("<birra>"i)) ;
SELECT ("innen"i) (0 ("<sisa>"i) LINK 0 post LINK -1 sem_time) ;
SELECT:fallback ("inn i"i) (0 ("<sisa>"i) LINK 0 post) ;
SELECT:fallback ("foran"i) (0 ("<ovdalii>"i) ) ;
SELECT ("alene"i) (0 ("<iehčanassii>"i)) (-1 ("leat"i)) ;
# post: mielde => med, mielde:1 => langs, mielde:2 => i følge, mielde:3 => etter
SELECT ("etter"i) (0 ("<mielde>"i)) (0 post) (-1 ("<dárbu>"i) OR ("<miella>"i)) ;
SELECT ("i løpet av"i) (0 ("<mielde>"i)) (0 post LINK -1 sem_time) ;
SELECT ("langs"i) (0 ("<mielde>"i)) (0 post) (-1 ("<šaldi>"i)) ;
## Don vieččat boaldinmuoraid dárbbu mielde.
SELECT ("med"i) (0 ("<mielde>"i)) (0 adv) ;
SELECT ("med"i) (0 ("<mielde>"i)) (-1 ("<ahki>"i) OR ("<stevvel>"i)) ;
SELECT ("for å"i) IF (0 ("<vai>"i) + cnjsub) (1 inf) ;
SELECT:fallback ("for at"i) IF (0 ("<vai>"i) + cnjsub) (NOT 1 inf) ;
SELECT ("all"i) IF (0 ("<juohke>"i) LINK 1 ("<lágan>")) ;
#$ juohke lágán geđggiiguin
SELECT ("mens"i) IF (0 ("<bodda>"i) LINK -1 ("<dat>") LINK 0 gen) ;
SELECT ("stenge"i) IF (0 ("<gitta>"i) LINK *0 ("<geaidnu>"i) OR ("<luodda>"i) OR ("<gáhtta>"i) OR ("<uksa>"i) BARRIER S-BOUNDARY) ;
SELECT ("helt"i) IF (0 ("<gitta>"i) + @→A OR ("<gitta>"i) + @→N) ;
SELECT ("helt"i) IF (0 ("<gitta>"i) LINK 1 sem_time + ill) ;
SELECT ("inntil"i) IF (0 ("<gitta>"i) + @→Num) ;
SELECT ("inntil"i) IF (0 ("<gitta>"i) LINK 1 adv + (@←ADVL-ine)) ;
SELECT ("fast"i) IF (0 ("<gitta>"i)) (*-1 ("<váldit>"i) OR ("<váldot>"i) OR ("<darvánit>"i) OR ("<oažžut>"i) OR ("<fidnet>"i)) ;
SELECT:fallback ("lukket"i) IF (0 ("<gitta>"i) LINK *0 ("<čalbmi>"i)) ;
SELECT:fallback ("stenge"i) IF (0 ("<gitta>"i)) ;
SELECT ("så"i) IF (0 ("<ná>"i) LINK 1 adj OR adv) ;
SELECT:fallback ("slik"i) IF (0 ("<ná>"i)) ;
SELECT:fallback ("enda"i) IF (0 ("<vel>"i)) ;
# Verbs
# =====
#leat
# leat 0 = være, 1 = ha, 2 = måtte («ha å»)
SELECT:adj ("være"i) IF (0 ("<leat>"i) LINK 1 ("<lihkku>"i) LINK 0 (←ext→)) ; # mus lea lihkku - jeg er heldig
SELECT:actio ("være"i) IF (0 ("<leat>"i) LINK 1 actio + ess) ; #
SELECT:aux ("ha"i) IF (0 ("<leat>"i) LINK 1 ("<dáhpáhuvvat>"i) OR ("<leat>"i)) ;
SELECT:aux (agreem-pro) IF (0 ("<leat>"i) LINK *1 ("<dáhpáhuvvat>"i) OR ("<leat>"i) OR (agreem-pro) BARRIER NOT-ADV) ;
SELECT:aux ("være"i) IF (0 ("<leat>"i) LINK 1 (agreem-pro)) ;
SELECT ("måtte"i) IF (0 ("<leat>"i) LINK -1 loc + HUMAN) (1 inf) ;
# mis lea cahkkehit dola
SELECT:hab-ha ("ha"i) IF (0 ("<leat>"i)) (*-1 (@ADVLhab→) BARRIER SV-BOUNDARY) ;
SELECT:hab-ha ("ha"i) IF (0 ("<leat>"i)) (*-1 FMAINV BARRIER SV-BOUNDARY LINK -1 rel LINK *-1 (@ADVLhab→) BARRIER WORD) ;
SELECT:hab-ha ("ha"i) IF (0 ("<leat>"i)) (*1 (@←ADVLhab) BARRIER SV-BOUNDARY) ;
SELECT:neg-ha ("ha"i) IF (0 ("<leat>"i)) (-1 neg) (*-2 ←hab→ BARRIER NOT-ADV) ;
SELECT:ha-NOT-actio ("ha"i) IF (0 ("<leat>"i)) (0 FAUXV) (NEGATE *1 actio + ess BARRIER S-BOUNDARY) (NOT *1 der_pass + prfprc) ;
# sin giella lea<er> áitojuvvon ja sáhttá jávkat; … sii leat<er> dál<Adv> guorahallamin<Actio> …
# Dat leat šaddan nu stuorat ahte dat šaddá nu váivi ja lossat dan oahpat dan dáfus go sii leat massán dan interessa mii sis lei go sii ledje unnibut
# Leat go Ibsenii sáddemin dieđu?
SELECT:ha-pret ("ha"i) IF (0 ("<leat>"i) LINK NOT -1 @SPRED→) (0 (indic pret)) (1 inf) ;
# Jos mun ledjen dadjat sátnegeažige, de ii son lean vuolgit.
# (Perf Cond 2)
# TODO: Gávpotmuvrra vuođđogeađggit ledje<være> čiŋahuvvon
# (unfortunately no animacy, and agreem-pro isn't until bidix...)
# TODO: ledje<ha> ovdalaččas guokte nieidda
#SELECT:ha-prfprac ("ha"i) IF (0 ("<leat>"i)) (*1 prfprc + @-FMAINV BARRIER SV-BOUNDARY) ; #LOOK AT THIS
SELECT:Det-er ("være"i) IF (0 ("<leat>"i)) (-1 ("<Dat>") + @SUBJ→) ; # Dat lea …
SELECT:Det-er ("få# være"i) IF (0 ("<bállet>"i)) (1 ("<ráfi>") ) ;
SELECT:fallback ("ha# ro til"i) IF (0 ("<bállet>"i)) ;
SELECT:alle-hadde-samisk ("ha"i) IF (0 ("<leat>"i)) (-1 loc + @ADVL→ - dem) (*1 @←SUBJ - inf) ;
# Buohkain lei sámegiella eatnigiella
# … ahte mis lea juo Guovdageainnus juo ovddit jagi …
# Sis ledje olusat sápmelaččat ja sii oahpahedje sámegillii.
# Bohccot mis ledje Árdnisullos.
# Sámiid oahpaheamis lei prinsihpalaččat seammá mihttomearri go dážaid oahpaheamis.
SELECT:som-jeg-har. ("ha"i) IF (0 ("<leat>"i)) (-1 loc + @ADVL→ - dem) (NOT *1 inf) ; # Dat lea buot mii mus lea
# Exceptions:
# dikki mielas livččii dehálaš oččodit olbmuide diđolašvuođa ahte …
# TODO-exceptions:
# Sámedikki váldovuoruheamit oahppoplánabargguin ledje departemeantta iežas vuođđojurdagiid mielde.
# Skuvla eanas sámi guovlluin leai duššefal dábálaš dáčča skuvlla kopiija
# Ráissas lei maiddái buorre dilli mánáid gaskkas.
# Boarráseamos dovddus instruksa álbmotseađu oahpahusa olis lea Kristian 3. girkoordinánsa.
# Das lea máhppa masa lei čállon «Kautokeino flyttsamelag»
# Áidna fálaldat maid ožžo Guovdageainnus lei boazodoallu válljenfágan
SELECT:fallback ("være"i) IF (0 ("<leat>"i)) ;
SELECT:fallback ("by# på"i) IF (0 ("<guossohit>"i)) ;