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ß
2026-09-07 16:33:05 +02:00
committed by GitHub
parent dcc0f3f56c
commit 997a9adae3
15 changed files with 387 additions and 252 deletions
+8 -8
View File
@@ -31,15 +31,15 @@ concrete TestLangGer of TestLang =
(insertObjRefl (predVc v3) ** {c2 = v3.c3});
PassV2Q v q =
let c = case <v.c2.c, isaPrep v.c2> of {
<Acc, False> => Nom ; _ => v.c2.c} ; -- acc;pcase object -> nom;pcase subject
let c = case <v.c2.c, v.c2.t> of {
<Acc, isCase> => Nom ; _ => v.c2.c} ; -- acc;pcase object -> nom;pcase subject
vp = insertObj (\\_ => v.s ! VPastPart APred) (predV werdenPass)
** { c1 = v.c2 ** {c = c} }
in insertExtrapos (bindComma ++ q.s ! QIndir) vp ;
PassV2S v s =
let c = case <v.c2.c, isaPrep v.c2> of {
<Acc, False> => Nom ; _ => v.c2.c} ; -- acc;pcase object -> nom;pcase subject
let c = case <v.c2.c, v.c2.t> of {
<Acc, isCase> => Nom ; _ => v.c2.c} ; -- acc;pcase object -> nom;pcase subject
vp = insertObj (\\_ => v.s ! VPastPart APred) (predV werdenPass)
** { c1 = v.c2 ** {c = c} }
in insertExtrapos (bindComma ++ conjThat ++ s.s ! Sub) vp ;
@@ -47,15 +47,15 @@ concrete TestLangGer of TestLang =
PassV2V v vp =
let
inf = mkInf v.isAux Simul Pos vp ; -- ok for v.isAux=False, v.c2.c=Acc
c = case <v.c2.c, isaPrep v.c2> of { -- v.objCtrl=True HL 3/22
<Acc, False> => Nom ; _ => v.c2.c} ; -- acc;pcase object -> nom;pcase subject
c = case <v.c2.c, v.c2.t> of { -- v.objCtrl=True HL 3/22
<Acc, isCase> => Nom ; _ => v.c2.c} ; -- acc;pcase object -> nom;pcase subject
vp2 = insertObj (\\_ => v.s ! VPastPart APred) (predV werdenPass)
** { c1 = subjPrep v.c2 } ;
in insertInf inf vp2 ; -- v=lassen needs in-place inf instead
PassVPSlash vp =
let c = case <vp.c2.c, isaPrep vp.c2> of {
<Acc, False> => Nom ; _ => vp.c2.c} ;
let c = case <vp.c2.c, vp.c2.t> of {
<Acc, isCase> => Nom ; _ => vp.c2.c} ;
ctrl = case vp.objCtrl of { True => False ; _ => True } -- always False?
in -- insertObj (\\_ => (PastPartAP vp).s ! APred) (predV werdenPass ** {c1 = vp.c2 ** {c = c}})
insertObj (\\_ => vp.s.s ! (VPastPart APred))