[06:38:47] I don't see certify_V in IrregEng. [07:07:25] *** Quits: proteusguy (~proteus-g@2405:9800:b408:bc31:d29:6aae:a9bf:ab8d) (Remote host closed the connection) [09:07:13] freeside: let foo : SomeParam => SomeValue = table { foo => bar ; ... } [09:07:38] but I don't think you can use the category Det as a left-hand side of a table [09:13:33] daherb: have you managed to complete a course in duolingo? [09:13:50] yesterday I had only the last 2 lessons left, and now they go like "Notice something different? [09:13:51] We’ve updated your skill tree to teach you Dutch more effectively." [09:14:21] and I suddenly have a few new lessons such as spirituality and bathroom, and most of my previously golden skills are at 0 again [09:14:27] and the last 2 lessons are greyed out [09:18:03] *** Joins: venicecat (05b30897@gateway/web/freenode/ip.5.179.8.151) [09:20:04] mmm. it worked when i moved the table to a standalone oper. [09:20:06] sadTable : Det => Conj; sadTable = table { some_Det => or_Conj ; any_Det => and_Conj }; [09:20:19] okay, cool! [09:20:28] > cc sadTable!any_Det [09:20:28] {n = ParamX.Sg; s1 = []; s2 = "or"; lock_Conj = <>} [09:22:07] cool, so then any finite type works as a left-hand side of a table ^^ [09:22:54] does it work if you just name it in a let or where? [09:23:00] sadly, no [09:23:41] wait, i am wrong [09:24:26] listvpi2v2 : ListVPI -> Det -> V2; [09:24:26] listvpi2v2 listvpi det = [09:24:26] let sadTable : Det => Conj = table { some_Det => or_Conj ; any_Det => and_Conj } in [09:24:29] let conj = sadTable ! det in [09:24:31] let vpi = ConjVPI conj listvpi in [09:24:34] mkV2 (vpi.s ! RE.VVPresPart ! RE.AgP3Pl RE.Neutr); [09:24:45] i was trying to squish the sadTable ! det into a case statement [09:24:56] that was what didn't work. [09:25:09] yay [09:26:19] you can btw just do this [09:26:19] let sadTable : Det => Conj = table { some_Det => or_Conj ; any_Det => and_Conj } conj = sadTable ! det vpi = ConjVPI conj listvpi [09:26:19] in mkV2 (vpi.s ! RE.VVPresPart ! RE.AgP3Pl RE.Neutr); [09:26:31] well, to be honest, that whole thing there doesn't work, because i'm trying to do for a VPI what ExtensionsEng.GerundNP does for VP [09:26:40] sorry, forgot ;s [09:26:41] let sadTable : Det => Conj = table { some_Det => or_Conj ; any_Det => and_Conj } ; [09:26:41] conj = sadTable ! det ; [09:26:41] vpi = ConjVPI conj listvpi ; [09:26:42] in mkV2 (vpi.s ! RE.VVPresPart ! RE.AgP3Pl RE.Neutr); [09:26:57] oh, i can do that? [09:27:11] yeah, as long as you separate with ; the different variables in a let [09:28:36] ah, it is there in the reference manual. [09:30:03] anyway, after wrestling with my GerundNP : VPI -> NP problem for some time yesterday at a japanese restaurant, i swallowed a large quantity of wasabi and gave up, but now i am ready to try again [09:31:44] here is my problem statement: ExtensionsEng.GerundNP knows how to VP -> NP, but now I want to VPI -> NP, where the VPI is a ConjVPI of a ListVPI. [09:32:02] okay let's see [09:32:06] do you have any advice for how to do this? after my wasabi incident i manually ripped out mkV2 (vpi.s ! RE.VVPresPart ! RE.AgP3Pl RE.Neutr); [09:32:47] code is at the bottom of https://github.com/legalese/legalese-compiler/blob/master/sandbox-gf1/missouri/MissouriI.gf [09:33:44] i used the LibraryBrowser to construct an analogous sentence, but it just treated all the verbs as nouns [09:34:41] LargeLibraryBrowser> p -lang=Eng "I like to run and hide" | l -lang=API [09:34:52] mkUtt ( mkS ( mkCl ( mkNP i_Pron ) ( mkVPSlash ( mkVPSlash like_V2 ) to_Adv ) ( mkNP ( mkCN and_Conj ( mkListCN ( mkCN run_N ) ( mkCN hide_N ) ) ) ) ) ) [09:35:07] arguably incorrect? i don't know. [09:35:22] oh yeah the run and hide are Ns [09:35:29] they are? wow [09:35:41] i thought they were verbs. i should really just give up on speaking english [09:35:48] hahah I mean in the parse [09:35:50] they are totally verbs [09:35:57] but in here [09:35:59] mkListCN ( mkCN run_N ) ( mkCN hide_N ) [09:36:01] that is super wrong [09:36:09] we could suggest this to aarne, now that he is generalising the Extra and Extensions to Extend [09:36:21] to generalise GerundNP to VPIs [09:37:00] the generalising of making gerunds would be to my liking [09:37:17] * inariksit is appreciating [09:37:21] haha [09:37:27] sounds very lawyerish too [09:38:05] yes, maybe Legalese can sponsor an Obfuscated GF contest in future [09:38:21] ^^ [09:38:34] so, what i have so far, produces [09:38:59] > l mkReactionRule repealing MustNot abating [09:39:00] the repealing of the section and laws repealed by this law shall not have the effect of abating , nullifying , suspending or vitiatinging any proceeding . [09:39:44] which is almost a perfect match for the original text, https://github.com/legalese/legalese-compiler/blob/master/sandbox-gf1/missouri/missouri.org [09:39:58] except there is too much inging [09:40:33] vitiatinging :-D [09:50:40] hmm, I want to attach a parenthetical text after e.g. a verb phrase, like: "to buy an apple (one euro)" [09:51:03] after the noun phrase there would be fine too probably [09:52:57] maybe define a new word for_price, and then just in your application do postprocessing to s/for_price (.*? euro)/ ($1)/ [09:53:58] i like this postprocessing idea. i have added a hack to my thing and now it works! [09:54:07] > l mkReactionRule repealing MustNot abating [09:54:11] the repealing of the section and laws repealed by this law shall not have the effect of abating , nullifying , suspending or vitiating any proceeding . [09:54:28] is the hack s/inging/ing/? :-D [09:54:51] lessing : Str -> Str = \s -> table { x + "vitiating" => x + "vitiate"; _ => s } ! s ; [09:55:19] i should call it lessening [09:56:07] there is probably some more lexically woke way of turning "vitiating" into "vitiate" [09:56:22] i am just doing it as a string-lookup-table [09:56:32] how come it gets turned into vitiating in the first place in your code? it looks like there's some error there [09:56:44] in your code or in the english rgl [09:57:11] because i am extracting vpi.s ! RE.VVPresPart ! RE.AgP3Pl RE.Neutr [09:57:49] okay [09:57:50] see https://github.com/legalese/legalese-compiler/blob/master/sandbox-gf1/missouri/MissouriI.gf#L146 [09:58:15] the type of VPI is { s : VVType => Agr => Str} ;, so one would think that the whole string "xing, ying and zing" would be there [09:58:24] and not that one of them turns out doubleing [09:58:40] * inariksit reads it now and yeah [09:58:41] strange [09:58:55] ah, that is due to the later [09:58:55] (ExtensionsEng.GerundNP (mkVP [09:58:55] (listvpi2v2 causing_worsening some) [09:58:55] (mkNP some [09:58:56] (mkCN obesity))))))) [09:59:11] aha yeah! [09:59:21] https://github.com/legalese/legalese-compiler/blob/master/sandbox-gf1/missouri/MissouriI.gf#L193 [09:59:25] hehe yeah so it only takes the last suffix [09:59:56] *adds the suffix to the end of the string [10:00:29] so make a new function directly into gerundVPI : ListVPI -> Det -> NP [10:01:50] well, there are two things going on -- the `mkVP : V2 -> NP` interpolates an "of" in between [10:02:00] if i skip that step i lose the "of" [10:02:18] er, i should have said `mkVP : V2 -> NP -> VP` [10:03:00] using a hack to add a simple "of" is much less dubious than the previous hack ^^ [10:03:03] without mkVP, the adding of the "of" would become "the adding _ the "of"" [10:03:54] how about making effect into N2? [10:04:17] ComplN2 : N2 -> NP -> CN ; -- mother of the king [10:04:35] "mothering of the king" [10:04:36] effect of (the causing_worsening ...) [10:04:53] https://hiddenremote.com/wp-content/blogs.dir/280/files/2015/04/Cersei-and-Joffrey-cersei-lannister-31147145-624-352.png [10:06:02] i need to go learn about complements. brb. [10:08:41] okay, so that's what you are using already, the second mkCN instance here http://www.grammaticalframework.org/lib/doc/synopsis.html#CN [10:08:57] so then the of is actually coming from that (it's calling ComplN2 internally) [10:09:07] oh [10:09:07] so mkVP isn't relevant in that [10:09:21] so just make gerundVPI : ListVPI -> Det -> NP [10:09:38] even simpler, i should make gerundVPI : VPI -> NP [10:09:39] and mkCN : N2 -> NP -> CN takes care of placing the of ^^ [10:09:40] yeah [10:09:57] the Conj'ing of the ListVPI belongs outside the Gerunding [10:11:48] the Conj'ing of the ListVPI is belonging outside of the Gerunding [10:19:14] freeside: ah, yeah good idea [10:19:18] (the postprocessing) [10:22:58] by the way, the IRC channel for UD is #_u-dep [10:23:02] here on Freenode [10:29:54] cool [10:30:22] http://lindat.mff.cuni.cz/services/udpipe/ parses to a tree that i don't necessarily agree with, semantically [10:30:48] but it does know about gerunds. [10:31:50] btw, maybe abating , nullifying , suspending and vitiating are transitive, not intransitive forms [10:31:58] so should i be Gerunding VPI or some other VP? [10:32:08] remind me -- what is a VPS vs a VPI? [10:32:56] my poor head. [10:33:35] in the new Extend module, aarne writerrs [10:33:38] *-rr [10:33:38] -- $VP$ conjunction, covering both finite and infinitive forms (formerly VPI and VPS). [10:41:44] *** Quits: venicecat (05b30897@gateway/web/freenode/ip.5.179.8.151) (Ping timeout: 260 seconds) [10:52:12] *** Joins: lillann (uid244962@gateway/web/irccloud.com/x-jtbttimfgskrvtyo) [11:09:34] hi lillann [11:12:18] yello :) [11:12:26] how are tricks? [11:12:27] *** Joins: venicecat (05b30897@gateway/web/freenode/ip.5.179.8.151) [11:13:07] I'll upload my latin grammar in a bit - i got it to compile :P [11:13:18] great [11:13:58] at the moment prasanth is presenting his work on universal dependencies [11:18:16] Ooh, I would have liked to have seen it [11:18:29] I guess JP has left for the airport by now? [11:18:50] I don't see him here [11:18:52] so probably yes [11:19:34] good :) [11:56:24] *** Joins: koom (~sirdancea@109.107.211.244) [11:57:48] *** Joins: root (~root@174.138.71.241) [11:57:56] *** root is now known as Guest13080 [11:58:23] *** Quits: Guest13080 (~root@174.138.71.241) (Client Quit) [11:59:17] *** Joins: ayberkt (~root@174.138.71.241) [11:59:25] *** Joins: koo5 (~koom@109.107.211.244) [12:01:43] I think it would be a good idea to GF development on feature branches and not commit directly onto master. [12:02:31] I now have a server by the way, so I will keep connected, hopefully! [12:03:38] cool [12:03:46] It is common practice on GitHub to disable committing directly onto master, and allow merging only on GitHub requiring review of PRs by others. [12:03:58] I don't know what the GF developers think about this, though. [12:04:07] on this channel we have nobody who actually is involved in the core development [12:04:28] the mailing list (or talking directly to thomas and krasimir) is the best channel to talk about such things [12:05:50] *** Quits: koom (~sirdancea@109.107.211.244) (Quit: Leaving) [12:06:05] I think GF developers are not very familiar with github, so if you make your case convincingly enough, they could do the change [12:54:44] *** Quits: venicecat (05b30897@gateway/web/freenode/ip.5.179.8.151) (Ping timeout: 260 seconds) [14:48:26] I'm going to meet a friend of a friend who is a translator and lives in riga [14:48:30] today at 17:15 at Ģertrūdes iela 45 [14:48:47] anyone who wants to join is welcome, I told her I'll bring with me 0-∞ linguists [15:04:16] *** Joins: venicecat (05b30897@gateway/web/freenode/ip.5.179.8.151) [15:43:23] yays! A baby step forward i hope! [15:43:29] i now know how to make a sentence compl [16:15:59] *** Quits: venicecat (05b30897@gateway/web/freenode/ip.5.179.8.151) (Ping timeout: 260 seconds) [16:27:15] *** Joins: venicecat (05b30897@gateway/web/freenode/ip.5.179.8.151) [16:33:19] woo! [16:38:58] *** Joins: livy (57f68898@gateway/web/freenode/ip.87.246.136.152) [16:45:25] hello livy! [16:46:10] venicecat, livy, esg, ayberkt, freeside, mbrock, anyone of you interested in coming to meet my translator-friend-of-a-friend? daherb and I are leaving in 15 mins [16:46:14] or in 14 actually [16:48:57] I'm preoccupied with some manual labor, but thanks! [16:52:02] sure, i'll come along! [17:58:28] *** Quits: livy (57f68898@gateway/web/freenode/ip.87.246.136.152) (Quit: Page closed) [18:14:24] *** Quits: venicecat (05b30897@gateway/web/freenode/ip.5.179.8.151) (Ping timeout: 260 seconds) [18:18:29] *** Quits: lillann (uid244962@gateway/web/irccloud.com/x-jtbttimfgskrvtyo) (Quit: Connection closed for inactivity) [18:24:50] *** Quits: koo5 (~koom@109.107.211.244) (Ping timeout: 240 seconds) [18:38:45] *** Joins: venicecat (c30dd254@gateway/web/freenode/ip.195.13.210.84) [18:49:02] tonight, at 10:00pm, i will be serving a late-night supper of fresh, free-range Latvian eggs prepared two ways – deep-fried Thai style in clarified browned butter, and sous-vide poached-in-shell at 64.5º for 1 hour in the manner of Thomas Keller, over a minimalist ratatouille of honey-glazed organic Valmieran farmhouse green and yellow courgettes [18:49:16] if you would like to join us, please indicate accordingly; we are located at the eastern corner of the park, on the corner of Elizabetes and Krišjāņa Barona iela [18:51:04] actually, change of plans. 63.5 degrees, not 64.5 [18:57:02] sorry i missed your message earlier, inariksit ... i was busy bothering aarne about ParadigmsEng.mkAdv vs ConstructorsEng.mkAdv [19:10:33] *** Joins: venicecat_ (c30dd254@gateway/web/freenode/ip.195.13.210.84) [19:11:34] *** Quits: venicecat (c30dd254@gateway/web/freenode/ip.195.13.210.84) (Ping timeout: 260 seconds) [19:29:04] *** Quits: venicecat_ (c30dd254@gateway/web/freenode/ip.195.13.210.84) (Ping timeout: 260 seconds) [19:33:51] *** Joins: proteusguy (~proteus-g@2405:9800:b408:bc31:5cb3:2d60:b355:f07c) [20:40:31] *** Joins: jstar (~jstar@unaffiliated/jstar) [20:40:48] is there some notion of selectivly omitting these words? [20:41:48] i'm guessing the thing I don't know enough about is a Slash or a Complement or a Relative Something [20:50:32] *** Joins: jstar (~jstar@unaffiliated/jstar) [21:01:38] *** Quits: proteusguy (~proteus-g@2405:9800:b408:bc31:5cb3:2d60:b355:f07c) (Ping timeout: 246 seconds) [21:03:14] *** Joins: proteusguy (~proteus-g@2405:9800:b408:bc31:5cb3:2d60:b355:f07c) [21:11:43] okay, i have learned about Advs. [21:11:50] next question. [21:12:59] "i like my food grilled." [21:13:00] mkUtt ( mkS ( mkCl i_NP like_V2 ( mkNP ( mkNP ( mkQuant i_Pron ) food_N ) grill_V2 ) ) ) [21:13:16] "i like my food roasted." [21:13:17] mkUtt ( mkS ( mkCl i_NP like_V2 ( mkNP ( mkNP ( mkQuant i_Pron ) food_N ) roast_V2 ) ) ) [21:14:08] "I like my food both grilled and roasted" [21:14:13] "I like my food either grilled or roasted" [21:14:21] p -lang=Eng "I like my food grilled or roasted" [21:14:27] The parser failed at token 7: "roasted" [21:29:23] freeside: I'm kinda drunk and considering joining [21:29:37] I had dinner already [21:29:58] but your dinner description sounds like from a grammar [21:32:41] but now I'm doing my daily duolingo [21:32:46] with lessons about bahtroom and spirituality [21:32:48] bathroom* [21:32:58] ooh wow I got a romance lesson too! [21:33:15] now I will be able to say "deine augen sind wie sterne" and "zu mir oder zu dir" in dutch too ^^ [21:33:17] thanks duolingo [21:34:28] "she likes to hug her pillow" [21:35:26] "I am straight" [21:37:07] ok at least now I got "I am gay" [21:52:21] *** Joins: koo5 (~koom@79.98.72.195) [21:52:25] How do I write tests for a resource grammar? [21:54:43] you can use something like this https://github.com/GrammaticalFramework/gf-contrib/blob/master/testsuite/resource.gfs [21:55:13] write the output it produces into a file, manually correct all the sentences, and use that as a gold standard [21:55:26] and everytime you change the grammar, run the test again and diff with the gold standard [21:55:38] or even without a gold standard, it can still show you if something changes [21:55:55] of course these trees are just a random selection, and some of them are not super relevant and some more relevant things are missing [21:56:17] I just have for myself different small scripts, like one for relative clauses, one for a few transitive verbs, etc. [21:56:37] I'm afraid there's no unified best practice for it [21:57:02] so a file with .gfs ending, you use it like [21:57:07] gf < MyTestFile.gfs [21:57:15] and it outputs the linearisations [22:09:31] freeside: I'm going to sleep now, enjoy your dinner! ^^ [22:10:26] inariksit: thanks, this helps a lot! [22:11:28] It would be nice to have an `assertLinearization` command so we would not have to diff things manually [22:11:58] It shouldn't be really hard to implement, right? [22:25:54] inariksit: https://github.com/GrammaticalFramework/GF/issues/10 [23:15:45] goodnight, sorry we missed you! i was occupied in the kitchen. [23:24:32] *** Joins: venicecat (6d6e1376@gateway/web/freenode/ip.109.110.19.118)