# ===================== #
# Faroese disambiguator #
# ===================== #
# ========== #
# Delimiters #
# ========== #
DELIMITERS = "<.>" "" ">" "<¶>";
# ============= #
# Tags and sets #
# ============= #
# ========
SETS
# ========
LIST BOS = (>>>) ();
LIST EOS = (<<<) (); # vislcg and CG-2 together.
LIST N = N ;
LIST V = V ;
LIST A = A ;
LIST Prop = Prop ;
LIST Adv = Adv ;
LIST Num = Num ;
LIST CC = CC ;
LIST CS = CS ;
LIST Interj = Interj ;
LIST Abbr = Abbr ;
LIST ACR = ACR ;
LIST Pr = Pr ;
LIST Pron = Pron ;
LIST Pers = Pers ;
LIST Det = Det ;
LIST Refl = Refl ;
LIST Recipr = Recipr ;
LIST Poss = Poss ;
LIST Interr = Interr ;
LIST Nom = Nom ;
LIST Acc = Acc ;
LIST Gen = Gen ;
LIST Dat = Dat ;
LIST Msc = Msc ;
LIST Fem = Fem ;
LIST Neu = Neu ;
LIST Sg = Sg ;
LIST Pl = Pl ;
LIST Def = Def ;
LIST Indef = Indef ;
LIST Cmp = Cmp ;
LIST Superl = Superl ;
LIST Prs = Prs ;
LIST Prt = Prt ;
LIST 1Sg = 1Sg ;
LIST 2Sg = 2Sg ;
LIST 3Sg = 3Sg ;
LIST Inf = Inf ;
LIST PrfPrc = PrfPrc ;
LIST PrsPrc = PrsPrc ;
LIST Imp = Imp ;
LIST Sup = Sup ;
LIST Cmpnd = Cmpnd ;
LIST CLB = CLB ;
LIST PUNCT = PUNCT ;
LIST LEFT = LEFT ;
LIST RIGHT = RIGHT ;
LIST TAG = N V A Adv CC CS Interj Pr Pron Pers Det Refl Recipr Poss Nom Acc Gen
Dat Msc Fem Neu Sg Pl Def Indef Cmp Sup Prs Prt 1Sg 2Sg 3Sg Inf PrfPrc
PrsPrc Sup Imp CLB PUNCT LEFT RIGHT ;
LIST NAGD = Nom Acc Gen Dat ;
LIST GENDER = Msc Fem Neu ;
LIST NUMBER = Sg Pl ;
# Sets
# ====
# Noun sets
SET NounMscFem = (N Msc) OR (N Fem) ;
SET NounMscNeu = (N Msc) OR (N Neu) ;
SET NounFemNeu = (N Fem) OR (N Neu) ;
SET MscFem = Msc OR Fem ;
SET MscNeu = Msc OR Neu ;
SET FemNeu = Fem OR Neu ;
LIST 3PERS = "hann" "hon" "tad" ;
# Nominal sets
LIST NOMINALHEAD = N Num Pers Refl Recipr Interr ;
LIST PRENAGR = Det A ;
# Verb sets
LIST COPULA = "vera" "verða" ;
LIST AUX = "kunna" "skula" "vera" "verða" ;
LIST VFIN = Prs Prt Imp ;
LIST Ind = Prs Prt ;
LIST NONTHIRDV = 1Sg 2Sg 1Pl 2Pl ;
LIST VINFIN = Inf Sup PrfPrs PrsPrc ;
LIST MODV = "kunna" "láta" "skula" ;
LIST DATV = "smakka" ;
LIST DATPREPV = "liggja" "vera" "standa" "fiska" ;
LIST ACCPREPV = "leggja" "fara" "renda" "koma" "liða" "seta" ;
# Noun-Verb sets
LIST THIRD = Sg 3Sg Pl 3Pl ;
# Number sets
SET NUMBERS = Num - ("eitt") - ("1") ;
# Preposition sets
LIST ACCPREP = "aftan" "aftanvert" "ábeint" "áraka" "foruttan" "gjøgnum" "hóast" "inntil" "ígjøgnum"
"íkring" "kring" "niðan" "oman" "síðan" "umframt" "umhvørvis" "umkring" "báðumegin"
"hasumegin" "hvørgumegin" "høgrumegin" "sínumegin" "skeivumegin" "somumegin"
"vinstrumegin" "øðrumegin" "eystan" "norðan" "sunnan" "vestan" ;
LIST DATPREP = "hjá" "með" "aftrat" "afturat" "afturímóti" "andstøðis" "andsýnis" "mótvegis" "nær" "sambært" "viðvíkjandi" ;
LIST ACCDATPREP = "í" "á" "undir" "yfir" "eftir" "fyri" "við" "frá" ;
LIST ACCGENPREP = "innan" "uttan" "millum" "til" "vegna" ;
LIST ACCDATGENPREP = "at" "av" "hjá" "móti" "um" "undan" "úr" ;
SET SOMEACCPREP = ACCPREP | ACCDATPREP | ACCGENPREP | ACCDATGENPREP ;
SET SOMEDATPREP = DATPREP | ACCDATPREP | ACCDATGENPREP ;
SET SOMEGENPREP = ACCGENPREP | ACCDATGENPREP ;
# Boundary sets
SET S-BOUNDARY = CS | Interr | (";") | BOS | EOS ;
# Complementary set
# Case sets
SET NOTDAT = Nom | Gen | Acc ;
SET NOTACC = Nom | Gen | Dat ;
SET NOTACCDAT = Nom | Gen ;
SET OBL = Acc | Dat | Gen ;
#SET NO
SET PRE-N = A | Det | (N Gen) | Num | CC ; # Det???
SET WORD = N | V | A | Pr | Pron | Adv | CC | CS | Interj | Num | ("\?") ;
SET MARK = (",") | ("\") | ("\;") ; #"
LIST COMMA = "," ;
SET WORDMARK = WORD | MARK ;
SET NPNH = WORDMARK - PRE-N ;
SET NPNHA = WORDMARK - PRE-N - Adv ;
SET NOT-ADV = WORDMARK - Adv ;
SET NOT-A = WORDMARK - A ;
SET NOUNADJ = N | A ;
SET NP-MEMBER = PRE-N | N | Pron ;
LIST TIME = "sunnudagur" ;
SECTION
# Early and popular rules
SELECT:r50 Inf IF (-1 ("at"));
SELECT:r4 CS IF (0 ("at"))(1C Inf);
SELECT:r2 Pr IF (0 ("á"))(1 Dat OR Acc);
# at
REMOVE:r36 Pr IF (0 ("at"))(NOT *1 Acc OR Gen OR Dat BARRIER V);
SELECT:r37 CS IF (0 ("at"))(*1 Nom BARRIER NPNHA LINK *1 V BARRIER OBL);
# Adjective disambiguation
# ------------------------
REMOVE:r18 Fem IF (0 (A) + $$NAGD) (*1 NounMscNeu + $$NAGD BARRIER NPNHA LINK NOT 0 Fem);
REMOVE:r19 Msc IF (0 (A) + $$NAGD) (*1 NounFemNeu + $$NAGD BARRIER NPNHA LINK NOT 0 Msc);
REMOVE:r20 Neu IF (0 (A) + $$NAGD) (*1 NounMscFem + $$NAGD BARRIER NPNHA LINK NOT 0 Neu);
# Case disambiguation
SELECT:r21 $$NAGD IF (0 A)(*1C $$NAGD BARRIER NPNHA)(NOT 0 V);
REMOVE:r22 $$NAGD IF (0 A)(*1 N BARRIER NPNHA LINK NOT 0 $$NAGD);
REMOVE:AVS OBL IF (*-1 VFIN BARRIER NPNH LINK *-1 BOS BARRIER NOT-ADV)(0 (N Nom));
# PP disambiguation
# =================
# Preposition or not?
# á
REMOVE:AArule N IF (0 ("á" Indef))(-1C NOMINALHEAD OR V);
REMOVE:AArule N IF (0 ("á" Indef))(-1C NOMINALHEAD OR V);
# millum
REMOVE:r38 Adv IF (0 Dat OR Acc)(*-1 ("millum") BARRIER NPNH);
# til
SELECT:r39 Pr IF (0 ("til"))(*1 N OR NPNH OR ("at") BARRIER NPNHA);
SELECT:r3 Pr IF (0 ("til"))(*1 (N Gen) BARRIER NPNHA);
# um
SELECT:um1 CS IF (-1 ("sjálvur"))(0 ("um"));
REMOVE:um2 CS IF (0 ("um"));
# Case within PP phrases
SELECT:r40 Acc IF (*-1 ACCPREP BARRIER NOTACC OR V OR Pr);
SELECT:r41 Dat IF (*-1 DATPREP BARRIER NOTDAT OR V OR Pr);
REMOVE:r42 NOTDAT IF (*-1 DATPREP BARRIER NOTDAT OR S-BOUNDARY OR V OR Pr);
#REMOVE Acc IF (*-1 DATPREP BARRIER NOTDAT);
#REMOVE Gen IF (*-1 DATPREP BARRIER NOTDAT);
REMOVE:r43 Gen IF (*-1 ACCDATPREP BARRIER NOTACCDAT OR S-BOUNDARY OR V OR Pr);
REMOVE:r44 Nom IF (*-1 ACCDATPREP BARRIER NOTACCDAT OR S-BOUNDARY OR V OR Pr);
REMOVE:AccPronNotIndef (N Indef) IF (-1 ACCPREP OR ACCDATPREP)(0 (Pron Acc)) ;
REMOVE:DatPronNotIndef (N Indef) IF (-1 DATPREP OR ACCDATPREP)(0 (Pron Dat)) ;
SELECT:AccNP (N Acc) IF (-1C (Det Acc));
REMOVE:Fragment Dat IF (*-1 ACCDATPREP BARRIER NPNH)(NOT *-1 V)(NOT *1 V);
REMOVE:ACCPREPVERB Dat IF (*-1 ACCDATPREP BARRIER NPNH LINK *-1 ACCPREPV BARRIER NOT-ADV)(0 Acc);
REMOVE:DATPREPVERB Acc IF (*-1 ACCDATPREP BARRIER NPNH LINK *-1 DATPREPV BARRIER NOT-ADV)(0 Dat);
# POS disambiguation
# ==================
# Pron Pers or Det
REMOVE Pers IF (-1 Pr)(0 (Det Gen))(*1 N BARRIER NPNH);
## vendu móti hansara bygd.
# Det
REMOVE:r1 (Num) IF (0 ("ein" Det))(*1 N BARRIER NPNHA);
## eina mynd
# Specific lexemes
# ================
# at
REMOVE Pr IF (0 ("at"))(NEGATE 1 NP-MEMBER);
# hafa
SELECT ("hava") IF (0 ("høva"))(*1 Sup BARRIER NOT-ADV);
SELECT ("hava") IF (0 ("høva"))(-1 Sup);
## Teir høvdu lýtt á kongin.
# men
SELECT CC IF (-1 CLB OR BOS OR PUNCT)(0 ("men"));
# ið
SELECT CS IF (-1 CLB)(0 ("ið"));
# hon
SELECT:hon Pron IF (0 ("hon"))(-1 BOS OR NPNH);
# eg
SELECT:eg ("eg" Pron Pers Pl Nom) IF (*1 (V Pl) BARRIER NOT-ADV); #(*1 V + Pl BARRIER NOT-ADV);
## Vit mugu sleppa.
# tá ið
SELECT Adv IF (0 ("tá"))(1 ("ið"));
SELECT Adv IF (-1 ("tá"))(0 ("ið"));
REMOVE:r5 Det IF (0 Pers)(NEGATE 0 Gen LINK -1 N)(NOT 1 NPNHA OR N);
# Adverb
SELECT:r6 Adv IF (-1 DATPREP)(*1 Dat BARRIER NPNHA);
SELECT:r7 Adv IF (-1 VFIN)(1 Inf);
REMOVE Adv IF (-1 Det OR Pr)(0 A)(1 N);
## ið stakk í bleyta jørð,
# NP internal constraints
# =======================
# Determiner disambiguation
REMOVE:r8 Neu IF (0 Det + $$NAGD)(*1 NounMscFem + $$NAGD BARRIER NPNHA LINK NOT 0 Neu);
REMOVE:r9 Msc IF (0 Det + $$NAGD)(*1 NounFemNeu + $$NAGD BARRIER NPNHA LINK NOT 0 Msc);
REMOVE:r10 Fem IF (0 Det + $$NAGD)(*1 NounMscNeu + $$NAGD BARRIER NPNHA LINK NOT 0 Fem);
REMOVE:r11 Neu IF (0 Det + $$NAGD)(*1 NounMscFem + $$NAGD BARRIER NPNHA LINK NOT 0 Neu);
REMOVE:r12 Msc IF (0 Det + $$NAGD)(*1 NounFemNeu + $$NAGD BARRIER NPNHA LINK NOT 0 Msc);
REMOVE:r13 Fem IF (0 Det + $$NAGD)(*1 NounMscNeu + $$NAGD BARRIER NPNHA LINK NOT 0 Fem);
# Case disambiguation
SELECT:r14 $$NAGD IF (0 Det)(*1C $$NAGD BARRIER NPNHA);
REMOVE:r15 $$NAGD IF (0 Det)(*1 N BARRIER NPNHA LINK NOT 0 $$NAGD);
SELECT:r16 $$NAGD IF (0 Det)(*1C $$NAGD BARRIER NPNHA);
REMOVE:r17 $$NAGD IF (0 Det)(*1 N BARRIER NPNHA LINK NOT 0 $$NAGD);
# Number disambiguation
#SELECT $$NUMBER IF (0 A)(1 N + $$NUMBER);
REMOVE:r23 (A Sg) IF (1C N + Pl);
REMOVE:r23b (A Sg) IF (1 CC)(2 A + Pl)(3C N + Pl);
REMOVE:r24 (A Pl) IF (1C N + Sg);
## í ta døkku moldina.
REMOVE (N Pl) IF (*-1C (Det Sg) BARRIER NPNH) (0 (N Sg));
SELECT:r25 $$NUMBER IF (0 Det)(*1 N + $$NUMBER BARRIER NOT-A);
# Gender disamb of numerals
SELECT:r26 $$GENDER IF (0 Num)(*1C (N $$GENDER) BARRIER A);
## eit sindur
# Case disamb of numerals
SELECT:r27 $$NAGD IF (0 Num)(*1C (N $$NAGD) BARRIER A);
# Perhaps also rules that remove Neu if Msc or Fem, etc.
# Noun disambiguation
# -------------------
SELECT:r28 $$GENDER IF (-1C (A) + $$GENDER)(0 N);
SELECT:r29 $$NAGD IF (-1C (A) + $$NAGD)(0 N);
SELECT:r30 $$NUMBER IF (-1C (A) + $$NUMBER)(0 N);
# Poss disambiguation
REMOVE:r31 $$GENDER IF (-1 N LINK NOT 0 $$GENDER)(0 Poss);
REMOVE:r32 $$GENDER IF (0 Poss)(*1 N BARRIER NPNHA LINK NOT 0 $$GENDER);
# Number disambiguation
REMOVE:r33 Pl IF (*-1 (Num Sg) OR (Det Sg) BARRIER NOT-A)(0 (N Sg));
# Here, we need vislcg3 and variable notation!
SELECT:NumNPl (N Pl) IF (-1 Num);
# NP head disambiguation
# ======================
# Inversion
REMOVE:r34 Acc IF (-2 CS)(-1 (V Pl))(0 (Pl Nom)) ;
## Tað var, sum váru tey sett út úr luftini.
# A or N
# ======
REMOVE:r35 A IF (*-1 Pr BARRIER NPNH)(0 N)(1 S-BOUNDARY);
REMOVE (A Fem) IF (0 (N Neu))(-1 COPULA)(-2 ("tað" Nom));
REMOVE (A Msc) IF (0 (N Neu))(-1 COPULA)(-2 ("tað" Nom));
# P chains or not
SELECT:r45 Adv IF (0 Pr)(1C Pr);
## Hann fór niðan um Danmark.
# Pronoun disambiguation
REMOVE:r46 Det IF (0 Pers)(1C V);
## Tey vóru so hugnalig.
REMOVE:r47 Det IF (0 Pers)(NEGATE *1 Def BARRIER NPNH)(NEGATE 0 Gen LINK -1 N);
##
# VP disambiguation
# =================
# V or A
REMOVE:r48 A IF (0 ("vera"))(1 (N Sg));
## Enskt mál er móðurmál.
SELECT:r49 ("vera" 3Sg) IF (-1 ("tað" Pron Pers Sg Nom));
## Tað var, sum váru tey sett av tilvild av einum fóti út úr luftini.
REMOVE:PrtNotAdj A IF (-1 NOMINALHEAD + Sg + Nom)(0 (V Prt Sg) OR (V Prt 3Sg) OR (V Prt 1Sg)) ;
# Infinitive
SELECT:r51 Inf IF (*-1 MODV BARRIER V);
# Imperative
#REMOVE Imp IF (-1 Adv OR Nom OR Pr OR CS OR V)(0 Prs OR Prt);
REMOVE:r52 Imp IF (NOT *-1 BOS OR PUNCT BARRIER WORD); # hmm
# The Imp section must be written when there are genuine
# examples to build upon.
REMOVE:r53 Imp IF (0 N)(1 CC)(*2 N BARRIER NPNHA);
## Stýrið og stjórnin hjá...
REMOVE:r54 (Imp Pl) IF (0 (N Neu))(1 VFIN);
## Húsið er stórt.
# Supine
#SELECT:r55 Sup IF
REMOVE:r56 Sup IF (0 VFIN)(NOT *-1C VFIN BARRIER S-BOUNDARY)(NOT *1C VFIN BARRIER S-BOUNDARY);
REMOVE:SFregel N IF (0 Sup)(1 VFIN);
# Present singular
SELECT:r57 (V Ind 3Sg) IF (-1 (N Prop Nom) OR (N Sg Nom) OR (3PRON Pers Sg Nom) LINK NOT *-1 CC BARRIER NPNHA)(1 (Pron Refl Acc)) ;
REMOVE:r58 (V Ind 2Sg) IF (*-1 (N Sg Nom) BARRIER NOT-ADV);
SELECT:r59 (V Ind 3Sg) IF (-1 (N Prop Nom) OR (N Sg Nom) LINK NOT *-1 CC BARRIER NPNHA OR S-BOUNDARY) ;
SELECT:r60 (V 2Sg) IF (*-1 ("tú" Pron Pers Sg Nom) BARRIER NOT-ADV);
# Present plural
SELECT:r61 (V Pl) IF (-1 (N Pl Nom));
# V + Refl
SELECT:r62 ("seg" Refl) IF (-1 Inf OR 3Sg OR Pl) ;
# Accusative
# ==========
REMOVE:r63 Nom IF (*-1 AUX OR MODV LINK -1 CC OR Nom BARRIER NPNH)(1 Inf);
# Genitive
# ========
# Genitive is marginal in Faroese. The strategy should be
# 1. Write rules selecting genitive. (such rules are still forthcoming)
SELECT:TILRULE Gen IF (-1 ("til"))(0 (N Indef) OR (Prop) OR Pron);
SELECT:r64 Gen IF (*-1 ACCGENPREP BARRIER NPNHA)(NOT 0 Acc);
# 2. Remove the remaining genitives.
REMOVE:r65 Gen IF (NOT *-1 ACCGENPREP BARRIER NPNHA);
# Pronoun disambiguation
# =======================
REMOVE:r66 ("hannur") IF (0 ("hann" Nom))(1 (V 3Sg));
## Han var her.
# VP disambiguation
REMOVE:r113 V IF (-1 (Det Nom))(0 (N Nom));
# Ordinals
REMOVE:r114 (A Sg) IF (1 (Num Sg));
## fyrstu tríggjar mánðirnar.
# Coordination
SELECT Prt IF (-2C Prt)(-1 CC);
SELECT Prs IF (-2C Prs)(-1 CC);
SELECT Imp IF (-2C Imp)(-1 CC);
SELECT Prt IF (2C Prt)(1 CC);
SELECT Prs IF (2C Prs)(1 CC);
SELECT Imp IF (2C Imp)(1 CC);
SELECT A IF (0 (A $$GENDER $$NAGD))(-1 CC)(-2 (A $$GENDER $$NAGD));
# Substituting tags
SUBSTITUTE:sumPr (CS) (Pr) TARGET ("sum") (NOT -1 BOS OR COMMA);
# Syntactic disambiguation
# ========================
# Syntax tags
LIST @ = @SUBJ> ;
LIST @ = @OBJ> ;
LIST @IOBJ> = @IOBJ> ;
LIST @>N = @>N ;
LIST @N< = @N< ;
LIST @ = @SPRED> ;
LIST @VAUX = @VAUX ;
LIST @VMAIN = @VMAIN ;
LIST @ADVL = @ADVL ;
LIST @P< = @P< ;
LIST @CC = @CC ;
LIST @CS = @CS ;
LIST @APP = @APP ;
LIST @HNOUN = @HNOUN ;
LIST @Pron< = @Pron< ;
LIST @X = @X ;
LIST SYNTAG = (@CC) (@CS) (@) (@) (@) (@>N) (@N<) (@) (@VAUX) (@VMAIN) (@ADVL) (@P<) (@APP) (@HNOUN) ;
# ======== #
SECTION #
# ======== #
MAP (@INTERJ) TARGET Interj ;
ADD:r67 (@CC) TARGET CC ;
ADD:r68 (@CS) TARGET CS ;
MAP:r69 (@VAUX) TARGET AUX + VFIN IF (0* VINFIN BARRIER CS OR CC);
MAP:r70 (@VMAIN) TARGET V ;
#MAP (@VMAIN) TARGET VFIN IF (NEGATE 0* VFIN BARRIER CS OR CLB);
ADD:r71 (@N) TARGET Num + $$NAGD IF (1 N + $$NAGD);
MAP (@>N) TARGET Num + $$NAGD IF (1 A + $$NAGD)(2 N + $$NAGD);
MAP:r72 (@SUBJ>) TARGET ("tú" Pron Pers Sg Nom) IF (*1 (V 2Sg) BARRIER VFIN);
MAP:r73 (@) TARGET NOMINALHEAD + Sg + Nom IF (*1 (V 3Sg) OR (V Sg) BARRIER S-BOUNDARY);
MAP:r76 (@SUBJ>) TARGET NOMINALHEAD + Pl + Nom IF (*1 (V Pl));
MAP:r77 (@N) TARGET Det + $$GENDER + $$NAGD IF (+1 N + $$GENDER + $$NAGD BARRIER NPNHA);
#MAP (@P<) TARGET Acc IF
MAP:r85 (@>N) TARGET (N Gen) IF (*1 N BARRIER V OR Adv);
MAP:r86 (@>N) TARGET Det IF (*1 N BARRIER V OR Adv OR (";"));
MAP:r87 (@>N) TARGET (Det) IF (*1 N BARRIER V OR Adv);
MAP:r88 (@>N) TARGET A + $$NAGD OR Det + $$NAGD IF (*1 N + $$NAGD OR Num + $$NAGD BARRIER NPNHA);
MAP (@>N) TARGET Num IF (*1 N BARRIER NPNHA);
MAP:r89 (@VFIN) TARGET (V Prs) OR (V Prt) OR (V Imp);
MAP:r90 (@) TARGET Pr OR Adv (NEGATE *-1 VFIN BARRIER CS)(*1 VFIN);
MAP:r92 (@N<) TARGET Poss IF (0 $$NAGD)(-1 N + $$NAGD);
MAP:advl (@ADVL) TARGET Adv OR Pr ;
MAP:r93 (@N<) TARGET N IF (0 $$NAGD)(-1 (N $$NAGD));
MAP:r94 (@ ;
LIST (@SUBJ) = @ ;
LIST (@OBJ) = @ ;
LIST (@IOBJ) = @ ;
# No-syntax early
REMOVE:r97 (@X) ;
REMOVE:r98 (@SPRED) IF (NOT *0 (@SUBJ));#(NOT *1 (@SUBJ));
REMOVE:r99 (@OBJ) IF (*-1 Pr BARRIER NPNHA);
REMOVE:r100 (@IOBJ) IF (*-1 Pr BARRIER NPNHA);
REMOVE:r101 (@P<) IF (*-1 BOS OR (N Acc) OR (N Dat) OR (N Nom) OR V OR CLB OR CS BARRIER Pr);
REMOVE:r102 (@>N) IF (0C N)(*-1 Pr BARRIER NPNHA);
SELECT:r103 (Sg @));
SELECT:r106 (@SUBJ>) IF (-1 CS)(1 VFIN);
## sum hann hevði í lummanum.
# NPs
REMOVE (@>N) IF (0 (Gen @N<))(-1 N);
SELECT (@N<) IF (0 (Poss @N<))(-1 N)(NEGATE 1 PRE-N OR N);
SELECT (N Sg) IF (1C Poss + Sg + @N<);
SELECT (N Pl) IF (1C Poss + Pl + @N<);
SELECT (Poss $$NAGD) IF (-1C N + $$NAGD)(0 (@N<));
# Topicalised non-subjects
# Indirect objects
REMOVE (@))(NEGATE *1 (@OBJ>) BARRIER S-BOUNDARY OR CC OR V);
SELECT (@N) IF (1C N + Nom);
SELECT (Acc @>N) IF (1C N + Acc);
SELECT (Dat @>N) IF (1C N + Dat);
REMOVE:r115 (A @>N) IF (0 V)(NOT 1 N OR A);
# Alternatively Demand Nom to the left or Num to the right.
# Postsyntactical verbal dis
SELECT:r116 VFIN IF (NEGATE 0* VFIN);
SELECT (3Sg) IF (-1C (Sg @SUBJ>));
SELECT:r117 CC IF (-1 BOS)(1C (@SUBJ));
## Men tað var hált.
## Tað var, sum vóru tey sett.
REMOVE:TEST 1Sg IF (-1 (@SUBJ>))(0 3Sg);
REMOVE:TEST 1Sg IF (*1 (@