N @>Num @>P @>Pron @ACT @ACT> @ADVL @ADVL> @APP @APP-ADVL< @APP-N< @APP-Num< @APP-Pron< @APP>Pron @CNP @CVP @FS-VFIN< @GOAL @GOAL> @HNOUN @INS @INS> @INTERJ @N< @Num< @OBJ @OBJ> @OPRED @OPRED> @P< @PCLE @Pron< @SPRED @SPRED> @SUBJ @SUBJ> @VOC ;
# 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"
"á" "æ" "ø" "å" "ö" "ä" ;
LIST CAP-INITIAL = "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
"Á" "Æ" "Ø" "Å" "Ö" "Ä" ;
# Tag sets
# ========
SETS
# ========
# Word or not
# -----------
LIST WORD = N V Ipc Interj Pron ;
# Verb sets
# ---------
LIST VFIN = (V 1Sg) (V 2Sg) (V 3Sg) (V 4Sg) (V 5Sg) (V 1Pl) (V 2Pl) (V 3Pl) (V 4Pl) (V 5Pl) (V 4Sg/Pl) (V 5Sg/Pl) ;
# Verbs and their complements
# - - - - - - - - - - - - - -
SET NOT-VERB = WORD - V ;
SET NOT-NOUN = WORD - N ;
SET NUMBERGENDER = (AN Sg) OR (AN Pl) OR (IN Sg) OR (IN Pl) OR (AN Obv) ;
# Here come the rules #
BEFORE-SECTIONS
SECTION
MAP:PrepNR @ TARGET N + Loc IF (1 Ipc BARRIER CLB) ;
##MAP @ Loc OR Ipc (*1 VFIN)(NOT 0 @P>) ;
##MAP @ADVL Loc OR Ipc (NOT 0 @) ;
##MAP @+FMAINV VFIN ;
#MAP:PRED @PRED TARGET V ;
MAP:PREDII @PRED-II TARGET V + II ;
MAP:PREDAI @PRED-AI TARGET V + AI ;
MAP:PREDTI @PRED-TI TARGET V + TI ;
MAP:PREDTA @PRED-TA TARGET V + TA ;
##MAP @N> (Pron Dem) (1 (Num) N) ;
##MAP @ TARGET Dem + AN + Sg IF (NOT 1 Obv)(1 N + AN + Sg BARRIER CLB) ;
MAP:DemNANPlR @ TARGET Dem + AN + Pl IF (NOT 1 Obv)(1 N + AN + Pl BARRIER CLB) ;
MAP:DemNANObvR @ TARGET Dem + AN + Obv IF (1 N + AN + Obv BARRIER CLB) ;
MAP:DemNINSgR @ TARGET Dem + IN + Sg IF (1 N + IN + Sg BARRIER CLB) ;
MAP:DemNINPlR @ TARGET Dem + IN + Pl IF (1 N + IN + Pl BARRIER CLB) ;
#êkoni and nouns
MAP:ekoniR @ TARGET AN + Sg IF (0 (".?êkonik"r))(1 N + AN + Sg OR Pron + AN + Sg) ;
MAP:ekoniR @ TARGET AN + Pl IF (0 (".?êkonik"r))(1 N + AN + Pl OR Pron + AN + Pl) ;
MAP:ekoniR @ TARGET AN + Obv IF (0 (".?êkoni"r))(1 N + AN + Obv OR Pron + AN + Obv) ;
MAP:ekoniR @ TARGET IN + Sg IF (0 (".?êkoni"r))(1 N + IN + Sg OR Pron + IN + Sg) ;
MAP:ekoniR @ TARGET IN + Pl IF (0 (".?êkoni"r))(1 N + IN + Pl OR Pron + IN + Pl) ;
MAP:NAMES @N> TARGET Prop IF (0 Prop)(1 Prop);
## Residential School
##ACTor and goal rules for 3 and 3’ animate nouns
MAP:TAACTorR @ TARGET N + AN + Sg IF (NOT 0 Loc)(NOT 0 Obv)(*1 TA + 3Sg BARRIER V OR CLB) ;
MAP:TAACTorR @ TARGET N + AN + Pl IF (NOT 0 Loc)(NOT 0 Obv)(*1 TA + 3Pl BARRIER V OR CLB) ;
MAP:TAGOAL3R @ TARGET N + AN + Sg IF (NOT 0 Loc)(NOT 0 Obv)(*1 TA + 3SgO BARRIER V OR CLB) ;
MAP:TAGOAL3R @ TARGET N + AN + Pl IF (NOT 0 Loc)(NOT 0 Obv)(*1 TA + 3PlO BARRIER V OR CLB) ;
MAP:TAGOALObvR @ TARGET N + Obv IF (NOT 0 Loc)(*1 TA + 4Sg/PlO BARRIER V OR CLB) ;
MAP:TAACTObvR @ TARGET N + Obv IF (NOT 0 Loc)(*1C TA + 4Sg/Pl BARRIER V OR CLB) ;
##MAP:AITIACTorR @ TARGET Interr IF (*1 AI OR TI + 3Pl OR 3Sg BARRIER CLB) ;
#TI and AI actors nouns
MAP:AITIACTSgR @ TARGET N + AN + Sg IF (NOT 0 Loc)(NOT 0 Obv)(*1 AI + 3Sg OR TI + 3Sg BARRIER V OR CLB) ;
MAP:AITIACTPlR @ TARGET N + AN + Pl IF (NOT 0 Loc)(*1 AI + 3Pl OR TI + 3Pl BARRIER V OR CLB) ;
MAP:AITIACTorR @ TARGET N + Obv IF (NOT 0 Loc)(*1C AI + 4Sg/Pl OR TI + 4Sg/Pl BARRIER V OR CLB) ;
#TI Goals INANIMATE NOUNS
MAP:TIGOAL @ TARGET N + IN IF (NOT 0 Loc)(*1 TI BARRIER V OR CLB) ;
#II actors
MAP:IIACTor3R @ TARGET N + IN + Sg IF (NOT 0 Loc)(*1 II + 3Sg BARRIER N + IN OR V OR CLB) ;
MAP:IIACTor3R @ TARGET N + IN + Pl IF (NOT 0 Loc)(*1 II + 3Pl BARRIER N + IN OR V OR CLB) ;
MAP:IIACTor4R @ TARGET N + IN + Px3Sg OR Px3Pl IF (NOT 0 Loc)(*1 II + 4Sg OR II + 4Pl BARRIER N + IN OR V OR CLB) ;
##PRONOMINAL ACTORS
MAP:AITITADem3SgACTR @) LINK (*-1 AI + 3Sg OR TI + 3Sg OR TA + 3Sg BARRIER V OR CLB)) ;
MAP:AITITADem3SgACTL @ACTOR> TARGET Pron + AN + Sg IF ((NOT 0 @) LINK (*1 AI + 3Sg OR TI + 3Sg OR TA + 3Sg BARRIER V OR CLB)) ;
MAP:AITITADem3PlACTR @) LINK (*-1 AI + 3Pl OR TI + 3Pl OR TA + 3Pl BARRIER V OR CLB)) ;
MAP:AITITADem3PlACTL @ACTOR> TARGET Pron + AN + Pl IF ((NOT 0 @) LINK (*1 AI + 3Pl OR TI + 3Pl OR TA + 3Pl BARRIER V OR CLB)) ;
MAP:AITITADemOBVACTR @) LINK (*-1C AI + 4Sg/Pl OR TI + 4Sg/Pl OR TA + 4Sg/Pl BARRIER V OR CLB)) ;
MAP:AITITADemOBVACTL @ACTOR> TARGET Pron + AN + Obv IF ((NOT 0 @) LINK (*1C AI + 4Sg/Pl OR TI + 4Sg/Pl OR TA + 4Sg/Pl BARRIER V OR CLB)) ;
MAP:IIPron3SgACTR @ TARGET Pron + IN + Sg IF (*1 II + 3Sg BARRIER V OR CLB) ;
MAP:IIPron3PlACTR @ TARGET Pron + IN + Pl IF (*1 II + 3Pl BARRIER V OR CLB) ;
MAP:AITITAPron1SgACTR @ TARGET Pron + 1Sg IF (*1 V + 1Sg BARRIER V OR CLB) ;
MAP:AITITAPron1PlACTR @ TARGET Pron + 1Pl IF (*1 V + 1Pl BARRIER V OR CLB) ;
MAP:AITITAPron2SgACTR @ TARGET Pron + 2Sg IF (*1 V + 2Sg BARRIER V OR CLB) ;
MAP:AITITAPron2PlACTR @ TARGET Pron + 2Pl IF (*1 V + 2Pl BARRIER V OR CLB) ;
MAP:AITITAPron12PlACTR @ TARGET Pron + 12Pl IF (*1 V + 12Pl BARRIER V OR CLB) ;
MAP:AITITAPron3SgACTR @ TARGET Pron + 3Sg IF (*1 AI + 3Sg OR TI + 3Sg OR TA + 3Sg BARRIER V OR CLB) ;
MAP:AITITAPron3PlACTR @ TARGET Pron + 3Pl IF (*1 AI + 3Pl OR TI + 3Pl OR TA + 3Pl BARRIER V OR CLB) ;
##PRONOMINAL GOALS
MAP:TIPron3GOALR @ TARGET Dem + IN IF (*1 TI BARRIER V OR CLB) ;
MAP:TAPron1SgGOALR @ TARGET Pron + 1Sg IF (*1 TA + 1SgO BARRIER V OR CLB) ;
MAP:TAPron1PlGOALR @ TARGET Pron + 1Pl IF (*1 TA + 1PlO BARRIER V OR CLB) ;
MAP:TAPron2SgGOALR @ TARGET Pron + 2Sg IF (*1 TA + 2SgO BARRIER V OR CLB) ;
MAP:TAPron2PlGOALR @ TARGET Pron + 2Pl IF (*1 TA + 2PlO BARRIER V OR CLB) ;
MAP:TAPron12PlGOALR @ TARGET Pron + 12Pl IF (*1 TA + 12PlO BARRIER V OR CLB) ;
MAP:TAPron3SgGOALR @ TARGET Pron + Dem + AN + Sg IF (NOT 0 Obv LINK *1 TA + 3SgO BARRIER V OR CLB) ;
MAP:TAPron3PlGOALR @ TARGET Pron + Dem + AN + Pl IF (NOT 0 Obv LINK *1 TA + 3PlO BARRIER V OR CLB) ;
MAP:TAPron3SgGOALR @ TARGET Pron + Pers + 3Sg IF (NOT 0 Obv LINK *1 TA + 3SgO BARRIER V OR CLB) ;
MAP:TAPron3PlGOALR @ TARGET Pron + Pers + 3Pl IF (NOT 0 Obv LINK *1 TA + 3PlO BARRIER V OR CLB) ;
MAP:TAObvPronGOALR @ TARGET Pron + Obv IF (*1C TA + 4Sg/PlO BARRIER V OR CLB) ;
##TEMPORAL NOUNS
##MAP:TEMPORALN @ TARGET TEMPORALN IF (*1 AI OR TI OR TA BARRIER CLB) ;
##INSTRUMENTAL NOUNS
##MAP:INSNOUN @ TARGET N IF (NOT 0 ABSN LINK *1 AI OR TI OR TA BARRIER CLB) (NOT 0 Prop) (NOT 0 @GOAL>);
##OBLIQUES
MAP:OBL @ TARGET N + IN IF (NOT 0 Loc)(*1 TA OR AI BARRIER V OR CLB) ;
MAP:OBL @ TARGET N + AN + Sg IF (NOT 0 Loc)(*1 AI + 3Pl OR TI + 3Pl OR AI + non3 OR TI + non3 BARRIER V OR CLB) ;
MAP:OBL @OBL> TARGET N + AN + Pl IF (NOT 0 Loc)(*1 AI + 3Sg OR TI + 3Sg OR AI + non3 OR TI + non3 BARRIER V OR CLB) ;
##MAP @? (?) ;
##MAP @?? (*) (NOT 0 CLB) ;
REMOVE:CleanupSyntax @?? IF (0 SYNTAG);
AFTER-SECTIONS
#=====#
END #
#=====#