[03:31:11] *** Quits: proteusguy (~proteusgu@cm-58-10-208-108.revip7.asianet.co.th) (Ping timeout: 248 seconds) [07:11:55] *** Joins: proteusguy (~proteusgu@cm-58-10-208-108.revip7.asianet.co.th) [07:19:12] *** Quits: proteusguy (~proteusgu@cm-58-10-208-108.revip7.asianet.co.th) (Remote host closed the connection) [07:47:58] *** Joins: proteusguy (~proteusgu@mx-ll-14.207.209-205.dynamic.3bb.co.th) [11:20:04] *** Quits: proteusguy (~proteusgu@mx-ll-14.207.209-205.dynamic.3bb.co.th) (Ping timeout: 258 seconds) [11:54:34] *** Joins: bluemanblue (~manjaro-g@2a00:801:3f1:eed2::2) [11:55:24] hey, am trying to do the exercise extending an abstract syntax on https://github.com/GrammaticalFramework/comp-syntax-gu/blob/master/labs/lab1/abstract/MiniExt.gf [11:56:16] my question: why doesn't need an extra np arguement to account for the I in "SlashV2 : V2 -> ClSlash ; -- I see " [11:56:36] http://www.cse.chalmers.se/~aarne/talks/gf-iit.pdf [11:57:22] for instance on page 99 of these slides ComplSlash : VPSlash -> NP -> VP does this work [11:57:31] but there's not complslash in the abstract syntax [11:59:11] running grep Slash * in gf-rgl/english/abstract [11:59:29] yields an entry in backward.gf which is obsolete [11:59:38] hello [12:00:44] SlashV2 : NP -> V2 -> Slash ; -- (whom) he sees [12:01:06] but seems to be the correct signature [12:01:09] hello [12:01:32] gf-rgl/src/abstract * [12:01:34] I think the SlashV2 with type signature NP -> V2 -> Slash (and the whole category Slash) are deprecated [12:01:57] regarding your first question, I think you're right and aarne has just forgotten to add a NP argument [12:02:04] cool, thank you! [12:02:16] the grammars used in the class are slightly different from the RGL [12:02:58] if you want to get started, feel free to just add SlashV2 : NP -> V2 -> ClSlash in your own copy, and contact aarne so he can update the repository [12:03:12] yeah obviously, but i was just kind of pulling my hair out not knowing Aarne had forgotten something [12:03:25] yeah, I understand it's hard to know if something is a bug or feature [12:03:28] I sent him an email yesterday but still no response so I just wanted external confirmation [12:03:44] thank you @inariksit!!!! [12:03:45] hmm I can actually update it too, it's just under GrammaticalFramework [12:04:19] updated! [12:04:44] which language are you working on? ^^ [12:15:16] english [12:40:43] Another question: in the abstract we have to extend the tense categories from TSim and TAnt with (TPastSim, TPastAnt,TCondSim, TCondAnt) [12:41:07] so can i just change the lincat [12:41:13] Temp = {s : Str ; isPres : Bool} ; to Temp = {s : Str ; isPres : TempParam} ; [12:41:24] where param TempParam = S | A | PS | PA | CS | CA ; [12:41:31] and pattern match on on these extra tense parameters in the PredVp definition to get the desired behavior? [12:43:16] obviously adjusting for agreement in different cases [12:50:26] I also don't understand how the PredVP Temporal categories could apply to the various compliment verbs, in the case "wonder , want, must, try and become" because they all seem to have exceptional tense behavior [12:51:36] like must doesn't have any past tense [12:52:15] so wouldn't gr sometimes generate examples like "would have must"? [12:53:15] or "would have must seen" or something [12:59:44] you can cheat and make must_VV to have past tense as "had to" [12:59:45] and so on [13:00:08] this is what the actual english RG gives: [13:00:09] Lang> gt UseCl (TTAnt ? ?) PPos (PredVP (UsePron i_Pron) (ComplVV must_VV (UseV go_V))) | l -treebank [13:00:09] Lang: UseCl (TTAnt TCond AAnter) PPos (PredVP (UsePron i_Pron) (ComplVV must_VV (UseV go_V))) [13:00:09] LangEng: I would have had to go [13:00:09] Lang: UseCl (TTAnt TCond ASimul) PPos (PredVP (UsePron i_Pron) (ComplVV must_VV (UseV go_V))) [13:00:09] LangEng: I would have to go [13:00:10] Lang: UseCl (TTAnt TFut AAnter) PPos (PredVP (UsePron i_Pron) (ComplVV must_VV (UseV go_V))) [13:00:10] LangEng: I will have had to go [13:00:11] Lang: UseCl (TTAnt TFut ASimul) PPos (PredVP (UsePron i_Pron) (ComplVV must_VV (UseV go_V))) [13:00:11] LangEng: I will have to go [13:00:12] Lang: UseCl (TTAnt TPast AAnter) PPos (PredVP (UsePron i_Pron) (ComplVV must_VV (UseV go_V))) [13:00:12] LangEng: I had had to go [13:00:13] Lang: UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron i_Pron) (ComplVV must_VV (UseV go_V))) [13:00:13] LangEng: I had to go [13:00:14] Lang: UseCl (TTAnt TPres AAnter) PPos (PredVP (UsePron i_Pron) (ComplVV must_VV (UseV go_V))) [13:00:14] LangEng: I have had to go [13:01:07] regarding TempParam, that sounds like the right thing to do [13:01:36] to be more descriptive, you can also change the name from isPres to something better [13:02:57] thank you again [13:03:17] no worries! just ask anytime if you have more questions [13:13:19] *** Quits: bluemanblue (~manjaro-g@2a00:801:3f1:eed2::2) (Ping timeout: 252 seconds) [13:13:58] omg students on the channel, good job daherb! [14:31:34] *** Joins: bluemanblue (~manjaro-g@cgn85-194-8-119.bredband.comhem.se) [14:32:39] if I change the header info by using a record extension, i.e. concrete MiniExtEng of MiniExt = MiniLangEng ** { [14:33:42] yes? [14:33:45] but leave the MiniLangEng.gf file as concrete MiniLangEng of MiniLang = MiniGrammarEng, MiniLexiconEng ; [14:34:12] it won't identify the MiniExtEng [14:34:32] when I run gf MiniLangEng.gf [14:34:54] but if I try to edit anything it's giving me a circular files message [14:35:17] can you give the concrete files? make a gist or use pastebin or similar https://gist.github.com/ [14:36:25] concrete MiniExtEng of MiniExt = MiniLangEng ** { } looks correct, and you shouldn't need to make any changes in MiniLang regarding module structure; you might need to change lincats [14:37:12] btw you can also leaev your MiniLangEng intact, if you use restricted inheritance in MiniExtEng: concrete MiniExtEng of MiniExt = MiniLangEng - [ Cl ] ** { lincat Cl = {new lincat} } [14:37:29] but that was a side note, let's solve your original problem first! [14:37:56] ok, just trying to figure out the gist [14:38:14] anything that works, https://pastebin.com/ just paste text here [14:43:21] *** Joins: Lycurgus (~niemand@98.4.103.219) [14:52:58] Ok i Think it now works. I just ran [14:52:58] gf MiniExtEng.gf [14:52:58] and now got all my "no linearization" errors (but gr still works . It took me a minute to realize that the Extension was extending the whole language, not just the grammar. I can now run with the empty lin SlashV2 np v2 = {s = ""} ; [14:52:58] :) :) :) [14:52:59] MiniExt> gr -tr (SlashV2 ? ?) | l [14:53:01] SlashV2 (MassNP (UseN fire_N)) teach_V2 [14:53:17] nice! [14:53:19] 0 msec [14:53:19] MiniExt> gr -tr (SlashV2 ? ?) | l [14:53:19] SlashV2 (MassNP (UseN milk_N)) have_V2 [14:53:19] And this is my test use of slashbin. Thanks again for the help [14:53:24] ^^ [14:54:50] is the examples dir in the bnfc github repo the only place there sample cf's are collected? [14:56:12] ideally I'd like to find one for Algol but will start with the ansi C or from scratch [14:56:49] here's a toy version of C++ http://www.cse.chalmers.se/edu/year/2018/course/DAT151_Programming_Language_Technology/laborations/lab2/CPP.cf [14:57:08] I don't know if it's of much help, but this has been used in the prog lang tech course at chalmers [14:57:37] you can also find other stuff there http://www.cse.chalmers.se/edu/year/2018/course/DAT151_Programming_Language_Technology/laborations/lab2/lab2.html [14:58:44] the first one is in the github folder [14:58:50] aha okay [14:59:03] I don't know of any other BNFC grammar collections [14:59:17] but I'm not at all in the BNFC development, I've only used it [15:00:16] got it, ty [15:00:34] I wrote this for Constraint Grammar, but that's a pretty different language from what you want to do https://github.com/inariksit/cghs/blob/master/src/bnfc/CG.cf [15:02:55] it is, funny that it's more complex than the cpp; I think I will start with the ANSI C since that's pretty close to Algol 60 [15:10:15] although actually your CPP.cf look more like what I would expect, ty again [15:10:25] *looks [15:10:40] you said that was already in the repo? [15:12:03] they start out the same but yours has more detail [15:12:12] okay, cool! [15:54:57] So in MiniGrammar.gf, the only clause generation takes place in the PredVP function [15:54:57] PredVP : NP -> VP -> Cl ; -- John walks / John does not walk [15:54:57] However, in the extended we have generate the QCL and Rcl a few times, obviously with different input signatures. [15:54:57] QuestVP : IP -> VP -> QCl ; -- who sees me [15:54:57] QuestSlash : IP -> ClSlash -> QCl ; -- whom do I see [15:54:59] QuestIAdv : IAdv -> Cl -> QCl ; -- where does she see me [15:55:01] UseRCl : Temp -> Pol -> RCl -> RS ; [15:55:03] RelVP : RP -> VP -> RCl ; -- that sees me [15:55:05] RelSlash : RP -> ClSlash -> RCl ; -- that I see [15:55:07] My Question: Would you recommend defining some kind of mkCl/mkQCl function (or even a mkClash as a preprocessing to mkCl) so that I don't have to copy this redundant boilerplate (from both PredVP and ComplV2) which is quite difficult as far as copying the verb evaluation information, etc. [15:55:11] Also, on a side note I'm about to leave my current location and will therefore be off my laptop. Is there anyway to show IrC dialogue so I don't have to concurrently be at my computer, or, if anyone responds, would they possibly willing to send me an answer at wmacmil@gmail.com [15:56:12] I can also just resubmit later b/c i have to leave right now. apologies for my ignorance regarding standards/etiquite [15:56:27] it's okay [15:56:53] you can run an IRC client on a server and ssh there [15:57:02] or use irccloud or something like that [15:57:14] or I can just email you answers, that's not a big problem either [15:57:24] as for your question now, yeah making an oper sounds like a good idea [15:57:32] if you find yourself copying and pasting [15:58:12] you can make one big function that takes arguments and then smaller functions like mkCl = mkClBigAndComplicated True False 42 "hello world" [15:58:19] where those values are something actually relevant [16:00:28] *** Quits: bluemanblue (~manjaro-g@cgn85-194-8-119.bredband.comhem.se) (Ping timeout: 245 seconds) [16:01:17] here's an example from the english RG: https://github.com/GrammaticalFramework/gf-rgl/blob/master/src/english/ResEng.gf#L256 [16:01:52] and it's reused in several places: https://github.com/GrammaticalFramework/gf-rgl/blob/master/src/english/ResEng.gf#L462 and https://github.com/GrammaticalFramework/gf-rgl/blob/master/src/english/ResEng.gf#L251-L252 [16:02:14] (ok 2 = "several", but anyway) [18:58:41] *** Joins: bluemanblue (~manjaro-g@edu24566.eduroam.gu.se) [19:09:37] *** Quits: bluemanblue (~manjaro-g@edu24566.eduroam.gu.se) (Remote host closed the connection) [19:22:56] *** Quits: Lycurgus (~niemand@98.4.103.219) (Quit: Exeunt) [20:18:06] *** Joins: bluemanblue (~manjaro-g@2a00:801:3f1:eed2::2) [21:02:46] However, in the extended we have generate the QCL and Rcl a few times, obviously with different input signatures. [21:02:46] QuestVP : IP -> VP -> QCl ; -- who sees me [21:02:46] QuestSlash : IP -> ClSlash -> QCl ; -- whom do I see [21:02:46] QuestIAdv : IAdv -> Cl -> QCl ; -- where does she see me [21:02:46] UseRCl : Temp -> Pol -> RCl -> RS ; [21:02:48] RelVP : RP -> VP -> RCl ; -- that sees me [21:02:50] RelSlash : RP -> ClSlash -> RCl ; -- that I see [21:02:52] My Question: Would you recommend defining some kind of mkCl/mkQCl function (or even a mkClash as a preprocessing to mkCl) so that I don't have to copy this redundant boilerplate (from both PredVP and ComplV2) which is quite difficult as far as copying the verb evaluation information, etc. [21:02:56] Also, on a side note I'm about to leave my current location and will therefore be off my laptop. Is there anyway to show IrC dialogue so I don't have to concurrently be at my computer, or, if anyone responds, would they possibly willing to send me an answer at wmacmil@gmail.com [21:03:04] sorry i just copied and pasted from earlier, exclude the last line [22:01:50] *** Quits: bluemanblue (~manjaro-g@2a00:801:3f1:eed2::2) (Ping timeout: 258 seconds)