mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-21 17:26:25 -06:00
1. updated types in ../abstract/*'.gf to replace NP,Det,Quant,Predep,Prep,DAP by
their primed versions 2. implemented all linearizations to use the primed categories This allows linearization with prep+defart's, but parsing gives metavariables in parses (DetQuant ? NumSg) and (DetQuantOrd ? NumSg ord) for prep+defart. Todo: make Quant.s and NP. depend on PronType = isCat | isPron | isPronDefArt. Without SlashV2VNP', compiles in 84 sec and gives 3,6M VerbGer.gfo, 2,3M SentenceGer.gfo. Uses |Prep'|=12 instead of |Prep|=18, |NP'|=72 instead of |NP|=54
This commit is contained in:
@@ -10,8 +10,7 @@ concrete StructuralGer of Structural' = CatGer **
|
||||
|
||||
above_Prep = mkPrep "über" P.dative ;
|
||||
after_Prep = mkPrep "nach" P.dative ;
|
||||
all_Predet = {s = appAdj (regA "all") ; c = noCase ; a = PAgNone} ;
|
||||
all_Predet' = {s = appAdj' (regA "all") ; c = noCase ; a = PAgNone} ;
|
||||
all_Predet = {s = appAdj' (regA "all") ; c = noCase' ; a = PAgNone} ;
|
||||
almost_AdA, almost_AdN = ss "fast" ;
|
||||
although_Subj = ss "obwohl" ;
|
||||
always_AdV = ss "immer" ;
|
||||
@@ -32,11 +31,14 @@ concrete StructuralGer of Structural' = CatGer **
|
||||
VHaben) ;
|
||||
during_Prep = 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 {s = caselist "jeder" "jeden" "jedem" "jedes"} ;
|
||||
every_Det = detUnlikeAdj False Sg "jed" ;
|
||||
everything_NP = nameNounPhrase {s = caselist "alles" "alles" "allem" "alles"} ;
|
||||
everybody_NP = nameNounPhrase' Masc {s = caselist "jeder" "jeden" "jedem" "jedes"} ;
|
||||
-- every_Det = detUnlikeAdj False Sg "jed" ;
|
||||
every_Det = let tab = (detUnlikeAdj' False Sg "jed").s
|
||||
in {s,sp = asQuant tab ; n = Sg ; a = Weak ; isDef = False ; hasDefArt = False} ;
|
||||
everything_NP = nameNounPhrase' Neutr {s = caselist "alles" "alles" "allem" "alles"} ;
|
||||
everywhere_Adv = ss "überall" ;
|
||||
few_Det = detLikeAdj False Pl "wenig" ;
|
||||
few_Det = let tab = (detLikeAdj' False Pl "wenig").s
|
||||
in {s,sp = asQuant tab ; n = Pl ; a = Weak ; isDef = False ; hasDefArt = False} ;
|
||||
---- first_Ord = {s = (regA "erst").s ! Posit} ;
|
||||
for_Prep = mkPrep "für" P.accusative ;
|
||||
from_Prep = mkPrep "aus" P.dative ;
|
||||
@@ -54,11 +56,13 @@ concrete StructuralGer of Structural' = CatGer **
|
||||
in_Prep = P.inDat_Prep ; -- HL 7/2022
|
||||
it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Neutr Sg P3 ;
|
||||
less_CAdv = X.mkCAdv "weniger" "als" ;
|
||||
many_Det = detLikeAdj False Pl "viel" ;
|
||||
many_Det = let tab = (detLikeAdj' False Pl "viel").s
|
||||
in {s,sp = asQuant tab ; n = Pl ; a = Weak ; isDef = False ; hasDefArt = False} ;
|
||||
more_CAdv = X.mkCAdv "mehr" "als" ;
|
||||
most_Predet = {s = appAdj (regA "meist") ; c = noCase ; a = PAgNone} ;
|
||||
most_Predet' = {s = appAdj' (regA "meist") ; c = noCase ; a = PAgNone} ;
|
||||
much_Det = {s = \\_,_ => "viel" ; sp = \\_,_ => "vieles" ; n = Sg ; a = Weak ; isDef = False} ;
|
||||
most_Predet = {s = appAdj' (regA "meist") ; c = noCase' ; a = PAgNone} ;
|
||||
-- much_Det = {s = \\_,_ => "viel" ; sp = \\_,_ => "vieles" ; n = Sg ; a = Weak ; isDef = False} ;
|
||||
much_Det = {s = asQuant (\\_,_ => "viel") ; sp = asQuant (\\_,_ => "vieles") ;
|
||||
n = Sg ; a = Weak ; isDef = False ; hasDefArt = False} ;
|
||||
must_VV = auxVV
|
||||
(mkV
|
||||
"müssen" "muss" "musst" "muss" "müsst" "müss"
|
||||
@@ -66,10 +70,11 @@ concrete StructuralGer of Structural' = CatGer **
|
||||
"müsste" "gemusst" []
|
||||
VHaben) ;
|
||||
--- one_Quant = DEPREC
|
||||
only_Predet = {s = \\_,_,_ => "nur" ; c = noCase ; a = PAgNone} ;
|
||||
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 = mkPrep "auf" P.dative ;
|
||||
on_Prep = P.mkPrep "auf" "auf den" "auf die" "aufs" P.accusative ; -- test HL 7/2022
|
||||
or_Conj = {s1 = [] ; s2 = "oder" ; n = Sg} ;
|
||||
otherwise_PConj = ss "sonst" ;
|
||||
part_Prep = P.von_Prep ; -- mkPrep "von" P.dative ;
|
||||
@@ -78,21 +83,21 @@ concrete StructuralGer of Structural' = CatGer **
|
||||
quite_Adv = ss "ziemlich" ;
|
||||
she_Pron = mkPronPers "sie" "sie" "ihr" "ihrer" "ihr" Fem Sg P3 ;
|
||||
so_AdA = ss "so" ;
|
||||
somebody_NP = nameNounPhrase {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ;
|
||||
somePl_Det = detLikeAdj True Pl "einig" ;
|
||||
somebody_NP = nameNounPhrase' Masc {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ;
|
||||
somePl_Det = let tab = (detLikeAdj' True Pl "einig").s
|
||||
in {s,sp = asQuant tab ; isDef = True ; n = Pl ; a = Weak ; hasDefArt = False} ;
|
||||
someSg_Det = {
|
||||
s,sp = \\g,c =>
|
||||
usePrepC c (\k -> "ein" + pronEnding ! GSg g ! k) ; ---- einer,eines
|
||||
s,sp = asQuant (\\g,c => "ein" + pronEnding ! GSg g ! c) ; ---- einer,eines
|
||||
n = Sg ;
|
||||
a = Strong ;
|
||||
hasNum = True ;
|
||||
isDef = False ;
|
||||
isDef = False ; hasDefArt = False
|
||||
} ;
|
||||
something_NP = nameNounPhrase {s = \\_ => "etwas"} ;
|
||||
something_NP = nameNounPhrase' Neutr {s = \\_ => "etwas"} ;
|
||||
somewhere_Adv = ss "irgendwo" ;
|
||||
that_Quant = let
|
||||
jener : Number => Gender => PCase => Str = \\n => (detUnlikeAdj True n "jen").s in
|
||||
{s,sp = \\_ => jener ; a,aPl = Weak} ;
|
||||
jener : Number => Gender => Case => Str = \\n => (detUnlikeAdj' True n "jen").s in
|
||||
{s,sp = \\_ => jener ; a,aPl = Weak ; hasDefArt = False} ;
|
||||
---b that_NP = nameNounPhrase {s = caselist "das" "das" "denem" "dessen"} ; ----
|
||||
there_Adv = ss "da" ; --- no variants in the rgl | ss "dort" ;
|
||||
there7to_Adv = ss "dahin" ;
|
||||
@@ -101,8 +106,8 @@ concrete StructuralGer of Structural' = CatGer **
|
||||
---b these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ;
|
||||
they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Fem Pl P3 ;
|
||||
this_Quant = let
|
||||
dieser : Number => Gender => PCase => Str = \\n => (detUnlikeAdj True n "dies").s in
|
||||
{s,sp = \\_ => dieser ; a,aPl = Weak} ;
|
||||
dieser : Number => Gender => Case => Str = \\n => (detUnlikeAdj' True n "dies").s in
|
||||
{s,sp = \\_ => dieser ; a,aPl = Weak ; hasDefArt = False} ;
|
||||
---b this_NP = nameNounPhrase {s = caselist "dies" "dies" "diesem" "dieses"} ; ----
|
||||
---b those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ;
|
||||
through_Prep = mkPrep "durch" P.accusative ;
|
||||
@@ -124,7 +129,7 @@ concrete StructuralGer of Structural' = CatGer **
|
||||
when_IAdv = ss "wann" ;
|
||||
when_Subj = ss "wenn" ;
|
||||
where_IAdv = ss "wo" ;
|
||||
which_IQuant = {s = \\n,g,c => (detUnlikeAdj True n "welch").s ! g ! NPC c} ;
|
||||
which_IQuant = {s = \\n,g,c => (detUnlikeAdj' True n "welch").s ! g ! c} ;
|
||||
|
||||
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ;
|
||||
whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ; -- HL 6/2016
|
||||
@@ -136,19 +141,19 @@ concrete StructuralGer of Structural' = CatGer **
|
||||
youPol_Pron = mkPronPers "Sie" "Sie" "Ihnen" "Ihrer" "Ihr" Fem Pl P3 ;
|
||||
yes_Utt = ss "ja" ;
|
||||
|
||||
not_Predet = {s = \\_,_,_ => "nicht" ; c = noCase ; a = PAgNone} ;
|
||||
not_Predet = {s = \\_,_,_ => "nicht" ; c = noCase' ; a = PAgNone} ;
|
||||
no_Quant = let
|
||||
keiner : Number => Gender => PCase => Str = table {
|
||||
Sg => \\g,c => usePrepC c (\k -> "kein" + pronEnding ! GSg g ! k) ;
|
||||
Pl => (detUnlikeAdj False Pl "kein").s
|
||||
keiner : Number => Gender => Case => Str = table {
|
||||
Sg => \\g,c => "kein" + pronEnding ! GSg g ! c ;
|
||||
Pl => (detUnlikeAdj' False Pl "kein").s
|
||||
}
|
||||
in
|
||||
{s,sp = \\_ => keiner ; a = Strong ; aPl = Weak} ; ---- sp
|
||||
{s,sp = \\_ => keiner ; a = Strong ; aPl = Weak ; hasDefArt = False} ; ---- sp
|
||||
if_then_Conj = {s1 = "wenn" ; s2 = "dann" ; n = Sg ; lock_Conj = <>} ;
|
||||
nobody_NP =
|
||||
nameNounPhrase {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;
|
||||
nameNounPhrase' Masc {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;
|
||||
nothing_NP =
|
||||
nameNounPhrase {s = \\_ => "nichts"} ; --maybe add: nameNounPhrase {s = \\_ => "garnichts"}
|
||||
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 ;
|
||||
@@ -159,4 +164,11 @@ concrete StructuralGer of Structural' = CatGer **
|
||||
|
||||
lin language_title_Utt = ss "Deutsch" ;
|
||||
|
||||
oper
|
||||
asQuant : (Gender => Case => Str) -> (Gender => Case => {quant,num:Str}) =
|
||||
\tab -> \\g,c => {quant = tab ! g ! c; num = []} ;
|
||||
asNum : (Gender => Case => Str) -> (Gender => Case => {quant,num:Str}) =
|
||||
\tab -> \\g,c => {quant = []; num = tab ! g ! c} ;
|
||||
pairTable : (Gender => Case => Str) -> (Gender => Case => Str) -> (Gender => Case => {quant,num:Str})
|
||||
= \qt,nt -> \\g,c => {quant = qt ! g ! c; num = nt ! g ! c} ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user