1
0
forked from GitHub/gf-rgl

(Ger) Shrink Agr = Ag Gender Number Person from 3*2*3 = 18 values to 2+3+1+3+1 = 10 by

Agr = AgSgP1 | AgSgP2 | AgSgP3 Gender | AgSgP3Gen | AgPl Person | AgPlPol ;
      with AgSgP3Gen resp. AgPlPol used for reflexive,possessive forms of "man", "Sie".

      Compiles AllGer from src in 162sec with 15M VerbGer.gfo vs. 380sec with 17M VerbGer.gfo
This commit is contained in:
Hans Leiss
2023-09-30 23:28:42 +02:00
parent 67d1e24761
commit 1cf6496883
25 changed files with 623 additions and 668 deletions

View File

@@ -8,24 +8,25 @@ concrete IdiomGer of Idiom = CatGer **
ImpersCl vp = mkClause "es" (agrP3 Sg) vp ;
GenericCl vp = mkClause "man" (agrP3 Sg) vp ;
CleftNP np rs = mkClause "es" (agrP3 Sg)
CleftNP np rs = mkClause "es" (agrP3 Sg)
(insertExtrapos (rs.s ! RGenNum (gennum (genderAgr np.a) (numberAgr np.a))) ----
(insertObj (\\_ => (np.s ! False ! rs.c ++ bigNP np)) (predV MorphoGer.sein_V))) ; --HL
(insertObj (\\_ => np.s ! False ! rs.c ++ bigNP np) (predV MorphoGer.sein_V))) ;
CleftAdv ad s = mkClause "es" (agrP3 Sg)
CleftAdv ad s = mkClause "es" (agrP3 Sg)
(insertExtrapos (conjThat ++ s.s ! Sub)
(insertObj (\\_ => ad.s) (predV MorphoGer.sein_V))) ;
ExistNP np =
mkClause "es" (agrP3 Sg)
mkClause "es" (agrP3 Sg)
(insertObj (\\_ => appPrep geben.c2 (np.s ! False) ++ bigNP np)
(predV geben)) ;
ExistIP ip = {
s = \\m,t,a,p =>
let
cls = (mkClause "es" (agrP3 Sg) (predV geben)).s ! m ! t ! a ! p ;
s = \\m,t,a,p =>
let
cls =
(mkClause "es" (agrP3 Sg) (predV geben)).s ! m ! t ! a ! p ;
who = ip.s ! Acc
in table {
QDir => who ++ cls ! Inv ;
@@ -53,7 +54,7 @@ concrete IdiomGer of Idiom = CatGer **
ProgrVP = insertAdv "eben" ; ----
ImpPl1 vp = {s =
(mkClause "wir" (Ag Fem Pl P1) vp).s !
(mkClause "wir" (AgPl P1) vp).s !
MConjunct ! Pres ! Simul ! Pos ! Inv
} ;
@@ -65,7 +66,7 @@ concrete IdiomGer of Idiom = CatGer **
SelfAdvVP vp = insertAdv "selbst" vp ;
SelfAdVVP vp = insertAdv "selbst" vp ;
SelfNP np = np ** {
s = \\_,c => np.s ! False ! c ++ "selbst" ++ bigNP np ;
s = \\b,c => np.s ! b ! c ++ "selbst" ++ bigNP np ;
isPron = False ;
} ;