[12:22:09] *** Quits: proteusguy (~proteusgu@cm-58-10-155-156.revip7.asianet.co.th) (Ping timeout: 258 seconds) [12:34:33] *** Joins: proteusguy (~proteusgu@cm-58-10-155-156.revip7.asianet.co.th) [14:02:33] *** Joins: bluemanblue (~manjaro-g@cgn85-194-8-119.bredband.comhem.se) [14:43:46] I think perhaps yeserday I was asking the wrong but still very relevant question. I apologize for belaboring this, but have literally been losing sleep over it :/ [14:43:46] I think if I rephrase everthing with the RP (that) instead of VP it becomes clear that Aarne isn't intending for a commutativity of the RP/IP with the verb, but just sentences like "who sees me" (e.g. questions without any "does" in the case of who questions). Either way, the does commutivity question is still relevant for the whom case just not the "that" case. I think there are multiple issues, and I'm obviously more looking [14:43:46] for heuristic guidance. [14:43:47] SlashV2 : NP -> V2 -> ClSlash ; -- I see [14:43:49] QuestVP : IP -> VP -> QCl ; -- who sees me [14:43:51] QuestSlash : IP -> ClSlash -> QCl ; -- whom do I see [14:43:53] RelVP : RP -> VP -> RCl ; -- that sees me [14:43:55] RelSlash : RP -> ClSlash -> RCl ; -- that I see [14:43:57] below are some gr tests [14:43:59] MiniExt> gr -tr (UseQCl ? ? ?) | l [14:44:01] UseQCl TSim PPos (QuestVP who_IP (ComplV2 find_V2 (UsePron i_Pron))) [14:44:03] does who find me [14:44:05] MiniExt> gr -tr (UseQCl ? ? ?) | l [14:44:07] UseQCl TAnt PNeg (QuestSlash who_IP (SlashV2 (UsePN john_PN) see_V2)) [14:44:09] has whom John not seen [14:44:13] MiniExt> gr -tr (UseQCl ? ? ?) | l [14:44:15] UseQCl TSim PPos (QuestSlash what_IP (SlashV2 (UsePron she_Pron) kill_V2)) [14:44:17] does what she kill [14:44:19] If the does is taken out then the verb is improperly conjugated (that she kills). I'm wondering if you'd recommend fixing this at the mkCl level (with some extra pattern matching that somehow works the fin and inf categories to evaluate properly, or at the evaluation (Use(Q)Cl) level? [14:44:23] below is the relevant code fragment , perhaps more readable on https://github.com/wmacmil/GF-Extension-Grammar [14:44:25] oper complV2 : Verb2 -> VerbPhrase = \v2 -> { [14:44:27] verb = verb2gverb v2 ; [14:44:29] compl = "" [14:44:31] } ; [14:44:33] lin [14:44:35] SlashV2 np v2 = mkCl np (complV2 v2) ; [14:44:37] QuestSlash ip clslash = { [14:44:39] subj = ip.s ! Acc ++ clslash.subj ; [14:44:43] compl = clslash.compl ; [14:44:45] verb = clslash.verb [14:44:47] }; [14:44:49] who_IP = mkPron "who" "whom" "whose" (Agr Sg Per3) ; [14:44:51] what_IP = mkPron "what" "what" "" (Agr Sg Per3) ; [14:44:53] Is my agreement correct here? ^^ [14:44:55] QuestVP ip vp = let npip = prToNP ip in ( mkCl npip vp) ; [14:44:57] where [14:44:59] oper mkCl : NounPhrase -> VerbPhrase -> Clause ; [14:45:01] oper mkCl np vp = { [14:45:03] subj = np.s ! Nom ; [14:45:05] compl = vp.compl ; [14:45:07] verb = \\plain,isPres => case of { [14:45:09] -- non-auxiliary verbs, negative/question present: "does (not) drink" [14:45:13] => {fin = "does" ; inf = vp.verb.s ! VF Inf} ; [14:45:15] => {fin = "do" ; inf = vp.verb.s ! VF Inf} ; [14:45:17] -- non-auxiliary, plain present ; auxiliary, all present: "drinks", "is (not)" [14:45:19] <_,_, True, Agr Sg Per1> => {fin = vp.verb.s ! PresSg1 ; inf = []} ; [14:45:21] <_,_, True, Agr Sg Per3> => {fin = vp.verb.s ! VF PresSg3 ; inf = []} ; [14:45:23] <_,_, True, _> => {fin = vp.verb.s ! PresPl ; inf = []} ; [14:45:25] -- all verbs, past: "has (not) drunk", "has (not) been" [14:45:27] <_,_, False,Agr Sg Per3> => {fin = "has" ; inf = vp.verb.s ! VF PastPart} ; [14:45:29] <_,_, False,_ > => {fin = "have" ; inf = vp.verb.s ! VF PastPart} [14:45:31] -- the negation word "not" is put in place in UseCl, UseQCl [14:45:33] } [14:45:35] } ; [14:53:19] *** Quits: bluemanblue (~manjaro-g@cgn85-194-8-119.bredband.comhem.se) (Ping timeout: 248 seconds) [15:45:04] *** Joins: bluemanblue (~manjaro-g@2a00:801:3f2:2157:b0e5:ed46:de16:4) [15:54:16] 14:44:07 < bluemanblue> Is my agreement correct here? ^^ <- yes, I think you can assume that who and what are inherently 3rd person [15:55:01] of course you can still ask "who am I" [15:55:41] there's QuestIComp in the full RGL to handle such cases [15:55:58] if you don't have that in ExtMini, you don't need to worry about it just now [15:57:09] there's also an extra category IComp, with function CompIP : IP -> IComp, which makes it easier to handle. but this is just offtopic for the immediate concern of your assignment [15:57:57] looking at your examples, it seems clear that you need some kind of parameter somewhere to distinguish between wh-questions and yes/no questions [16:04:49] I can't really say offhand what's the absolute best way to handle things. it's a good practice to reuse code, and I like that there's just one mkCl, which is used in several places. given that, you need to do less refactoring if you just add a boolean isIP to the argument to mkCl [16:04:57] you don't need to add it to the lincat NP, you can just do this [16:05:27] oper mkCl : (NounPhrase ** {isIP : Bool}) -> VerbPhrase -> Clause ; [16:05:55] and then when you call mkCl from PredVP, you can do this [16:06:07] PredVP np vp = mkCl (np ** {isIP = False}) vp; [16:06:38] and when you call mkCl from QuestVP, you can do this [16:07:00] QuestVP ip vp = let npip = (prToNP ip ** {isIP=True}) in ( mkCl npip vp) ; [16:07:38] if the record extension syntax is unfamiliar, you can read this https://inariksit.github.io/gf/2018/05/25/subtyping-gf.html [17:38:28] *** Quits: bluemanblue (~manjaro-g@2a00:801:3f2:2157:b0e5:ed46:de16:4) (Ping timeout: 258 seconds)