diff --git a/lib/resource/doc/Resource.dot b/lib/resource/doc/Resource.dot new file mode 100644 index 000000000..5a80a5c6c --- /dev/null +++ b/lib/resource/doc/Resource.dot @@ -0,0 +1,28 @@ +digraph { + +Verbphrase [style = "solid", shape = "ellipse", URL = "Verbphrase.gf"]; +Clause -> Categories [style = "solid"]; + +Resource [style = "solid", shape = "ellipse", URL = "Resource.gf"]; +Resource -> Rules [style = "solid"]; +Resource -> Clause [style = "solid"]; +Resource -> Structural [style = "solid"]; + +Clause [style = "solid", shape = "ellipse", URL = "Clause.gf"]; +Clause -> Categories [style = "solid"]; + +Rules [style = "solid", shape = "ellipse", URL = "Rules.gf"]; +Rules -> Categories [style = "solid"]; + +Structural [style = "solid", shape = "ellipse", URL = "Structural.gf"]; +Structural -> Categories [style = "solid"]; +Structural -> Numerals [style = "solid"]; + +Categories [style = "solid", shape = "ellipse", URL = "Categories.gf"]; +Categories -> PredefAbs [style = "solid"]; + +PredefAbs [style = "solid", shape = "ellipse", URL = "PredefAbs.gf"]; + +Numerals [style = "solid", shape = "ellipse", URL = "Numerals.gf"]; + +} diff --git a/lib/resource/doc/example/AnimalsFre.gf b/lib/resource/doc/example/AnimalsFre.gf index c76453383..4a796db09 100644 --- a/lib/resource/doc/example/AnimalsFre.gf +++ b/lib/resource/doc/example/AnimalsFre.gf @@ -11,11 +11,11 @@ concrete AnimalsFre of Animals = Action = V2 ; lin Who act obj = QuestPhrase (UseQCl (PosTP TPresent ASimul) - (IntVP who8one_IP (ComplV2 act (IndefNumNP NoNum (UseN obj))))) ; + (IntVP who8one_IP (ComplV2 act (DefNumNP NoNum (UseN obj))))) ; Whom subj act = QuestPhrase (UseQCl (PosTP TPresent ASimul) (IntSlash who8one_IP (SlashV2 (DefOneNP (UseN subj)) act))) ; Answer subj act obj = IndicPhrase (UseCl (PosTP TPresent ASimul) - (PredVP (DefOneNP (UseN subj)) (ComplV2 act (IndefNumNP NoNum (UseN obj))))) ; + (PredVP (DefOneNP (UseN subj)) (ComplV2 act (DefNumNP NoNum (UseN obj))))) ; Dog = regN "chien" masculine ; Cat = regN "chat" masculine ; Mouse = regN "souris" feminine ; diff --git a/lib/resource/doc/example/mkAnimals.gfcm b/lib/resource/doc/example/mkAnimals.gfcm new file mode 100644 index 000000000..295057768 --- /dev/null +++ b/lib/resource/doc/example/mkAnimals.gfcm @@ -0,0 +1,4 @@ + i -src AnimalsEng.gf ;; s + i -src AnimalsFre.gf ;; s + i -src AnimalsSwe.gf ;; s + pm | wf animals.gfcm diff --git a/lib/resource/doc/gf-resource.html b/lib/resource/doc/gf-resource.html index 4f5204ec4..5e02a5320 100644 --- a/lib/resource/doc/gf-resource.html +++ b/lib/resource/doc/gf-resource.html @@ -484,7 +484,7 @@ Source modules:

-AnimalsFre (does not compile yet) +AnimalsFre

@@ -496,27 +496,30 @@ Source modules: The resources are bulky, and it takes a therefore a lot of time and memory to load the grammars. However, they can be -comiled into the gfcm +compiled into the gfcm (GF canonical multilingual) format, -which is almost one thousand times smaller and faster to load. +which is almost one thousand times smaller and faster to load +for this set of grammars.

Just issue the following GF commands

-  i AnimalsEng.gf
-  -- i AnimalsFre.gf -- does not compile yet
-  i AnimalsSwe.gf
+  i -src AnimalsEng.gf ;; s
+  i -src AnimalsFre.gf ;; s
+  i -src AnimalsSwe.gf ;; s
   pm | wf animals.gfcm
 
-and you get a grammar this end-user grammar. +and you get an end-user grammar animals.gfcm.

You can also write the commands in a gfs (GF script) -file, say mkAnimals.gfs, and then call GF with +file, say +mkAnimals.gfs, +and then call GF with

-  gf 
 
 
@@ -529,7 +532,10 @@ Step 1: use a simplified access to present-tense sentences,
 

Step 2: factor out the categories and purely combinational -rules into an incomplete module (to be shown...) +rules into an incomplete module (to be shown... but +this does not work for French, which uses different structures: +e.g. Qui aime les lions ? with a definite phrase +where English has Who loves lions? diff --git a/lib/resource/romance/SyntaxRomance.gf b/lib/resource/romance/SyntaxRomance.gf index 0a4aee2d2..8f18f3bb2 100644 --- a/lib/resource/romance/SyntaxRomance.gf +++ b/lib/resource/romance/SyntaxRomance.gf @@ -1071,10 +1071,12 @@ oper -- N.B. inversion variants and "est-ce que" are treated as above. intVerbPhrase : IntPron -> VerbGroup -> Question = \ip,vg -> - questClause (predVerbGroupClause (ip ** {p = P3 ; c = Clit0}) vg) ; + questClause (predVerbGroupClause (intNounPhrase ip) vg) ; intSlash : IntPron -> ClauseSlashNounPhrase -> Question ; + intNounPhrase : IntPron -> NounPhrase = \ip -> + {s = \\nf => ip.s ! pform2case nf ; g = PGen ip.g ; n = ip.n ; p = P3 ; c = Clit0} ; --3 Interrogative adverbials --