# ==================================================================== #
# ==================================================================== #
# N O R T H E R N S Á M I D I S A M B I G U A T O R #
# ==================================================================== #
# ==================================================================== #
# Sámi language technology project 2003-2006, University of Tromsř #
# =========================================== #
# Table of contents #
# =========================================== #
# Delimiters
# Tags and sets
# Disambiguation rules
# One-cohort disambiguation - cycle 0
# Local disambiguation - cycles 1 and 2
# Cycle 1a: Special cases
# Personal pronouns
# Px
# Certain verbs
# Cycle 1b: Cleaning up after the special cases
# Cycle 2: Other local disambiguation
# Noun or not?
# Adjectives and adverbs
# Certain singleton words
# Disambiguating clitics
# Disambiguating adpositions
# Disambiguating subjunctions
# Disambiguating adverbs
# Disambiguating pronouns
# Disambiguating adjectives
# Disambiguating verbs - part 1
# Disambiguating nouns
# Disambiguating verbs - part 2
# Residual cases
# Cycle 3: Global and final disambiguation
# Notes for future thought are put after the END symbol
# ========== #
# Delimiters #
# ========== #
DELIMITERS = "<.>" "" ">" ;
# ============= #
# Tags and sets #
# ============= #
SETS # (Remove all lines that start with SETS if you want to use mdis.)
# 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 = (>>>) (); LIST EOS = (<<<) (); # vislcg and CG-2 together.
#LIST BOS = (>>>); LIST EOS = (<<<); # end and beg. of sentence. for vislcg.
# Tags declared as single-membered LISTs
# ======================================
# Parts of speech
LIST N = N ; LIST A = A ; LIST Adv = Adv ; LIST V = V ; LIST Pron = Pron ;
LIST CS = CS ; LIST CC = CC ; LIST Po = Po ; LIST Pr = Pr ;
LIST Pcle = Pcle ; LIST Num = Num ; LIST Prop = Prop ;
# POS sub-categories
LIST Pers = Pers ; LIST Dem = Dem ; LIST Interr = Interr ;
LIST Indef = Indef ;
LIST Recipr = Recipr ; LIST Refl = Refl ; # LIST Rel = Rel ;
LIST Interj = Interj ; LIST Adp = Adp ;
# 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 Pl = Pl ; LIST Du = Du ;
LIST Cmpnd = Cmpnd ;
#LIST PxSg1 = PxSg1 ; LIST PxSg2 = PxSg2 ; LIST PxSg3 = PxSg3 ; LIST
#PxDu1 = PxDu1 ; LIST PxDu2 = PxDu2 ; LIST PxDu3 = PxDu3 ; LIST PxPl1 =
#PxPl1 ; LIST PxPl2 = PxPl2 ; LIST PxPl3 = PxPl3 ;
LIST Comp = Comp ; LIST Superl = Superl ;
LIST Attr = Attr ; LIST Card = Card ; LIST Ord = Ord ;
LIST Qst = Qst ; LIST Foc = Foc ;
LIST Pass = Pass ;
LIST Prt = Prt; LIST Prs = Prs ;
LIST Ind = Ind ; LIST Pot = Pot ; LIST Cond = Cond ;
LIST Imprt = Imprt ; LIST ImprtII = ImprtII ;
LIST Sg1 = Sg1 ; LIST Sg2 = Sg2 ; LIST Sg3 = Sg3 ;
LIST Du1 = Du1 ; LIST Du2 = Du2 ; LIST Du3 = Du3 ;
LIST Pl1 = Pl1 ; LIST Pl3 = Pl3 ; LIST Pl2 = Pl2 ;
LIST Inf = Inf ; LIST ConNeg = ConNeg ; LIST Neg = Neg ;
LIST PrfPrc = PrfPrc ; LIST VGen = VGen ;
LIST PrsPrc = PrsPrc ;
LIST Ger = Ger ; LIST Sup = Sup ; LIST Actio = Actio ;
#LIST VAbess = VAbess ; LIST Actor = Actor ;
# Derivation
LIST as1 = "as1" ;
# Other tags
LIST ABBR = ABBR ; LIST ACR = ACR ; LIST CLB = CLB ;
LIST PUNCT = PUNCT ;
# Single-word sets
LIST COMMA = "," ;
LIST OKTA = "okta"; LIST go = "go" ;
# Initials
LIST 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
LIST WORD = N A Adv V Pron CS CC Po Pr Interj Pcle Num ; # any word
# Derivational affixes
# --------------------
LIST V-DER = adda alla d g h asti hudda huhtti huvva j l ahtti st
stuvva goahti ;
LIST N-DER = eaddji eamos1 eapmi heapmi s1 mus1 upmi us vuohta ;
LIST A-DER = geahtes keahtes heapmi lágan las1 meahttun ;
#SET DER = V-DER | N-DER | A-DER ;
# Case sets
# ---------
LIST ADVLCASE = Ill Loc Com Ess ;
LIST CASE = Nom Acc Gen Ill Loc Com Ess ;
SET NON-NOM = CASE - Nom ;
SET NON-GEN = CASE - Gen ;
SET NON-ACC = CASE - Acc ;
# Noun sets
# ---------
LIST N-SG-NOM = (N Sg Nom); LIST N-PL-NOM = (N Pl Nom);
LIST N-NOM = (N Nom) ; LIST N-GEN = (N Gen);
SET LEX-N = N - N-DER;
LIST PROP = (N Prop);
SET CNOUN = N - Prop;
SET CNOUN-PL-NOM = (N Pl Nom) - Prop ;
SET HNOUN = N - Cmpnd ;
SET HNOUN-NOM = (N Nom) - Cmpnd ;
SET N-NON-GEN = N - (N Gen) ;
# Verb sets
# ---------
# Finiteness and mood
# - - - - - - - - - -
SET V-IND-FIN = Prs | Prt ; # Problem: "In boahtán" is an invisible indicative
SET V-MOOD = Ind | Pot | Imprt | ImprtII | Cond ;
SET VFIN = V-MOOD - ConNeg ;
SET VFIN-POS = V-MOOD - ConNeg - Neg ;
SET VFIN-NOT-IMP = Ind | Pot | Cond ;
# Person
# - - -
LIST V-SG1 = (V Ind Prs Sg1) (V Ind Prt Sg1) (V Cond Prs Sg1)
(V Cond Prt Sg1) (V Pot Prs Sg1) (V Neg Ind Sg1);
LIST V-SG2 = (V Ind Prs Sg2) (V Ind Prt Sg2) (V Cond Prs Sg2)
(V Cond Prt Sg2) (V Pot Prs Sg2) (V Neg Ind Sg2);
LIST V-SG3 = (V Ind Prs Sg3) (V Ind Prt Sg3) (V Cond Prs Sg3)
(V Cond Prt Sg3) (V Pot Prs Sg3) (V Neg Ind Sg3);
LIST V-DU1 = (V Ind Prs Du1) (V Ind Prt Du1) (V Cond Prs Du1)
(V Cond Prt Du1) (V Pot Prs Du1) (V Neg Ind Du1);
LIST V-DU2 = (V Ind Prs Du2) (V Ind Prt Du2) (V Cond Prs Du2)
(V Cond Prt Du2) (V Pot Prs Du2) (V Neg Ind Du2);
LIST V-DU3 = (V Ind Prs Du3) (V Ind Prt Du3) (V Cond Prs Du3)
(V Cond Prt Du3) (V Pot Prs Du3) (V Neg Ind Du3);
LIST V-PL1 = (V Ind Prs Pl1) (V Ind Prt Pl1) (V Cond Prs Pl1)
(V Cond Prt Pl1) (V Pot Prs Pl1) (V Neg Ind Pl1);
LIST V-PL2 = (V Ind Prs Pl2) (V Ind Prt Pl2) (V Cond Prs Pl2)
(V Cond Prt Pl2) (V Pot Prs Pl2) (V Neg Ind Pl2);
LIST V-PL3 = (V Ind Prs Pl3) (V Ind Prt Pl3) (V Cond Prs Pl3)
(V Cond Prt Pl3) (V Pot Prs Pl3) (V Neg Ind Pl3);
# Note that imperative verbs are not included in these sets!
# Some subsets of the VFIN sets
# - - - - - - - - - - - - - - -
SET V-DU = V-DU1 | V-DU2 | V-DU3 ;
SET V-PL = V-PL1 | V-PL2 | V-PL3 ;
SET V-DU-PL = V-DU1 | V-DU2 | V-DU3 | V-PL1 | V-PL2 | V-PL3 ;
SET V-NOT-SG1 = VFIN-NOT-IMP - V-SG1 ;
SET V-NOT-SG3 = V-SG1 | V-SG2 | V-DU1 | V-DU2 | V-DU3 |
V-PL1 | V-PL2 | V-PL3 ;
SET V-1-2 = V-SG1 | V-SG2 | V-DU1 | V-DU2 | V-PL1 | V-PL2 ;
# Sets consisting of forms of "leat" (these ones need to be rewritten)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SET LEAN = ("leat" V Ind Prs Sg1)|("leat" V PrfPrc);
SET LEAI = ("leat" V Ind Prt Sg3)|("leat" V Imprt Prs Sg3);
SET LEAT = ("leat" V Ind Prs Pl1)|("leat" V Ind Prs Pl3)|
("leat" V Ind Prs Sg2)|("leat" V Inf)|("leat" V Ind Prs ConNeg);
SET LEAT-DU-PL = ("leat" V Du1)|("leat" V Du2)|("leat" V Du3)|
("leat" V Pl1)|("leat" V Pl2)|("leat" V Pl3);
SET LEAT-DU3-PL3 = ("leat" V Du3) | ("leat" V Pl3); # Not referred to by any rule.
LIST LEAT-FIN-NON-IMP = ("leat" V Ind) ("leat" V Cond) ("leat" V Pot);
LIST LEAN-PRC = ("leat" V PrfPrc); # Not referred to by any rule.
LIST LEAN-SG1 = ("leat" V Ind Prs Sg1);
# Pronoun sets
# ------------
SETS
SET MUN = (Pron Pers Sg1 Nom);
SET DON = (Pron Pers Sg2 Nom);
SET SON = ("son" Pron Pers Sg3 Nom);
SET MOAI = (Pron Pers Du1 Nom);
SET DOAI = (Pron Pers Du2 Nom);
SET SOAI = (Pron Pers Du3 Nom);
SET MII-PERS = (Pron Pers Pl1 Nom);
SET DII = (Pron Pers Pl2 Nom);
SET SII = (Pron Pers Pl3 Nom);
SET PPRON-DU-PL = MOAI | DOAI | SOAI | MII-PERS | DII | SII ;
SET PPRON-NOT-SII = MUN | DON | SON | MOAI | DOAI | SOAI | MII-PERS | DII ;
#SET PRON-PL-LOC = (Pron Pers Pl1 Loc)|(Pron Pers Pl2 Loc)|(Pron Pers Pl3 Loc);
#SET MII-INTERR = ("mii" Pron Interr Sg Nom);
SET DEM-SG = (Pron Dem Sg Nom);
SET DEM-PL = (Pron Dem Pl Nom);
SET NON-DEM = WORD - Dem ;
# Adjectival sets and their complements
# -------------------------------------
SET A-ATTR = (A Attr) ; # Used in one rule. Not needed?
SET LEX-A = A - A-DER ;
SET A-CASE = A - Attr - Adv ;
LIST A-CC = A CC ;
SET NON-ADJ = WORD - A ;
SET NON-Attr = WORD - Attr ;
SET NON-ADJ-PCLE = WORD - A - Pcle ;
SET NON-ADJ-CC = WORD - A-CC ;
# Adverbial sets and their complements
# ------------------------------------
SET LEX-ADV = Adv - (A*) ;
SET ADVERBIAL = Adv | Ill | Loc | Com | Ess ;
SET NON-ADV = WORD - Adv;
SET NON-ADV-PCLE = WORD - Adv - Pcle ;
SET NON-ADV-INDEF = WORD - Adv - Indef ;
SET NON-ADV-PCLE-ILL = WORD - Adv - Pcle - Ill ;
SET NON-ADV-PCLE-INDEF = WORD - Adv - Pcle - Indef ;
SET NON-ADV-NEG = WORD - Adv - Neg ;
LIST IKTE = "ikte" "dolin" "dovle" ;
LIST MO = "danne" "goas" "gokko" "gos" "gosa" "makkár" "manne" "mo" "nugo";
# Introduce finite clauses.
# Sets for adverbs that have lookalikes
# - - - - - - - - - - - - - - - - - - -
# Here come some adverbs that have identical twins in other POS. If these
# are found in Adv contexts, we treat them as adverbs.
LIST ADV-NOT-VERB = "dus1s1e" ;
LIST ADV-NOT-NOUN = "easka" "várra" ;
LIST ADV-NOT-NAMES = "Ain" "Anne" "Diego" "Dieppe" "Enge" "Galle" "Haga"
"Joba" "Johan" "Liikka" "Mai" "Mannes" "Mo" "Mot" "Naba"
"Nan" "Oktan" "Sierra" "Sokka" "Villa" ;
SET ADV-NOT-OTHER-POS = ADV-NOT-VERB | ADV-NOT-NOUN | ADV-NOT-NAMES ;
# Sets of elements with common syntactic behaviour
# ================================================
SETS
# VERBS
# -----
LIST COPULAS = "gártat" "leat" "s1addat" ;
SET V-NON-COP = V - COPULAS ;
LIST MOD-ASP = "áigot" "fertet" "galgat" "gillet" "lávet" "sáhttit" "viggat" ;
# Verbs that never have arguments of their own.
SET AUX = COPULAS | Neg | MOD-ASP;
SET V-NON-AUX = V - AUX ;
SET VFIN-NON-AUX = VFIN - AUX ;
SET VERB = V - (V N); # V is all readings with a V tag in them, VERB should
# be the ones without an N tag following the V
SET LEX-V = VERB - V-DER; # VERB but not V-DER
SET V-NOT-CMPND = V - Cmpnd;
SET V-DER-PASS = V + V-DER + Pass; # + is intersection, this should work
#SET V-PASS = V + Pass - V-DER; # hmm, what was the idea here?
SET V-PASS = (V Pass); # better?
SET V-NON-AUX-PASS = V - AUX - V-PASS ;
SET ACT-PRFP = PrfPrc - V-PASS;
# Sets for verbs choosing oblique objects
# - - - - - - - - - - - - - - - - - - - -
LIST LOC-VERB = "ballat" "beros1tit" "biehttalit" "bihtit" "ceavzit" "c1uoc1c1ut"
"c1uovvut" "dolkat" "fuollat" "geargat" "heaitit" "ilbmat" "nohkkot"
"váruhit" ;
LIST COM-VERB = "árvalit" "árvvohus1s1at" "bargat" "bártas1uvvat"
"háladit" "hilbos1it" "humadit" "meannudit" "náitalit" "riidalit"
"ságastaddat" "ságastallat" ;
LIST ILL-VERB = "áibbas1it" "dorvvastit" "duhtat" "jáhkkit" "liikot"
"luohttit" "oskut" "suhttat" "álgit" "gullat" "guoskat"
"heivet" "irggástallat" "riepmat" "ráhkkanit" "soahpat" ;
# Other verb sets
# - - - - - - - -
LIST INF-VERB = "adnot" "astat" "ádjánit" "áigut" "álgit" "ásahit" "bávc1c1agit"
"beassat" "berret" "bivvat" "bistit" "boahtit" "bovdet" "c1ohkkát"
"c1ohkkedit" "c1ohkkánit" "c1uoc1c1ahit" "c1uoc1c1astit" "c1urggodit"
"dáhttut" "dáidit" "dárbbas1it" "doaivut" "doapmat" "duostat"
"fertet" "fuobmát" "fuolahit" "galgat" "gáibidit" "gártat"
"geahc1c1alit" "geatnegahttit" "gillet" "háhppehit"
"hálidit" "háliidit" "hárjánit" "heivet" "lávet" "mannat" "máhttit"
"navdit" "oahppat" "oaz1z1ut" "ollet" "ribahit" "riepmat" "sáhttit"
"sihtat" "soaitit" "s1addat" "stad1d1at" "veadjit" "viggat" "vis1s1at"
"vuogáiduvvat" "vuolgit" "vuollánit" "vuordit";
LIST ACC-INF-VERB = "bivdit" "c1uorvut" "diktit" "gohc1c1ut" "movttiidahttit"
"sihtat" "suovvat" ;
# These are verbs taking accusative objects and infinitives.
## Ii suova nieiddas náitalit.
LIST OPRED-VERB = "atnit" "dahkat" "gohc1odit" "válljet";
# Verbs that often occur with objects that have secondary predicates.
LIST MOVEMENT-VERB = "mannat";
# These verbs typically combine with place adverbials in the genitive case
# (i.e. not accusative).
# NOUNS
# -----
# NP sets defined according to their morphosyntactic features
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SET NP-HEAD = Pron | HNOUN ;
SET NP-HEAD-SG = (Pron Sg) | (Pron Sg3) | (N Sg) - Cmpnd;
SET NP-HEAD-PL = (Pron Pl) | (Pron Pl3) | (N Pl) - Cmpnd;
SET NP-HEAD-SG-NOM = (Pron Sg Nom) | (Pron Sg3 Nom) | (N Sg Nom) - Cmpnd;
SET NP-HEAD-PL-NOM = (Pron Pl Nom) | (Pron Pl3 Nom) | (N Pl Nom) - Cmpnd;
SET NP-HEAD-NOM = NP-HEAD-SG-NOM | NP-HEAD-PL-NOM;
SET NP-HEAD-ACC = (Pron Acc) | (N Acc) - Cmpnd;
SET NP-HEAD-GEN = (Pron Gen) | (N Gen) - Cmpnd;
# The PRE-NP-HEAD family of sets
# - - - - - - - - - - - - - - -
SET PRE-NP-HEAD = (Prop Attr) | A | (Pron Pers Gen) | (N Gen) | Num | Cmpnd |
(Pron Dem) | (Pron Refl Gen) | (Pron Indef) | CC ; # PrfPrc?
# There must be a sensible naming convention for these sets...
SET NPNH = WORD - PRE-NP-HEAD ; # NPNH = "NON-PRE-NP-HEAD".
SET NPNHA = WORD - PRE-NP-HEAD - Adv ; # NPNHA = "NON (PRE-NP-HEAD-OR-ADV)"
SET NPNHAI = WORD - PRE-NP-HEAD - Adv - Indef ; # NPNHAI " "...-OR-INDEF"
SET NPNHAII = WORD - PRE-NP-HEAD - Adv - Indef - Ill ; # Illative indir.obj.
SET NPNHAIIP = WORD - PRE-NP-HEAD - Adv - Indef - Ill - Pcle ;
SET NPNHC = WORD - PRE-NP-HEAD - Com ; # "njan1ggofirpmiiguin bivdin"
# Other negatively defined sets
# - - - - - - - - - - - - - - -
SET NON-N = WORD - N ;
SET NON-NA = WORD - N - A ;
SET NON-NP = VFIN | Adv | Pcle | Interj | CS ;
# Nominal sets defined according to their lexical properties
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LIST MANNU = "od1d1a#jage#mánnu" "od1d1a#jagi#mánnu"
"guovva#mánnu"
"njukc1a#mánnu" "njuvc1c1a#mánnu" "márs#mánnu"
"cuon1o#mánnu" "cuon1os#mánnu" "gáranas#mánnu"
"miesse#mánnu" "mái#mánnu"
"geasse#mánnu"
"suoidne#mánnu"
"borge#mánnu" "s1njilc1a#mánnu" "s1njilz1a#mánnu"
"c1akc1a#mánnu"
"golggot#mánnu"
"skábma#mánnu" "november#mánnu" "ritne#mánnu"
"juovla#mánnu" ;
LIST VAHKKU = "áigi" "beaivi" "c1akc1a#geassi" "c1uohte#jahki" "geardi" "geassi"
"hávvi" "idja" "jahki" "mánnu" "vahkku" jahki ;
# The quoteless jahki here is since the preprocessor is not fine-tuned
# yet, it still gives '"1870-" # jahki N Sg Com'.
SET TIME = MANNU | VAHKKU ;
SET NOTIME = N - TIME ;
LIST GEASSET = "dálvet" "dálvit" "gid1d1at" "geasset" "geassit" "c1akc1at" ;
LIST GUOVLU = "ássan#guovlu" "báiki" "gávpot" "gielda" "goahti" "guovlu" "sádji"
"viessu" ;
LIST ROUTE = "geaidnu" "luodda"; # and more!
LIST PL-NOUN = "beassas1" "c1albme#láse" "gálssot" "headja" "sabet" "sisttet"
"skárri";
# Nominals that appear with plural numerals.
LIST PREGEN = ("miella" N Sg Loc)("oktavuohta" N Sg Loc);
# Nominals that take a preceding genitive.
LIST NOPX = "lohku";
# Nominals that probably do not have a Px ('1600-logus').
LIST PX = "bárdni" "nieida";
# Nominals that well may have a Px.
# Miscellaneous sets
# ------------------
LIST Clt = Qst Foc ;
#SET PPOS = Po | Pr ;
LIST POST-A = "rájes" ;
LIST POST-B = "rádjái" ;
#LIST WACKERNAGEL = "go" "ba" "bat" "be" "bahan" "son" ;
LIST GASKAL = "gaskal" "gaskkas" ; # p-positions that like coordination
SET NUMERALS = Num - OKTA ;
LIST MANGA = "mán1ga" "galle" ;
SET NON-CC = WORD - CC ;
LIST COMPAR = "dávjjit" "eanet" "earalágan" "eará" "earret" "seammás" "seammalágan"
"seammalágán" "seammaláhkai";
# 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" "%" ;
# Border sets and their complements
# ---------------------------------
SET CP = (Pron Interr) | MO ;
SET NP-BORDER = BOS | EOS | Adv | V-NOT-CMPND | Pers | CS | CP | Recipr |# Refl |
Po | Pr | Pcle ;
# CLB removed from set in order to allow for NP-internal commas.
# Refl is deactivated because of "sin iez1aset vieruid" etc.
# ==================== #
# ==================== #
# Disambiguation rules #
# ==================== #
# ==================== #
# =================================== #
# One-cohort disambiguation - cycle 0 #
# =================================== #
CONSTRAINTS #
# =================================== #
# Lexicalised derivations
# -----------------------
REMOVE N-DER IF (0 LEX-N); # SELECT instead of REMOVE if one wants to
REMOVE A-DER IF (0 LEX-A); # investigate word structure
REMOVE V-DER IF (0 LEX-V); # THIS IS PROBABLY TOO STRONG, MSC may differ
## Dat lea oahpaheaddjin doppe.
## Dábálas1 mearrádusat.
## Maid don doaivvut?
REMOVE V-DER-PASS IF (0 V-PASS);
# It might be that this one is no longer needed. - No hits in corpus!
# Lexicalised adverbs
# -------------------
REMOVE (A* Adv) IF (0 LEX-ADV) ;
## Son dábálac1c1at ráhkkana dasa dálvvi mielde.
REMOVE Foc IF (0 ("died1usge"));
## Romssa universitehta áigu died1usge dán geahc1c1alit áimmahus1s1at.
# Lexicalised adpositions
# -----------------------
REMOVE N IF (0 Pr)(*1 (N Gen) OR (Pron Pers Gen) LINK NOT 0 Cmpnd BARRIER NPNH);
REMOVE N IF (0 Po)(NOT 0 ("guovddás1"))(-1 (N Gen) OR (Pron Pers Gen));
## Golmma jándor geaz1is.
## Dat boahtá nuoraidpsykiatriija vuollái.
# Proper nouns
# ------------
REMOVE (Prop Pl) IF (0 (Prop Sg))(NOT 0 ("Sámediggi")); ## Marit lea dál.
# Marit N Sg, not Mari+t Nom Pl
REMOVE (Prop Pl) IF (-1 BOS)(0 CNOUN-PL-NOM); ## Sámit leat álgoálbmot.
REMOVE (Prop Pl Nom) IF (-1 BOS)(NOT *1 V-PL3); ## Unnit nuppástusaiguin.
# Removing proper nouns that are lookalikes
# - - - - - - - - - - - - - - - - - - - -
REMOVE ("Dan" Attr) IF (NOT 1 Prop);
REMOVE ("Dan" Prop) IF (1 CNOUN); # Dan is Nom or Attr.
REMOVE ("Hu" Ill) IF (1 A or Adv);
REMOVE Prop IF (0 ("Lassi"))(1 Pron OR N);
## Lassin dasa ferte váldit vuhtii sierralágan dilálas1vuod1aid.
REMOVE ("Lea") IF (-1 BOS OR PUNCT)(NOT 1 V-SG3);
REMOVE ("Lea") IF (-1 BOS OR PUNCT OR (":"))(1 A);
## Lea dus1s1e okta Ipmil. Lea idja.
## Lea buolas1. Son dajai: Leage gierdávas1.
REMOVE ("Man") IF (-1 BOS OR PUNCT OR (":"))(0 (V Imprt));
## De son celkkii sutnje: "Mana basadit Siloaláddos."
# Cannot think of sensible conditions.
REMOVE Prop IF (-1 BOS)(0 ("Mo"))(NOT 1 go)(*1 ("?"));
REMOVE Prop IF (-2 CLB)(-1 PUNCT)(0 ("Mo"));
## Mo sáhttá su riika dalle bissut?
# Selecting proper nouns
# - - - - - - - - - - -
SELECT (Prop Nom) IF (0 ("Rabbi"))(1 COMMA);
## Rabbi, lea buorre go mii leat dáppe.
# Temporal expressions with locative case
# ---------------------------------------
SELECT (N Sg Loc) IF (0 MANNU); # To avoid "skábma#mánus" N Sg Nom.
## Dat hávdáduvvojedje Álahedjui skábmamánus 1997.
# Removing a spurious Pr reading
# ------------------------------
REMOVE (Pr Foc) IF (0 ("c1ad1a")); # To get rid of "c1ad1a" Pr Foc.
## Studeanttat geat leat c1ad1ahan váldofágaeksámena...
# Adposition + Px
# ---------------
SELECT Adp IF (0 ("gaska" N Ess)); ## Sii árvalis1gohte gaskaneaset.
# Pass and Imprt
# --------------
REMOVE Imprt IF (0 Pass);
## Jos fávleoalggis lea guolli, loktestuvvo dat dus1s1e c1ázeoaivái.
# ===================================== #
# Local disambiguation - cycles 1 and 2 #
# ===================================== #
# --------------------------------------------------------- #
# Cycle 1a: cases that will be needed in careful mode later #
# --------------------------------------------------------- #
CONSTRAINTS #
# --------------------------------------------------------- #
# The idea with cycle 1a is to disambiguate cases that are judged as easier and
# more secure than later cases, and that at the same may be used as context
# for other rules in later cycles.
# Personal pronouns
# -----------------
# Mon ( = Mo N Prop Ess)
# - - - - - - - - - - -
# Moai ( = Moa N Prop Ill)
# - - - - - - - - - - - -
SELECT MOAI IF ( *1 V-DU1); ## Moai c1ilge dan ás1s1i.
SELECT MOAI IF (*-1 V-DU1); ## C1ilgego moai dan?
# mii ( = Interr)
# - - - - - - - -
# Left conditions
SELECT Pers IF (-3 BOS)(-2 V-PL1)(-1 go)(0 MII-PERS);
SELECT Pers IF (-1 (V Ind Prs Pl1 Clt))(0 MII-PERS);
## Eat go mii leat profehtastallan du nammii?
##
SELECT Pers IF (-1 (V Neg Pl1))(0 MII-PERS);
SELECT Pers IF (*-1 V-PL1 BARRIER NON-ADV)(0 MII-PERS)(NOT 1 V-SG3);
## Eat mii sáhte vuolgit.
## Goas oinniimet mii du nelgon dahje goikan?
#The last condition added because of the example below. Attempts to formulate
# a negative condition on V-PL1 instead (e.g. LINK NOT 0 A) did not work.
## Dat geaidnu lea govdat mii doalvu gád1ohussii.
# Right conditions
SELECT Pers IF (0 MII-PERS)(1C Interr);
SELECT Pers IF (0 MII-PERS)(1 COMMA)(2C Interr);
SELECT Pers IF (0 MII-PERS)(*1 V-PL1 BARRIER VFIN OR CP OR CS LINK NOT 0 Adv);
##
## .. de mii, gud1et leat eatnagat, leat okta rumas1.
## Dasgo mii oinniimet su násti badjáneamen.
SELECT Pers IF (0 MII-PERS)(1 CC)(2 (N Nom));
## Mii ja farisealac1c1at atnit borakeahttáivuod1a.
# mis and sis
# - - - - - -
# mun Pron Pers Pl1 Loc = mis Adv, corr. for son Pron Pers Pl3 Nom = sis Adv
# This one is hard to resolve, as they have the same distribution.
# don ( = Pron Dem Sg Acc/Gen)
# - - - - - - - - - - - - - -
SELECT Pers IF (*-1 V-SG2)(0 DON);
SELECT Pers IF (0 DON)(*1 V-SG2 BARRIER PUNCT);
## Liikotgo don Abbai?
## Don it leat nama c1állán.
# son ( = Pcle)
# - - - - - - -
SELECT Pers IF (*-1 V-SG3 BARRIER CLB OR CS OR CP)(NOT -1 Qst or ("go"))
(0 ("son" Pron Pers Sg3 Nom));
## Ii son liikon dohko.
SELECT Pers IF (0 ("son" Pron Pers Sg3 Nom))(1 (Pron Interr Sg));
## Son gii addá veahki galgá mearridit.
SELECT Pcle IF (NOT -2 CLB)(-1 Qst or ("go"))(0 ("son"))(1 Nom)
(NOT 1 Refl OR Inf OR Cmpnd);
## Lea go son Máret boahtán?
SELECT (Pron Pers Sg3 Nom) IF (0 ("son"))(*1 V-SG3 BARRIER N);
## Son fertii vuolgit.
# sutnje ( = forms of the verb "suotnjat")
# - - - - - - - - - - - - - - - - - - - -
SELECT (Pron Ill) IF (0 ("son"))(1 (Pron Interr Sg));
SELECT (Pron Ill) IF (*-1 (V Ind)) (0 ("son")); # Barrier?
## Dearvvas1vuod1abálvalus galgá addit sutnje gii ohca...
## Son galgá addit sutnje dárbbas1las1 died1uid.
# dat ( Pron Pers, Pron Dem, Pcle)
# - - - - - - - - - - - - - - - -
SELECT Pcle IF (-1 Nom)(NOT -1 A)(0 ("dat" Nom));
## Máret dat boahtá.
SELECT Pers IF (0 ("dat"))(NOT 0 ("dasgo") OR ("danin"))
(NOT 1 A OR Num OR N OR Attr);
## Dá dat leat.
# dasa ( = forms of the verb "dassat")
# - - - - - - - - - - - - - - - - - -
REMOVE VGen IF (0 Pron);
## Na muhto don it leat dasa nama c1állán!
## Dat gal lei beare unnán.
# Earlier specific rules, to be reactivated if the previous one is too strong.
# ----------------------------------------------------------------------------
#SELECT Dem IF (0 ("dat" Pron Dem Sg Ill))(1 VFIN); ## Dasa lea guhkes historjá.
#SELECT Dem IF (0 ("dat" Pron Dem Sg Ill))(1 ("lassi" N Ess)); ## Dasa lassin.
#SELECT Ill IF (-1 ("sivva"))(0 ("dat")); ## Sivva dasa lea, ahte ...
#SELECT Ill IF (-1 PrfPrc)(0 ("dat")); ## Sii leat c1ujuhan dasa vuosttas jagi.
SELECT Ill IF (0 ("dat"))(1 ("lassi" Ess));
## Dasa lassin buvttán dás lasseargumenttaid.
# Other homonymies linked to personal pronouns, with non-obvious answers.
# Munin = Pron Pers Sg1 Ess = Ess of N Prop Muni (!)
# dudnon = Pron Per Du2 Ess = dudnu N Sg ... PxSg1 (covered by Px rule)
# Sunin = Pron Pers Sg3 Ess = Ess of N Prop Sun
# Px constraints
# --------------
# First select some clear Px cases
# Let these come directly after local disambiguation.
SELECT (PxSg1) IF (-1 V-SG1)(NOT -1 ("leat"))(-2 MUN); # Also hits some essives.
SELECT (PxSg2) IF (-1 V-SG2)(NOT -1 ("leat"))(-2 DON);
SELECT (PxSg3) IF (-1 V-SG3)(NOT -1 ("leat") OR Pass)(NOT 0 NOPX)(-2 ("son"));
## Mun attán heaggan du ovddas.
## Don attát heakkat mu ovddas?
## Son beastá álbmogis sin suttuin.
## Dat ráhkaduvvo gáttis gárvvisin. # NOT -1 Pass!
# Px for names for relatives
# More rules must be added here, and the set PX expanded.
SELECT (Nom PxSg1) IF (-1 PUNCT OR CLB)(0 PX)(1 COMMA);
SELECT (PxSg3) IF (*-1 (Sg Nom) OR (Sg3 Nom) BARRIER CS OR CP)(0 PX);
## Bárdnán, leage dorvvolas1.
## Dat guhte ráhkista bártnis dahje nieiddas eanebut go mu...
# Px for diminutives
# Other Px rules
SELECT (Gen PxSg2) IF (*-1 Sg2 BARRIER CS OR CP)(0 (N Pl Nom))(1 Po)
(NOT *2 NP-HEAD-GEN BARRIER NPNH);
## Go don rohkadalat, de mana gámmárat sisa.
# Certain verb forms
# ------------------
# Pret Sg2
# - - - - -
SELECT (V Ind Prt Sg2) IF (*-1 DON BARRIER V-SG2);
## Don muitalit mu birra.
# Pret Pl3
# - - - -
REMOVE (V Ind Pl3) IF (1C VFIN)(NOT 1 Pl3) ;
## Vihtta bivdovuogi mun gal dus1s1e namahin.
REMOVE V IF (-1 CS)(0 ("dus1s1e"))(*1 Acc BARRIER NPNH);
## Suhpodit daddjojuvvo dat go dus1s1e nod1iid váldá olmmos1 eret.
# This rule has to precede particle rules, so that the verb reading of
# "dus1s1e" will not force the CS reading of a preceding particle.
# Imperatives
# - - - - - -
REMOVE Imprt IF (0 (Clt Qst)); ## Heivego gávtti coggat?
REMOVE Imprt IF (1 ("go" Pcle)); ## Heive go gávtti coggat?
# ahte
# ----
SELECT CC IF (-1 COMPAR OR Comp)(0 ("ahte"))(1 COMPAR OR Comp);
## Dárogiel sánit bohtet eanet ahte eanet sámegiela sisa.
## Dat s1attai heajut ahte heajut.
SELECT CS IF (0 ("ahte")); # All other occurrences of "ahte" are CSs.
# These rules have to precede all rules referring to CC, so I put
# them here, although they logically belong with the subjunction rules
# in a later block.
# ---------------------------------------------------------------- #
# Cycle 1b: removing the readings that were left from the 1a rules #
# ---------------------------------------------------------------- #
CONSTRAINTS #
# ---------------------------------------------------------------- #
# Removing (nearly) all remaining Px readings
REMOVE (PxSg1) ; # IF (0 Ess); # yes, kill'em all
REMOVE (Nom PxSg2);
## Ale bala váldimis Márjjá ruktosat áhkkán.
## Su lusa bohte olbmot Jerusalemis.
REMOVE (PxSg2) IF (NOT *-1 (Imprt Sg2) OR MOD-ASP BARRIER VFIN LINK 0 Sg2);
REMOVE (PxSg2) IF (*-1 (Sg Gen) OR (Sg3 Gen) BARRIER NPNH LINK -1 CC);
## De bohte rud1at.
## ...eará c1uovvoleapmi mii johtui biddjo ja dan bohtosat.
# The remaining Px readings will be taken care of later.
REMOVE (PxSg3) ; # IF (0 Loc);
## Son celkkii sidjiide: Gearpmas1c1ivggat!
## De almmustuvai Hearrá en1gel Jovssehii niegus.
# -------------------------------------------- #
# Cycle 2: Other cases of local disambiguation #
# -------------------------------------------- #
# This is the main part of the local disambiguation.
# Here we go through the grammar in a systematic way.
# Cases that should be handled before or after the main disambiguation, will be
# taken care of in cycles before or after this one.
# ============ #
# Noun or not? #
# ============ #
# Based on left context
# ---------------------
SELECT N IF (-1 (A Attr))(NOT 0 Inf)(NOT -1 Adv)(1 NP-BORDER);
## Dat lea c1uovvovas1 sajis.
SELECT N IF (-2C N)(-1 CC)(NOT 0 VERB)(NOT 1 N OR Pron OR Num OR A);
## Mánát ja nuorat leat dál.
SELECT N IF (-2 BOS)(-1C Gen)(1 EOS); ## Son lea Ruot1a c1álli.
# (titles)
REMOVE PrsPrc IF (-1 A)(NOT -1 Adv) ;
## Dainnna ii leat vissis mearri galljodagas.
SELECT A IF (-1 ("eambbo"));
## Muhto eambbo eahpidahtti lea c1ielggadusa s. 17 cealkámus1.
# Based on right context
# ----------------------
SELECT N IF (NOT 0 VFIN)(1 CC)(2C N);
## Sápmelac1c1at ja dáz1at leat ovdal eallán ovttas.
SELECT N IF (1 COMMA)(*2 HNOUN BARRIER NPNH OR CC LINK 1 CC);
## ...lez1z1et sii dál sápmelac1c1at, dáz1at dahje kveanat.
SELECT N IF (NOT 0 Adv OR Inf OR PrfPrc)(1 COMMA)(2 CP);
## Doaimmat, maiguin mun barggan.
## Gaz1aldat lea dus1s1e, man ollu ... # NOT 0 Adv!
## Lea miellagiddevas1 lohkat, maid ...# NOT 0 Inf!
SELECT N IF (0 ("sápmelas1" Pl Nom))(*1 V-PL3 BARRIER CS OR CP);
## Sápmelac1c1at orro maid skandinávalas1 njárgga siskkimus guovlluin.
# Does the adverb ever show up?
SELECT N IF (NOT 0 Po OR Pron OR PrfPrc)(1C (Pron Interr));
## Dát lea mu bálvaleaddji gean mun lean válljen.
REMOVE A IF (0 N)(1 Po);
REMOVE A IF (NOT -1 ("mii" Sg Gen))(0 N)(1C VFIN) ;
## C1ohkkán dárolac1c1aid gaskkas.
## Dál go sápmelac1c1ain leat bohccot.
## Man guhkki lea du biila? # NOT -1 "mii" Sg Gen!
REMOVE VFIN IF (-1 BOS)(0 NP-HEAD-SG-NOM)(1C V-SG3);
## Lásse lea mus rean1gan.
# Here I am careful, and require the V-SG3 to be a secure reading.
REMOVE VFIN IF (-1 BOS)(0 Prop)(1 V-SG3);
## Máhtte ferte leat vuolgime.
# Here I am less careful, and accept also ambiguous V-SG3, since I take it
# that when the left context is a name, it is a more secure subject-candidate.
# Alternatively, I might drop the 1C in the previous rule, or include the
# pronouns.
REMOVE Adv IF (1C Po)(NOT 1 Adv);
## Mun vulgen dus1s1e mielde.
# NBN! This example clause still gets the wrong analysis, it removes
# Adv of dus1s1e although 1 not is (only) Po, but also Adv.
REMOVE A-CASE IF (*-1 BOS BARRIER NON-DEM)(0 N)(NOT 0 ("buorre"))(1 N);
## Sápmelac1c1aid historjá lea boaris.
# No adjective, except buorre, agrees with a head noun in case. The correct
# reading for a case-inflected prenominal word must thus be N.
# (Problem: we have not considered a string predicative adj + other NP)
REMOVE (A Gen) IF (0 N)(NOT 0 Ord)(*1 N BARRIER NON-ADJ);
## Sámi dutkamiid guovddáz1a ásaheapmi.
# Preverbal subject
SELECT (Pl Nom) IF (NOT 0 Inf LINK -1 INF-VERB)(1C (V Pl3))(NOT 0 Adv);
## Olu nuorat bohte naitalanahkái.
# This is a brave rule, probably too strong. It comes this early in order to
# precede other rules.
# New: Modified because of
## Pros1eavtta áigut c1ad1ahit. # Added C to avoid áigut as subject.
## ... geainna váimmut buoremusat lávggadit. # Buoremusat = Adv!
# Based on circumscribed context
# ------------------------------
REMOVE A IF (-1 Dem)(1 (Pron Interr));
## Son lea dan sápmelas1 gean dovddan.
REMOVE (A Sg Nom) IF (NOT *-1 VFIN OR ("mii" Sg Gen))(0 (N Sg Nom))
(*1 V-SG3 BARRIER NON-ADV-PCLE);
## Sápmelas1 dál soittii dávjá dadjalit: gal han doppe ledje olbmot.
REMOVE (A Pl Nom) IF (NOT *-1 VFIN)(0 (N Pl Nom))(*1 V-PL3 BARRIER NON-ADV-PCLE);
## Dálá guovlluin sápmelac1c1at eai leat ássan nu guhká.
REMOVE V IF (-1C Dem)(1 V-IND-FIN);
## Dán báhkis s1addá c1áppa gohppu.
REMOVE V IF (-1 BOS)(0 N)(1 ("go"))(2 VFIN);
## Ádjás go lea od1d1a fanas?
REMOVE (V Ind) IF (-1 Dem)(0 N)(1C (V Ind));
## Dakkár registreren ii leat goassege leamas1 oassin árbevierus.
REMOVE (V Ind) IF (-1 CS)(0 N)(NOT 0 (V Pl1)) (1 (Pron Interr) LINK *1 (V Ind));
## Dasgo mánná mii lea su siste...
# ====================== #
# Adjectives and adverbs #
# ====================== #
SELECT A IF (-2 BOS)(-1 ("mii" Interr Sg Gen));
## Man guhkki lea girkui?
REMOVE VERB IF (-1 ("mii" Interr Sg Gen));
## In died1e man buorit dat leat.
REMOVE VERB IF (-1 ("mihá"));
REMOVE VERB IF (-1 ("seammá"))(*1 go BARRIER NON-NA LINK NOT 1 VFIN);
REMOVE V IF (1 ("ihkinassii"));
## Muhtun riggodagaid geavahit mihá unnit dál.
## Bargiid guottut mearkkas1it seamma ollu go fáktadied1ut.
## Mun áiggun c1uovvut du ihkinassii manaz1at.
REMOVE N IF (-1 ("nu") OR ("mihá") OR ("hui"));
## Mun lean nu suhttan.
## Lea hui easkka c1uoz1z1ilan gaz1aldat.
SELECT Adv IF (-1 ("leat"))(1 PrfPrc);
SELECT Adv IF (-1 VERB OR Com)(0 ("ovttas"))(NOT 0 Foc);
## Divs1s1ohas lea duod1alac1c1at roasmmohuvvan.
## Bátnedoavttir galgá ovttas eará bargiiguin mearridit.
# ======================= #
# Certain singleton words #
# ======================= #
# fuolla (idiomatic)
# - - - - - - - - -
SELECT (N Acc) IF (*-1 ("atnit") BARRIER VFIN OR CS OR CP)(0 ("fuolla"));
## Son ii ane fuola sávzzain.
# guovddás1
# - - - - -
SELECT Attr IF (0 ("guovddás1"))(1 N);
## Guovddás1 doaibmabidju lea vuod1d1udit sámegiela álgooahpahusa.
# guovttes
# - - - -
REMOVE ("guovttes") IF (1 (N Sg Gen));
## Viesus leat guokte olbmo.
# imas1
# - - -
SELECT N IF (-1 VFIN OR ConNeg OR A OR Dem)(0 ("imas1"));
## Lei imas1, go buvddas eai vuovdde albma varramárffiid.
## dakkár imas1 ja ártegis dilli ahte ...
# mán1ga
# - - - -
REMOVE N IF (0 ("mán1ga"))(*1 N BARRIER NPNH);
## Bargu ollas1uhttit mán1ga dáin doaibmabijuin lea juo álggahuvvon.
# ========================== #
# Disambiguating clitics #
# ========================== #
REMOVE Qst IF (0 Adv)(NOT *1 EOS LINK -1 ("?"));
## Nugo died1át, de lean dál.
# ========================== #
# Disambiguating adpositions #
# ========================== #
CONSTRAINTS #
# ========================== #
# The case of GASKAL
SELECT Pr IF (0 GASKAL)(1 (Pron Gen))(2 CC)(3 (Pron Gen));
SELECT Po IF (-3 (Pron Gen))(-2 CC)(-1 (Pron Gen))(0 GASKAL);
SELECT Pr IF (0 GASKAL)(1 Num)(2 CC)(3 Num);
SELECT Po IF (-3 Num)(-2 CC)(-1 Num)(0 GASKAL);
SELECT Pr IF (0 GASKAL)(*1 (N Gen) BARRIER NPNH
LINK 1 CC LINK *1 (N Gen) BARRIER NPNH LINK 0 HNOUN);
SELECT Pr IF (0 GASKAL)(1 A)(2 CC)(3 A LINK *1 (N Gen) LINK 0 HNOUN); # Barrier?
SELECT Po IF (-1 (N Gen) LINK *1 CC BARRIER NPNH LINK -1 (N Gen))(0 GASKAL);
# ===========
CONSTRAINTS
# ===========
# Po or Pr?
# ---------
REMOVE Po IF (NOT -1 N OR A OR Num OR Pron);
REMOVE Po IF (-1 N)(NOT -1 Gen);
REMOVE Pr IF (NOT *1 N OR A OR Num OR Pron BARRIER NPNH);
## Jus divs1s1ohas lea badjel 16 jagi boaris,...
## Leansmánni lea kommis1uvnnas fárus.
## Na mun gal hupmen dan birra.
SELECT Pr IF (NOT -1 Gen OR (Pron Interr Nom))(NOT 0 A)
(*1 (N Gen) BARRIER NPNH LINK 0 HNOUN);
SELECT Pr IF (NOT -1 Gen)(1 (Pron Gen));
REMOVE Pr IF (NOT *1 (N Gen) BARRIER NPNH);
## Olbmuin bisttii luossaguolli miehtá dálvvi.
## Ovdal dan aiggi ledje sápmelac1c1at boahtán dán guvlui.
## Gonagas addá láhkaásahusa lága geavaheami birra Svalbarddas.
SELECT Po IF (*-1 BOS OR CLB BARRIER NPNH)(-1 Gen);
SELECT Po IF (-1 Gen)(1 CC);
SELECT Po IF (-1 Gen)(NOT -1 VERB OR Adv)(1 TIME);
## Dán vuostá sáhttá dadjat, ahte ...
## Jos sáddo deavdá buod1u vuollái dahje jos sáddo hávddarda buod1u vuolde...
## Sámi guovlluin oz1z1o Sámeparlameantta Suoma beallái jagi 1976.
SELECT Pr IF (NOT 0 Attr)(*1 (N Gen) OR (Pron Gen) BARRIER PUNCT
LINK NOT 0 Cmpnd LINK NOT *1 N OR Po BARRIER CP OR CS OR CLB);
REMOVE Pr IF (NOT 1 (Pron Gen));
## Sáhttá dahttege vurket journála olggobealde doaimma.
## Geavatlas1 sivaid geaz1il c1atnasa bajimus submi namuhuvvon máksomearrái.
SELECT Po IF (-1 Gen)(NOT -1 ("leat" PrfPrc))(NOT 0 Attr OR ("guovddás1"))(NOT 1C Po);
SELECT Po IF (-1 Num)(0 ("rádjai")); # Make general rule!
REMOVE Po IF (NOT -1 Gen OR Num);
## Daid ovddas gal in máksán maidege.
## ... paragráfaide 3-18 rájes 3-21 rádjái.
## Jus divs1s1ohas dasa miehtá,...
# Removing some readings that compete with Po
REMOVE N IF (-1 Gen)(0 Po)(NOT 0 ("guovddás1"))(NOT 1C Po);
REMOVE V IF (-1 Gen)(0 Po)(NOT 1C Po);
REMOVE Adv IF (-1 Gen)(NOT -1 ("leat" PrfPrc))(0 Po)(NOT 1C Po);
# =========================== #
# Disambiguating subjunctions #
# =========================== #
CONSTRAINTS #
# =========================== #
# Subjunctions are disambiguated in two subcycles. This is the first.
SELECT CS IF (-1 COMMA)(0 ("de") OR ("vaikko"))(NOT 1 CS);
REMOVE CS IF (NOT *1 VFIN OR ("leapma" Dimin)); # The latter is "leamas1".
## Sii manne meahccái, vaikko lei issoras buolas1.
## Eai lean váldán go niestebohcco.
# amas
# - - -
# A, or Neg Sup, or CS (if followed by (nominative) subject and (infinitival) verb).
SELECT A IF (0 ("amas"))(1 CC)(2 A);
SELECT A IF (*-1 ("leat") BARRIER NON-ADV OR CLB)(0 ("amas"));
## Mán1gasat leat sakka fuolastuvvan amas ja dovddus vahágiin.
## Ollu sápmelac1c1aide lea dál ain amas jurdda.
SELECT CS IF (0 ("amas"))(1 Neg);
SELECT CS IF (0 ("amas"))(*1 Nom BARRIER NPNH LINK *1 Inf);
## Prinsihpa maid lean c1uovvon lea juohkehac1c1a ektui fuolahan, amas ii
## vuovdi vahágahtto.
## Váruhehket amas oktage c1ádjidahttit din!
# amat
# - - -
SELECT (Neg Sup) IF (0 ("amat"))(1 Inf); # Also Pcle?
## Sii guddet du gied1aideaset alde, amat norddastit juolggát gead1gái.
# daningo
# - - - -
# dasságo
# - - - -
# These two are taken care of by the rule in the cycle 'Disambiguating clitics'.
# dasgo
# - - -
SELECT CS IF (0 ("dasgo"))(NOT *1 ("?"));
## Dasgo Herodes lea ohcamin máná goddin dihtii dan.
# de
# - -
SELECT CS IF (*-1 ("jos") OR ("go") LINK -1 BOS OR CS)(-1 COMMA)(0 ("de"));
## Jos died1ás1in, de dajas1in.
## Go olbmot jaskkodit, de sáhpánat álget jursit.
## Son diehtá, ahte jos galgá leat mielde, de ferte máksit.
# dego
# - - -
REMOVE Qst IF (0 ("dego"));
## Dego njamaheaddji eadni diks1umin mánáidis,...
# go
# - -
SELECT Pcle IF (-3 BOS)(-2 CC)(-1 V)(0 go);
SELECT Pcle IF (-2 BOS)(0 go)(*1 ("?"));
## Muhto boad1át go?
## Eai go báhkinat ge daga aiddo nu?
SELECT Pcle IF (-2 CLB OR PUNCT)(-1 V)(0 go);
SELECT Pcle IF (-2 ("vai"))(0 go);
SELECT Pcle IF (-2 VERB)(-1C VFIN)(0 go);
## Jus juo, lea go nu ahte..
## ... vai geahc1c1aluvvo go gávdnat c1ovdosiid bissovas1 rievttis,...
## Árvvos1taladettiin galgá go addit lobi lea dattege gaz1aldat das,...
SELECT Pcle IF (-1 (V Neg))(0 go);
## Son jerre it go boad1e?
SELECT Pcle IF (*-1 A OR Adv LINK *-1 ("nu") OR ("mihá") BARRIER CS)(0 go);
SELECT Pcle IF (*-1 ("seammá"))(NOT -1 VFIN)(0 go);
## Nu guhkás go Gonagas mearrida...
## Gid1d1abuod1ut ráhkaduvvojit seammá vuogi mielde go geassebuod1ut.
## Seammá gusto go... # NOT -1 VFIN!
SELECT Pcle IF (*-1 COMPAR BARRIER NON-ADJ)(0 go);
SELECT Pcle IF (*-1 Comp BARRIER CS OR CP OR CONTRA OR PUNCT LINK NOT 0 VERB)(0 go);
## Dát dáhpáhuvva dávjjit go dat, maid ovdal namuhin.
## Láhkaásahus addá mán1gga ás1s1is dárkilit njuolggadusaid go láhka.
SELECT Pcle IF (-1 A OR Adv)(NOT -1 Po)(0 go)(*1 Interr BARRIER VFIN);
## Joavku ii válddahala dát gaz1aldagaid dobbelii go maid Sámi
## vuoigatvuod1alávdegoddi lea dahkan.
SELECT Pcle IF (0 go)(*1 CONTRA OR EOS BARRIER VFIN);
SELECT Pcle IF (0 go)(1 ("ahte"));
## Mus ii leat go okta beana.
## Lea váttis áddet earáláhkai, go ahte maiddái duopmostuollu rahc1á
## c1ad1at dainna váttisvuod1ain.
SELECT Pcle IF (-3 N OR Pron)(-2 ("ahte"))(-1 VFIN)(0 ("go"));
## Politihkas lei 1866 rájes sáhka ahte galggai go stivrregoahtit
## gii oaz1z1u eatnama láigohit stáhtas.
# vai
# - -
# This one may be CS (vai = 'in order to') or CC (vai = 'or').
SELECT CC IF (0 ("vai"))(1 Neg)(2 CLB);
SELECT CC IF (0 ("vai"))(1 Qst);
SELECT CC IF (0 ("vai"))(2 ("go"));
## Leago sámeálbmogis vuoigatvuod1at vai eai, dahje...
## ... vai leago ..
## Dáhpáhuvvá go dat od1d1a lágaid bokte, vai geahc1c1aluvvo go gávdnat
## c1ovdosiid bissovas1 rievttis?
SELECT CC IF (0 ("vai"))(NOT *1 VFIN BARRIER CS OR CP);
## Dan dihte dárbbas1uvvojit stipeanddat vai studeanttat geat leat
## c1ad1ahan váldofágaeksámena sáhttet ráhkadit buriid pros1eavttaid.
# vaikko
# - - - -
SELECT Pron IF (0 ("vaikko"))
(1 ("mii") OR ("gii") OR ("guhte") OR ("goabbá") OR
("guhtemus1") OR ("makkár"));
# "vaikko mii", etc. is a pronoun. Other vaikko cases are CS.
# This should probably rather be taken care of in the preprocessor.
#SELECT CS IF (-1 BOS OR CS)(0 ("vaikko"))(*1 ("de"));
# See rule in the next cycle.
# Subjunctions are disambiguated in two subcycles. This is the second.
# =========== #
CONSTRAINTS #
# =========== #
# CS selection for specific CS candidates
SELECT CS IF (0 go); # All other go's are CS.
SELECT CS IF (0 ("vaikko"));
SELECT CS IF (0 ("vai"));
## Na geasset go bod1ii diehtiht ahte ii beasa skuvlii.
## Ja go beasai fas seammá bargui.
## Ásahusa journálaovddasvástideaddji sáhttá liikká rievdadit journála
## vaikko gustojit vuolláic1állojuvvon journálamerkestemiide.
## Vai miehtan galgá leat lágalas1, ferte divs1s1ohas leat oz1z1on...
# CS removal for specific CS candidates
REMOVE CS IF (0 ("de"));
## De leat máksán.
# ====================== #
# Disambiguating adverbs #
# ====================== #
CONSTRAINTS #
# ====================== #
# General adverb rules
# --------------------
SELECT Adv IF (-2 VFIN)(-1 ("nu"))(1 COMMA)(2 ("ahte"));
## Lohku lassánii nu johtilit, ahte ...
SELECT Adv IF (*-1C VFIN-NON-AUX BARRIER NON-ADV OR PUNCT)
(0 A-ATTR)(NOT 0 Inf)(NOT 1 N);
## Mannet ja guorahallet dárkilit dán máná hárrái!
# Adv if postverbally
SELECT Adv IF (-2 VERB)(NOT -2 COPULAS)(-1 ("hui") OR ("nu"))
(NOT *1 N BARRIER NP-BORDER);
## Son c1állá hui c1ábbát.
REMOVE Nom IF (-1 (Pron Interr Nom))(0 Adv);
## Iige leat duopmu mii c1ielgasit ja njuolga mearrida...
REMOVE (Pl Nom) IF (*-1 V-SG3 BARRIER VFIN OR CP OR CS)(0 Adv);
REMOVE (Pl Nom) IF (0 Adv)(*1 V-SG3 BARRIER NON-ADV-PCLE OR CLB);
## Lávdegoddi berre oppalac1c1at c1ilget...
## Son dábálac1c1at ráhkkana dasa dálvvi mielde.
REMOVE Adv IF (-1 (N Gen) OR (Pron Gen))(NOT -1 Adv OR ("leat" PrfPrc))
(0 Po);
# Po if after Gen
## but no hits in corpus!
REMOVE Adv IF (-1 ("leat"))(0 (A Attr))(1 N);
## Bussás leat alit c1almmit.
SELECT Adv IF (0 (Pron Indef))(1 CS);
SELECT Adv IF (0 (Pron Indef))(1 COMMA)(2 CS);
## Dat mearridit seammás ahte stáhtaeiseválddit galget ovddidit
## doaibmabijuid.
## Muhto geavadis ráddjejuvvui vuoigatvuohta veahás1, go ráfáiduhttima
## spiehkastat mearralottiid ektui gárz1z1ui.
REMOVE Po IF (-1 NON-NP)(0 Adv)(1 NON-NP OR CLB); ## Mun in leat mielde.
REMOVE (N Gen) IF (-1 VFIN)(0 Adv)(NOT 1 N or Po); ## Diet lea beare unnán.
REMOVE (Pron Interr) IF (1 CLB); ## Dá lea reivve maid.
# Adverbs, not interjections
# --------------------------
REMOVE Interj IF (NOT -1 Interj OR BOS)(0 Adv); ## Dat dinii bures doppe.
# Adverbs, not comparative adjectives
# -----------------------------------
REMOVE Comp IF (-1 ("hui") OR ("nu") OR ("seammá"))(0 Adv);
## Dat lea hui c1ielgasit.
REMOVE Comp IF (-1 VFIN)(0 Adv)(1 Inf);
## Rád1d1ehus áigu erenomázit giddet fuopmás1umi sámegillii.
REMOVE (A Comp) IF (-1 N OR Pron)(1 VFIN);
## ...ja ahte dat dáhttu c1ielgasit berre doahttaluvvot.
SELECT Adv IF (*-1 NP-HEAD-NOM OR (A Nom) BARRIER NON-ADV-PCLE)
(NOT 0 (Pron Interr))(1 PrfPrc);
## ...leatgo sámit historjjálac1c1at adnon eamiálbmogin...
# Adverbs, not verbs
# ------------------
REMOVE (V Ind) IF (-1 Nom LINK *-1 (V Ind) BARRIER NPNH)(0 ADV-NOT-VERB);
REMOVE VFIN IF (NOT *-1 Interr BARRIER VERB)(*1C VFIN BARRIER CLB OR CC OR CS OR CP);
## Oar-julggiid atnet olbmot dus1s1e dalle go bodni lea nu garas ahte...
## Manne ii leat áviisa boahtán?
SELECT Adv IF (-1 (Pron Interr))(1 CC)(2C Adv);
## ... dan dearvvas1vuod1abálvalussii, mii ollásit dahje osohahkii...
# Adverbs, not nouns
# ------------------
SELECT Adv IF (*-1 VFIN)(0 GEASSET)(NOT 1 Acc); ## Son lei doppe geasset.
SELECT Adv IF (0 GEASSET)(*1 VFIN); ## Dálvet son vulggii meahccái.
SELECT Adv IF (*-1 VFIN BARRIER NON-ADV)(0 ADV-NOT-OTHER-POS);
## Lea dus1s1e okta Ipmil.
## Ja Biret-Elle lea easka skuvllas geargan.
# Move to cycle 1a?
SELECT Adv IF (-1 CS)(0 ADV-NOT-OTHER-POS)(1 Nom LINK 1 VFIN OR Interr);
## Lahka mearridii, ahte dus1s1e sii gud1et máhte...
# A bit half-hearted the previous LINK).
REMOVE Interj IF (-1 BOS)(0 ADV-NOT-NAMES); ## De fidnejin.
## No hits in corpus.
SELECT Adv IF (-1 (N Nom))(0 ADV-NOT-NOUN);
SELECT Adv IF (-1 CC)(0 ADV-NOT-NOUN)(NOT *1 VFIN);
## Dáin ás1s1iin sáhttet Sámedikkit várra nu gohc1oduvvon friija
## árvvos1tallama mielde mearridit.
## Dás lea unnimus 150 jagis sáhka ja várra 200 jagis.
# Nouns, not adverbs
# ------------------
Remove Adv IF (-1 Gen)(NOT -1 Interr)(0 (N Loc)) ;
## Son bod1ii njukc1amánu loahpas.
# Rules related to specific adverbs
# ---------------------------------
# álgu
# - - -
SELECT N IF (-1 Gen OR (A Attr))(0 ("álgu"));
## Pros1eavtta álgu ii lean álki.
# beare
# - - -
SELECT Adv IF (0 ("beare"))(1 ("ollu"));
## Orohagas leat beare olu bohccot.
# beallái
# - - - -
# The Po/Pr seems to be taken care of by the general rules in an earlier block.
# But rules are needed that distinguish between N and Adv readings.
# danin
# - - -
SELECT Adv IF (0 ("danin"))(NOT *1 (N Ess) BARRIER NPNH)
(NOT *-1 COPULAS BARRIER NON-ADV)(NOT 1 CLB)
(NOT *-1 OPRED-VERB BARRIER NON-ADV)
(NOT *1 OPRED-VERB BARRIER NON-ADV);
## Danin badjánii jurdda lága ráhkadit.
## Návetruitu lávejit danin atnit. # Essive - hence the restrictions.
SELECT Ess IF (*-1 COPULAS BARRIER NON-ADV)(0 ("danin"))(1 CLB);
## ...jos fierpmit leat danin,...
SELECT Ess IF (0 ("danin"))(*1 OPRED-VERB BARRIER NON-ADV-PCLE);
SELECT Ess IF (0 ("danin"))(*-1 OPRED-VERB BARRIER NON-ADV-PCLE);
## Návetruitu lávejit danin atnit.
##
SELECT Adv IF (0 ("danin"));
## Sierralágan diehtojuohkingeahc1c1aleamit leage danin dehálac1c1at.
# If there are more essives, give rules for them.
# dassá
# - - -
REMOVE (V Ind Prs Sg3) IF (0 ("dassá"))(*1 VFIN BARRIER CS OR CLB);
REMOVE (V Ind Prs Sg3) IF (0 ("dassá"))(*-1 VFIN BARRIER CS OR CLB);
## No hits for the first one?
## Leago guhkes áigi dassá go Máreha oidnet?
# If this is to strict, (IF (1 ("go")) is also possible.
# dákko
# - - -
REMOVE (V Imprt Prs Sg2) IF (0 ("dákko"))(*1 VFIN);
REMOVE (V Imprt Prs Sg2) IF (*-1 VFIN)(0 ("dákko"));
## ... oaiviliid ja ákkaid bokte mat dákko ovddiduvvojit,...
## Hammerfeastta suohkanbáhppá Harboe lea dákko maid, nu go
## eará oktavuod1ain, buorre gáldu.
# Alternatively, on could remove all imperatives. Here, I remove the
# imperative reading of "dággut" if there is a finite verb somewhere
# else.
# duo
# - -
SELECT Adv IF (NOT -1 Dem or (A Attr))(0 ("duo"));
## Áddjá go duo lea boahtime?
# dus1s1e
# - - - -
# There is a rule "Lea dus1s1e okta Ipmil" for the typical dus1s1e cases.
REMOVE N IF (0 ("dus1s1e"));
REMOVE A IF (0 ("dus1s1e"));
## Vihtta bivdovuogi mun gal dus1s1e namahin,...
## Oar-julggiid atnet olbmot dus1s1e dalle go bodni lea nu garas...
# Brutal, but the noun and the adjective are almost always "dus1s1i".
REMOVE VFIN IF (*-1 VFIN BARRIER CP OR CS)(0 ("dus1s1e"));
REMOVE VFIN IF (0 ("dus1s1e"))(*1 VFIN BARRIER CP OR CS);
REMOVE (Actor) IF (0 ("dus1s1at")); # Make a set for non-agentive verbs?
## Nu eai died1us dárbbas1 skáhppot birra buot gal, dus1s1e lasi
## dan sadjái mii mieská.
## ...go dus1s1e áibbas moatti sajis heive meardebuod1d1u adnojuvvot.
## Oktagaslas1 olbmo lonuheami dohkálas1vuohta lea stáhtii geavadis
## dus1s1in.
SELECT Adv IF (-1 BOS)(0 ADV-NOT-VERB);#(*1 VFIN BARRIER CC OR CS OR CLB);
SELECT Adv IF (-2 BOS)(-1 Pcle)(0 ADV-NOT-VERB);
## Dus1s1e daid died1uid, mat gusket konkrehta várraárvvos1tallamii,
## sáhttá c1uoldit geahc1c1anlobis.
## No hits for the last rule?
# eanet
# - - -
SELECT Adv IF (0 ("eanet"))(1 CC)(2 ("eanet"))(3 A);
SELECT Adv IF (-2 ("eanet"))(-1 CC)(0 ("eanet"))(1 A);
## Dutkangaskkusteapmi ja jearru dutkanbohtosiidda s1addá eanet ja
## eanet guovddás1 oassi dutkama árgabeaivvis.
SELECT Adv IF (0 ("eanet"))(1 ("uhcit") OR ("unnit));
SELECT Adv IF (-1 ("uhcit") OR ("unnit"))(0 ("eanet"));
## ...muhto dál lea eanet uhcit jávkan.
## Go vierroopmodaga geavaha ja eaiggát unnit eanet c1ielgasit
## dasa leat miehtán,...
SELECT Adv IF (0 ("eanet"))(NOT 0 Pron)(NOT 1 Dem OR N OR A);
## Guovlu atnigoahtá olu eanet.
## Dat lea eanet go 10.
# Ambiguous: ## ...hálida universitehta almmuhit eanet died1alas1 artihkkaliid
## sámegillii.
# - hence the condition (NOT 1 A).
SELECT Adv IF (0 ("eanet"))(1 A-CASE)(NOT *2 N BARRIER NPNH);
## Báhkkodeamis ferte leat sáhka geavaheamis mii lea oktorád1d1ejeaddji
## dahje ainjuo c1ielgasit eanemus c1albmáic1uohcci.
# But the A-CASE is often a wrong analysis.
SELECT Attr IF (0 ("eanet"))(1 Dem OR N);
## Jos galgá eanet dutkiid oz1z1odit dán suorgái,...
## Noad1d1ebealli oaz1z1u deaddit eanemus viegu.
## ...okta dahje eanet dain eará namuhuvvon doaimmain.
# easkka
# - - - -
SELECT Adv IF (0 ("easkka"))(*1 TIME BARRIER NPNH);
## ...mii easkka man1imus1 áiggiid lea jávkágoahtán.
## Dat lei boahtán ruot1agielain easkka j. 1863.
# Ambiguous: ## Dat c1ielgá dálá oasálac1c1aide easkka proseassas.
SELECT Adv IF (0 ("easkka"))(1 Num OR ("man1n1el"));
## Muhto easkka 1898:s dovdagohte Láhppiolbmot dan mii man1n1elis bod1ii.
## ...easkka man1n1el 1529 ásaiduvve olbmot duod1as báikkiide.
# goas
# - - -
SELECT Adv IF (0 ("goas"))(NOT 1 go)(*1 (">"));
SELECT Adv IF (0 ("goas"))(1 CC)(2 CP);
## Goasbat Máret fuobmái fas dohko vuolgit?
## Goas ja mo dearvvas1vuod1aveahki lea addojuvvon,...
# goassige
# - - - -
SELECT Adv IF (*-1 Neg BARRIER VFIN)(0 ("goassige"));
## Ii leat stáhtas várra goassige leamas1 rud1alas1 ávki dán ámmahis.
# gosa
# - - -
SELECT Adv IF (0 ("gosa"))(*1 VFIN BARRIER CLB OR CS);
## Gosa don c1ihket dan?
## Son oinnii báikkiid gosa juo ledje ásaiduvvan.
# Here, the rule giving the verbal reading of "gosa" is missing. It must
# be added.
# gusto
# - - -
SELECT Adv IF (-1 VFIN)(NOT -1 Neg)(0 ("gusto"));
## Diet lea gusto ávkkálas1.
# ihttin
# - - - -
SELECT Adv IF (0 ("ihttin"));
## Mii vuolgit ihttin juo.
# The competitor is '"ihtit" V N Actor Ess'. This reading will now never be
# selected. Have a look at this when dealing with Actor nouns.
# ikte
# - - -
SELECT Adv IF (0 ("ikte"))(*1 (V Prt)); ## Ikte lei hui buolas1.
SELECT Adv IF (*-1 (V Prt))(0 ("ikte")); ## Ikte lei hui buolas1.
# maid
# - - -
SELECT Adv IF (-1C VFIN)(0 ("maid"));
SELECT Adv IF (-1 N LINK *-1 BOS BARRIER NPNH)(0 ("maid"))
(NOT *1 VFIN LINK *1 VFIN BARRIER CS OR CP);
## Mun háliidan maid mannat.
## Suomas maid lei dilli váttis.
## Nubbi maid fuobmáimet lei ahte... (Interr, hence the last condition.)
SELECT Adv IF (-2 BOS)(-1 (Pron Pers))(0 ("maid"));
## Sidjide maid lei Ruija.
SELECT Adv IF (-1 COPULAS LINK 0 Pl3)(0 ("maid"))(*1 (N Pl Nom) BARRIER NPNH);
## Romssa universitehtas leat maid eará plánat álggahit fálaldagaid.
SELECT Adv IF (*-1 CS BARRIER VFIN OR CLB)(NOT -1 go)(0 ("maid"))
(*1 VFIN LINK NOT *1 VFIN);
##... nu ahte dat maid siskkilda ávnnalas1 kultureavttuid.
SELECT (Pron Interr) IF (-1 BOS OR PUNCT)(1 Nom)(*1 ("?"));
## Maid mii dál vihtaniiguin?
SELECT Adv IF (0 ("maid"))(NOT *1 VFIN);
SELECT Adv IF (0 ("maid"))(NOT *1 VFIN BARRIER CC OR CS OR CP);
## Dán oktavuod1as c1ujuhuvvo maid oanáduslistui ja gáldolistui.
## Sápmelec1c1at oasálaste maid dasa, muhto lassin ledje sis vel eará
## resursat.
SELECT Adv IF (*-1 INF-VERB BARRIER VERB)(0 ("maid"))(*1 Inf BARRIER VERB);
## Sápmelac1cat galge maid vearu máksit Danmárku-Norgii.
SELECT Interj IF (-1 BOS)(0 ("maid"))(1 COMMA);
## Maid, iigo leat boahtán?
# manne
# - - -
SELECT Adv IF (-2 BOS OR CLB OR PUNCT)(-1 CC)(0 ("manne"))(*1 VFIN);
SELECT Adv IF (*-1 BOS OR CLB OR PUNCT BARRIER NON-ADV-PCLE)(0 ("manne"))
(*1 VFIN BARRIER CC OR CS OR CP);
## Ja manne moras1tehpet biktasiid dihtii?
## Naba dii, manne dii iez1a rihkkubehtet Ipmila báhkkomiid?
## Sii manne isideaset lusa ja muitaledje buot. # BARRIER CC!
# mielas
# - - - -
REMOVE Adv IF (-1 Gen)(0 ("mielas"));
## Mu mielas don sáhtát mielas boahtit.
# naba
# - - -
SELECT Adv IF (0 ("naba"))(NOT 1 V-SG3);
## Naba don, man ollu don leat dahkan.
# "Naba" is a proper noun also, but hardly relevant in a Sami context.
# Thus, it could perhaps be deleted in all contexts. The intended context
# here is one of the subject, but it is somewhat halfheartedly written.
# oktan/ovttas
# - - - - - - -
SELECT Adv IF (0 ("oktan") OR ("ovttas"))(*1 Com BARRIER NON-NP);
## Divs1s1ohas lea vuoigatvuohta iez1as journála geahc1c1at oktan
## mildosiiguin.
# rádjái/rádjai
# - - - - - - -
SELECT Po IF (-1 Num)(0 ("rádjai") OR ("rádjái"));
## Njuolggadusat nággolága § 204:s § 209 rádjái oz1z1ot seammá geavahusa.
# This rule should be extended to all postpositions likely to occur after
# number expressions. Todo: Make a set.
# sullii
# - - - -
SELECT Adv IF (0 ("sullii"))(1 Num);
## Bus1eahtas lea sullii 650.000 ruvnno leamas1 várrejuvvon.
# This rule must be generalised on both conditions: "sullii" must be extended
# to a set of adverbs denoting quantification, and Num must be extended to
# more measures (or parallel rules must be written).
SELECT Adv IF (-1 ("leat"))(0 ("sullii"));
## Spahká lea sullii dus1s1e suorbmabeali asu gez1iid bokte.
# The idea is that "leat" doesn't subcategorise for illatives.
# unnán
# - - -
SELECT Adv IF (0 ("unnán"))(1 VFIN OR PrfPrc)(NOT 1 N);
## Eanas1 duopmárat unnán dovdet eamiálbmogiid historjjá.
## Dat orru oppanassii unnán c1ilgejuvvon 1800-logu gaskamuttu.
# uhcit/unnit
# - - - - - -
SELECT Adv IF (-1 ("eanet"))(0 ("uhcit") OR ("unnit"));
SELECT Adv IF (0 ("uhcit") OR ("unnit"))(1 ("eanet"));
## Dál lea eanet uhcit jávkan.
## Go eaiggát eanet unnit c1ielgasit dasa lea miehtán,...
# várra
# - - -
SELECT Adv IF (*-2 A BARRIER WORD)(-1 CC)(0 (várra))(*1 PrfPrc BARRIER NON-ADV-PCLE);
## Ovdabarggut c1ájehit láhkateavstta leat váilevas1, ja várra boastut
## báhkkoduvvon.
# The rule does not hit here, 'várra' gets N reading, but why?
SELECT Adv IF (-1 CLB)(0 ("várra"))(NOT *1 V-SG3);
## Sápmelac1c1at geat ledje birgegoahtán dus1s1e boazudoaluin, várra
## ledje buot friddjamusat.
# visot
# - - -
SELECT Adv IF (0 ("viso"))(NOT 1 (N Pl));
## Ii leat vel visot c1ohkkejuvvon.
## Visot dan maid NRK sádde digitála fierpmis sáhttá maid gullat Nettradios.
# This is not a particularly good rule for 'visot'.
# ======================= #
# Disambiguating pronouns #
# ======================= #
CONSTRAINTS #
# ======================= #
# Interrogative pronouns
# ======================
SELECT Interr IF (-1 BOS OR (":"))(*1 ("?"));
SELECT Interr IF (-2 BOS)(-1 Pcle)(*1 ("?"));
SELECT Interr IF (-2 BOS OR CLB)(-1 PUNCT);
## Maid don doaivvut, mun gielistan?
## Na maid don din1gojit?
## Man uhccán osku dus lea!
# The last example is an exclamation. Hit because no ? required.
REMOVE Interr IF (-1 Interr);
## Dat lea c1uonz1z1a, mii maid gorgn1u detnui c1akc1ageasi.
SELECT Interr IF (NOT -1 V-PL1)(0 ("mii"))
(*1 V-SG3 BARRIER V-PL1 LINK NOT 0 (Pl1));
## Dát ii guoskka diks1ui mii boahtá psykiatriija vuollái.
SELECT (Pl Gen) IF (0 ("gii") OR ("mii" Interr))(1C N)(NOT 1 Ess OR PROP)(2 NP-BORDER);
## Dasa lassin bohte kvenaid 1700-logus, geaid logu eat died1e.
## Dáidda gulle dávjá 10-12 ládjogietti, maid gaska sáhtii leahkit...
## Dan áigge galge ges olbmot Finnmárkkus geaid golgolaz1z1an gohc1odedje,
## sáddejuvvot Danmárkui. NOT 1 Ess!
# This rule is placed here in order to bleed the 'SELECT Sg'-rules below.
SELECT Sg IF (-1C NP-HEAD-SG OR (Card Sg))(NOT *-2 NUMERALS BARRIER NPNH)
(0 (Pron Interr));
SELECT Pl IF (-1C NP-HEAD-PL)(0 (Pron Interr));
## ...go lei sáimmaiguin bivdán jávrris maid stáhta lei láigohan.
## Davviriikkain leat guokte álbmoga maid átnit álgoálbmogin. # NUMERALS!
## Doaibma gullá doaimmaide maid ulbmil lea movttiidahttit sámi nuoraid...
SELECT Sg IF (NOT -3 CC)(-2C NP-HEAD-SG)(-1 COMMA)(0 (Pron Interr));
SELECT Pl IF (-2C NP-HEAD-PL)(-1 COMMA)(0 (Pron Interr));
## Deat1alas1 lea ahte c1állojuvvojit dakkár gillii, maid buot bargit
## áddejit.
## Dat divs1s1ohasat, geaid leat geavadis vejolas1 joksat,...
SELECT Sg IF (-2 Sg LINK NOT *-1 NUMERALS BARRIER NPNH)(-1 Po)(0 (Pron Interr));
SELECT Sg IF (-3 Sg LINK NOT *-1 NUMERALS BARRIER NPNH)(-2 Po)(-1 COMMA)(0 (Pron Interr));
## Mandáhta mielde maid Sámi vuoigatvuod1alávdegoddi lea addán...
## ...ja dan dearvvas1vuod1aveahki birra, maid son oaz1z1u,...
SELECT Pl IF (-2 Pl)(-1 Po)(0 (Pron Interr));
SELECT Pl IF (-3 Pl)(-2 Po)(-1 COMMA)(0 (Pron Interr));
## ...ahte resurssaid ektui maid livc1c1ii dárbbas1an atnit...
## Sivaid geazil, maid berre c1uovvolit,...
SELECT Pl IF (-1 Po LINK *-1 NUMERALS BARRIER NPNH)(0 (Pron Interr));
SELECT Pl IF (-2 Po LINK *-1 NUMERALS BARRIER NPNH)(-1 COMMA)(0 (Pron Interr));
## No hits?
## No hits?
REMOVE Pl IF (-1 BOS)(0 ("mii" Pron Interr))(NOT *1 (N Pl) BARRIER NPNH);
## Maid don doaivvut, mon gielistan?
SELECT (Sg Gen) IF (0 ("mii" Interr))(1 A OR Adv)(NOT 1 Comp OR Superl);
SELECT Gen IF (0 (Pron Interr))(1 Po);
SELECT Gen IF (0 (Pron Interr))(NOT *1 V-NON-AUX);
## Man guhkki lea skuvlii?
## Son gean birra died1ut leat,...
## Gii galgá árvvos1tallat gud1e died1ut galget leat journálas.
# Reflexive pronouns
# ==================
# iez1as is Gen or Acc
# iez1a is Pl or Du
# Reflexive iez1as
# ----------------
SELECT Gen IF (-1 Acc)(0 ("ies1" Gen) OR (Pron Pers Gen))(1 HNOUN);
## ... muhto it fuomás1 hirssa iez1at c1almmis?
# Emphatic ies1
# -------------
# Sg ies1 is unique, there is homonymy Du/Pl for iez1a.
# Problem: Prs Du1 = Prt Pl3.
SELECT Pl IF (*-1 V-PL OR (V Imprt Pl2) OR MII-PERS OR DII OR SII OR
(Pron Interr Pl Nom) BARRIER CS OR CP OR PUNCT)(0 ("ies1" Pron Refl Pl Nom))
(NOT *1 V-DU BARRIER NON-ADV-PCLE);
## Allet dubme, amadet iez1a dubmejuvvot!
## ...muhto leat maiddái muhtumat geat iez1a leat dahkan iez1aset
## dohkketmeahttumin...
SELECT Pl IF (0 ("ies1" Pron Refl Pl Nom))(*1 V-PL BARRIER CS OR CP);
## ...ja didjiide mihtiduvvo seammá mihtuin mainna iez1a ge mihtidehpet.
SELECT Du IF (*-1 V-DU OR MOAI OR DOAI OR SOAI BARRIER CS OR PUNCT)
(0 ("ies1" Pron Refl Du Nom));
## Doai galgabeahtti iez1a mannat.
SELECT Du IF (0 ("ies1" Pron Refl Du Nom))
(*1 V-DU OR MOAI OR DOAI OR SOAI BARRIER CS OR CP);
## Iez1a soai muitaleigga mii lei dáhpáhuvvan mátkkis.
# Reciprocal pronouns
# ===================
SELECT Recipr IF (1 Recipr);
SELECT Recipr IF (-1 Recipr);
## ...de dadje guhtet guoibmáseaset:...
## Gielddat berrejit ásahit fásta dulkaveaga, kánske ovttasbarggus nubbi
## nuppiin.
# =========== #
CONSTRAINTS
# =========== #
REMOVE Recipr ;
## Jos dajan nubbái: Mana! de son manná.
# Indefinite pronouns
# ===================
# nubbi
# -----
# These rules have to precede the general rules, or the Ord reading will
# be removed where it should remain.
SELECT Ord IF (*-2 ("vuosttas") OR ("vuosttas1"))(-1 CC OR COMMA)(0 ("nubbi"));
SELECT Ord IF (0 ("nubbi"))(*1 CC OR COMMA LINK 1 ("goalmmát"));
## Vuosttas1 vuojahaga fávllimus c1uolda lea goaratc1uoldan ja
## nubbi c1uolda fas gáddeoal-c1uoldan.
## Nubbi noad1d1eheargi goallustuvvo giehtahearggi lávz1ái ja goalmmát
## fas dan nuppi lávz1ái.
SELECT Gen IF (0 ("nubbi"))(1 N);
## Son oac1c1ui c1áda ás1s1i fas nuppi Stuorradikkis.
SELECT Indef IF (0 ("nubbi"))(*1 CC OR COMMA LINK 1 ("nubbi"));
SELECT Indef IF (*-2 ("nubbi"))(-1 CC OR COMMA)(0 ("nubbi"));
## Nubbi lei dáz1a, muhto nuppi bearras1is lei isit sápmelas1.
## C1ielggadeapmi lea guovtteoasát - nubbi ies1 vuoigatvuod1a-
## gaz1aldagaid birra ja nubbi dán suorggi siskkabeale hálddahus-
## ortnegiid birra.
SELECT Indef IF (*-2 ("okta" Num))(-1 CC OR COMMA)(0 ("nubbi"));
## Okta ás1s1i lea mii lágas mearriduvvui, nubbi lea man kommis1uvnnat
## c1uvvo mearrádusaid.
## Riektegeavadis sáhtás1ii danin geavahit guokte váldolinjjá,
## okta ovdal ja nubbi fas man1n1á 1970.
REMOVE Attr IF (0 ("nubbi"))(1 Dem OR Adv);
## ... ja nubbi dán suorggi siskkabeale hálddahusortnegiid birra.
## ...nubbi fas rávesolbmuid psykiatriijas.
# General rules
# -------------
SELECT Attr IF (0 Pron)(*1C N BARRIER NON-ADJ-PCLE OR go);
## Dan muitalii muhtin mátkkos1teaddji gean namma lei Keilhau.
## Njuolggadusain ledje eará ge mearrádusat.
REMOVE Attr IF (0 Pron)(1 (Pron Interr));
## Lea unnán maid sáhttit dahkat.
SELECT Indef IF (*-1 Neg)(0 Interr);
SELECT Indef IF (-1 Indef)(0 Interr);
## Ale divtte geange badjelgehc1c1at du.
## Várut dadjamis maidege geasage dan birra!
# seamma/seammá
# -------------
SELECT Attr IF (0 ("seamma") OR ("seammá))(1 A);
SELECT Attr IF (0 ("seamma") OR ("seammá))(1 N);
## Dasto smiehttatge fas seamma sullasas1 jearaldagaid.
## Sáhttá leat ulbmillas1, ahte seamma olmmos1 áimmahus1s1á mán1ga
## dain doaimmain.
REMOVE Attr IF (0 ("seamma") OR ("seammá"))(NOT *1 N OR A BARRIER NPNH);
## Seammá gusto poliklinihkalas1 divs1s1us.
# unnán
# -----
SELECT Indef IF (*-1 COPULAS BARRIER V-NON-AUX)(0 ("unnán"))
(NOT 1 PrfPrc LINK *1 NP-HEAD-ACC BARRIER NPNH);
## Dat gal lei beare unnán.
## Sii leat hui unnán dahkan guorahallat "sámi vieruid ja riekteáddejumiid".
## Eanetlohku lea menddo unnán bidjan Finnmárkku mihtilmas diliid vuod1d1un.
# In the last example "unnán" is an Adv. Hence the last condition. Alternative:
# (NOT 1 PrfPrc LINK 1 Inf)?
# Demonstrative pronouns
# ======================
REMOVE Pcle IF (-1 Interr OR CC)(0 ("dat"));
## Maid dat Kárás1jogas bargá?
## Dahje dat gávccenuppelogis geat sorbmas1uvve...
SELECT Dem IF (NOT -1 VERB)(1 (Indef Attr));
## Nuppi geahc1i dan seammá lávz1z1is fas biddjojuvvo bad1a birra.
REMOVE (Dem Sg) IF (0 ("dat" Sg))(NOT *1 (N Sg) BARRIER NON-NP LINK 0 HNOUN);
## .. ja dan golut leat govttolac1c1at veahki ektui.
REMOVE (Dem Pl) IF (0 ("dat" Pl))(NOT *1 (N Pl) OR NUMERALS BARRIER NPNH);
## ...ja ahte dat dáhttu c1ielgasit berre doahttaluvvot.
# DP-internal number concord
# --------------------------
SELECT Pl IF (0 (Pron Dem))(*1C (N Pl) BARRIER NON-ADJ LINK 0 HNOUN);
SELECT Pl IF (0 (Pron Dem))(1 (Num Pl));
## Naba daid stuora dorskiid, gosa daid bidjet?
## Dainna golbma ovdamearkkain Álttas, Kárás1jogas ja Buolbmágis,...
# DP-internal case concord
# ------------------------
# More rules for Dem in front of NUMERALS must be added.
SELECT (Dem Sg Nom) IF (0 ("dat"))(*1 (N Sg Nom) BARRIER NON-ADJ
LINK 0 HNOUN LINK *1 V-SG3 BARRIER CC OR CS);
SELECT (Dem Sg Nom) IF (0 ("dat"))(*1C HNOUN BARRIER NON-ADJ LINK 0 (Sg Nom)
LINK *-1 V-SG3 BARRIER CS OR CP);
## Dalle dat geahppaset gurppas daddjojuvvo veajan.
## Ii han ovttasge du sogas leat dat namma.
SELECT (Dem Pl Nom) IF (*1 (N Pl Nom) BARRIER NON-ADJ LINK 0 HNOUN
LINK *1 V-PL3 BARRIER CS);
SELECT (Dem Pl Nom) IF (*1 (N Pl Nom) BARRIER NON-ADJ LINK 0 HNOUN
LINK *-1 V-PL3 BARRIER CS OR CP);
## Dát vejolas1vuod1at leat dehálas1 eallindiliid eavttut álbmogii.
## Noad1d1espagáin leat dat geaz1it guokte golbma tumá guhku.
SELECT (Dem Pl Nom) IF (*1 (N Pl Nom) BARRIER NON-ADJ LINK 0 HNOUN
LINK *1 V-DU3 BARRIER CS);
SELECT (Dem Pl Nom) IF (*1 (N Pl Nom) BARRIER NON-ADJ LINK 0 HNOUN
LINK *-1 V-DU3 BARRIER CS OR CP);
## Go dat geaz1it mat geaigut leaba bajás, gohc1oduvvoba spahká-oaivin.
## No hits in corpus for the last rule, but it looks OK!
SELECT (Dem Pl Nom) IF (0 ("dat"))(1 NUMERALS LINK 0 Nom);
## ...oz1z1o dat 50 vuotnaguolásteaddji Gáivuonas buhtadasa.
SELECT (Dem Pl Nom) IF (1 Nom)(2 (Pron Interr Pl));
##
SELECT (Dem Acc) IF (0 ("dat"))(1C (Num Acc));
## Tabealla vuosttas1 ceakkoc1uolddas oaidnit dan golbma bajitdási
## váldofáddajoavkku.
SELECT (Dem Gen) IF (0 ("dat"))(1C (Num Gen));
SELECT (Dem Gen) IF (0 ("dat"))(*1C (N Gen) BARRIER NON-ADJ LINK 0 HNOUN);
## Davimus guovllut ledje dálá Ruos1s1a ja daid guovtti davvi-
## ovttastumiid oktasas1 vearroeanan.
## Fertejitgo máksit daid vuoivasiid ovddas?
SELECT (Dem Sg Gen) IF (NOT *-1 VERB BARRIER NON-ADV-PCLE)(0 ("dat"))
(*1C (N Sg Ill) BARRIER NPNH);
SELECT (Dem Pl Ill) IF (0 ("dat"))(*1C (N Pl Ill) BARRIER NON-NP);
## Nubbi noad1d1eheargi goallustuvvo giehtahearggi lávz1ái ja goalmmát
## fas dan nuppi lávz1ái.
## Láhka gusto daidda dearvvas1vuod1ahálddahusa dearvvas1vuoda-
## died1uid gied1ahallamiidda.
# Disambiguating (Pl Ill) is only a question of distinguishing between Pers and
# Dem. Accordingly, the barrier can be less strict.
SELECT (Dem Sg Gen) IF (0 ("dat"))(*1C (N Sg Loc) BARRIER NPNH);
SELECT Dem IF (0 ("dat"))(0C Loc)(*1 (N Pl Loc) BARRIER NPNH);
## Ja dan báhkka cizas lea fierpmit dassá go dat c1oasku.
## Seamma olmmos1 áimmahus1s1á mán1ga dain doaimmain dahje rollain.
SELECT Dem IF (0 ("dainna"))(*1 (N Sg Com) OR (N Pl Loc) BARRIER NPNH);
## ...suollemas dainna doaivvuin ahte...
## Guhtemus1 dainna bivdovugiin guhkimus leas1 geavahuvvon...
# No disambiguation between Sg Com and Pl Loc here. All we do is distinguish
# between Dem and Pers.
# As for Dem Pl Com, it is taken care of by the first rule for DP-internal
# number concord above.
SELECT (Dem Pl Gen) IF (0 ("dat"))(*1C (N Pl Com) BARRIER NPNH);
## ...ja daid lunddolas1 rájáiguin ássanguovlluid siiddaid gaska.
REMOVE (Dem Nom) IF (0 ("dat"))(NOT *1 (N Nom) BARRIER NPNH);
REMOVE (Dem Sg Loc) IF (0 ("dat"));
REMOVE (Dem Sg Ill) IF (0 ("dat"));
## Maid dat Kárás1jogas bargá?
## ...ja lea vuoigatvuohta oaz1z1ut das mán1gosa sierranas jearrama
## vuod1ul.
## Olggosaddin sáhttá liikká dáhpáhuvvat jos gávdnojit dasa
## beaktilis sivat.
# Some rules for personal pronouns again (will hit "dat", except the last one)
# ----------------------------------------------------------------------------
SELECT (Sg3 Nom) IF (*-1 (V Sg3) BARRIER CC OR CS OR CLB OR CP OR PUNCT)
(NOT *1 (N Sg Nom) BARRIER NPNH);
SELECT (Sg3 Nom) IF (*1 (V Sg3) BARRIER VFIN OR CS OR CP LINK NOT 0 (N Pl))
(NOT *-1 V-SG3 BARRIER NON-ADV);
## Iihan dat liikon Kárás1johkii?
## Ja dan báhkka cizas leat fierpmit dassá go dat c1oasku.
SELECT (Pl3 Nom) IF (*-1 (V Pl3) BARRIER CC OR CS OR CLB OR CP OR HNOUN-NOM);
SELECT (Pl3 Nom) IF (*1 (V Pl3) BARRIER VFIN OR CS OR CP);
## Eai dat leat vel giksan.
## Dathan gal leat buorit guolit.
SELECT (Pron Sg3) IF (1 (Pron Interr Sg));
SELECT (Pron Pl3) IF (1 (Pron Interr Pl));
## ...go dus1s1e dat mii guoská reguleremii.
## Dat mat sáhttet háhkkojuvvot, leat ovdalis juo namuhuvvon.
REMOVE (Pers Acc) IF (*1C (N Acc) BARRIER (Actio Loc) OR CS OR CP LINK NOT 0 TIME);
## De lea sihke divs1s1ohas ja su lagamus oapmahac1c1as vuoigatvuohta
## oaz1z1ut died1uid.
## Min áiggi lea dat gildojuvvon.
## Go ii oktage vuosttildan dan vuoigatvuod1adili...
# Disambiguating against other POS
# --------------------------------
# Getting rid of problematic names.
# Problematic here are the names Dan, Dien, and the essive of the noun duo.
REMOVE (Prop) IF (-1 BOS)(0 Dem)(1 N)(NOT 1 Prop);
## Dan nieidda mun dovddan. # Does this rule ever hit?
REMOVE (Dem Sg Nom) IF (NOT *-1 V-SG3 BARRIER CS)(NOT *1 (N Sg Nom) BARRIER NPNH)
(NOT *1 V-SG3 BARRIER CS);
## Dasto leat dát ies1gud1etge doaibmabijut juhkkojuvvon...
REMOVE (Dem Pl Nom) IF (NOT *-1 V-PL3 BARRIER CS)(NOT *1 (N Pl Nom) OR NUMERALS
BARRIER NPNH)(NOT *1 V-PL3 BARRIER CS);
## Amma duot lei Niillasa guollebiila?
# The verb is there to capture intransitive Dem.
# ========================= #
# Disambiguating adjectives #
# ========================= #
CONSTRAINTS #
# ========================= #
# Rules related to specific adjectives
# ====================================
# garra
# - - -
# These rules are here to remove "garra" N Sg Nom.
SELECT Attr IF (0 ("garas"))(1 (N Nom));
SELECT Attr IF (NOT *-1 V-SG3)(0 ("garas" A Attr))(1 A OR N)(NOT *1 V-SG3);
## Norggas lea leamas1 gal garra digas1tallan sámi oahppoplána hárrái.
## Beatnagat eai biva vis1s1at garra buollas1iid.
# stuoris
# - - - -
SELECT Attr IF (-1C N)(0 ("stuorát"))(1C (N Pl))(1 HNOUN);
## ...leat viiddis njuolggadusat ás1s1emeannudeapmái stuorát
## c1ázádatmuddemiid oktavuod1as.
# vuolit
# - - - -
SELECT Attr IF (0 ("vuolit"))(1 ("gráda") OR ("dássi"));
## Skuvla dus1s1e addá oahpu vuolit dásis.
# Attribute disambiguation
# ========================
# Rules for Attr between Dem and N.
# - - - - - - - - - - - - - - - - -
SELECT Attr IF (*-1 (Dem Sg Nom) BARRIER NPNH)(*1 (N Sg Nom) BARRIER NPNH);
SELECT Attr IF (*-1 (Dem Pl Nom) BARRIER NPNH)(*1 (N Pl Nom) BARRIER NPNH);
## Dalle dat geahppaset gurppas daddjojuvvo veajan.
## ...jus dát máinnas1uvvon árbevirolas1 dilálas1vuod1at eai
## geahc1c1aluvvo c1uvgejuvvot.
SELECT Attr IF (*-1 (Dem Sg Acc) BARRIER NPNH)(*1 (N Sg Acc) BARRIER NPNH);
SELECT Attr IF (*-1 (Dem Pl Acc) BARRIER NPNH)(*1 (N Pl Acc) BARRIER NPNH);
## ...ja son doaimmaha dán dábálas1 dahje eanas1 geavaheami.
## Nuppe beales geahc1c1alit dahkat dáid siskkáldas áddejumiid
## duod1as1tanfáddán.
SELECT Attr IF (*-1 (Dem Sg Gen) BARRIER NPNH)(*1 (N Sg Gen) BARRIER NPNH);
SELECT Attr IF (*-1 (Dem Pl Gen) BARRIER NPNH)(*1 (N Pl Gen) BARRIER NPNH);
## Dán konkrehta háve gustojedje gárz1z1ideamit nappo earáidego
## boazosapmelac1c1aide.
## No cases left after the Dem Pl Acc-Attr-N Pl Acc rule?
SELECT Attr IF (*-1 (Dem Sg Gen) BARRIER NPNH)(*1 (N Sg Ill) BARRIER NPNH);
SELECT Attr IF (*-1 (Dem Pl Ill) BARRIER NPNH)(*1 (N Pl Ill) BARRIER NPNH);
## Dás lei maiddái gaz1aldat geavahanvuoigatvuod1as vuovdái ja dan
## vejolas1 viidodahkii.
## ...mat gullet dáidda ja eará lunddolas1 sullasas1 doaimmaide.
SELECT Attr IF (*-1 (Dem Sg Gen) BARRIER NPNH)(*1 (N Sg Loc) BARRIER NPNH);
SELECT Attr IF (*-1 (Dem Pl Loc) BARRIER NPNH)(*1 (N Pl Loc) BARRIER NPNH);
## Ja dan báhkka cizas leat firpmit dassá go dat c1oasku.
## Sápmelac1c1at ledje vuosttasin dahje okta dain vuosttas1 álbmot-
## joavkkuin,...
## ...dainna váilevas1 vejolas1vuod1ain...
SELECT Attr IF (*-1 (Dem Pl Com) BARRIER NPNH)(*1 (N Pl Com) BARRIER NPNH);
## Geainnuin livc1c1ii eambbo turistajohtolat suohkana c1oahkke-
## ássanguovddás1iid c1ad1a daiguin ekonomalas1 oalgeváikkuhusaiguin.
SELECT Attr IF (*-1C Dem BARRIER NPNH)(*1 N BARRIER NON-ADJ-CC);
## Mo Alimusriekti meannudii vaikkoba dakkár vuolit dási olbmuid
## vihtanc1ilgehusaigun?
# Other attribute rules
# - - - - - - - - - - -
REMOVE Adv IF (NOT *-1 VERB BARRIER CS OR CP)(NOT *1 VERB BARRIER CS OR CP);
## Diehtojuohkin divs1s1ohasa lagamus1 oapmahaz1z1ii.
## Stuorát guolit mat eai bisán c1almmiide, mannet c1ad1a.
SELECT Attr IF (*-1 BOS BARRIER NPNH)(NOT 0 VERB)(NOT 1 Dem OR VERB)
(*1 N BARRIER NPNH);
## Golbma c1áppa, doaimmalas1 nieidda livz1o áhc1iset riegádanbeaivve.
SELECT Attr IF (NOT 0 Prop)(1 COMMA)(2 Attr)(3 CC LINK *1 HNOUN BARRIER NPNH);
## ...go viidáset gaskkusta oppalac1c1at álbmoga historjjálas1,
## kultuvrralas1 ja politihkalas1 died1uid.
SELECT Attr IF (NOT 0 Prop)(1 COMMA)(2 Attr OR PrsPrc)(*3 HNOUN BARRIER NPNH);
##
SELECT Attr IF (-1 ("leat"))(1 A OR N LINK NOT *1 Po OR Loc OR Inf BARRIER NON-NP)
(NOT 1 Adv OR VERB);
## Sis-Finnmárkkus lea vuolit gaskamearálas1 bruttoboahtu go fylkkas...
REMOVE (A Nom) IF (0 (A Attr))(*1C N OR Cmpnd BARRIER NON-ADJ LINK NOT 1 Po)
(NOT 1 COMMA LINK 1 N);
REMOVE (A Gen) IF (0 (A Attr))(*1 N BARRIER NON-ADJ LINK NOT 1 Po);
REMOVE (A Acc) IF (0 (A Attr))(*1 N BARRIER NON-ADJ LINK NOT 1 Po);
## Dat lea c1uovvovas1 sajis.
## Sámegiella ja dárogiella leat ovttaárvosas1 gielat.
## Lea deat1alas1 movttiidahttit studenttaide gazzat doavttergrádaoahpu.
# The careful mode (*1C N) was removed because of the second example.
# But reintroduced because of the third example.
REMOVE V IF (NOT -1 (N Nom))(0 (A Attr))(*1 N BARRIER NON-ADJ LINK NOT 1 Po)
(*2 VFIN BARRIER CC OR CLB OR CP OR CS);
REMOVE N IF (0 (A Attr))(NOT 1 VFIN OR PrfPrc OR CLB)
(*1 N BARRIER NON-ADJ LINK NOT 1 Po);
## Olles doaibmaviessu lea sullii 2300 njealjehasmetera stuoru.
## ...muhto dakkár radikála rievdadus eahpitkeahttá buktá garra
## reaks1uvnnaid,...
REMOVE Adv IF (-2 A OR N)(-1 ("go" Pcle))(1 N);
## Sámedikki ásaheapmi lea eanet ideologalas1 go c1ielga mearrádus.
REMOVE PrsPrc IF (0 (A Attr))(1 N)(NOT 1 Gen);
## Sidjiide maid lei guollerikkis Ruija geasuheaddji guovlu.
REMOVE (A Loc) IF (0 Attr)(1 N);
SELECT (A Attr) IF (NOT -1 ("leat") LINK -1 Nom)(NOT -1 CS)(0 (N Nom) OR (A Nom))
(NOT 0 VERB)(1 N)(NOT 1 A OR VFIN OR TIME OR ("leapma" Dimin));
REMOVE VGen IF (-1 Gen OR Dem OR Indef)(0 Attr)(1 N)(2 NP-BORDER);
REMOVE N IF (-1 Gen OR Dem OR Indef)(0 Attr)(1 N)(2 NP-BORDER);
REMOVE Adv IF (-1 Gen OR Dem OR Indef)(0 Attr)(1 N)(2 NP-BORDER);
REMOVE VFIN IF (-1 Gen OR Dem OR Indef)(0 Attr)(1 N)(2 NP-BORDER);
## Dat lea died1áhus sámepolitihka bajit linjáid birra.
# This is a highly specified context. The idea is that the Spec ___ N
# position should have and Attr or some other adjective. Look out for probl.
# Coordinated attributes
# ----------------------
SELECT (A Attr) IF (-1 NP-BORDER)(1 CC)(2C (A Attr));
SELECT (A Attr) IF (1 CC)(2 PrfPrc)(*3 N BARRIER NPNH);
##
## Norgga duohta dahje c1uoc1c1uhuvvon mearrideaddji váldi...
# Special rules for 'buorre' (the only adjective showing case agreement)
# ----------------------------------------------------------------------
SELECT (Pl Nom) IF (0 ("buorre"))(*1 (N Pl Nom) BARRIER NON-ADJ-CC);
SELECT Gen IF (0 ("buorre"))(NOT 0 Comp OR Superl)
(*1C (N Gen) BARRIER NON-ADJ-CC LINK 0 HNOUN);
SELECT Acc IF (0 ("buorre"))(NOT 0 Comp OR Superl)
(*1C (N Acc) BARRIER NON-ADJ-CC);
##
# Rules for predicative attributes
# --------------------------------
SELECT Attr IF (-3 BOS)(-2 Nom)(-1 ("leat"))(0 Prop)(1 Prop)(2 NP-BORDER);
SELECT (A Attr) IF (1 CC)(2 (A Attr))(3 N);
SELECT (A Attr) IF (-1 COMPAR)(1 ("go" Pcle))(2 (A Attr))(*3 N BARRIER NON-ADJ);
##
## Dat lea od1d1a ja vilges gákti.
## Sámedikki ásaheapmi lea eanet ideologalas1 go c1ielga mearrádus.
# Coordinated attributive first names
# -----------------------------------
SELECT (Prop Attr) IF (NOT -1 Prop)(1 CC)(2 (Prop Attr))(3 (N Prop));
## Dál leaba Brita ja Ove Kĺven.
# Adjectives as predicates
# ========================
# Two rules to avoid removing infinitive:
REMOVE VGen IF (*-1 COPULAS BARRIER NON-ADV-INDEF)(0 Attr)(1 N OR EOS);
REMOVE VFIN IF (*-1 COPULAS BARRIER NON-ADV-INDEF)(0 Attr)(1 N OR EOS);
SELECT (A Sg Nom) IF (*-1 COPULAS BARRIER NON-ADV-PCLE LINK *-1 (N Sg Nom) OR
(Pron Sg Nom) OR (Sg3 Nom) BARRIER NON-ADV-PCLE);
## Dat geaidnu lea govdat mii doalvu gád1ohussii.
# sjekk og lag regel for Pl!
SELECT A IF (*-1 COPULAS BARRIER NON-ADV-INDEF)(NOT 0 VERB OR N)
(1 N OR EOS); # sjekk!
SELECT A IF (-2 (N Sg Nom))(-1 ("leat" Sg3))(NOT 0 N OR PrfPrc OR Inf)
(NOT 0 Ill LINK 1 PrfPrc);
## Ikte lei hui buolas1.
## Joddu suhppejuvvo go doaris lea gárvvis.
## Go joddu lea c1áhcái boahtán,... # See the last condition!
SELECT A IF (-2 BOS)(-1 ("leat" V Ind))(1 ("ahte")); # Sjekk spesielt, var Adv!!
## Lea duohta, ahte mán1ggas eai oz1z1on oastit eatnama.
REMOVE Attr IF (0 A)(1 COMMA)(NOT 2 A OR PrsPrc);
## Jos dat ii leat vejolas1, de mii fertet mannat.
REMOVE Attr IF (0 A)(NOT 1 A OR N OR CC OR COMMA); ## Vuolgit lea suohtas.
REMOVE Attr IF (0 A-CASE OR Adv)(1 CC)(NOT *2 N BARRIER NP-BORDER);
## Guovlu lea 1500 km guhkkosas1 ja 300 km govdosas1.
REMOVE (A Gen) IF (*-1 COPULAS BARRIER NON-ADV-PCLE)(1 Inf);
## Lea hávski oaz1z1ut reivve.
REMOVE (A Sg Nom) IF (0 (A Attr))(*1C N BARRIER NON-Attr);
# When 1 = object predicative, this is a bad rule. Perhaps:
# (-1 COPULAS)? Keep it in mind. - Also compare first rule of Attribute disambiguation.
SELECT (A Sg Nom) IF (*-1 COPULAS BARRIER NON-ADV LINK 0 V-SG3)(NOT -1 Gen)
(NOT 0 Inf OR Attr)(NOT 0 Adv LINK *1 VERB BARRIER NON-ADV)(NOT 1 PrfPrc);
## Buod1d1u lea dál gárvvis.
## Dalle lea lunddolas1, ahte...
SELECT (A Pl Nom) IF (*-1 COPULAS BARRIER NON-ADV LINK 0 V-PL3)(NOT 0 N)
(NOT 1 PrfPrc OR ("go" Pcle));
## Died1ut mat leat dárbbas1lac1c1at deavdin dihtii vánhenovddasvástadusa...
## Álgohálduiváldin galgá leat gárz1z1it go geavahus dolos1 áiggi rájes.
# Verbs are disambiguated later -'leat' in the last example is an infinitive. But the
# last part of the rule fixes the last example.
SELECT (A Sg Nom) IF (-1 (N Sg Nom) LINK *-1 COPULAS BARRIER NPNHA LINK NOT 0 Pl3)
(NOT 0 N OR Inf);
SELECT (A Pl Nom) IF (-1 (N Pl Nom) LINK *-1 COPULAS BARRIER NPNHA)(NOT 0 Inf)
(NOT 1 PrfPrc);
## De lea cihca gárvvis.
## Dán oktavuod1as leat dolos1 geavahusa njuolggadusat miellagiddevac1c1at.
# Comparatives
# ------------
REMOVE Gen IF (0 Comp)(*1 HNOUN BARRIER NPNH LINK 0 NON-GEN); # Try this form.
REMOVE Acc IF (0 Comp)(1 N)(NOT 1 (N Acc));
REMOVE Nom IF (0 Comp)(1 N)(NOT 1 (N Nom));
## Dat lea died1áhus sámepolitihka bajit linjáid birra.
# This block of rules is there to ensure case agreement for attributive
# comparatives.
SELECT Comp IF (NOT -1 ("nu") OR CC) (*1 ("go" Pcle) BARRIER NON-N);
## Son lea buoret go mun.
## Dáz1at navde Finnmárkku buoret guovlun go iez1aset ruovttubáiki.
SELECT Comp IF (-1 ("mihá"));
REMOVE Comp IF (-1 ("nu"))(*1 ("go") BARRIER NON-N);
## C1almmit leat aiddo nu baskit go láhka suovvá.
REMOVE Adv IF (*-1 ("go" Pcle) BARRIER NPNH OR CC)(*1 N BARRIER NON-ADJ-CC);
## Alimusriekti ii badjelgeahc1c1ange sápmelac1c1aid nu sakka go vuolit
## instánssa duopmu.
# And now a rule for adverbs that modify adjectives
# -------------------------------------------------
SELECT Adv IF (-1 NON-NP)(NOT 0 VERB)(1C A);
# ============================= #
# Disambiguating verbs - part 1 #
# ============================= #
CONSTRAINTS #
# ============================= #
# In this section, we include safe verbal rules, rules that should come before
# the nominal rules. Two things may be done to improve this:
# 1. These rules may be moved to the front of the cycle, before other POS
# 2. More safe V rules may be moved earlier in the rule file.
# Selecting some finite verb forms
# --------------------------------
SELECT Sg1 IF (*-1 MUN BARRIER CS LINK NOT *-1 V-SG1 BARRIER NON-ADV-PCLE)
(NOT 0 PrfPrc LINK *-1 V-SG1 BARRIER NON-ADV-PCLE)
(NOT 0 PrfPrc LINK *-1 ("leat"));
## Mun dud1an danin buktit moadde ovdamearkka.
## Dego mun dás vuollelis mottiin ovdamearkkain c1ájehan,...
SELECT Pl1 IF (*-1 MII-PERS BARRIER NON-ADV-PCLE LINK NOT *-1 V-PL1 BARRIER CS);
## ...nugo mii ge ándagassii addit velgolac1c1aidasamet.
SELECT VFIN IF (0 VERB)(1 ("ba"))(2 Nom);
## Galgat ba mii oastit láibbi guovttec1uod1i denara ovddas?
# ConNeg forms
# ------------
SELECT (Imprt ConNeg) IF (*-1 (Neg Imprt) BARRIER VFIN OR ConNeg OR CS OR CP);
SELECT (Ind ConNeg) IF (*-1 (Neg Ind) BARRIER VFIN OR ConNeg OR PrfPrc OR CS OR CP);
SELECT (Cond ConNeg) IF (*-1 (Neg Ind) BARRIER VFIN OR ConNeg OR CS OR CP);
REMOVE ConNeg IF (NOT *-1 Neg BARRIER CS OR ("go"));
SELECT (Imprt ConNeg) IF (*-1 CC BARRIER NON-ADV LINK *-1 (Imprt ConNeg) BARRIER VERB);
SELECT (Ind ConNeg) IF (*-1 CC BARRIER NON-ADV LINK *-1 (Ind ConNeg) BARRIER VERB);
# Need more advanced rule to select ConNeg when more
# material between neg and conneg.
# SELECT (ConNeg IF (0 LEAT) (*-1 Neg);
REMOVE VGen IF (NOT *-1 V-IND-FIN BARRIER CLB OR CS)
(Not *1 V-IND-FIN BARRIER CLB OR CS);
# too sloppy, but a bit better with the barrier...
REMOVE ConNeg IF (NOT *-1 (Neg) BARRIER CLB OR V-IND-FIN);
REMOVE Imprt IF (*-1 (Neg Ind) BARRIER CLB OR V-IND-FIN);
REMOVE Imprt IF (*-1 ConNeg BARRIER VFIN OR COMMA OR CS OR CP);
REMOVE Prs IF (*-1 (Neg Imprt) BARRIER CLB OR V-IND-FIN)(0 (ConNeg));
# Infinitive
# ----------
SELECT Inf IF (*-1 (Neg Sup) BARRIER CLB);
SELECT Inf IF (*-1 ("amas" CS) BARRIER VERB);
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Rules that prevent later selection of Inf for a finite verb in the frame #
# INF-VERB...CC... ____ #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
REMOVE Inf IF (*-1 (N Nom) OR (Pron Nom) BARRIER NPNH LINK -1 CC)
(NOT -1 INF-VERB OR A);
REMOVE Inf IF (*-1 (Num Nom) BARRIER NON-NA LINK -1 CC LINK
NOT *-1 Inf OR INF-VERB BARRIER VFIN);
REMOVE Inf IF (-1 CC LINK NOT *-1 Inf); # Barrier?
REMOVE Inf IF (-3 (A Attr))(-2 CC)(-1 PrfPrc)(0 N);
##
## Mearrasápmelac1c1at ledje án1giris ja oahppan bivdit.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Now we select Inf (the first rule seems much better without the NOT 0 Adv)#
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
SELECT Inf IF (*-1 INF-VERB BARRIER CS OR CLB OR CP OR Neg);#(NOT 0 Adv);
## Skuvla galggai oahpahit sámemánáide dárogiela.
## Pros1eavtta áigut c1ad1ahit.
SELECT Inf IF (-2 Inf)(-1 COMMA)(1 COMMA OR CC);
# This rule looks backwards across a relative clause:
SELECT Inf IF (*-1 VFIN BARRIER CS OR CP OR CONTRA LINK *-1 (Pron Interr) BARRIER CS
LINK *-1 INF-VERB BARRIER VFIN OR CS OR CP);
SELECT Inf IF (*-1 ACC-INF-VERB BARRIER Inf OR CS OR CP OR Nom OR Neg);
SELECT Inf IF (-1 (A Nom))(*-2 COPULAS BARRIER NON-ADV-PCLE);
SELECT Inf IF (*-1 ("leat") BARRIER NON-ADV-PCLE OR CLB
LINK *-1 Loc BARRIER NON-ADV-PCLE);
# Perfect Participle
# -------------------
SELECT PrfPrc IF (*-1 Neg BARRIER CONTRA OR VFIN);
# This rule also hits "Ii leat boahtán", but that is OK.
SELECT PrfPrc IF (*-1 VFIN BARRIER CLB OR CS)(NOT 0 Actio)
(NOT *-1 CC BARRIER VFIN);
## Mun lean muitalan.
## Mun muitalan ja muitalan.
# Hmm: PrfPrc if there is not a Sg1 to the left, but if there is a CC to
# the right of a possible Sg1, then we forget about the Sg1.
SELECT PrfPrc IF (*-1 VFIN BARRIER Nom OR V OR CS OR CC OR CLB OR PUNCT)
(NOT 0 Actio);
## Mun lean muitalan dan.
REMOVE (V Sg1) IF (*-1 ("leat") BARRIER NON-ADV-PCLE);
REMOVE Foc IF (0 Actio);
# Further qualification may be needed. The idea is to avoid focus reading of
# oahpahan etc. Seems best to have this rule early.
# Old rules, remove asap.
#SELECT PrfPrc IF (0 LEAN) (-1 (Neg));
#SELECT PrfPrc IF (*-1 VFIN-NOT-IMP); # Too general!!
#SELECT PrfPrc IF (-1 NP-BORDER)(0 Pass)(1 CNOUN);
# ==================== #
# Disambiguating nouns #
# ==================== #
CONSTRAINTS #
# ==================== #
# Proper nouns
# ============
# Prop or not
# -----------
SELECT Prop IF (NOT *-1 BOS OR (":") OR (""") BARRIER WORD)(NOT 0 ("de"));
# Capitalised nouns in the middle of a sentence are names.
# Jesus dajai: "Lea c1állojuvvon: ..."
# The final part of the rule is to avoid name reading of "de Romsa" etc.
# But it would be better to list "de Silva" etc. as two-part names.
# Prop as Attr or not
# -------------------
REMOVE Attr IF (0 Prop)(NOT 0 A)(NOT 1 Prop OR INITIAL);
## Trond Trosterud lea dál.
## Olles doaibmaviessu lea sullii 2300 njealjehasmetera.
# Note: the rule for selecting attribute reading of surnames is given
# in the section on adjectives.
SELECT Attr IF (0 Prop)(1 INITIAL)(2 Prop); ## Mathis K. Sara.
SELECT Attr IF (0 Prop)(1C (N Prop))(NOT 1 ("Romsa")) ; ## Rolf Arne Berg.
# Choosing between different proper nouns
# ---------------------------------------
# Johanas
SELECT ("Johanas" Nom) IF (1 V-SG3)(*1 VFIN-NON-AUX);
## Daid beivviid gásttas1eaddji Johanas bod1ii ja sárdnidis1god1ii.
# Lassi
REMOVE Prop IF (-1 BOS)(0 ("Lassi"));
## Lassin nammadii direktevra guokte bargi.
# Nilse vs. Nilsen
REMOVE ("Nilse") IF (0 ("Nilsen" N Prop Sg Nom));
## Tor Nilsen lea boahtán.
# Norga vs. Norge
REMOVE ("Norge") IF (0 ("Norga")); ## Mun vuolggán Norgii.
# Case disambiguation
# ===================
# =========== #
# Early rules #
# =========== #
CONSTRAINTS #
# =========== #
# Genitive
# --------
# Genitive after quantifier
# - - - - - - - - - - - - -
SELECT Gen IF (*-1C NUMERALS BARRIER NPNH OR Gen LINK NOT 0 Ord)(NOT 0 VERB);
# Gen as barrier because of: ## Dan eatnamis oaz1z1u ovtta gusa fuod1d1ara.
# SELECT Gen IF (NOT -2 Pr)(-1 NUMERALS);
## Dat leat golbma nieidda.
## Dál leat mán1ga nieidda
## Ovdal 1920 orru guovtti goalmmátoasis ohcamiin nu geavvan.
# Genitive in front of postposition
# - - - - - - - - - - - - - - - - -
SELECT Gen IF (NOT 0 Adv OR PrfPrc)(1 Po);
## Dat lea nieidda dihte, nieidda birra.
# As it stands, this rule has no conditions. So, what errors will we get?
SELECT Gen IF (-1 PrfPrc)(0 Actio)(1 Po);
## Lean boahtán lohkan dihtii od1d1asiid.
# Genitive after preposition
# - - - - - - - - - - - - -
SELECT Gen IF (*-1 Pr BARRIER NPNH)(NOT 0 VFIN)(1 NP-BORDER OR CC OR COMMA);
## Earret mu ii giige lea boahtán.
## Sáhka su birra viidánii miehtá Syria, ja ...
# Genitive inside DP
# - - - - - - - - -
SELECT Gen IF (*-1 (Dem Pl Ill) BARRIER NPNH)(*1 (N Pl Ill) BARRIER NON-NP);
## Dearvvas1vuod1aregisttarláhka gusto daidda dearvvas1vuod1a-
## hálddahusa dearvvas1vuod1adied1uid gied1ahallamiidda.
SELECT Gen IF (*-1 ("oktan") OR ("ovttas") BARRIER NPNH)(*1 (N Com) BARRIER NON-NP);
## Eamiálbmotguovddáz1a ásaheami sáhttá geahc1c1at ovttas universitehta
## Áivan dutkamiid guovddáz1a ohcamiin.
# Accusative after actio (exceptions to next rule)
# - - - - - - - - - - - - - - - - - - - - - - - -
SELECT Acc IF (*-1C Actio BARRIER Nom OR VERB OR CS OR CP LINK NOT 0 Cmpnd)
(NOT -1 CC LINK -1 Actio)(NOT 0 TIME)(1 NP-BORDER)(NOT 1 N);
## ... diehtin dihtii iez1as dili ja veahki sisdoalu.
# Genitive in clause without full verb
REMOVE Acc IF (NOT *-1 V-NON-AUX BARRIER CS OR CP)(NOT 0 TIME)
(NOT *1 V-NON-AUX BARRIER CS OR CP);
# Genitive in front of 'oktavuod1as'
SELECT Gen IF (1 PREGEN);
# Coordination
# - - - - - -
SELECT Gen IF (1 CC)(*2 NP-HEAD-GEN BARRIER NON-ADJ LINK 1 Po OR PREGEN);
SELECT Gen IF (1 COMMA)(*2C NP-HEAD-GEN BARRIER NPNH LINK 1 CC);
# Various
# -------
REMOVE Nom IF (*-1 (Pron Dem Acc) OR (Pron Dem Gen) BARRIER NON-ADJ);
## Dan ás1s1i ferte dutkat.
REMOVE Nom IF (*-1 Nom)(NOT 0 NUMERALS)(1C Actio);
REMOVE (Nom Sg) IF (*-1 V-NOT-SG3 BARRIER CC)(NOT *-1 COPULAS OR Pass BARRIER V)
(0 (N Sg Acc) OR (N Sg Gen))(NOT *1 CC)(NOT *1 V-SG3);
## C1uovvovas1 seminára cealkagat govahallet seminára loahppabohtosa.
## Dat leamas1 vissa gobmi.
## Eai das leat go áibbas moadde c1uoldda.
REMOVE Acc IF (-1 ("leat"))(1 EOS); ## Dát lea áhc1i.
# Accusative object with secondary predicate
# --------------------------------------
REMOVE Gen IF (*-1 OPRED-VERB BARRIER NPNH)(1 Ess);
# Nominative or Accusative
# ------------------------
REMOVE Gen IF (-1 BOS)(1 Adv)(NOT 1 N);
## Dan maid dalle dárbbas1a fievrridit.
REMOVE Gen IF (NOT *-1 Pr OR NUMERALS BARRIER NPNH)(NOT -1 ("mii"))
(NOT 0 TIME OR ROUTE)(1C NP-BORDER);
## Eai lean váldán go niestebohcco.
# =========== #
CONSTRAINTS #
# =========== #
# Nominative
# ==========
SELECT (N Nom) IF (*-1 (Dem Nom) BARRIER NON-ADJ)(NOT 0 ("leapma" Dimin));
REMOVE (N Nom) IF (*-1 (Pers Nom) BARRIER NON-ADJ);
# Nominative in titles and sentence fragments
# - - - - - - - - - - - - - - - - - - - - - -
# A single word is nominative
SELECT Nom IF (-1 BOS)(NOT 0 VFIN)(0 N OR A OR Pron)(1 EOS); ## Katja.
# An NP head with a genitive modifier is nominative
SELECT Nom IF (-2 BOS)(-1 Gen)(0C N)(1 EOS);
# An NP head with an Attr modifier is nominative.
SELECT Nom IF (-2 BOS)(-1 Attr)(1 EOS);
# An NP head with a nominative Pron Dem modifier is nominative
SELECT Nom IF (-2 BOS)(-1 (Pron Dem Sg Nom))(0 Sg)
(*1 V-SG3 BARRIER NON-ADV);
## Dat died1us mielddisbuvtii ahte ...
# A numeral preceded by a Nom demonstrative is nominative
SELECT (Num Nom) IF (-1 (Dem Sg Nom));
# Nominative subjects
# -------------------
# Find the subject, and assume it is nominative
# Ordinary preverbal subjects
# - - - - - - - - - - - - - -
SELECT Nom IF (*-1 CS OR BOS OR CC OR (Interr Sg) BARRIER NPNH)(0 Sg)
(NOT 0 Adv OR Loc)(1C V-SG3);
## Died1án, ahte plána movttiidahttá dan.
SELECT Nom IF (*-1 CS OR BOS OR CC BARRIER NPNH)(0 Pl)(NOT 0 Adv)(1 V-PL3);
# ... and the same in pl..
SELECT Nom IF (*-1 CS OR BOS BARRIER NON-ADV)(0 NUMERALS)
(*1 (V Pl3) BARRIER CS)(NOT *1 Nom BARRIER CS);
SELECT Nom IF (0 NOTIME OR Pron)(NOT 0 ("leat"))(NOT 1 CC LINK 1 VFIN)
(*1C V-PASS BARRIER V-NON-AUX OR NP-HEAD OR Po OR CS OR CLB
LINK NOT 0 Inf);
## Váfistan dihte od1d1a bargovugiid lea komitea viiddiduvvon.
## Bus1eahtas lea sullii 650.000 ruvnno leamas1 várrejuvvon dáidda.
## Dat guhte osku ja gásttas1uvvo, bestojuvvo.
REMOVE Nom IF (-1 BOS)(NOT 0 (Pron Pers))(1C V-1-2);
## Dan oainnán viesu duohkin.
## Moai c1ilge dan ás1s1i dutnje.
# Vocatives, subjects of sentence fragments
# - - - - - - - - - - - - - - - - - - - - -
SELECT Nom IF (-1 BOS OR (":"))(0 Prop)(1 COMMA);
## Biera, du sabehiid!
# Nominative after 'dego'
# - - - - - - - - - - - -
SELECT Nom IF (*-1 ("dego") BARRIER NPNH)(1 NP-BORDER OR CLB);
SELECT Nom IF (-2 ("dego"))(-1 Gen)(1 NP-BORDER);
REMOVE Imprt IF (*-1 ("dego") BARRIER VFIN OR CS OR CP);
# Coordinated subjects
# - - - - - - - - - -
SELECT Nom IF (*-1 CC BARRIER NPNHAI LINK -1C Nom)(1 NP-BORDER);
## Bror Berg ja Per Mikael Utsi leaba ruovttus.
## Bivdoearrái gullet diksu ja dorski.
SELECT Nom IF (1 CC)(*2C Nom BARRIER NPNHAI LINK 1 NP-BORDER);
## Per Mikael Utsi ja Bror Berg leaba ruovttus.
## Bivdoearrái gullet dorski ja diksu.
SELECT Nom IF (1 CC)(2C (Pron Nom))(3 (Pron Nom));
## Gonagas Agrippa ja dii buohkat geat lehpet dás minguin!
SELECT Nom IF (*-1 COMMA BARRIER NPNHAI LINK -1 Nom)(1 CC);
# Postverbal subjects
# - - - - - - - - - -
# Singular
SELECT (Sg Nom) IF (*-1 V-SG3 BARRIER NPNHAIIP LINK NOT 0 (Imprt Sg2)
LINK *-1 BOS OR CS OR CLB BARRIER Nom)(0 (N Sg) OR (Pron Pers Sg) OR
(Pron Interr Sg))(NOT 0 PrfPrc)(NOT 1 Po)(Not 0 Gen);
## Dat lei 1827s, muitalii muhtin mátkkos1teaddji midjiide.
## Riikkaid galgá Piera oaidnit.
# Plural
SELECT (Pl Nom) IF (*-1 V-PL3 BARRIER NPNHAIIP LINK *-1 BOS OR CLB BARRIER Nom)
(0 (N Pl) or (Pron Pers Pl) OR (Pron Interr Pl))(NOT 0 PrfPrc);
## 1995:s gárvánedje rádiobuvttadeapmái lanjat.
# Coordinated nominatives - Could we simplify somewhat - see above?
# - - - - - - - - - - - -
SELECT Nom IF (*-1 (V Pl3) BARRIER NPNH LINK NOT *-1 (Pl Nom) OR (Pl3 Nom)
BARRIER CS OR CP)(1 CC)(*2 Nom BARRIER NPNH);
SELECT Nom IF (*-1 CC BARRIER NPNHC OR PUNCT LINK -1 Nom)(0C N OR Num)(1 NP-BORDER);
# Nominative predicatives
# - - - - - - - - - - - -
# Here, we handle both nouns and adjectives.
REMOVE A IF (NOT *-1 COPULAS OR OPRED-VERB BARRIER V-NON-AUX)(0 N)(1 CLB)
(NOT 2 A OR PrsPrc);
## Sii dahke sámi kultuvrra oainnusin.
## De lea cihca gárvvis.
# This rule has to follow identification of subject.
# Case disambiguation of predicatives
# -----------------------------------
SELECT Nom IF (*-1 COPULAS BARRIER VERB OR CP OR CS OR NP-HEAD-NOM)(0 NP-HEAD)
(NOT 0 PrfPrc)(1C NP-BORDER);
## Dasgo dus boahtá oaivámus1 gii lea mu álbmoga Israela báimman.
## Dii lehpet máilmmi c1uovggas!
## Ládju lea stuoris, muhto bargit uhccán.
SELECT Nom IF (*-1 ("leat" V Sg1) BARRIER NPNH OR PrfPrc
LINK *-1 MUN BARRIER NON-ADV-PCLE)
(NOT 0 PrfPrc)(NOT *1 PrfPrc);
SELECT Nom IF (*-1 ("leat" V Sg2) BARRIER NPNH OR PrfPrc
LINK *-1 DON BARRIER NON-ADV-PCLE)
(NOT 0 PrfPrc)(NOT *1 PrfPrc);
## Mun lean Anna. Don leat Anna.
SELECT (Pl Nom) IF (*-1 ("leat" V Pl3) BARRIER NPNH
LINK *-1 (Pl Nom) BARRIER NON-ADV-PCLE)(NOT 0 PrfPrc);
SELECT Nom IF (-2 Nom)(-1 COPULAS)(0 A)(NOT 0 PrfPrc)(1 EOS OR ("go"));
## Biilla ivdni lea vielgat.
## Biilla ivdni lea vielgadeabbo go mielki.
SELECT Nom IF (-2 Nom)(-1 COPULAS)(0 A)(NOT 0 PrfPrc)(1 CC)(2 A);
## Viessu lea vielgat ja ruksat.
SELECT Nom IF (-4 Nom)(-3 COPULAS)(-2 A)(-1 CC)(0 A)(NOT 0 PrfPrc)(1 EOS);
## Viessu lea vielgat ja ruksat.
SELECT Nom IF (-3 BOS)(-2 Nom)(-1 ("leat"))(NOT 0 PrfPrc)(1 EOS);
## Mun lean Bond.
## Mun lean gánda.
SELECT Nom IF (-2 NP-HEAD-SG-NOM)(-1 ("leat" V Sg3))(NOT 0 VERB OR Adv OR Ill OR Num)
(NOT *1 Nom BARRIER NPNH);
SELECT Nom IF (-4 BOS)(-3 Nom)(-2 ("leat"))(-1 Prop OR (ABBR))(NOT 0 PrfPrc)
(1 NP-BORDER);
SELECT Nom IF (*-5 BOS BARRIER NPNH)(-4 Nom)(-3 ("leat"))
(-2 Prop OR (ABBR))(-1 Prop)(0 Prop)(1 NP-BORDER);
SELECT Nom IF (*-6 BOS BARRIER NPNH)(-5 Nom)(-4 ("leat"))
(-3 Prop OR (ABBR))(-2 Prop)(-1 Prop)(0 Prop)(1 NP-BORDER);
## Mun lean James Bond.
## Mun in leat James Bond.
## Mu namma lea Jo Ann Ba Doe.
# Again, these rules are too specific. Need empirical data to enlarge them.
# What is needed is linking both to copula and to clause border.
SELECT Nom IF (-2 NP-HEAD-SG-NOM)(-1 COPULAS + (V Sg))(1 EOS);
## Tor lea oahpaheaddji.
#SELECT (N Sg Nom) IF (*-1 V-SG3 LINK NOT *-1 NP-HEAD-SG-NOM)
# (NOT -1 NP-HEAD-SG-NOM)
# (NOT 0 PrfPrc)(1 EOS);
SELECT Nom IF (*-1 COPULAS BARRIER V-NON-AUX OR CS OR CC)(NOT 0 VERB OR Adv OR Ill)
(*1 CLB OR CS BARRIER NP-HEAD OR (A Nom));
# Nominative as objects in existential clauses
# --------------------------------------------
REMOVE Acc IF (-2 Loc)(-1 ("leat"))(NOT *1 V); # Mus lea golli.
SELECT Nom IF (-2 Loc)(-1 ("leat"))(1 EOS); # Mus lea golli.
# Unclassified
# - - - - - -
SELECT Nom IF (-1 Gen)(NOT -1 (Pron Dem Gen))(0 N-SG-NOM)(NOT 0 PrfPrc)(1 V-SG3);
## Du ás1s1i lea dehalas1.
## Dan ás1s1i ferte dutkat.
# HMM, brave.. - but it seems to work!
# Note that the tag is selected, the set is in the condition.
# Nominative if two names in a row
SELECT Nom IF (-1 PROP) (0 PROP) (1 V-SG3); # Biret Anne galgá mannat.
# Rules for disambiguation around conjunctions, in coordination
# -------------------------------------------------------------
SELECT Nom IF (-2C N-NOM)(-1 CC)(NOT 0 PrfPrc)(NOT 1 Gen OR (Prop Attr));
## Trond ja Kirsti leat dál. Bror Berg ja Per Mikael Utsi leat ruovttus.
SELECT Nom IF (1 CC)(2C N-NOM); # Kirsti ja Trond leat dál.
REMOVE Gen IF (0 N)(1 CC)(2 (Pron Sg3 Gen)); ## Jos1iai riegádii.
# Peters and Pauls friend OK. ## Jekonja ja su vieljat leat dál.
# These are not good:
#SELECT Nom IF (-2 (Nom Cmpnd)) (-1 CC);
#SELECT Gen IF (-2 (Gen Cmpnd)) (-1 CC);
#SELECT Acc IF (-2 (Acc Cmpnd)) (-1 CC);
# Nominative plural
# =================
CONSTRAINTS
# =================
# Nominative plural is also covered by many of the rules found in the general
# Nominative section above. Rules related to Nominative plural but #not# No-
# minative singular should go here.
# Postverbal predicative
SELECT (Pl Nom) IF (*-1 LEAT-DU-PL BARRIER NPNHAI
LINK *-1 PPRON-DU-PL BARRIER NON-ADV-PCLE);
## Doai leahppi goappas1agat nu jallat.
SELECT (Pl Nom) IF (*-1 ("leat" Du3) BARRIER NPNHAI
LINK *-1 (N Sg Nom) BARRIER NON-ADV-PCLE
LINK *-1 CC BARRIER NPNH LINK -1 (N Sg Nom));
## Anne ja Biret leaba goappas1agat nu jallat.
SELECT (Pl Nom) IF (*-1 ("leat" Pl3) BARRIER NPNHAI
LINK *-1 (N Sg Nom) BARRIER NON-ADV-PCLE
LINK *-1 CC BARRIER NPNH LINK -1 (N Sg Nom)
LINK *-1 COMMA BARRIER NPNH LINK -1 (N Sg Nom));
## Anne, Biret ja Cathrin leat nu jallat.
SELECT (Pl Nom) IF (*-1 ("leat" Pl3) BARRIER NPNHAI
LINK *-1 (N Pl Nom) BARRIER NON-ADV-PCLE);
## Mánát ge leat buot nu jallat.
# Missing Du3 and Pl3 rules for coordinated subjects and pl subjects
#SELECT (Pl Nom) IF (NOT *-1 (N Pl Nom))(*1 V-PL3 BARRIER ()
# LINK NOT *-1 CC);
# Accusative
# =========== #
CONSTRAINTS #
# =========== #
# Topicalised object
# ------------------
SELECT Acc IF (NOT *-1 VFIN BARRIER CS)(NOT -1 ("mii"))(NOT 0 Nom OR TIME OR ("leat"))
(NOT 1 COMMA OR N)(*1 VFIN BARRIER NON-ADV-PCLE)
(*1 V-NON-AUX-PASS BARRIER V-PASS OR CLB)(NOT 1 Actio) ;
#check w/o care LINK NOT *1 Acc);
## Dan lean mun váldán.
## Dat leamas1 vissa gobmi.
## Min áiggi lea dat gildojuvvon.
SELECT Acc IF (-1 BOS)(0 ("mii"))(1 (N Pl Gen))(2 NP-BORDER);
SELECT Acc IF (*-1 (V Neg))(NOT 0 Nom)
(*1 ConNeg OR PrfPrc BARRIER NON-ADV-PCLE LINK NOT *1 Acc);
## Ii go mánáid sáhte oahpahit dárogillii?
REMOVE Gen IF (NOT -2 Gen)(-1 CC)(1C VFIN);
## Mus lea doaivu ja dan sáhttá c1állit c1uovvovac1c1at.
REMOVE Gen IF (*-1 CLB BARRIER NON-CC)(1C VFIN);
## Mus lea doaivu, ja dan sáhttá c1állit c1uovvovac1c1at.
REMOVE Gen IF (-1 CS)(1C VFIN); # No hits?
## Mun jáhkán, ahte dan sáhttá c1állit c1uovvovac1c1at.
# The "1C" part is problematic, as this rule should have been placed
# after the verb disambiguation. Keep in mind.
REMOVE Gen IF (NOT *-1 Pr OR Num BARRIER NPNH)(1 CC)(2 NP-BORDER);
REMOVE Nom IF (NOT *-1 (V Pl3) BARRIER CS)(0 NUMERALS)(NOT 1 CC)
(NOT *1 (V Pl3) BARRIER CS);
# Accusative between Aux and main verb
# ------------------------------------
# In front of an infinitive
SELECT Acc IF (*-1 VFIN BARRIER NPNHAI)(NOT 0 VERB)(NOT 0 Nom OR Adv OR TIME)
(*1 Inf BARRIER NON-ADV-PCLE);
## Od1astus addá vejolas1vuod1a muitalit.
## Son lea beassan bargat.
# changed V-IND-FIN to VFIN here and in subsequent rules.
SELECT Acc IF (*-1 Nom BARRIER CS)(*-1 VFIN)(NOT 0 PrfPrc OR Nom OR Adv OR TIME)
(1 Inf);
SELECT Acc IF (*-1 VFIN BARRIER NPNH)(1 CC)
( *2 NP-HEAD BARRIER NPNH LINK 1 Inf);
SELECT Acc IF (*-1 CC BARRIER NPNH LINK -1 NP-HEAD LINK
*-1 VFIN BARRIER NPNH)(1 Inf);
# In front of a participle
SELECT Acc IF (*-1 LEAT-FIN-NON-IMP BARRIER NPNHAI)(NOT 0 Adv OR Nom OR TIME)
(*1 ACT-PRFP BARRIER NON-ADV LINK NOT *1 ("leat" PrfPrc)
BARRIER CS OR CP);
## Mun lean dan dahkan.
## Váfistan dihte bargovugiid lea komitea viiddiduvvon.
## Ruot1as leat guhká jo ságastallan dán ás1s1is.
# Accusative postverbally
# -----------------------
# Object only.
SELECT Acc IF (*-1C V-NON-AUX BARRIER NPNHAIIP OR COMMA)
(0 NP-HEAD)(NOT 0 PrfPrc or Adv or Dem or Nom)(NOT 0 TIME)
(1 NP-BORDER OR (Num Nom))(NOT 1 Po) ;
## Oainnán du.
## In mun sálten nu olu.
## Dáz1at eai atnán sámiid buoret go beanan.
## Sii badjelgehc1c1e olbmo jos sámiin náitala.
## Son ráhkada gáhkuid hui buriid.
## Mun manan daid mánáidguin.
## Skuvla galggai oahpahit dárogiela vissis guovlluin.
## Berit lei oz1z1on permis1uvnna guovvamánu 22. b.
## Berit lei oz1z1on permis1uvnna 22.10.
# earlier formulation: (NP-BORDER OR ADVLCASE OR Adv), which gives the wrong
# result with ## Dat ii gal mearkkas1 ollu álbmoga ealáhussii.
# Removed (1 NP-BORDER OR Adv OR TIME OR Attr) because of
## Fylka mearrida olugo galgá atnit sámi od1d1a leavgga.
# The (Num Nom) is not optimal, we need to consider the Num Ord and Num Card
# tagging. Now, 22. is given Num Ord and 22.10. is given Num Nom, this gives
# the correct result, but is not satisfying, linguistically.
# look at the NP-BORDER concept here...
# NPNHAII there to include "indirect objects"
# Added C to *-1C, to avoid interference from derived nouns. The problem will
# become smaller as we improve the preprocessor.
# The (1 Adv or Adj) is there to take care of object predicatives
# Here is a set ofrules that were dismissed
# (1 CLB OR Adv OR (A Comp) OR (A Superl) OR (A Attr) OR
# ("go") OR CS OR PUNCT);
# Extended copy of the previous rule:
# This rule is to tolerate a PP between the verb and the object.
SELECT Acc IF (*-1C Po BARRIER NPNHAIIP LINK -1 N OR Pron
LINK *-1C V-NON-AUX BARRIER NPNHAIIP)
(0 NP-HEAD)(NOT 0 PrfPrc or Adv OR TIME)
(1 NP-BORDER OR ADVLCASE OR Adv)
(NOT 1 Po) ;
## Ii olmmos1 gille guoddit, go beare deaivá dan mad1e bohcco
## ahte lea niesteseahkkaguoddi.
REMOVE Nom IF (*-1 VFIN-NON-AUX BARRIER NPNHA OR PUNCT
LINK *-1 NP-HEAD-SG-NOM OR NP-HEAD-PL-NOM BARRIER NON-ADV OR CLB);
SELECT Acc IF (*-1C V-NON-AUX BARRIER NPNHAIIP OR COMMA)
(0 NP-HEAD)(NOT 0 PrfPrc OR Adv OR Dem OR Inf )
(1 CC)(*2 VFIN BARRIER NON-ADV-NEG) ;
## Ovddemus dáidá oastit árppuid ja god1d1a firpmiid.
# Could this rule be modified so that it accepts a subject between 0 and verb?
REMOVE Gen IF (NOT *-1 Pr OR NUMERALS BARRIER NPNH)(0 N)(1 Dem);
# Accusative sentence-finally
# ---------------------------
REMOVE Gen IF (NOT *-1 Pr OR Num OR CC BARRIER NPNH)(0 NOTIME OR Pron)
(*1 CS OR CP OR EOS BARRIER NON-ADV-PCLE) ;
## Fylkka mearrida olugo galgá atnit sámi leavgga.
## C1uovvovas1 seminára cealkagat govahallet seminára loahppabohtosa.
## Man1n1il lea viessu viiddiduvvon guovtte geardde.
# CC in the preceding rule because of coordination after Pr. The next rule
# compensates for it.
SELECT Acc IF (NOT *-1 Pr OR Num BARRIER NPNH)(0 NOTIME OR Pron)(NOT 0 Nom OR VERB)
(*1 CLB BARRIER NON-ADV-PCLE LINK NOT *1 Gen BARRIER NPNH);
REMOVE Gen IF (NOT *-1 Pr OR CC BARRIER NPNH)(-1 Gen)(0 NOTIME OR Pron)
(*1 CLB BARRIER NON-ADV-PCLE);
# Coordinated object
# - - - - - - - - -
# First part
SELECT Acc IF (0 N)(1 CC)(*2C NP-HEAD-ACC BARRIER NPNHA OR Gen LINK 1 NP-BORDER) ;
## Dalle skáhppo biergasiid nugo firpmiid ja buod1d1omuoraid.
# Only one problem found:
## Romssa universitehta sámi(*ACC) ja eamiálbmotguoskevas1 dutkama.
SELECT Acc IF (*-1C V-NON-AUX BARRIER NPNHAII)(0 N)(1 CC)
(*2C NP-HEAD-ACC BARRIER NPNH OR Gen);
SELECT Acc IF (*-1C V-NON-AUX BARRIER NPNHAII)(0 Num)(1 CC)
(2 Num LINK *1 N BARRIER NON-ADJ LINK 1 NP-BORDER) ;
## Ja de ráhkadit ovtta dahje moadde s1luppoha vel.
# Second part
SELECT Acc IF (*-1 CC BARRIER NPNH LINK -1 NP-HEAD-ACC LINK *-1 V-NON-AUX
BARRIER NPNHAII)(0 N)(1 NP-BORDER);
## Oainnán vilges biilla ja rukses viesu.
SELECT Acc IF (-1 CC LINK *-1C Acc BARRIER NON-NA OR CLB)(0 Num) ;
## Ja de ráhkadit ovtta dahje moadde s1luppoha vel.
# Three coordinated objects
# First part
SELECT Acc IF (*-1 V-NON-AUX BARRIER NPNHAII)(0 N)(1 COMMA)
( *2 NP-HEAD-ACC BARRIER NPNHA LINK 1 CC LINK
1 NP-HEAD-ACC BARRIER NPNHA LINK 1 NP-BORDER);
## Jos juohká dáz1aid, sámiid ja láddelac1c1aid ies1 gud1et sadjái, ...
# Second part
SELECT Acc IF (*-1 COMMA BARRIER NPNH LINK -1 NP-HEAD-ACC LINK
*-1 V-NON-AUX BARRIER NPNHAII)(0 N)(1 CC);
# LINK 1 NP-HEAD-ACC BARRIER NPNHA LINK 1 NP-BORDER);
## Jos juohká dáz1aid, sámiid ja láddelac1c1aid ies1 gud1et sadjái, ...
# Third part
SELECT Acc IF (*-1 CC BARRIER NPNH LINK -1 NP-HEAD-ACC LINK -1 COMMA BARRIER
NPNH LINK -1 NP-HEAD-ACC LINK *-1 V-NON-AUX BARRIER NPNHAII)
(0 N)(1 NP-BORDER OR Gen);
## Jos juohká dáz1aid, sámiid ja láddelac1c1aid ies1 gud1et sadjái, ...
## Ferte vuhtiiváldit divs1s1ohasa dárbbuid, beros1tumiid ja riektesihkar-
## vuod1a dearvvas1vuod1abálvalusa ektui.
# Accusative for a topicalised verb
# ---------------------------------
REMOVE Gen IF (@1 V-NON-AUX + Clt)(NOT -1 (N Acc))
(1 EOS OR CLB); ## C1ilgego moai dan?
# This is not a good rule. Have more looks at it.
# On the other hand side: With the addition (1 EOS)
# it has become too careful. Thus, let's try with CLB as well.
#REMOVE Gen IF (-1 VFIN)(0 N)(1 CLB); ## Joramii riegádii Ussia, Ussiai riegádii
# The rule is too specific. ## Jotam.
# - And not needed any more for these examples.
# See rule under "Accusative sentence-finally"!
# Numeral as object after postverbal subject
# - - - - - - - - - - - - - - - - - - - - -
SELECT Acc IF (-1 (N Nom) LINK *-1 VFIN BARRIER NPNHAIIP)
(0 Num)(NOT 1 Po);
## Lassin nammadii direktevra guokte bargi ja ozai c1álli lávdegoddái
# Accusative in time expressions
# ------------------------------
#SELECT Acc IF (0 VAHKKU)(NOT 1 Po);
# Too general!
## Min áiggi boaresolbmot muitaladdet ahte...
# Object predicatives
# -------------------
SELECT Acc IF (*-1 Acc BARRIER NPNHA)(0 A)(NOT 0 Adv)(1 CLB OR EOS OR CS);
## Dáz1at eai atnán sámiid buoret go beanan.
# Not accusative
# --------------
REMOVE Acc IF (NOT *-1 V-NON-AUX BARRIER CS OR CP)(NOT *1 V-NON-AUX BARRIER CS OR CP);
## Sápmelac1c1aid historjá álbmogin lea duháhiid jagiid boaris, muhto
## dálá ássanguovlluin sápmelac1c1at eai leat ássan nu guhká.
# We need a verb for an obj.
REMOVE Acc IF (NOT *-1 V-NON-AUX BARRIER CS OR CP)
(*1 V-NON-AUX BARRIER CS OR CP LINK *1C Acc BARRIER CS OR CP);
REMOVE (N Acc) IF (NOT 0 TIME OR ROUTE)(1 (Pron Pers Acc));
REMOVE Acc IF (*1 ("leat") BARRIER V-NON-AUX OR CS OR CP LINK *1 Ger
BARRIER V-NON-AUX OR CS) ;
## Vihtta bivdovuogi leat Deanus luosa bivdidettiin.
# An overly specific rule? And what about time expressions?
REMOVE Acc IF (NOT *-1 V-NON-AUX BARRIER CS)(NOT 0 TIME)
(*1 V-PASS BARRIER V-NON-AUX OR CS OR CP);
REMOVE Acc IF (*-1 V-PASS BARRIER VFIN)(NOT 0 TIME)(NOT *1 V-NON-AUX BARRIER CS OR CP);
## Dál nannejuvvui girku sámeguovlluin.
# Illative
# ========
REMOVE (V Ind Prt Sg3) IF (-1 (N Gen))(0 Ill);
## Mud1ui gustojit seamma njuoggadusat sámi levgii.
REMOVE (V Ind Prt Sg3) IF (*-1 Acc BARRIER NPNH LINK *-1 VFIN);
## Cokka láibbiid sehkkii.
# Genitive
# ===========
CONSTRAINTS
# ===========
# Genitives that are complements of adpositions are dealt with in an earlier
# cycle.
# Genitive as specifier
# ---------------------
# Genitive in front of noun in the beginning of a sentence
# - - - - - - - - - - - - - - - - - - - - - - - - - - - -
REMOVE (N Acc) IF (-1 NP-BORDER)(NOT -1 V)
(*1 N BARRIER NON-ADJ LINK *1 VFIN BARRIER CS);
REMOVE (N Nom) IF (-1 NP-BORDER)(NOT 1 ("leat") OR Inf)
(*1 N BARRIER NON-ADJ OR CLB LINK *1 VFIN BARRIER CS);
## Nieidda girji lea ruoksat.
REMOVE Acc IF (NOT *-1 VERB BARRIER CS OR CP)(*1 Po BARRIER VERB);
## Romssa universitehta vuosttas1 c1ielgadeapmi sámi dutkama ja oahpahusa
## birra dahkkui 1988/89s.
REMOVE (Pron Pers Acc) IF (-1 NP-BORDER)(*1 N BARRIER NON-Attr LINK *1 VFIN);
#REMOVE (Pron Pers Nom) IF (-1 NP-BORDER)(*1C N BARRIER NON-Attr LINK *1 VFIN);
## Din viessu s1attai oppa stuoris.
#REMOVE (Dem Acc) IF (-1 NP-BORDER)(NOT -1 V)
# (*1 N BARRIER NON-ADJ LINK *1 VFIN BARRIER CS);
## Dan girji lea ruoksat.
#REMOVE (Dem Nom) IF (-1 NP-BORDER)
# (*1 N BARRIER NON-ADJ LINK *1 VFIN BARRIER CS);
# Desse to var for nokre akkusativ-pronomen som skulle vore Gen, men no
# finn eg dei ikkje att.
SELECT Gen IF (*-1 BOS BARRIER NPNH)(NOT 0 ("mii" Interr) OR Dem OR Attr)
(1C (N Nom) OR (N Acc));
# The 'select' rule was too powerful, we do 'remove' instead.
#SELECT Gen IF (-1 NP-BORDER)(*1 N BARRIER NON-ADJ LINK *1 VFIN);
REMOVE Gen IF (-1 CLB)(1 (Pron Pers))(*1 VFIN); ## Na, du mun lean oaidnán.
REMOVE Gen IF (-1 BOS)(1 (Pron Pers))(*1 VFIN); ## Du mun lean oaidnán.
REMOVE Gen IF (0 Adv)(NOT 0 TIME)(NOT *-1 Pr BARRIER NPNH)
(NOT *1 Po BARRIER NON-NP)
(NOT *1 N BARRIER NON-NP) ;
# Genitive in nominal phrase between finite and nonfinite verb
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SELECT Gen IF (*-1 VFIN BARRIER NON-ADV-PCLE)(NOT 0 Nom OR Dem OR VGen OR PrfPrc)
(*1 (N Nom) OR (N Acc) BARRIER NPNH OR CC OR PUNCT
LINK *1 Inf OR PrfPrc OR (Actio Ess) OR CLB BARRIER NON-ADV-PCLE);
# Genitive in front of noun at the end of a sentence
# - - - - - - - - - - - - - - - - - - - - - - - - -
SELECT Gen IF (NOT 0 Dem OR Attr OR VERB)(*1C Acc BARRIER NPNH OR CC LINK 1 EOS);
## Fylkka mearrida olugo galgá atnit sámi od1d1a leavgga.
## Ulbmiliin lea nannet sámegiela máhtolas1vuod1a Sámedikki organisas1uvnnas.
## Ulbmiliin lea duohtan dahkat sámegiela geavaheapmi Sámedikkis.
# Genitive in front of the final word in the sentence, or: NP-initially
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SELECT Gen IF (0C CNOUN)(*1C (N Acc) BARRIER NPNH)
(2 NP-BORDER OR ADVLCASE); # earlier: (2 CLB);
## Oainnán nieidda biilla.
## Oainnán nieidda biillas.
SELECT Gen IF (0C (Pron Pers))(*1 Acc BARRIER NPNH LINK 1 CLB);
## Oainnán su od1d1a biilla.
# Unify these? Look at the effect of each and one of them.
SELECT Gen IF (0C (N Prop) )(*1C CNOUN BARRIER NPNH LINK 1 CLB);
## Oainnán Uria biilla.
SELECT Gen IF (NOT 0 A)(*1 (N Acc) BARRIER NPNH OR CC LINK 1 PrfPrc);
## Mun lean du biilla oaidnán.
REMOVE Acc IF (-1 CLB)(NOT 0 Interr)(*1 Nom BARRIER NPNH);
# Specifier disambiguation in coordination constructions
# - - - - - - - - - - - - - - - - - - - - - - - - - - -
REMOVE Acc IF (-1 CC)(*1C (N Nom) BARRIER NPNH);
SELECT Gen IF (-1 CC)(*1 Gen BARRIER NPNH LINK 1 NP-BORDER);
SELECT Gen IF (-2 Ill)(-1 CC)(*1 Ill BARRIER NPNH);
SELECT Gen IF (-2 Com)(-1 CC)(*1 Com BARRIER NPNH);
SELECT Gen IF (-2 Loc)(-1 CC)(*1 Loc BARRIER NPNH);
SELECT Gen IF (-2 Ess)(-1 CC)(*1 Ess BARRIER NPNH);
## Suoma sisafárrejeaddjiide ja sin man1isboahttiide.
# Genitive inside a two-part Po
# -----------------------------
SELECT Gen IF (-1 POST-A)(1 N)(2 POST-B);
## Nu leat 40 buolvva Dávveda rájes Babylonia fán1gavuod1a rádjái.
#REMOVE Acc IF (-1 BOS)(1 (N Gen) OR (Attr) OR PPOS) ;
## Mu birra don humat.
# This should be covered by the others... Check.
# Genitive relative pronouns
# --------------------------
SELECT (Pron Interr Gen) IF (1 N) (*1 COPULAS BARRIER CLB)
(NOT *1 V-NON-AUX-PASS BARRIER CLB);
## Oidnen mátkkos1teaddji, gean namma lei Keilhau.
# Genitive as agent of Actio
# --------------------------
SELECT Gen IF (-1 BOS)(0 Interr)(1 Actio);
# Genitive in time expressions
# ----------------------------
# A 'measure' time adverbial is Acc, others are Gen.
# Genitive if cardinal number
SELECT Gen IF (0 Card)(1 (N Gen)); ## Dat lea duháhiid jagiid boaris.
SELECT Gen IF (-1 ("seammá" Attr))(0 TIME); # Other attributes similar?
SELECT Gen IF (0 MANNU)(1 (Num Ord)); ## Dál lea miessemánu 1. beaivvi.
SELECT Gen IF (-1 Ord)(0 ("beaivi"));
SELECT Gen IF (0 ("jahki"))(1 Num);
SELECT Gen IF (1 ("áigi"));
SELECT Gen IF (-1 Gen)(0 ("áigi"));
# "áigi" can be an accusative object, but then there is in most cases no genitive
# in front - cf. 'dárbbas1a guhkit áiggi', 'gáibida olu áiggi' vs. 'dulvvi áiggi'.
SELECT Gen IF (0 ("hávvi"))(*1C Acc BARRIER CS OR CP);
SELECT Gen IF (NOT *-1 V-NON-AUX BARRIER CS OR CP)(0 ("hávvi"))
(*1 V-PASS BARRIER V-NON-AUX OR CS OR CP);
SELECT Gen IF (*-1 V-PASS BARRIER VFIN)(0 ("hávvi"))(NOT *1 V-NON-AUX BARRIER CS OR CP);
# The time expression hávvi is not Acc, but the problem is the homonymous noun.
# Genitive in place adverbials
# ----------------------------
SELECT Gen IF (*-1 MOVEMENT-VERB BARRIER NPNHA)(0 ROUTE);
# Genitive in proper name sequences
# ---------------------------------
REMOVE Acc IF (0 Prop)(1 Prop); ## Dat lea Norgga Röros ja Máhte Piera.
# Hmm, very general indeed!
# Genitive after "mii"
# -------------------
SELECT (N Pl Gen) IF (-1 ("mii"))(1 NP-BORDER)(*1 ("?"));
## Maid ipmas1iid doppe dagat?
# Embedded questions are also possible, but harder to formulate a rule.
# Locative singular
# ================= #
CONSTRAINTS
# ================= #
SELECT (Pl Loc) IF (*-1C (Dem Pl Loc));# BARRIER?
# 'Dain' is unambiguosly (Pl Loc). 'Dainna' is not.
SELECT Loc IF (*-1 BOS OR CS BARRIER NPNHAI)(NOT 0 (A Nom))
(*1 ("leat") BARRIER NON-ADV-NEG);
## Ádjásgo lea od1d1a fanas.
## Suomas maid lei dilli váttis.
## Lágas eai leat mearrádusat.
## Daningo sámiin lea iez1aset giella.
# SELECT Loc IF (1 COPULAS)(*2 NP-HEAD-NOM BARRIER NPNHA); # Try this out
SELECT Loc IF (-2 BOS)(-1 ("leat" Clt)); ## Leago mus rud1aid?
# hmm...
SELECT Loc IF (NOT -1 Num)(0 VAHKKU);
## 1870-jagiin lea c1ielggas ahte láddelac1c1aide guske ortnegat.
## ...gal guhkui ruos1s1aid gávppas1anriekti guvttiin vahkuin.
# SELECT Loc IF (-1 ("guhtemus1") OR ("goappas1at"));# To be improved on.
SELECT Loc IF (0 Num)(*1 PL-NOUN BARRIER NON-ADJ);
SELECT Loc IF (0 PL-NOUN);
# Comitative singular
# ===================
# NP-internal disambiguation of Com
# ---------------------------------
SELECT Com IF (-1C (Dem Sg Com)); ## Vuolggán dainna biillain.
SELECT Com IF (-2C (Dem Sg Com))(-1 Adv); ## Vuolggán dainna biillain.
SELECT Com IF (0 Num); # Cf. rules for PL-NOUN above.
SELECT Com IF (*-1C Num BARRIER NON-ADJ);
# Disambiguation based upon type of NP
# ------------------------------------
SELECT Com IF (0 Prop)(NOT 0 (Sámediggi")); # Person names are normally sg.
# Disambiguation based upon verb valency
# --------------------------------------
SELECT Com IF (*-1 COM-VERB BARRIER VERB OR CS OR CP LINK 0 VERB)(0 Sg)(NOT 0 GUOVLU);
## Son náitali nieiddain.
SELECT Com IF (0 Sg)(*1 COM-VERB BARRIER CS OR CP LINK 0 VERB);
## Nieiddain son náitali.
# Other cases
# -----------
SELECT Com IF (*-1 ("ovttas") OR ("oktan") OR ("searválagaid") BARRIER (N Com));
# Locative plural
# ===============
SELECT (Pl Loc) IF (1 LEAT-FIN-NON-IMP)(*2 NP-HEAD-NOM OR (Num Nom)
BARRIER V-NON-AUX OR CS);
##
# NP-internal disambiguation of Loc
# ---------------------------------
SELECT Loc IF (-1C (Dem Pl Loc)); ## Mii c1ohkkát dain biillain.
SELECT Loc IF (-2C (Dem Pl Loc))(-1 Adv); ## Mii c1ohkkát dain biillain.
# Not too elegant, the rule set might be done more general with a barrier
SELECT (Pl Loc) IF (-2 Num)(-1 PROSEANTA); ## Dat lea 50 % rud1ain.
SELECT Loc IF (1 ("gos")); ## Son lea guovlluin gos sámit ásset.
SELECT Loc IF (1 COMMA)(2 ("gos")); ## Son lea guovlluin, gos sámit ásset.
# Disambiguation based upon type of NP
SELECT (Pl Loc) IF (0 GUOVLU);
# Disambiguation based upon verb valency
SELECT Loc IF (*-1 LOC-VERB BARRIER CS);
## Son balla nieiddain.
SELECT Loc IF (*1 LOC-VERB BARRIER CS);
## Nieiddain son balla.
SELECT Loc IF (*-1 ("sáhka"))(0 Pl);
## Ii leat dus1s1e sáhka olbmuid oktavuod1ain juohkebeaivválas1 eallimis.
# Disambiguation based upon coordination
# =========== #
CONSTRAINTS
# =========== #
# The idea is to let the other rules work first, and then let the
# coordination follow suit.
# Simple coordination
SELECT Gen IF (1 CC)(*2 Po BARRIER NON-NP) ; # Overgenerates?
# Váfistan ja áimmahus1s1an dihte od1d1a bargovugiid..
SELECT (Pl Loc) IF (*-1 CC LINK *-1 Loc BARRIER NPNH LINK NOT 0 Com);
## Son lea skuvllas ja od1d1a mediain.
SELECT (Pl Loc) IF (1 CC)(*2 Loc BARRIER NPNH LINK NOT 0 Com);
## Son lea od1d1a mediain ja skuvllas.
SELECT (Sg Com) IF (*-1 CC LINK *-1 Com BARRIER NPNH LINK NOT 0 Loc);
SELECT (Sg Com) IF (1 CC)(*2 Com BARRIER NPNH LINK NOT 0 Loc);
# Coordination within coordination
# Context to the left:
SELECT (Pl Loc) IF (*-1 CC BARRIER NPNH
LINK -1 Cmpnd LINK *-1 CC BARRIER NPNH
LINK -1 Loc LINK NOT 0 Com);
## Son lea skuvllas ja od1d1a fylkka- ja riikkamediain.
SELECT (Sg Com) IF (*-1 CC BARRIER NPNH
LINK -1 Cmpnd LINK *-1 CC BARRIER NPNH
LINK -1 Com LINK NOT 0 Loc);
# Context to the right:
SELECT (Pl Loc) IF (1 CC)
(*2 Cmpnd BARRIER NPNH LINK 1 CC
LINK *1 Loc LINK NOT 0 Com);
## Son lea od1d1a fylkka- ja riikkamediain ja skuvllas.
# This part is the addition for right context checking of
# coordination within coordination:
# LINK -1 Cmpnd LINK *-1 CC BARRIER NPNH
SELECT (Sg Com) IF (1 CC)(*2 Com BARRIER NPNH LINK NOT 0 Loc);
# Generalising the Cmpnd addition:
# Cmpnd in the left branch, checking to the left:
# Late case rules (after other case rules have worked).
# =====================================================
REMOVE (N Nom) IF (NOT *-1 VFIN)(*1 (N Nom) BARRIER PUNCT OR CLB OR CC OR VERB);
## Romssa universitehta sámi strategiijaplána.
# ============================= #
# Disambiguating verbs - part 2 #
# ============================= #
# Finite forms #
# ============ #
CONSTRAINTS #
# ============ #
SELECT VFIN IF (*-1 BOS BARRIER VERB)(0 INF-VERB)(*1 Inf BARRIER CS OR CP);
# Looks brave but works!
## Áigugo skuvlii álgit?
## Sáhttit maid namahit ahte ...
SELECT VFIN IF (NOT *-1C VFIN BARRIER CS OR CP)(-1 Loc)(0 LOC-VERB);
REMOVE VFIN IF (NOT -2 BOS OR CLB)(-1 Inf)(NOT 0 Qst);
## Lága juksanmearrin lea váikkuhit sihkkarastit álbmogii
## ovttadássásas1 dearvvas1vuod1aveahki.
# Neg conditions because of:
## Suhpodit daddjojuvvo dat go dus1s1e nod1iid váldá olmmos1 eret...
## Mearrideaddjin dasa ferte danin leat addojuvvogo...
# Indicative or imperative #
# ======================== #
REMOVE Imprt IF (0 Qst); ## Bijatgo don sohkkara dedjii?
# We could perhaps have had some restrictions here, like
# (0 Ind) and/or (1 Nom) or something. But Both Imprt and Qst sounds
# unlikely.
REMOVE Imprt IF (-1 BOS)(0 Adv)(*1 ("?") BARRIER CS); ## Gosa don dál?
REMOVE Imprt IF (*-1 CS OR CP BARRIER PUNCT);
## Vuoigatvuohta gusto dus1s1e jus divs1s1ohas oaz1z1u ávkki veahkis.
## Leago guhkes áigi dassá go Máreha oidnet?
## Maid ipmas1iid doppe dagat?
# Very unlikely that an imperative should show up in an embedded clause, except in
# quotations (...de son celkkii: Manni eret!).
# The set CP subsumes interrogative pronouns, so the rule also precludes
# imperatives in questions.
# Indicative Negative
# -------------------
# Unique are Sg1, Sg3, Du1, Du2, Du3, Pl1, Pl2, Pl3
# hom: "it", where Sg2 = ABBR.
# Select Neg Sg2 instead of ABBR
REMOVE ABBR IF (*-1 ConNeg OR PrfPrc)(0 Neg); ## Dáppe don leamas1 it.
REMOVE ABBR IF (0 Neg)(*1 ConNeg OR PrfPrc); ## Don it leat dál.
# Indicative Present (and Past)
# -----------------------------
# Sg1
# ---
# Sg1 = PtcPrf (odd-syllables), and Sg1 = V Actio (even-syllables)
SELECT Sg1 IF (0 LEAN) (*1 PrfPrc); ## Mun lean boahtán.
# So, what kind of barrier could we have here?
SELECT Sg1 IF (-2 (V Sg1))(-1 CC); ## Mun human ja human.
#SELECT Sg1 IF (NOT *-1 (V Neg))(NOT *-1 PrfPrc OR Actio OR V-SG1);
#SELECT Sg1 IF (NOT *-1 VFIN)(NOT 1 CC)(NOT 2 Actio) ; # many wrong results
## Háliidan hupmat.
## In háliidan hupmat.
## Váfistan ja áimmuhus1s1an dihte...
# Sg2
# ---
# Sg2 = Inf (even syllables, copula)
# Note the homonymy with derived verbs (jearat = jearadit + ...
SELECT Sg2 IF (0 LEAT) (*-1 DON BARRIER NON-ADV); # no hits
SELECT Sg2 IF (*-1C DON BARRIER Neg LINK NOT *-1 V-SG2 BARRIER CS OR CP);
SELECT Sg2 IF (*1C DON BARRIER CC OR Neg); ## De, don fertet vuolgit.
# Sg3
# ---
# Sg3 = ConNeg (even)
# Sg3 = ConNeg = Imprt Sg2 (contracted)
# Sg3 = Sg Ill for certain words!!
# Sg3 = VGen
# Disambiguating Prs Sg3 is taken care of by rules removing the other
# readings whenever their conditions are not fulfilled.
SELECT Sg3 IF (-2 CLB OR go)(-1 (Sg3 Nom));
SELECT Sg3 IF (-1 (N Sg Nom) LINK *-1 CLB OR CS BARRIER NPNH);
SELECT Sg3 IF (-1 CLB)(NOT 0 Adv)(1 (Sg3 Nom));
SELECT Sg3 IF (-1 CLB)(NOT 0 Adv)(*1 (N Sg Nom) BARRIER NPNH);
SELECT V-SG3 IF (*-1 (N Sg Nom) OR (Pron Sg3 Nom) BARRIER VFIN OR CS)
(NOT *-1 V-SG3 BARRIER CS OR CP)(NOT *1 V-SG3 BARRIER CC OR CS OR CP)
(NOT -1 COMMA LINK -1 Nom);
SELECT V-SG3 IF (*-1 (Pron Sg3 Nom) BARRIER NON-ADV);
SELECT V-SG3 IF (-1 (Pron Interr Sg Nom));
##
## Cihca ráhkaduvvo soahkebárkkus, mii faskojuvvo nu ahte álus
## ii c1uovo mielde.
SELECT V-SG3 IF (*-1 ("gii" Pron Interr Sg Loc) BARRIER CS OR CP);
SELECT V-SG3 IF (-2 V-SG3)(-1 CC)(NOT 0 Adv OR A);
SELECT V-SG3 IF (NOT *-1 V-SG3 BARRIER CS OR CP OR PUNCT LINK NOT *-1 CP BARRIER VFIN)
(1 CC)(2 V-SG3);
# Rules that look for a subject across a relative clause:
SELECT V-SG3 IF (-1 CLB LINK *-1 (Pron Interr) OR MO BARRIER CS LINK *-1 (N Sg Nom) OR
(Pron Sg3 Nom) BARRIER N OR VFIN LINK NOT *-1 V-SG3 BARRIER CS OR CP)
(NOT 0 Qst);
SELECT V-SG3 IF (*-1 VFIN BARRIER Nom OR CS OR CP LINK *-1 (Pron Interr)
BARRIER CS LINK *-1 (N Sg Nom) OR (Pron Sg3 Nom) BARRIER VFIN
LINK NOT *-1 V-SG3 BARRIER CS OR CP)(NOT 0 Loc OR Ill OR A OR Adv OR Qst);
# Du1
# ---
# Du1 = Prt Pl3
REMOVE Pl3 IF (0 Sg3) (-1 (N Sg Nom)); ## Dokumeanta c1ilge, mo mii eallit.
SELECT Du1 IF (*-1 MOAI BARRIER MII-PERS OR CLB);
SELECT Du1 IF (*1 MOAI BARRIER MII-PERS OR CLB);
SELECT Du1 IF (1 Pcle) (2 MOAI); ## Jerre go moai?
SELECT Du1 IF (*-1 (N Sg Nom) BARRIER NON-ADV LINK *-1 CC BARRIER NPNHAI
LINK -1 (N Sg Nom));
## Anne ja Biret c1ilge, ahte dat lea duohta.
REMOVE (V Du1) IF (NOT *-1 MOAI)(NOT *1 MOAI);
# Du2
# ---
REMOVE (Du2) IF (*1 (Sg3) BARRIER CS OR CP); # Add a rule for preceding Sg3?
# leahppi = ("leahppi" N Sg Nom)
REMOVE ("leahppi") IF (*-1 DOAI)(0 ("leat" V Ind Prs Du2));
REMOVE ("leahppi") IF (0 ("leat" V Ind Prs Du2))(*1 DOAI BARRIER NON-ADV-PCLE);
# If there is a pronoun, then we have dual, and not the noun.
# Du3
# ---
# Du3 = PrsPrc Clt = Imprt Prs Du2 Clt
# Du3 = Ind Prs Sg3 Clt "leaba, ferteba leat"
SELECT (Du3) IF (*-1 ("son" Pron Pers Du3 Nom)); ## Soai ferteba mannat.
SELECT (Du3) IF (*1 ("son" Pron Pers Du3 Nom)); ## fertebago soai mannat?
SELECT (Du3) IF (-1 (N Sg Nom))
(*-2 CC BARRIER NPNH LINK -1 (N Sg Nom));
## Per Berg ja Rolf Olsen leaba doppe.
## Stuorra nieida ja unna gánda ferteba leat doppe.
SELECT (Du3) IF (*-1 ("guokte")) ; ## Guokte viesu leaba dál.
# The competition is -ba Foc.
# Pl1
# ---
# Pl1 = Inf for all stem classes
# Pl1 = Inf = Pl3 = Prt Sg2 for odd syll
# Pl1 = Inf = Pl3 = Sg2 = ConNeg (copula)
SELECT Pl1 IF (*-1C MII-PERS BARRIER SII OR MOAI OR CLB OR V-PL1);
SELECT Pl1 IF (NOT -2 (V Ind Prs Pl1 Clt))(-1 MII-PERS);
## Fertetgo mii fertet?
SELECT Pl1 IF (-1 BOS)(0 (Clt))(1 MII-PERS);
SELECT Pl1 IF (-1 BOS OR CC)(1 ("go" Pcle))(2 MII-PERS);
SELECT Pl1 IF (1 MII-PERS)(NOT *2 V-PL1 BARRIER CLB);
# Pl2 unique, no rules needed
# Pl3
# ---
# Prs Pl3 = Prt Sg2 = Prs Pl1 = Inf (odd syll) muitalit
# Prs Pl3 = Prt Sg2 = Imprt Prs Pl2 (even syll) vulget
# Prs Pl3 = Prt Sg2 (contracted) fertejit
REMOVE Pl1 IF (*-1C (N Pl Nom) BARRIER NON-ADV-PCLE);
REMOVE Pl1 IF (-1 Nom)(NOT -1 Pl1);
REMOVE Sg2 IF (-1 Nom)(NOT -1 Sg2);
# Preverbal subject
# - - - - - - - - -
# Single noun
SELECT Pl3 IF (*-1C NP-HEAD-PL-NOM BARRIER PPRON-NOT-SII OR (N Sg Nom))
(NOT *-1 (V Pl3) BARRIER CS);
## Nieiddat jerre.
## Makkár vuoigatvuod1at dain leat riikavuloz1in?
## Ciza atnet olbmot firpmiid várjalit.
# Coordination
SELECT Pl3 IF (*-1 NP-HEAD-SG-NOM BARRIER NON-ADV LINK *-1 CC BARRIER NPNH
LINK -1 NP-HEAD-SG-NOM); ## Nieida ja gánda jerre.
# Pronoun
SELECT Pl3 IF (*-1 SII BARRIER MII-PERS OR MOAI OR CLB); ## Sii jerre.
SELECT Pl3 IF (*-1 (Pron Interr Pl Nom) BARRIER CP OR CS OR VFIN);
SELECT Pl3 IF (*-1 (Pron Indef Pl Nom) BARRIER CP OR CS OR VFIN);
##
##
## Muhtumat han bohtet guhkkin ge.
# Numeral
SELECT V-PL3 IF (*-1 (Num Nom) BARRIER CS OR PPRON-NOT-SII OR (N Sg Nom) OR (":"))
(NOT *-1 (V Pl3) BARRIER CS);
SELECT V-PL3 IF (NOT *-1 VFIN BARRIER CS OR CP OR CC)
(NOT -1 (N Nom))(NOT -1 CC LINK *-1 Inf BARRIER VERB)
(*1 (PxPl3) BARRIER VFIN OR CS OR CP);
## ...ja dasto leat massán hálddas1eami iez1aset guovlluid badjel.
# Rules that look for a subject across a relative clause:
SELECT V-PL3 IF (-1 CLB LINK *-1 (Pron Interr) OR MO BARRIER CS LINK *-1 (N Pl Nom) OR
(Pron Pl3 Nom) BARRIER N OR VFIN LINK NOT *-1 V-PL3 BARRIER CS OR CP)
(NOT 0 Qst);
## Dát duovdagat gos jogat ja ádjagat, jávrrit je eará c1áhcec1oahkut
## leat, gullet daid duovdagiid eaiggádiidda.
SELECT V-PL3 IF (*-1 VFIN BARRIER Nom OR CS OR CP LINK *-1 (Pron Interr)
BARRIER CS LINK *-1 (N Pl Nom) OR (Pron Pl3 Nom) BARRIER N OR VFIN
LINK NOT *-1 V-PL3 BARRIER CS OR CP)(NOT 0 Qst OR Adv);
# Postverbal subject
# - - - - - - - - -
SELECT Pl3 IF (NOT *-1 VFIN BARRIER CS OR CP)(0C VERB)(*1 (N Pl Nom) OR (Pl3 Nom)
OR (Pron Pl Nom) BARRIER CS OR CP LINK NOT 0 Refl);
SELECT Pl3 IF (0 (V Qst))(*1 NP-HEAD-PL-NOM BARRIER NPNHA);
## Dávjá lea váttis mearridit báhkkoditgo sii gean gaz1ada...
SELECT Pl3 IF (NOT *-1 INF-VERB)(NOT 0 Pron OR Adv) # Instead: (0C VERB)?
(*1 (Num Nom) BARRIER NON-ADV-PCLE LINK NOT 0 OKTA);
# Sentence-initial verb with question particle and coordinated subject
SELECT Pl3 IF (*-1 BOS BARRIER NON-ADV-PCLE)
(*1 (N Sg Nom) BARRIER NPNH OR NON-ADV-PCLE
LINK 1 CC LINK *1 (N Sg Nom) BARRIER NPNH); ## Jerrego Al ja Bo?
# Sentence-initial verb with question particle and subject 'sii'
SELECT Pl3 IF (*-1 BOS BARRIER NON-ADV-PCLE)
(*1 SII BARRIER NON-ADV-PCLE); ## Jerrego sii?
# Sentence-initial verb with question particle and ordinary plural subject
SELECT Pl3 IF (*-1 BOS BARRIER NON-ADV-PCLE)(*1C NP-HEAD-PL-NOM
BARRIER NPNH LINK NOT 0 Refl);
## Jerrego nieiddat?
SELECT Pl3 IF (*-1 BOS BARRIER NON-ADV-PCLE)(1 ("go" Pcle))(*2C NP-HEAD-PL-NOM
BARRIER NPNH); ## Jerre go nieiddat?
# Post-adverbial verb with final subject
SELECT Pl3 IF (-1 Adv OR ADVERBIAL LINK *-1 BOS BARRIER NPNH)
(*1 (N Pl) BARRIER NPNHAI);
# Relative pronoun as subject
# - - - - - - - - - - - - - -
SELECT Pl3 IF (-3 NP-HEAD-PL-NOM)(-2 COMMA)(-1 (Pron Interr Pl Nom)) ;
#olbmot, geat fállet (too specific?)
SELECT Pl3 IF (-2 NP-HEAD-PL-NOM)(-1 (Pron Interr Pl Nom)) ;
#olbmot geat fállet (too specific?)
# Existential sentences
# - - - - - - - - - - -
SELECT ("leat" Pl3) IF (-1 (Loc))(1 NP-HEAD-PL-NOM); ## Mis leat beatnagat.
SELECT ("leat" Pl3) IF (-1 (Loc))(1 NUMERALS); ## Mis leat golbma beatnaga.
## Dá livc1c1e dutnje sabehat.
# Number phrases as subjects
# - - - - - - - - - - - - -
SELECT Pl3 IF (-2 Num) (-1 N-GEN) ; ## Golbma nieidda leat boahtán.
SELECT Pl3 IF (-1 Adv) (1 Num); ## Nu jerre golbma nieidda
SELECT Pl3 IF (-1 Loc) (1 Attr OR Pron)(2 (N Pl Nom));## Mus leat od1d1a sabehat.
# Selecting some present
# ----------------------
SELECT Prs IF (NOT *-1 V-IND-FIN BARRIER CS)(0 LEAT)(NOT *1 V-IND-FIN) ;
# More barriers? COLON?
# one strange hit, revise!
# The same should be done ... hmm, for what?
SELECT Prs IF (-1 (Neg Prs)) ;
# Select some finite
REMOVE Inf IF (-2 CLB) (-1 CS); ## Dus1s1e, juos leat doarvái...
REMOVE Inf IF (*-1 (Pron Interr) BARRIER VFIN);
REMOVE Inf IF (-1 Inf) ; # This will work when all INF-VERBs are identified!
# Indicative Past
# ---------------
# Past Sg1 is unique
# Past Sg2
# --------
# Prt Sg2 = Prs Pl3 = Imprt Prs Pl2 (even syll) vulget
# Prt Sg2 = Prs Pl3 = Prs Pl1 = Inf (odd syll) muitalit
# Prt Sg2 = Prs Pl3 (contracted) fertejit
SELECT Sg2 IF (*-1 (Pron Pers Sg2 Nom) BARRIER CS OR CP)(0 Prt); ## Don vulget ikte.
SELECT Sg2 IF (-1 BOS)(0 (Prt Clt))(1 (Pron Pers Sg2 Nom)); ## Vulgetgo don?
SELECT Sg2 IF (*-1 IKTE)(0 Prt); ## Mun died1an, ahte vulget ikte.
SELECT Sg2 IF (-1 BOS)(0 (Prt Clt))(*1 IKTE); ## Vulgetgo ikte?
# Past Sg3
# --------
# Prt Sg3 = Imprt Prs Sg3 (leai)
REMOVE Sg3 IF (*-1 Neg)(0 (Sg Ill)); ## Iiba leat skuvlii álgán.
REMOVE Sg3 IF (-1 VFIN)(0 (N Sg Ill)); ## Mánná galggai skuvlii.
REMOVE Ill IF (*-1 (N Sg) OR (Pron Sg) BARRIER NON-ADV-PCLE
LINK *-1 BOS OR CS OR CC OR Adv BARRIER NPNHAI)
(0 (V Ind Sg3));
## Muhto eanandoallu gillái rievdemiid bokte.
REMOVE Ill IF (-2 BOS)(-1 Adv OR ADVLCASE)(0 (V Ind Sg3));
## Dattege loktii dáz1a sisafárren gitta 1850.
REMOVE Ill IF (NOT *-1 ("seammá") OR ("eará"))(1 ("go" Pcle));
## Gos lei riegádan, ja máhtii go dárogiela?
## Mud1ui gustojit seammá njuolggadusat sámi levgii go dáz1a levgii.
# Past Du1
# --------
# Past Du2
# --------
# Past Du3
# --------
# Past Pl1
# --------
# Past Pl2
# --------
# Past Pl3
# --------
# Prt Pl3 = Prs Du1
# leai disambiguation
SELECT Prt IF (0 LEAI)(-1 NP-HEAD-SG-NOM); # Introduced 0 LEAI
REMOVE (Prs Du1) IF (0 (Prt Sg3)) (-1 (N Pl Nom)); ## Dokumeantat c1ilge, mo...
SELECT (Prt Pl3) IF (NOT *-1 (N Sg Nom) OR (Pron Sg Nom))
(*1 (Pl Nom) BARRIER VFIN);
## Maiddá siidaguovlluide bohte soapmásat.
# REMOVE (Prs Du1 instead?
SELECT Pl3 IF (*-1 BOS LINK 1 ("go") LINK *1 (V Pl3))(-1 COMMA)
(0 (V Ind Prt Pl3));
# Potential Present
# -----------------
# Potential Past
# --------------
# Conditional
# -----------
# Sg3
# copula sg3 = pl3 livc1c1e (in the eastern dialect)
SELECT Sg3 IF (NOT *-1 (Pl Nom) OR CC)(0 ("leat V Cond Sg3))
(NOT *1 (Pl Nom) OR CC); ## Dá livc1c1e dutnje gahpir
SELECT Pl3 IF (*-1 (Pl Nom))(0 ("leat V Cond Pl3));
SELECT Pl3 IF (NOT *-1 (Sg Nom))(0 ("leat" V Cond Pl3))(*1 (Pl Nom));
## Dá livc1c1e dutnje sabehat.
# These rules may be generalised. Let's first see whether they work.
SELECT (Sg3) IF (-1 ("Son" Pron Pers Sg Nom))(0 ("leat"));
SELECT (Sg3) IF (NOT *-2 CC)(-1 (N Sg Nom) OR ("son" Pron Pers Sg Nom))
(0 ("leat")); # strange rule, revise!
SELECT (Sg3) IF (-1 Loc)(1 (N Sg Nom)); # Mus livc1c1e viessu.
# Selecting Sg3 is not restricted to leat. This is not a rule for Conditional.
# Pl3
# copula sg3 = pl3
SELECT (Pl3) IF (-1 (N Pl Nom) OR ("son" Pron Pers Pl Nom))(0 ("leat"));
SELECT (Pl3) IF (-1 Loc)(1 (N Pl Nom)); # Mus livc1c1e guolit.
# Imperative
# ----------
SELECT (Imprt ConNeg) IF (-1 (Neg Imprt)) ; ## Ale suhta munnje.
REMOVE Imprt IF (-1 Imprt)(NOT 0 ConNeg);
REMOVE Imprt IF (-2 (A Attr))(-1 CC OR COMMA);
## Eaige galggas1ii gierdat eahpegovttolas1 garra, vahágahtti meassamiid.
## Mohtorfievrojohtolat meahcis gáttis dahje rabas dahje gálbmon
## c1ázis muddejuvvo dál.
SELECT Imprt IF (-3 BOS OR PUNCT)(-2 (N Nom))(NOT -2 Actio)
(-1 COMMA)(NOT 0 AUX)(NOT *1 ("?"));
## Bárdnán, leage dorvvolas1.
REMOVE (Imprt Du2) IF (*1 (Pron Pers Nom) BARRIER CS OR CP OR PUNCT LINK NOT 0 Du2);
REMOVE (Imprt Du2) IF (*1 Sg2 BARRIER CS OR CP OR PUNCT);
## Ealli Ipmila bokte mun vuortnuhan du.
## Rabbi, geahc1a!
# The last example is now taken care of by a rule for "Rabbi", but other cases
# might show up.
SELECT Imprt IF (-1 BOS OR COMMA)(*1 COMMA LINK 1 Imprt)(NOT 0 (A Attr) LINK 1 N);
SELECT Imprt IF (NOT *-1 VFIN-NOT-IMP BARRIER CS OR CP)
(*1 CC BARRIER VFIN LINK *1C Imprt BARRIER VFIN OR CS OR CP)(NOT 0 PrfPrc);
SELECT (Imprt Sg2) IF (NOT *-1 V-SG2 BARRIER VFIN)(*-1 PUNCT OR CLB
BARRIER NON-ADV-PCLE)(1 (PxSg2));
SELECT (Imprt Pl2) IF (*1 CC BARRIER VFIN LINK *1C (Imprt Pl2)
BARRIER VFIN OR CS OR CP);
SELECT Imprt IF (*-2 ("dadjat") OR ("cealkit") OR ("vástidit") BARRIER VERB)
(-1 PUNCT)(NOT 0 Pass)(NOT 0 MOD-ASP);
## Jesus celkkii sutnje: "Várut dadjamis maidege geasage dan birra!"
SELECT Imprt IF (-1 COMMA OR CC)(*-2 Imprt BARRIER VFIN LINK NOT *-1 CP);
# Rule that finds a coordinated Imprt across a relative clause:
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SELECT (Imprt Pl2) IF (-1 CC OR COMMA)(*-2 VFIN BARRIER CS OR CP OR CONTRA
LINK *-1 (Pron Interr) BARRIER CS LINK *-1 (Imprt Pl2) BARRIER VFIN OR CS OR CP);
# Negative imperative
# - - - - - - - - - -
# Neg Imprt Pl2 = allet V Inf = Prs Pl1 = Prs Pl3
SELECT (Neg Imprt Pl2) IF (*1 ConNeg BARRIER Neg);
## Allet ge gátte ahte ...
REMOVE (V Ind Prs Sg3) IF (-2 BOS)(-1 Pcle)(0 (V Imprt Prs Sg2));
## Na attes munnje daid.
# Note that this is dangerous, and kept specific in order to play safe.
# May need to be generalised.
REMOVE Imprt IF (-1 Interr OR CP OR CS)(NOT -1 ("de"));
REMOVE (Imprt Sg2) IF (0 V-SG2);
REMOVE Imprt IF (*-1 VERB BARRIER NON-ADV OR CLB LINK NOT 0 Neg);
# Infinite forms #
# ============== #
CONSTRAINTS #
# ============== #
REMOVE VFIN IF (-1 ("nu"))(*1 ("go" Pcle) BARRIER NON-NA);
REMOVE Inf IF (-1 ("nu"))(*1 ("go" Pcle) BARRIER NON-NA);
# Infinitive
# ----------
REMOVE VFIN IF (*-1C VFIN BARRIER NON-ADV-PCLE OR CLB LINK NOT *-1 CP BARRIER VFIN);
REMOVE VFIN IF (*-1 VFIN-NON-AUX OR ConNeg OR PrfPrc
BARRIER ("mii" Pers Pron Nom Pl1) OR SII OR CP OR CS OR CC OR CLB)
(0 Inf)(NOT 0 LEAT);
## Mun háliidan bargat. Son ii háliidan bargat.
## Stockfleth lea beassan bargat sámegiela buorrin.
# reintroduce (NOT 0 LEAT)? Yes.
# The following two rules extend the preceding one.
REMOVE (V N Actor Pl Nom) IF (*-1 VFIN-NON-AUX OR ConNeg OR PrfPrc
BARRIER ("mii" Pers Pron Nom Pl1) OR SII OR CS OR CLB)
(0 Inf)(NOT 0 LEAT);
REMOVE (N Pl Nom) IF (*-1 VFIN-NON-AUX OR ConNeg OR PrfPrc
BARRIER ("mii" Pers Pron Nom Pl1) OR SII OR CS OR CLB)
(0 Inf)(NOT 0 LEAT);
REMOVE (V Ind Prs ConNeg) IF (*-1 VFIN-NON-AUX OR ConNeg OR PrfPrc
BARRIER ("mii" Pers Pron Nom Pl1) OR SII OR CS OR CLB)
(0 Inf)(NOT 0 LEAT);
REMOVE (V Pl3) IF (-1 (N Sg Nom))(*-1 V-SG3 BARRIER VFIN OR CS);
REMOVE (V Pl3) IF (-1 (N Sg Nom))(*1 V-SG3 BARRIER VFIN OR CS);
SELECT Inf IF (*-2 ("leat") BARRIER VERB)(-1 Ess);
## ...lea Sámedikkiin dáhpin geavahit...
SELECT Inf IF (-2 (Sg Nom) OR (Sg3 Nom))(-1 (Interr Sg Nom))(1 (V Sg3));
SELECT Inf IF (-3 (Sg Nom) OR (Sg3 Nom))(-1 (Interr Sg Nom))(-2 COMMA)
(1 (V Sg3));
## Son gii ohcat áiggui, fertii...
# This rule is all to specific. It tries to capture topicalised objects
# Within a subject relative clause.
SELECT Inf IF (-1 V-PL1)(NOT -1 Neg)(*-2C MII-PERS BARRIER SII OR MOAI OR CLB);
SELECT Inf IF (-1 ("dilli"))(NOT 0 ("leat"));
# Infinitive after predicative
# - - - - - - - - - - - - - -
# There are two rules in the beginning, conflate when I see the effect.
# The barrier may be too weak.
SELECT Inf IF (-1 A BARRIER VFIN OR CP LINK *-1 ("leat") OR ("s1addat")
BARRIER NON-ADV)(NOT 0 (N Pl Nom));
## Eará guovlluin lei vejolas1 nannet dárogiela.
SELECT Inf IF (*-1 N BARRIER VFIN OR CP LINK *-1 ("leat") OR ("s1addat")
BARRIER NPNHAI)(NOT 0 (N Pl Nom));
## Jos leat jaska, de lea dárbu singuin gulahaddat.
# Infinitive as subject
# - - - - - - - - - - -
REMOVE (Prs Pl1) IF (-1 BOS)(1C V-SG3);
## Vuolgit lea suohtas.
REMOVE NP-HEAD-PL-NOM IF (0 (Inf) OR NP-HEAD-SG-NOM)(1C V-SG3);
# Infinitive in coordination
# - - - - - - - - - - - - -
SELECT Inf IF (1 CC)(2C Inf); ## Mus lea árvalusat mo skuvlla nannet ja buoridit.
SELECT Inf IF (-2C Inf)(-1 CC);
SELECT Inf IF (*-1 CC BARRIER NON-ADV-PCLE LINK *-1 Inf BARRIER VERB);
# Present Participle
# ------------------
# PrsPrc = Imprt Prs Du2 (even-syll)
REMOVE PrsPrc IF (0 N)(1C NP-BORDER);
REMOVE PrsPrc IF (0 N)(1 CLB)(2 NP-BORDER);
## De geahc1c1aleaddji bod1ii su lusa.
## Dávveda bárdni, árpmit munno!
#REMOVE PrsPrc IF (0 Nom)(1 V-SG3);
#REMOVE PrsPrc IF (*-1 Dem BARRIER NPNH)(0 N)(1 NP-BORDER);
#REMOVE PrsPrc IF (*-1 Dem BARRIER NPNH)(0 N)(1 CLB)(2 NP-BORDER);
# Actio/PrfPrc
# ------------
# Actio = Prs Sg1 = PrfPrc (odd-syll verbs, contracted verbs)
# Perfect Participle is also treated in the Ind Prs Sg1 chapter.
SELECT PrfPrc IF (0 ("mannat"))(1 VAHKKU);
## Mannan c1uohtejagi gaskkamuttos lei stuorra gilvu.
REMOVE (V Ind) IF (-1 NP-HEAD)(-1 Gen)(NOT -1 TIME)(1 N);
REMOVE PrfPrc IF (-1C NP-HEAD)(-1 Gen LINK NOT *-1 Num BARRIER NON-ADJ)
(NOT -1 TIME)(1 N);
SELECT Actio IF (-1C A);
## Norggas lea leamas1 gal garra digas1tallan sámi oahppoplána hárrái.
# This rule is aimed at actio in coordination (I know it looks ugly):
REMOVE PrfPrc IF (NOT -1 LEAT-FIN-NON-IMP LINK *-1 CP BARRIER VFIN)
(1 CLB LINK *1 N BARRIER NPNH LINK *1 CC BARRIER VFIN
LINK *1 N BARRIER NPNH LINK NOT 0 Loc);
SELECT PrfPrc IF (*-1 LEAT-FIN-NON-IMP)(NOT *1 PrfPrc BARRIER CC OR CP OR CS);
REMOVE PrfPrc IF (*-1 Gen BARRIER NPNH LINK -1 BOS OR CLB);
## Sámi dutkan ii leat dan dihte soaittáhagas válljejuvvon.
REMOVE PrfPrc IF (NOT *-1 VFIN)(NOT 0 Pass)(NOT *1 VFIN BARRIER CP OR CS);
SELECT Actio IF (1C Po);
#REMOVE V-SG1 IF (*-1 LEAT-FIN-NON-IMP BARRIER CS OR CP);
REMOVE V-SG1 IF (*-1 VFIN BARRIER CLB OR CS OR CP);
# leamas1 without finite verb
# - - - - - - - - - - - - - -
SELECT PrfPrc IF (-1 NP-HEAD)(NOT -1 Gen)(0 ("leapma" Dimin));
SELECT PrfPrc IF (0 ("leapma" Dimin))(*1 A-CASE BARRIER NON-ADV-PCLE);
SELECT PrfPrc IF (0 ("leapma" Dimin))(*1 Nom BARRIER NON-ADV-PCLE);
SELECT PrfPrc IF (NOT *-1 VFIN BARRIER CS)(0 ("leapma" Dimin))
(NOT *1 VFIN BARRIER CP OR CS);
# ImprtII
# -------
# VGen
# ----
REMOVE VGen IF (*-1 CS OR CP OR BOS BARRIER VFIN)(0 VFIN)
( *1 CS OR CP OR EOS BARRIER VFIN);
## Báldáhan ferte din1got, jos galgá fidnet.
# This rule assumes that VGen comes parasitically upon a finite verb,
# and removes VGen if this is not the case. More rules are needed in order
# to remove more cases.
REMOVE VGen IF (0 Attr) (*1 N BARRIER NON-ADJ);
REMOVE VGen IF (-1 ("nu") OR ("mihá"));
# Gerund, Verb abessive and Supine do have unique forms and need no rules.
# Selecting some finite.
# ----------------------
SELECT VFIN IF (NOT *-1 VFIN BARRIER CS OR CP)(NOT 0 N)(NOT *1 VFIN BARRIER CS)
(NOT -1 BOS LINK 2 EOS)(NOT -2 BOS LINK 1 N LINK 2 EOS);
## Son lea dan sápmelas1 gean dovddan.
## Gos don dál boad1át? Siiddas.
# first approximation
# BOS/EOS is there to allow for fragments like the "Siiddas" example.
# and headlines like ## Giellabarggu organiseren.
# But the rules goes wrong with lists consisting of infinitives.
SELECT VFIN IF (*-1 CP OR CS BARRIER VFIN)(NOT 1 (Pron Interr))
(NOT *1 VERB BARRIER CS OR CP);
# Finite verbs in coordination # More rules must be added!
# - - - - - - - - - - - - - -
SELECT Pl1 IF (-1 CC)(*-2 V-PL1 BARRIER VFIN OR CS);
SELECT Pl3 IF (-1 CC)(*-2 V-PL3 BARRIER VFIN OR CS);
# ===================== #
# Residual cases
# ===================== #
CONSTRAINTS #
# ===================== #
# This is a section for local disambiguation that must come after the main POS
# Pronouns and nouns
# ==================
SELECT Nom IF (*-1 BOS OR PUNCT BARRIER NPNH)(1 COMMA)(2 Imprt);
## Sáhtán, gáidda eret!
SELECT Gen IF (0 Dem)(*1C (N Gen) OR (N Sg Ill) OR (N Sg Loc) OR (N Pl Com)
BARRIER NON-ADJ LINK NOT 0 Cmpnd);
## Mun manan daid mánáiguin.
SELECT (Interr Sg) IF (-1 CC LINK *-1 VFIN LINK *-1 (Interr Sg) BARRIER VFIN);
## ...maid addet dearvvas1vuod1aásahusain dahje maid almmolas1
## dohkkehuvvon dearvvas1vuod1bargit addet.
# Coordinated relative clauses! Also write a rule for Pl?
# Remaining Px readings
# =====================
# Now we select the Px that are connected to Imprt:
SELECT (PxSg2) IF (*-1 (Imprt Sg2) BARRIER VFIN OR Sup)
(NOT 0 (N Pl Nom) OR (A Pl Nom) LINK *1 V-PL3 BARRIER CS OR CP);
## Buvtte dasto oaffarsken1kkat!
# LINK because of ## Eai dearvvas1 olbmot(!) dárbbas1 dálkkasteddji.
## Manne c1álaoahppavac1c1at dalle dadjet ahte ...
SELECT (PxSg2) IF (*-1 MOD-ASP BARRIER VFIN LINK 0 Sg2 LINK *-1
DON BARRIER NON-ADV-PCLE)(0 Nom);
# - and remove the rest:
REMOVE (PxSg2);
# =============================== #
# Global disambiguation - cycle 3 #
# =============================== #
CONSTRAINTS #
# =============================== #
# This is the section for rules of more global scope.
# It is also the section for rules that we would like to work in careful mode,
# i.e. after the other rules have removed as many false readings as possible.
# Adverbs
# -------
SELECT Adv IF (-1C N)(NOT 0 N)(1C Inf);
## Geain lea leamas1 vejolas1vuohta systemáhtalac1c1at guorahallat válggaid?
# The idea is that we between a noun an an infinitive will have an adverb, and
# not an adjective.
# A weaker version (in case of trouble) will be to say:
# REMOVE (A Sg) ...
# REMOVE (A Pl) ...
# i.e., this weaker version will keep readings that are neither adverbs not
# adjectives.
REMOVE (A Nom) IF (-1 Nom)(1 VFIN);
REMOVE (Pl Nom) IF (0 Adv)(1 V-SG3);
# Adjectives
# ----------
REMOVE Attr IF (1C V OR EOS)(NOT 1 N); ## Diet lea beare unnán.
# When all rules are executed, remove the Attrs
# The double requirement is there because of the compounds.
# Determiners
# -----------
REMOVE Sg IF (0 DEM-PL) (NOT *1 V-SG3); ## Dat lea buorre.
REMOVE Pl IF (0 DEM-SG) (NOT *1 V-PL3); ## Dat lea od1d1a niibbit.
REMOVE (Dem Gen) IF (*1 (N Nom) BARRIER NPNH);
# Nouns
# -----
REMOVE (N Actor); # The N reading should remain.
REMOVE Actio IF (NOT 0 Ess); # Same here.
REMOVE (N Actio) IF (0 (V Actio));
# Finite verbs
# ------------
REMOVE V-DER; # Removes only if there is another reading.
# At least one finite verb in the sentence (exception: leamas1).
# The rule scans to the left until it finds a finite verb.
#SELECT VFIN IF (NOT *-1 VFIN)(NOT *1 VFIN);
# Stop at guhto to the left and comma to the right.
#SELECT VFIN IF (NOT *-1 VFIN BARRIER COMP)(NOT *1 VFIN BARRIER CLB);
# cut these two because of titles. They would be ok if we could
# recognise titles.
# Accusative
# ----------
REMOVE Acc IF (0 Pron)(NOT 0 Dem)(1C Acc); # Mun oainnán du vielja.
# Afterthought, get rid of Acc in specifier position.
# Move to logical place, but after the primary Acc cycle.
#=====#
END #
#=====#
# Notes for future thought:
# =========================
# Soai leaba goappas1agat nu jallat
# they are both-Pron-Indef so stupid
# Here, the subject NP is spread around the finite verb. Either, all the
# rules must be duplicated with this feature in mind, or the possible
# discontinuous parts must be included in the complement to the
# NON-ADV-PCLE set.
# While thinking, let us try including Pron Indef into a NON-ADV-PCLE-INDEF,
# at least for predicative constructions.