mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 08:58:55 -06:00
fix word order of question
This commit is contained in:
@@ -56,7 +56,7 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in {
|
|||||||
|
|
||||||
DetNP det = {
|
DetNP det = {
|
||||||
-- s = case det.hasNum of {True => \\_ => det.s ; _ => \\c => det.sp ! c} ;
|
-- s = case det.hasNum of {True => \\_ => det.s ; _ => \\c => det.sp ! c} ;
|
||||||
s = det.sp ! Neutr ! False ;
|
s = \\c => det.sp ! Neutr ! False ! c ++ "whatevr" ;
|
||||||
a = agrP3 det.n
|
a = agrP3 det.n
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ concrete CatMay of Cat = CommonX ** open ResMay, Prelude in {
|
|||||||
QCl = ResMay.Clause ;
|
QCl = ResMay.Clause ;
|
||||||
IComp = SS ; -- interrogative complement of copula e.g. "where"
|
IComp = SS ; -- interrogative complement of copula e.g. "where"
|
||||||
IDet = ResMay.Determiner ; -- interrogative determiner e.g. "how many"
|
IDet = ResMay.Determiner ; -- interrogative determiner e.g. "how many"
|
||||||
IQuant = ResMay.Quant ; -- interrogative quantifier e.g. "which"
|
IQuant = ResMay.IQuant ; -- interrogative quantifier e.g. "which"
|
||||||
IP = ResMay.NounPhrase ; -- interrogative pronoun e.g. "who"
|
IP = ResMay.IPhrase ; -- interrogative pronoun e.g. "who"
|
||||||
|
|
||||||
--2 Subord clauses and pronouns
|
--2 Subord clauses and pronouns
|
||||||
|
|
||||||
|
|||||||
@@ -8,13 +8,24 @@ concrete QuestionMay of Question = CatMay ** open
|
|||||||
-- determiners, with or without a noun.
|
-- determiners, with or without a noun.
|
||||||
lin
|
lin
|
||||||
-- : IDet -> CN -> IP ; -- which five songs
|
-- : IDet -> CN -> IP ; -- which five songs
|
||||||
IdetCN idet cn = NM.DetCN idet cn ;
|
IdetCN idet cn = NM.DetCN idet cn ** {sp = idet.sp} ;
|
||||||
|
|
||||||
-- : IDet -> IP ; -- which five
|
-- : IDet -> IP ; -- which five
|
||||||
IdetIP idet = NM.DetNP idet ;
|
IdetIP idet = NM.DetNP idet ** {sp = idet.sp};
|
||||||
|
|
||||||
-- : IQuant -> Num -> IDet ; -- which (five)
|
-- : IQuant -> Num -> IDet ; -- which (five)
|
||||||
IdetQuant = NM.DetQuant ;
|
IdetQuant iquant num = iquant ** {
|
||||||
|
pr = num.s ++ case iquant.isPre of {True => iquant.s ; False => [] } ;
|
||||||
|
-- if isPre is True, then: "berapa kucing"
|
||||||
|
s = case iquant.isPre of { False => iquant.s ; True => [] };
|
||||||
|
-- if isPre is False, use s: "kucing berapa"
|
||||||
|
n = num.n
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- : IP -> ClSlash -> QCl ; -- whom does John love
|
||||||
|
QuestSlash ip cls = cls ** {
|
||||||
|
pred = \\vf,pol => cls.pred ! vf ! pol ++ ip.s ! Bare
|
||||||
|
} ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
lin
|
lin
|
||||||
@@ -24,9 +35,6 @@ lin
|
|||||||
-- : IP -> VP -> QCl ;
|
-- : IP -> VP -> QCl ;
|
||||||
QuestVP ip vp =
|
QuestVP ip vp =
|
||||||
|
|
||||||
-- : IP -> ClSlash -> QCl ; -- whom does John love
|
|
||||||
QuestSlash ip cls =
|
|
||||||
|
|
||||||
-- : IAdv -> Cl -> QCl ; -- why does John walk
|
-- : IAdv -> Cl -> QCl ; -- why does John walk
|
||||||
QuestIAdv iadv cls =
|
QuestIAdv iadv cls =
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,10 @@ oper
|
|||||||
empty : Str ; -- need to avoid GF being silly. See https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#metavariables-or-those-question-marks-that-appear-when-parsing
|
empty : Str ; -- need to avoid GF being silly. See https://inariksit.github.io/gf/2018/08/28/gf-gotchas.html#metavariables-or-those-question-marks-that-appear-when-parsing
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
IPhrase : Type = NounPhrase ** {
|
||||||
|
sp : NForm => Str ; -- standalone berapa banyak kucing
|
||||||
|
} ;
|
||||||
|
|
||||||
emptyNP : NounPhrase = {
|
emptyNP : NounPhrase = {
|
||||||
s = \\_ => [] ;
|
s = \\_ => [] ;
|
||||||
a = NotPron ;
|
a = NotPron ;
|
||||||
@@ -60,11 +64,15 @@ oper
|
|||||||
-- Det, Quant, Card, Ord
|
-- Det, Quant, Card, Ord
|
||||||
|
|
||||||
Quant : Type = {
|
Quant : Type = {
|
||||||
s : Str ;
|
s : Str ; -- quantifier in a context, eg. 'berapa (kucing)'
|
||||||
sp : NForm => Str ;
|
sp : NForm => Str ; -- a standalone, eg. '(kucing) berapa banyak'
|
||||||
poss : Possession ;
|
poss : Possession ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
IQuant : Type = Quant ** {
|
||||||
|
isPre : Bool ;
|
||||||
|
} ;
|
||||||
|
|
||||||
Determiner : Type = Quant ** {
|
Determiner : Type = Quant ** {
|
||||||
pr : Str ; -- prefix for numbers
|
pr : Str ; -- prefix for numbers
|
||||||
n : NumType ; -- number as in 5 (noun in singular), Sg or Pl
|
n : NumType ; -- number as in 5 (noun in singular), Sg or Pl
|
||||||
@@ -102,6 +110,18 @@ oper
|
|||||||
sp = \\_ => str
|
sp = \\_ => str
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
mkDet : Str -> Number -> Determiner = \str, num -> mkQuant str ** {
|
||||||
|
pr = "" ;
|
||||||
|
n = NoNum num ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkIdet : Str -> Number -> Bool -> Determiner = \str, num, isPre -> mkDet str num ** {
|
||||||
|
pr = case isPre of {True => str ; False => [] } ;
|
||||||
|
-- if isPre is True, then: "berapa kucing"
|
||||||
|
s = case isPre of { False => str ; True => [] };
|
||||||
|
|
||||||
|
} ;
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- Prepositions
|
-- Prepositions
|
||||||
|
|
||||||
|
|||||||
@@ -52,9 +52,9 @@ lin and_Conj = {s2 = "dan" ; s1 = [] ; n = Pl} ;
|
|||||||
-----------------
|
-----------------
|
||||||
-- *Det and Quant
|
-- *Det and Quant
|
||||||
|
|
||||||
{-
|
|
||||||
lin how8many_IDet = ;
|
|
||||||
|
|
||||||
|
lin how8many_IDet = mkIdet "berapa banyak" Pl True;
|
||||||
|
{-}
|
||||||
lin all_Predet = {s = ""} ;
|
lin all_Predet = {s = ""} ;
|
||||||
lin not_Predet = { s = "" } ;
|
lin not_Predet = { s = "" } ;
|
||||||
lin only_Predet = { s = "" } ;
|
lin only_Predet = { s = "" } ;
|
||||||
@@ -71,7 +71,7 @@ lin someSg_Det =
|
|||||||
lin no_Quant = -}
|
lin no_Quant = -}
|
||||||
lin that_Quant = mkQuant "itu" ;
|
lin that_Quant = mkQuant "itu" ;
|
||||||
lin this_Quant = mkQuant "ini" ;
|
lin this_Quant = mkQuant "ini" ;
|
||||||
lin which_IQuant = mkQuant "apa" ;
|
lin which_IQuant = mkQuant "apa" ** {isPre = False} ;
|
||||||
|
|
||||||
|
|
||||||
-----
|
-----
|
||||||
@@ -154,7 +154,10 @@ lin language_title_Utt = ss "bahasa Melayu" ;
|
|||||||
-------
|
-------
|
||||||
-- Verb
|
-- Verb
|
||||||
|
|
||||||
--lin have_V2 = mkV2 have_V ;
|
lin have_V2 = let have' : V2 = mkV2 "ada" in have' ** {
|
||||||
|
s = \\_ => "ada" ;
|
||||||
|
passive = "diadakan" ;
|
||||||
|
} ;
|
||||||
-- lin can8know_VV = can_VV ; -- can (capacity)
|
-- lin can8know_VV = can_VV ; -- can (capacity)
|
||||||
-- lin can_VV = mkVV "" ; -- can (possibility)
|
-- lin can_VV = mkVV "" ; -- can (possibility)
|
||||||
-- lin must_VV = mkVV "" ;
|
-- lin must_VV = mkVV "" ;
|
||||||
|
|||||||
Reference in New Issue
Block a user