Reorganizing Ger by smaller prepositions and separating object cases from all (N, NP, etc.) cases (#474)

* (Ger) prepositions of contracting type, to base S,VV,QS-correlates and split adverbs on

* api/TryGer: omit mkAdv,mkIAdv,mkConj from ParadigmsGer, mkStructuralGer

* (Ger) sync with 'master' (undo changes unrelated to Preposition) up to few corrections

* (Ger) correct GPl to CPl in ExtraGer

* Returning to f4aae6a61a by ignoring prep-contraction

* (Ger) Prep contracting with DefArtSg, IP, RP

* (Ger) Corrected GPl to CPl in ExtraGer, ExtendGer

* (Ger) Simplified many lincats (Prep,V2,N2,A2,.. VPSlash,ClSlash) by reducing
      Preposition from 4*3 = 12 parameters to 3*2 = 6 via
         Prepositon : Type = {s : PrepForm => Str; s2:Str ; c : ObjCase ; t : PrepType} ;
         param PrepType = isCase | isPrep ; -- isPrepDefArt
               ObjCase = Acc | Dat | Gen ;   Case = Nom | Obj ObjCase ;
This commit is contained in:
Hans Leiß authored and GitHub committed 2026-09-07 16:33:05 +02:00
1 parent dcc0f3f56c
commit 997a9adae3
15 files changed
+387 -252

No files matched your search

+10 -8
View File
@@ -161,11 +161,11 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
DefArt = {
s = \\b,gn,c => case <b,gn> of {<True,GSg _> => [] ; _ => artDef ! gn ! c} ;
sp = \\gn,c => case <gn,c> of {
<GSg Masc,Gen> => "dessen" ;
<GSg Fem, Gen> => "derer" ;
<GSg Neutr,Gen> => "dessen" ;
<GPl,Dat> => "denen" ; -- HL 6/2019
<GPl,Gen> => "derer" ; -- HL 6/2019
<GSg Masc,Obj Gen> => "dessen" ;
<GSg Fem, Obj Gen> => "derer" ;
<GSg Neutr,Obj Gen> => "dessen" ;
<GPl,Obj Dat> => "denen" ; -- HL 6/2019
<GPl,Obj Gen> => "derer" ; -- HL 6/2019
_ => artDef ! gn ! c } ;
a = Weak ;
isDefArt = True ;
@@ -252,11 +252,11 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
s = \\a,n,c => cn.s ! a ! n ! c ++ np.s ! False ! c ++ bigNP np } ;
PossNP cn np = cn ** {
s = \\a,n,c => cn.s ! a ! n ! c ++ appPrep vonDat (np.s ! False) ++ bigNP np } ;
s = \\a,n,c => cn.s ! a ! n ! c ++ appPrep (toSPrep vonDat) (np.s ! False) ++ bigNP np } ;
PartNP cn np = case np.w of {
WPron => cn ** {s = \\a,n,c => cn.s ! a ! n ! c ++ appPrep vonDat (np.s ! False) ++ np.rc} ;
_ => cn ** {s = \\a,n,c => cn.s ! a ! n ! c ++ np.s ! False ! Gen ++ np.ext ++ np.rc}
WPron => cn ** {s = \\a,n,c => cn.s ! a ! n ! c ++ appPrep (toSPrep vonDat) (np.s ! False) ++ np.rc} ;
_ => cn ** {s = \\a,n,c => cn.s ! a ! n ! c ++ appPrep (toSPrep genPrep) (np.s ! False) ++ np.ext ++ np.rc}
}; -- glass of wine
CountNP det np = -- drei der Kinder | drei von den Kindern -- HL 7/22, ad-hoc TODO
@@ -296,4 +296,6 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
ext = "" ;
} ;
oper
genPrep : Prep = {s = \\_ => [] ; s2 = [] ; c = Gen ; t = isCase ; lock_Prep = <>} ;
}