mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
adapted most of the tags to UD parsebank notation in TagFin
This commit is contained in:
@@ -59,7 +59,7 @@ oper
|
|||||||
sANGen : (SAForm => Str) -> Str = \a -> a ! 0 ;
|
sANGen : (SAForm => Str) -> Str = \a -> a ! 0 ;
|
||||||
|
|
||||||
mkAdj : (hyva,parempi,paras : SNoun) -> (hyvin,paremmin,parhaiten : Str) -> {s : Degree => SAForm => Str ; h : Harmony} = \h,p,ps,hn,pn,ph -> {
|
mkAdj : (hyva,parempi,paras : SNoun) -> (hyvin,paremmin,parhaiten : Str) -> {s : Degree => SAForm => Str ; h : Harmony} = \h,p,ps,hn,pn,ph -> {
|
||||||
s = \\degr,aform => tagWord (adjectiveTag ++ tagDegree degr) (h.s ! 0) ; ---- where is AForm added?
|
s = \\degr,aform => tagWord (adjectiveTag ++ tagDegree degr) (h.s ! 0) ; ---- AForm ? ; order diff in UD
|
||||||
h = h.h --- not needed
|
h = h.h --- not needed
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -7,41 +7,54 @@ oper
|
|||||||
|
|
||||||
mkTag = overload {
|
mkTag = overload {
|
||||||
mkTag : Str -> Tag = \t -> "+" + t ;
|
mkTag : Str -> Tag = \t -> "+" + t ;
|
||||||
mkTag : Str -> Str -> Tag = \t,v -> t ++ "=" + v ;
|
mkTag : Str -> Str -> Tag = \t,v -> t + "=" + v ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
consTag = overload {
|
||||||
|
consTag : (_,_ : Str) -> Tag = \t,u -> t + "|" + u ;
|
||||||
|
consTag : (_,_,_ : Str) -> Tag = \t,u,v -> t + "|" + u + "|" + v ;
|
||||||
|
consTag : (_,_,_,_ : Str) -> Tag = \t,u,v,x -> t + "|" + u + "|" + v + "|" + x ;
|
||||||
|
consTag : (_,_,_,_,_ : Str) -> Tag = \t,u,v,x,y -> t + "|" + u + "|" + v + "|" + x + "|" + y ;
|
||||||
|
consTag : (_,_,_,_,_,_ : Str) -> Tag = \t,u,v,x,y,z -> t + "|" + u + "|" + v + "|" + x + "|" + y + "|" + z ;
|
||||||
|
} ;
|
||||||
|
|
||||||
tagNForm : NForm -> Str = \nf -> case nf of {
|
tagNForm : NForm -> Str = \nf -> case nf of {
|
||||||
NCase n c => tagNumber n ++ tagCase c ;
|
NCase n c => consTag (tagCase c) (tagNumber n) ;
|
||||||
NComit => tagNumber Pl ++ mkTag "Com" ;
|
NComit => consTag (mkTag "Case" "Com") (tagNumber Pl) ;
|
||||||
NInstruct => tagNumber Pl ++ mkTag "Ins" ;
|
NInstruct => consTag (mkTag "Case" "Ins") (tagNumber Pl) ;
|
||||||
NPossNom n => tagNumber n ++ tagCase Nom ;
|
NPossNom n => consTag (tagCase Nom) (tagNumber n) ;
|
||||||
NPossGen n => tagNumber n ++ tagCase Gen ;
|
NPossGen n => consTag (tagCase Gen) (tagNumber n) ;
|
||||||
NPossTransl n => tagNumber n ++ tagCase Transl ;
|
NPossTransl n => consTag (tagCase Transl) (tagNumber n) ;
|
||||||
NPossIllat n => tagNumber n ++ tagCase Illat ;
|
NPossIllat n => consTag (tagCase Illat) (tagNumber n) ;
|
||||||
NCompound => mkTag "Comp"
|
NCompound => mkTag "Comp" ----
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
tagAForm : AForm -> Str = \af -> case af of {
|
tagAForm : AForm -> Str = \af -> case af of {
|
||||||
AN nf => tagNForm nf ;
|
AN nf => tagNForm nf ;
|
||||||
AAdv => mkTag "Adv"
|
AAdv => adverbTag
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
tagVForm : VForm -> Str = \vf -> case vf of {
|
tagVForm : VForm -> Str = \vf -> case vf of {
|
||||||
Inf infform => tagInfForm infform ;
|
Inf infform => tagInfForm infform ;
|
||||||
Presn num pers => activeTag ++ presentTag ++ tagNumber num ++ tagPerson pers ;
|
Presn num pers => consTag indicativeTag (tagNumber num) (tagPerson pers) presentTag finiteTag activeTag ;
|
||||||
Impf num pers => activeTag ++ imperfectTag ++ tagNumber num ++ tagPerson pers ;
|
Impf num pers => consTag indicativeTag (tagNumber num) (tagPerson pers) pastTag finiteTag activeTag ;
|
||||||
Condit num pers => activeTag ++ conditionalTag ++ tagNumber num ++ tagPerson pers ;
|
Condit num pers => consTag conditionalTag (tagNumber num) (tagPerson pers) finiteTag activeTag ;
|
||||||
Potent num pers => activeTag ++ potentialTag ++ tagNumber num ++ tagPerson pers ;
|
Potent num pers => consTag potentialTag (tagNumber num) (tagPerson pers) finiteTag activeTag ;
|
||||||
PotentNeg => activeTag ++ potentialTag ++ negativeTag ;
|
PotentNeg => consTag connegativeTag potentialTag finiteTag activeTag ;
|
||||||
Imper num => activeTag ++ imperativeTag ++ tagNumber num ++ tagPerson P2 ;
|
Imper num => consTag imperativeTag (tagNumber num) (tagPerson P2) finiteTag activeTag ;
|
||||||
ImperP3 num => activeTag ++ imperativeTag ++ tagNumber num ++ tagPerson P3 ;
|
ImperP3 num => consTag imperativeTag (tagNumber num) (tagPerson P3) finiteTag activeTag ;
|
||||||
ImperP1Pl => activeTag ++ imperativeTag ++ tagNumber Pl ++ tagPerson P1 ;
|
ImperP1Pl => consTag imperativeTag (tagNumber Pl) (tagPerson P3) finiteTag activeTag ;
|
||||||
ImpNegPl => activeTag ++ imperativeTag ++ negativeTag ++ tagNumber Pl ;
|
ImpNegPl => consTag connegativeTag imperativeTag finiteTag ; ---- Active not in UD??
|
||||||
PassPresn bool => passiveTag ++ presentTag ++ tagBool bool ;
|
PassPresn True => consTag indicativeTag presentTag finiteTag passiveTag ;
|
||||||
PassImpf bool => passiveTag ++ presentTag ++ tagBool bool ;
|
PassPresn False => consTag connegativeTag indicativeTag presentTag finiteTag passiveTag ;
|
||||||
PassCondit bool => passiveTag ++ imperfectTag ++ tagBool bool ;
|
PassImpf True => consTag indicativeTag pastTag finiteTag passiveTag ;
|
||||||
PassPotent bool => passiveTag ++ potentialTag ++ tagBool bool ;
|
PassImpf False => consTag connegativeTag indicativeTag pastTag finiteTag passiveTag ;
|
||||||
PassImper bool => passiveTag ++ imperativeTag ++ tagBool bool ;
|
PassCondit True => consTag conditionalTag finiteTag passiveTag ;
|
||||||
|
PassCondit False => consTag connegativeTag conditionalTag finiteTag passiveTag ;
|
||||||
|
PassPotent True => consTag potentialTag finiteTag passiveTag ;
|
||||||
|
PassPotent False => consTag connegativeTag potentialTag finiteTag passiveTag ;
|
||||||
|
PassImper True => consTag imperativeTag finiteTag passiveTag ;
|
||||||
|
PassImper False => consTag connegativeTag imperativeTag finiteTag passiveTag ;
|
||||||
PastPartAct af => participleTag ++ activeTag ++ pastTag ++ tagAForm af ;
|
PastPartAct af => participleTag ++ activeTag ++ pastTag ++ tagAForm af ;
|
||||||
PastPartPass af => participleTag ++ activeTag ++ pastTag ++ tagAForm af ;
|
PastPartPass af => participleTag ++ activeTag ++ pastTag ++ tagAForm af ;
|
||||||
PresPartAct af => participleTag ++ activeTag ++ presentTag ++ tagAForm af ;
|
PresPartAct af => participleTag ++ activeTag ++ presentTag ++ tagAForm af ;
|
||||||
@@ -70,57 +83,58 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
nounTag = mkTag "N" ;
|
nounTag = mkTag "NOUN" ;
|
||||||
adjectiveTag = mkTag "A" ;
|
adjectiveTag = mkTag "ADJ" ;
|
||||||
verbTag = mkTag "V" ;
|
verbTag = mkTag "VERB" ;
|
||||||
adverbTag = mkTag "Adv" ;
|
adverbTag = mkTag "ADV" ;
|
||||||
|
|
||||||
activeTag = mkTag "Act" ;
|
activeTag = mkTag "Voice" "Act" ;
|
||||||
passiveTag = mkTag "Pass" ;
|
passiveTag = mkTag "Voice" "Pass" ;
|
||||||
|
|
||||||
imperativeTag = mkTag "Imp" ;
|
imperativeTag = mkTag "Mood" "Imp" ;
|
||||||
|
indicativeTag = mkTag "Mood" "Ind" ;
|
||||||
participleTag = mkTag "Part" ;
|
participleTag = mkTag "Part" ;
|
||||||
agentTag = mkTag "Agent" ;
|
agentTag = mkTag "Agent" ;
|
||||||
infinitiveTag = mkTag "Inf" ;
|
infinitiveTag = mkTag "Inf" ;
|
||||||
|
finiteTag = mkTag "VerbForm" "Fin" ;
|
||||||
|
|
||||||
negativeTag = mkTag "Neg" ;
|
connegativeTag = mkTag "Connegative" "Yes" ;
|
||||||
|
|
||||||
presentTag = mkTag "Pres" ;
|
presentTag = mkTag "Tense" "Pres" ;
|
||||||
imperfectTag = mkTag "Impf" ;
|
conditionalTag = mkTag "Mood" "Cnd" ;
|
||||||
conditionalTag = mkTag "Cond" ;
|
potentialTag = mkTag "Mood" "Pot" ;
|
||||||
potentialTag = mkTag "Pot" ;
|
pastTag = mkTag "Tense" "Past" ;
|
||||||
pastTag = mkTag "Past" ; -- for participles
|
|
||||||
|
|
||||||
tagCase : Case -> Tag = \c -> case c of {
|
tagCase : Case -> Tag = \c -> let k = "Case" in case c of {
|
||||||
Nom => mkTag "Nom" ;
|
Nom => mkTag k "Nom" ;
|
||||||
Gen => mkTag "Gen" ;
|
Gen => mkTag k "Gen" ;
|
||||||
Part => mkTag "Par" ;
|
Part => mkTag k "Par" ;
|
||||||
Transl => mkTag "Tra" ;
|
Transl => mkTag k "Tra" ;
|
||||||
Ess => mkTag "Ess" ;
|
Ess => mkTag k "Ess" ;
|
||||||
Iness => mkTag "Ine" ;
|
Iness => mkTag k "Ine" ;
|
||||||
Elat => mkTag "Ela" ;
|
Elat => mkTag k "Ela" ;
|
||||||
Illat => mkTag "Ill" ;
|
Illat => mkTag k "Ill" ;
|
||||||
Adess => mkTag "Ade" ;
|
Adess => mkTag k "Ade" ;
|
||||||
Ablat => mkTag "Abl" ;
|
Ablat => mkTag k "Abl" ;
|
||||||
Allat => mkTag "All" ;
|
Allat => mkTag k "All" ;
|
||||||
Abess => mkTag "Abe"
|
Abess => mkTag k "Abe"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
tagNumber : Number -> Tag = \n -> case n of {
|
tagNumber : Number -> Tag = \n -> let k = "Number" in case n of {
|
||||||
Sg => mkTag "Sg" ;
|
Sg => mkTag k "Sing" ;
|
||||||
Pl => mkTag "Pl"
|
Pl => mkTag k "Plur"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
tagDegree : Degree -> Tag = \n -> case n of {
|
tagDegree : Degree -> Tag = \n -> let d = "Degree" in case n of {
|
||||||
Posit => mkTag "Pos" ;
|
Posit => mkTag d "Pos" ;
|
||||||
Compar => mkTag "Com" ;
|
Compar => mkTag d "Cmp" ;
|
||||||
Superl => mkTag "Sup"
|
Superl => mkTag d "Sup"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
tagPerson : Person -> Tag = \p -> case p of {
|
tagPerson : Person -> Tag = \p -> let k = "Person" in case p of {
|
||||||
P1 => mkTag "Person1" ;
|
P1 => mkTag k "1" ;
|
||||||
P2 => mkTag "Person2" ;
|
P2 => mkTag k "2" ;
|
||||||
P3 => mkTag "Person3"
|
P3 => mkTag k "3"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
tagBool : Bool -> Tag = \b -> case b of {
|
tagBool : Bool -> Tag = \b -> case b of {
|
||||||
|
|||||||
Reference in New Issue
Block a user