(Kor) Add inflection table to RCl and RS, change other funs accordingly

This commit is contained in:
Inari Listenmaa
2020-04-06 18:19:20 +02:00
parent ee3adec428
commit ac1501c942
6 changed files with 33 additions and 24 deletions

View File

@@ -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.

View File

@@ -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
} ;

View File

@@ -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
} ;

View File

@@ -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 } ;
} ;
}

View File

@@ -321,7 +321,7 @@ oper
QClause : Type = Clause ;
RClause : Type = {s : Tense => Anteriority => Polarity => Str} ;
RClause : Type = Clause ;
Sentence : Type = {s : ClType => Str} ;

View File

@@ -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 "" ;