mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
(Kor) Add inflection table to RCl and RS, change other funs accordingly
This commit is contained in:
@@ -8,8 +8,8 @@ concrete CatKor of Cat = CommonX ** open ResKor, Prelude in {
|
||||
-- Constructed in SentenceKor, and also in IdiomKor
|
||||
|
||||
S = ResKor.Sentence ;
|
||||
QS = SS ;
|
||||
RS = SS ;
|
||||
QS = SS ; -- Questions not implemented yet
|
||||
RS = ResKor.Sentence ;
|
||||
-- relative sentence. Tense and polarity fixed,
|
||||
-- but agreement may depend on the CN/NP it modifies.
|
||||
|
||||
|
||||
@@ -29,11 +29,11 @@ concrete ConjunctionKor of Conjunction =
|
||||
|
||||
|
||||
lincat
|
||||
[Adv],[AdV],[IAdv],[RS] = ConjSS ;
|
||||
[Adv],[AdV],[IAdv] = ConjSS ;
|
||||
lin
|
||||
BaseAdv, BaseAdV, BaseIAdv, BaseRS = baseSS ;
|
||||
ConsAdv, ConsAdV, ConsIAdv, ConsRS = consSS ;
|
||||
ConjAdv, ConjAdV, ConjIAdv, ConjRS = conjSS ;
|
||||
BaseAdv, BaseAdV, BaseIAdv = baseSS ;
|
||||
ConsAdv, ConsAdV, ConsIAdv = consSS ;
|
||||
ConjAdv, ConjAdV, ConjIAdv = conjSS ;
|
||||
|
||||
oper
|
||||
ConjSS : Type = SS ** {firstSS : ConjType => Str} ;
|
||||
@@ -71,20 +71,22 @@ oper
|
||||
mkFirstSS : SS -> ConjType => Str = \s ->
|
||||
\\conj => glue s.s (conjTable ! VStar ! conj) ;
|
||||
|
||||
|
||||
|
||||
lincat
|
||||
[S] = ResKor.Sentence ** {firstS : ConjType => Str} ;
|
||||
[S], [RS] = ResKor.Sentence ** {firstS : ConjType => Str} ;
|
||||
|
||||
lin
|
||||
BaseS s1 s2 = s2 ** {
|
||||
BaseS,BaseRS = \s1,s2 -> s2 ** {
|
||||
firstS = mkFirstS s1
|
||||
} ;
|
||||
|
||||
ConsS s ss = ss ** {
|
||||
ConsS,ConsRS = \s,ss -> ss ** {
|
||||
firstS = \\conj =>
|
||||
mkFirstS s ! conj ++ ss.firstS ! conj ;
|
||||
} ;
|
||||
|
||||
ConjS co ss = ss ** {
|
||||
ConjS,ConjRS = \co,ss -> ss ** {
|
||||
s = \\st => co.s1 ++ ss.firstS ! co.c ++ ss.s ! st
|
||||
} ;
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ concrete NounKor of Noun = CatKor ** open ResKor, Prelude in {
|
||||
|
||||
-- : CN -> RS -> CN ;
|
||||
RelCN cn rs = cn ** {
|
||||
rs = cn.rs ++ rs.s
|
||||
rs = cn.rs ++ rs.s ! Subord
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
@@ -3,21 +3,20 @@ concrete RelativeKor of Relative = CatKor ** open
|
||||
|
||||
lin
|
||||
-- : Cl -> RCl ; -- such that John loves her
|
||||
RelCl cl = {s = \\t,a,p => cl.s ! t ! a ! p ! Subord} ;
|
||||
RelCl = relSlash (ss "") ;
|
||||
|
||||
-- : RP -> VP -> RCl ;
|
||||
RelVP rp vp = {
|
||||
s = \\t,a,p => vp.adv
|
||||
++ vp.nObj
|
||||
++ vp.s ! VAttr p -- TODO no tenses yet in the grammar
|
||||
++ rp.s ;
|
||||
} ;
|
||||
RelVP rp vp = { -- TODO no tenses yet in the grammar
|
||||
s = \\t,a,p,cltyp =>
|
||||
rp.s ++ vp.adv ++ vp.nObj ++
|
||||
case cltyp of {
|
||||
WithConj => vp.s ! VStem ;
|
||||
_ => vp.s ! VAttr p } ;
|
||||
} ;
|
||||
|
||||
-- : RP -> ClSlash -> RCl ; -- whom John loves
|
||||
RelSlash rp cls = {
|
||||
s = \\t,a,p => cls.s ! t ! a ! p ! Subord
|
||||
++ rp.s ;
|
||||
} ;
|
||||
RelSlash = relSlash ;
|
||||
|
||||
|
||||
-- : RP ;
|
||||
IdRP = {s = ""} ;
|
||||
@@ -25,4 +24,12 @@ lin
|
||||
-- : Prep -> NP -> RP -> RP ; -- the mother of whom
|
||||
--FunRP prep np rp = {} ;
|
||||
|
||||
oper
|
||||
relSlash : SS -> ClSlash -> ResKor.RClause = \rp,cls -> {
|
||||
s = \\t,a,p,cltyp => rp.s ++
|
||||
case cltyp of {
|
||||
WithConj => cls.s ! t ! a ! p ! WithConj ;
|
||||
_ => cls.s ! t ! a ! p ! Subord } ;
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -321,7 +321,7 @@ oper
|
||||
|
||||
QClause : Type = Clause ;
|
||||
|
||||
RClause : Type = {s : Tense => Anteriority => Polarity => Str} ;
|
||||
RClause : Type = Clause ;
|
||||
|
||||
Sentence : Type = {s : ClType => Str} ;
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ lin
|
||||
UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Statement} ;
|
||||
|
||||
-- : Temp -> Pol -> RCl -> RS ;
|
||||
UseRCl t p rcl = {s = t.s ++ p.s ++ rcl.s ! t.t ! t.a ! p.p} ;
|
||||
UseRCl t p rcl = {s = \\c => t.s ++ p.s ++ rcl.s ! t.t ! t.a ! p.p ! c} ;
|
||||
|
||||
-- AdvS : Adv -> S -> S ; -- then I will go home
|
||||
AdvS = advS "" ;
|
||||
|
||||
Reference in New Issue
Block a user