forked from GitHub/gf-rgl
(Som) Add IComp + related functions
This commit is contained in:
@@ -23,7 +23,7 @@ concrete CatSom of Cat = CommonX - [Adv,IAdv] ** open ResSom, Prelude in {
|
||||
-- Constructed in QuestionSom.
|
||||
|
||||
QCl = ResSom.QClause ;
|
||||
IComp = SS ; -- interrogative complement of copula e.g. "where"
|
||||
IComp = ResSom.Complement ; -- interrogative complement of copula e.g. "where"
|
||||
IDet = ResSom.Determiner ; -- interrogative determiner e.g. "how many"
|
||||
IQuant = ResSom.Quant ; -- interrogative quantifier e.g. "which"
|
||||
IP = ResSom.NounPhrase ** {contractSTM : Bool} ; -- like NP but may contract with STM
|
||||
|
||||
@@ -58,9 +58,12 @@ concrete QuestionSom of Question = CatSom ** open
|
||||
in cl2qcl True cl ; -- True because we handle STM placement in cl.stm
|
||||
|
||||
-- : IComp -> NP -> QCl ; -- where is John?
|
||||
-- Saeed p. 212 Ninkii ay raaceen waa ayo? man-the they accompanied DM who
|
||||
-- 'The man they travelled with is who?'
|
||||
-- QuestIComp icomp np = ;
|
||||
QuestIComp icomp np =
|
||||
let cls = predVP np (VS.UseComp icomp) ;
|
||||
-- cl = cls ** { -- TODO: neg. questions
|
||||
-- stm : ClType=>Polarity=>Str = \\_,_ => "waa"
|
||||
-- }
|
||||
in cl2sentence False cls ; -- copula is dropped and STM is waa
|
||||
|
||||
-- Interrogative pronouns can be formed with interrogative
|
||||
-- determiners, with or without a noun.
|
||||
@@ -93,10 +96,15 @@ concrete QuestionSom of Question = CatSom ** open
|
||||
-- pronouns.
|
||||
|
||||
-- : IAdv -> IComp ;
|
||||
--CompIAdv iadv = iadv ; -- where (is it)
|
||||
|
||||
CompIAdv iadv = { -- where (is it)
|
||||
comp = \\_ => <[], iadv.s> ;
|
||||
stm = Waa NoCopula ;
|
||||
} ;
|
||||
-- : IP -> IComp ;
|
||||
--CompIP ip = { s = ip.s ! Abs } ; -- who (is it)
|
||||
CompIP ip = { -- who (is it)
|
||||
comp = \\_ => <[], ip.s ! Abs> ;
|
||||
stm = Waa NoCopula ;
|
||||
} ;
|
||||
|
||||
{-
|
||||
-- More $IP$, $IDet$, and $IAdv$ are defined in $Structural$.
|
||||
|
||||
Reference in New Issue
Block a user