mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-28 20:36:29 -06:00
(Som) WIP: subordinate clauses
This commit is contained in:
+20
-25
@@ -10,14 +10,13 @@ lin
|
||||
-- : NP -> VP -> Cl
|
||||
PredVP = predVP ;
|
||||
|
||||
{-
|
||||
-- : SC -> VP -> Cl ; -- that she goes is good
|
||||
PredSCVP sc vp = ;
|
||||
-- : SC -> VP -> Cl ; -- that she goes is good (Sayeed p. 94)
|
||||
--PredSCVP sc vp = ;
|
||||
|
||||
--2 Clauses missing object noun phrases
|
||||
-- : NP -> VPSlash -> ClSlash ;
|
||||
SlashVP np vps = ;
|
||||
|
||||
SlashVP = predVPSlash ;
|
||||
{-
|
||||
-- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today
|
||||
AdvSlash cls adv = cls ** insertAdv adv cls ;
|
||||
|
||||
@@ -26,17 +25,17 @@ lin
|
||||
-- : NP -> VS -> SSlash -> ClSlash ; -- (whom) she says that he loves
|
||||
-- SlashVS np vs ss = {} ;
|
||||
|
||||
|
||||
-}
|
||||
-- : Temp -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
|
||||
UseSlash t p cls = UseCl t p (PredVP he_Pron cls) ;
|
||||
UseSlash t p cls = {s = \\b => t.s ++ p.s ++ cls.s ! b ! t.t ! t.a ! p.p} ;
|
||||
|
||||
--2 Imperatives
|
||||
-- : VP -> Imp ;
|
||||
ImpVP vp = { s = linVP vp } ;
|
||||
--ImpVP vp = { s = linVP vp } ;
|
||||
|
||||
--2 Embedded sentences
|
||||
|
||||
|
||||
{-
|
||||
-- : S -> SC ;
|
||||
EmbedS s = { } ;
|
||||
|
||||
@@ -50,35 +49,31 @@ lin
|
||||
|
||||
-}
|
||||
-- : Temp -> Pol -> Cl -> S ;
|
||||
UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! False ! t.t ! t.a ! p.p} ;
|
||||
UseCl t p cl = {s = \\b =>
|
||||
let cltyp = if_then_else ClType b Subord Statement in
|
||||
t.s ++ p.s ++ cl.s ! cltyp ! t.t ! t.a ! p.p
|
||||
} ;
|
||||
|
||||
-- : Temp -> Pol -> QCl -> QS ;
|
||||
UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p} ;
|
||||
|
||||
{-
|
||||
-- : Temp -> Pol -> RCl -> RS ;
|
||||
UseRCl t p cl = { s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p } ;
|
||||
UseRCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p} ;
|
||||
|
||||
-- An adverb can be added to the beginning of a sentence, either with comma ("externally")
|
||||
-- or without:
|
||||
|
||||
-- : Adv -> S -> S ; -- then I will go home
|
||||
AdvS = advS ;
|
||||
|
||||
-- : Adv -> S -> S ; -- next week, I will go home
|
||||
ExtAdvS adv = advS {s = adv.s ++ SOFT_BIND ++ ","} ;
|
||||
-- AdvS : Adv -> S -> S ; -- then I will go home
|
||||
-- ExtAdvS : Adv -> S -> S ; -- next week, I will go home
|
||||
AdvS, ExtAdvS = advS ;
|
||||
|
||||
-- There's an SubjS already in AdverbSom -- should this be deprecated?
|
||||
-- : S -> Subj -> S -> S ;
|
||||
SSubjS s1 subj s2 = AdvS (AS.SubjS subj s2) s1 ;
|
||||
|
||||
-- A sentence can be modified by a relative clause referring to its contents.
|
||||
|
||||
-- : S -> RS -> S ; -- she sleeps, which is good
|
||||
RelS sent rs = advS { s = rs.s ! Sg3 Masc ++ SOFT_BIND ++ ","} sent ;
|
||||
-- RelS sent rs = advS {s = rs.s ! Sg3 Masc ++ SOFT_BIND ++ ","} sent ;
|
||||
|
||||
oper
|
||||
|
||||
advS : Adv -> SS -> SS = \a,s -> {s = a.s ++ s.s} ;
|
||||
-}
|
||||
advS : Adverb -> S -> S = \a,s -> s ** {s = \\b =>
|
||||
linAdv a ++ s.s ! b} ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user