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

+32 -30
View File
@@ -8,8 +8,8 @@ concrete StructuralGer of Structural = CatGer **
lin
above_Prep = mkPrep "über" P.dative ;
after_Prep = mkPrep "nach" P.dative ;
above_Prep = P.mkCPrep "über" P.dative ;
after_Prep = P.mkCPrep "nach" P.dative ;
-- all_Predet = {s = appAdj (regA "all") ; c = noCase ; a = PAgNone} ;
all_Predet = {s = appAdj (regA "all") ; c = noCase ; a = PAg Pl} ; -- HL 5/2022
almost_AdA, almost_AdN = ss "fast" ;
@@ -17,20 +17,20 @@ concrete StructuralGer of Structural = CatGer **
always_AdV = ss "immer" ;
and_Conj = {s1 = [] ; s2 = "und" ; n = Pl} ;
because_Subj = ss "weil" ;
before_Prep = mkPrep "vor" P.dative ;
behind_Prep = mkPrep "hinter" P.dative ;
between_Prep = mkPrep "zwischen" P.dative ;
both7and_DConj = sd2 "sowohl" ["als auch"] ** {n = Sg} ;
before_Prep = P.mkCPrep "vor" P.dative ;
behind_Prep = P.mkCPrep "hinter" P.dative ;
between_Prep = P.mkCPrep "zwischen" P.dative ;
both7and_DConj = sd2 "sowohl" "als auch" ** {n = Sg} ;
but_PConj = ss "aber" ;
by8agent_Prep = mkPrep "durch" P.accusative ;
by8means_Prep = mkPrep "mit" P.dative ;
can8know_VV, can_VV = auxVV
(mkV
"können" "kann" "kannst" "kann" "könnt" "könn"
by8agent_Prep = P.mkCPrep "durch" P.accusative ;
by8means_Prep = P.mkCPrep "mit" P.dative ;
can8know_VV, can_VV = MorphoGer.auxVV
(mkV -- modal verb has no imperative forms "könne,könn(e)t" HL 12/2024
"können" "kann" "kannst" "kann" "könnt" "könne"
"konnte" "konntest" "konnten" "konntet"
"könnte" "gekonnt" []
VHaben) ;
during_Prep = mkPrep "während" P.genitive ; --- no variants in the rgl | P.mkPrep P.accusative "über" ;
during_Prep = P.mkPrep "während" P.genitive ; --- no variants in the rgl | P.mkPrep P.accusative "über" ;
either7or_DConj = sd2 "entweder" "oder" ** {n = Sg} ;
everybody_NP = nameNounPhrase Masc {s = caselist "jeder" "jeden" "jedem" "jedes"} ;
every_Det = {
@@ -42,8 +42,8 @@ concrete StructuralGer of Structural = CatGer **
s,sp = \\_,g,c => "wenig" + adjEnding ! (gennum g Pl) ! c ;
n = Pl ; a = Strong ; isDef = False ; hasDefArt = False} ;
---- first_Ord = {s = (regA "erst").s ! Posit} ;
for_Prep = mkPrep "für" P.accusative ;
from_Prep = mkPrep "aus" P.dative ;
for_Prep = P.mkCPrep "für" P.accusative ;
from_Prep = P.mkCPrep "aus" P.dative ;
he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein" Masc Sg P3 ;
here7to_Adv = ss ["hierher"] ;
here7from_Adv = ss ["hieraus"] ;
@@ -52,7 +52,7 @@ concrete StructuralGer of Structural = CatGer **
how8much_IAdv = ss "wieviel" ;
how8many_IDet = {s = \\g,c => "wie viel" + detEnding ! (gennum g Pl) ! c ; n = Pl ; a = Strong} ;
if_Subj = ss "wenn" ; --- no variants in the RGL! | ss "falls" ;
in8front_Prep = mkPrep "vor" P.dative ;
in8front_Prep = P.mkCPrep "vor" P.dative ;
i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Masc Sg P1 ;
in_Prep = P.inDat_Prep ;
it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Neutr Sg P3 ;
@@ -63,19 +63,20 @@ concrete StructuralGer of Structural = CatGer **
more_CAdv = X.mkCAdv "mehr" "als" ;
-- most_Predet = {s = appAdj (regA "meist") ; c = noCase ; a = PAgNone} ;
most_Predet = { -- HL 5/2022
s = \\n,g,c => let gn = R.gennum g n ;
s = \\n,g,c => let gn = MorphoGer.gennum g n ;
adj = (P.mkA "viel" "mehr" "meiste").s ! Superl
in
R.artDef ! gn ! c ++ adj ! (agrAdj Weak gn c) ;
c = {p = [] ; k = PredCase Gen} ;
MorphoGer.artDef ! gn ! c ++ adj ! (agrAdj Weak gn c) ;
c = {p = [] ; k = PredCase (Obj Gen)} ;
a = PAg Pl} ;
much_Det = {
s = \\_,g,c => "viel" ;
sp = \\_,g,c => "viel" + detEnding ! (gennum g Sg) ! c ; ---- (GSg _ Sg) ! Gen ?
n = Sg ; a = Strong ; isDef = False ; hasDefArt = False} ;
must_VV = auxVV
must_VV = MorphoGer.auxVV
(mkV -- modal verb, has no imperative forms "müsse,müsst" HL 12/2024
"müssen" "muss" "musst" "muss" "müsst" "müsse"
"müssen" "muss" "musst" "muss" "müsst" "müsse"
"musste" "musstest" "mussten" "musstet"
"müsste" "gemusst" []
VHaben) ;
@@ -83,7 +84,7 @@ concrete StructuralGer of Structural = CatGer **
only_Predet = {s = \\_,_,_ => "nur" ; c = noCase ; a = PAgNone} ;
no_Utt = ss "nein" ;
---b no_Phr = ss "nein" ;
on_Prep = mkPrep "auf" P.dative ;
on_Prep = P.mkCPrep "auf" P.dative ;
or_Conj = {s1 = [] ; s2 = "oder" ; n = Sg} ;
otherwise_PConj = ss "sonst" ;
part_Prep = P.von_Prep ; -- obsolete, better use PartNP cn np
@@ -108,7 +109,7 @@ concrete StructuralGer of Structural = CatGer **
---b that_NP = nameNounPhrase Neutr {s = caselist "das" "das" "dem" "dessen"} ; ----
there_Adv = ss "da" ; --- no variants in the rgl | ss "dort" ;
there7to_Adv = ss "dahin" ;
there7from_Adv = ss ["daher"] ;
there7from_Adv = ss "daher" ;
therefore_PConj = ss "deshalb" ;
---b these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ;
@@ -117,14 +118,15 @@ concrete StructuralGer of Structural = CatGer **
in {s = \\_ => dieser ; sp = dieser ; a = Weak ; isDefArt, delCardOne = False} ;
---b this_NP = nameNounPhrase Neutr {s = caselist "dies" "dies" "diesem" "dieses"} ; ----
---b those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ;
through_Prep = mkPrep "durch" P.accusative ;
through_Prep = P.mkCPrep "durch" P.accusative ;
too_AdA = ss "zu" ;
to_Prep = mkPrep "nach" P.dative ;
under_Prep = mkPrep "unter" P.dative ;
to_Prep = P.mkCPrep "nach" P.dative ;
under_Prep = P.mkCPrep "unter" P.dative ;
very_AdA = ss "sehr" ;
want_VV = auxVV
want_VV = MorphoGer.auxVV
(mkV -- modal verb, has no imperative forms "wolle,woll(e)t" HL 12/2024
"wollen" "will" "willst" "will" "wollt" "wolle"
"wollen" "will" "willst" "will" "wollt" "wolle"
"wollte" "wolltest" "wollten" "wolltet"
"wollte" "gewollt" []
VHaben) ;
@@ -144,8 +146,8 @@ concrete StructuralGer of Structural = CatGer **
whoPl_IP = {s = caselist "wer alles" "wen alles" "wem alles" "wessen alles" ;
a = GSg Masc ; isPron = True} ; -- Duden 563
why_IAdv = ss "warum" ;
without_Prep = mkPrep "ohne" P.accusative ;
with_Prep = mkPrep "mit" P.dative ;
without_Prep = P.mkPrep "ohne" P.accusative ;
with_Prep = P.mkCPrep "mit" P.dative ;
youSg_Pron = mkPronPers "du" "dich" "dir" "deiner" "dein" Fem Sg P2 ;
youPl_Pron = mkPronPers "ihr" "euch" "euch" "eurer" "euer" Fem Pl P2 ; ---- poss
youPol_Pron = mkPronPers "Sie" "Sie" "Ihnen" "Ihrer" "Ihr" Fem Pl P3 ** {a = AgPlPol} ;
@@ -164,7 +166,7 @@ concrete StructuralGer of Structural = CatGer **
nameNounPhrase Neutr {s = \\_ => "nichts"} ; --maybe add: nameNounPhrase {s = \\_ => "garnichts"}
at_least_AdN = ss "wenigstens" ;
at_most_AdN = ss "höchstens" ;
except_Prep = mkPrep "außer" P.dative ;
except_Prep = P.mkPrep "außer" P.dative ;
as_CAdv = X.mkCAdv "ebenso" "wie" ;
have_V2 = P.dirV2 IrregGer.haben_V ;