[05:55:29] mmm, i will try, than you [06:04:09] what do i do when i get conflicts like this? i sort of naively expect all the *Eng.gf modules to agree on basic constructors like this [06:04:20] Ex4Eng.gf:58-59: [06:04:21] Happened in the renaming of mkAgg [06:04:21] Warning: atomic term mkAdv [06:04:21] conflict ParadigmsEng.mkAdv, ConstructorsEng.mkAdv [06:04:26] given DictEng, DictEng, ExtraEng, IrregEng, ParadigmsEng, SyntaxEng, Ex4Eng [06:09:03] yup, constructors and paradigms both have mkAdv. does this mean i should be using one and not the other? [06:12:38] maybe i'm missing an important clue about how to import the english RGL in some stanard way [06:46:14] what imports does one run to get to the point of being able to do what you did, with Lang> p -cat=Cl "John is" | l -treebank ? [06:47:24] now i will try to construct the tree "The Green Hills of Earth" [06:51:35] the_Det (mkA "green") (mkN "hill") possess_Prep (mkPN Paris) [07:34:22] i am finding the answer to this question on page 21 of http://www.molto-project.eu/sites/default/files/MOLTO_D2.3.pdf [07:54:28] okay, i can construct "the green (hills of earth)" but i can't figure out how to make "the (green hills) of earth" [07:59:35] first form: cc -list mkUtt (mkNP thePl_Det (mkCN (mkA "green") (mkCN (mkN2 (mkN "hill")) (mkNP (mkPN "Earth"))))) [07:59:46] second form: cc -list mkUtt (mkNP thePl_Det (mkCN (mkCN (mkA "green") (mkN "hill")) (mkAdv possess_Prep (mkNP (mkPN "Earth"))))) [08:23:47] i feel like i should sacrifice a dead cat at the altar of Noam Chomsky, if that will speed things up [16:57:14] hahah [16:58:20] what do i do when i get conflicts like this? <- if you know you'll only use one and not the other, you can choose to open ParadigmsEng - [mkAdv] or SyntaxEng - [mkAdv]. if you will use both, you need to prefix them by module [16:58:29] so ParadigmsEng.mkAdv and SyntaxEng.mkAdv [16:59:40] you can also open modules with another name, open ParadigmsEng, (P=ParadigmsEng), SyntaxEng, (S=SyntaxEng) [16:59:50] and then you can write P.mkAdv and S.mkAdv [17:00:15] if you only did open (P=ParadigmsEng), (S=SyntaxEng), then you'd need to prefix all functions in them with P. or S. [17:02:41] what imports does one run to get to the point of being able to do what you did <- I just opened LangEng.gfo in the gf shell. UseCopula comes from VerbEng, so if you want to use it, you can either have it as a part of your abstract syntax: [17:03:42] --# path to the RGL, so the grammar finds the module Verb [17:04:30] abstract MyGrammar = Foo, Bar, Verb [UseCopula], Baz ** { whatever local definitions you want to make, cat and fun } [17:05:21] concrete MyGrammarEng of MyGrammar = FooEng, BarEng, VerbEng [UseCopula], BazEng ** open SyntaxEng, ParadigmsEng in { corresponding lincats and lins, whose definitions use opers from SyntaxEng and ParadigmsEng } [17:05:25] [17:05:28] so that was way 1 [17:05:46] here's way 2, not extending resource grammar but rather opening it [17:07:00] abstract MyGrammar = Foo, Bar, Baz ** { cat Whatever ; Blah ; … fun be_VP : Blah ; SomeFunction : Whatever ; … } [17:09:14] and here's the concrete, enjoy the line breaks [17:09:17] concrete MyGrammarEng of MyGrammar = FooEng, BarEng, BazEng ** [17:09:17] open SyntaxEng, ParadigmsEng, (VE=VerbEng) in { [17:09:17] lincat [17:09:17] Whatever = … ; [17:09:17] Blah = VP ; -- from SyntaxEng [17:09:17] … ; [17:09:18] lin [17:09:18] be_VP = VE.UseCopula ; [17:09:19] SomeFunction = … [17:09:19] } [17:15:49] as for green hills, here's the three different parse trees: [17:15:51] AdvNP [17:15:51] (DetCN (DetQuant DefArt NumPl) (AdjCN (PositA green_A) (UseN hill_N))) [17:15:51] (PrepNP possess_Prep (UsePN paris_PN)) [17:15:51] DetCN [17:15:51] (DetQuant DefArt NumPl) [17:15:52] (AdjCN (PositA green_A) [17:15:52] (AdvCN (UseN hill_N) (PrepNP possess_Prep (UsePN paris_PN)))) [17:15:53] [17:15:53] DetCN [17:15:54] (DetQuant DefArt NumPl) [17:15:54] (AdvCN (AdjCN (PositA green_A) (UseN hill_N)) [17:15:55] (PrepNP possess_Prep (UsePN paris_PN))) [17:23:35] so the latter two you got already, and if you want (the green hills) (of earth), then you can do this: [17:23:41] mkNP (mkNP thePl_Det (mkCN (mkA "green") (mkN "hill"))) (mkAdv possess_Prep (mkNP (mkPN "Earth")) [17:26:23] are you aware of the grammar LibraryBrowser in https://cloud.grammaticalframework.org/minibar/minibar.html ? [17:26:44] to use it, choose these: Grammar: LibraryBrowser.pgf From: Eng To: API [17:26:55] then form "the green hills of Paris" using the fridge magnets [17:27:03] and scroll down to see the results [17:28:05] there's a lot of ambiguity, because "of" is both part_Prep, possess_Prep and there's also the RGL functions PossNP and PartNP, which the API doesn't support [17:28:20] but just considering the options with possess_Prep, it gives these: [17:29:32] * mkNP ( mkNP thePl_Det ( mkCN ( mkAP green_A ) ( mkCN hill_N ) ) ) ( mkAdv possess_Prep ( mkNP paris_PN ) ) [17:29:34] * mkNP thePl_Det ( mkCN ( mkAP green_A ) ( mkCN ( mkCN hill_N ) ( mkAdv possess_Prep ( mkNP paris_PN ) ) ) ) [17:29:44] * mkNP thePl_Det ( mkCN ( mkCN ( mkAP green_A ) ( mkCN hill_N ) ) ( mkAdv possess_Prep ( mkNP paris_PN ) ) ) [17:31:54] and you can click on the symbol to the left of the abstract syntax to see a tree, like this: https://s.put.re/5fhiLUfp.33.png [17:35:09] here's another tree, it's easy to see the difference https://s.put.re/Fk7JgfEh.32.png