mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
agreement in German Predet
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
instance LexAttemptoGer of LexAttempto =
|
instance LexAttemptoGer of LexAttempto =
|
||||||
open ExtraGer, SyntaxGer, ParadigmsGer, ConstructX,
|
open ExtraGer, SyntaxGer, ParadigmsGer, ConstructX,
|
||||||
MakeStructuralGer,
|
MakeStructuralGer,
|
||||||
IrregGer in {
|
IrregGer, Prelude in {
|
||||||
|
|
||||||
oper
|
oper
|
||||||
possible_A = mkA "möglich" ;
|
possible_A = mkA "möglich" ;
|
||||||
@@ -25,7 +25,7 @@ oper
|
|||||||
|
|
||||||
whose_IDet = mkIDet (mkIQuant "wessen") ;
|
whose_IDet = mkIDet (mkIQuant "wessen") ;
|
||||||
|
|
||||||
eachOf np = mkNP (mkNP each_Det) (SyntaxGer.mkAdv part_Prep np) ; ---- gen agr
|
eachOf np = mkNP (mkPredet (mkA "jed") "von" dative True singular) np ;
|
||||||
|
|
||||||
adj_thatCl : A -> S -> Cl = \a,s -> mkCl (mkVP (mkAP (mkAP a) s)) ;
|
adj_thatCl : A -> S -> Cl = \a,s -> mkCl (mkVP (mkAP (mkAP a) s)) ;
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,11 @@ concrete CatGer of Cat =
|
|||||||
sp : Number => Gender => Case => Str ;
|
sp : Number => Gender => Case => Str ;
|
||||||
a : Adjf
|
a : Adjf
|
||||||
} ;
|
} ;
|
||||||
Predet = {s : Number => Gender => Case => Str ; c : PredetCase} ;
|
Predet = {
|
||||||
|
s : Number => Gender => Case => Str ;
|
||||||
|
c : {p : Str ; k : PredetCase} ;
|
||||||
|
a : PredetAgr -- if an agr is forced, e.g. jeder von uns ist ...
|
||||||
|
} ;
|
||||||
Num = {s : Gender => Case => Str ; n : Number ; isNum : Bool} ;
|
Num = {s : Gender => Case => Str ; n : Number ; isNum : Bool} ;
|
||||||
Card = {s : Gender => Case => Str ; n : Number} ;
|
Card = {s : Gender => Case => Str ; n : Number} ;
|
||||||
Ord = {s : AForm => Str} ;
|
Ord = {s : AForm => Str} ;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -path=.:../common:../abstract
|
--# -path=.:../common:../abstract
|
||||||
|
|
||||||
resource MakeStructuralGer = open CatGer, ParadigmsGer, MorphoGer, Prelude in {
|
resource MakeStructuralGer = open CatGer, (P = ParadigmsGer), MorphoGer, Prelude in {
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mkConj : Str -> Str -> Number -> Conj = \x,y,n ->
|
mkConj : Str -> Str -> Number -> Conj = \x,y,n ->
|
||||||
@@ -10,4 +10,18 @@ oper
|
|||||||
mkIQuant : Str -> IQuant = \s ->
|
mkIQuant : Str -> IQuant = \s ->
|
||||||
{s = \\_,_,_ => s ; lock_IQuant = <>} ;
|
{s = \\_,_,_ => s ; lock_IQuant = <>} ;
|
||||||
|
|
||||||
|
mkPredet = overload {
|
||||||
|
mkPredet : A -> Predet = \a ->
|
||||||
|
lin Predet {
|
||||||
|
s = appAdj a ;
|
||||||
|
c = noCase ;
|
||||||
|
a = PAgNone
|
||||||
|
} ;
|
||||||
|
mkPredet : A -> Str -> Case -> Bool -> Number -> Predet = \a,p,c,b,n ->
|
||||||
|
lin Predet {
|
||||||
|
s = appAdj a ;
|
||||||
|
c = {p = p ; k = PredCase c} ;
|
||||||
|
a = case b of {True => PAg n ; _ => PAgNone}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
|
|||||||
lin
|
lin
|
||||||
DetCN det cn = {
|
DetCN det cn = {
|
||||||
s = \\c => det.s ! cn.g ! c ++ cn.s ! adjfCase det.a c ! det.n ! c ;
|
s = \\c => det.s ! cn.g ! c ++ cn.s ! adjfCase det.a c ! det.n ! c ;
|
||||||
a = agrP3 det.n ;
|
a = agrgP3 cn.g det.n ;
|
||||||
isPron = False
|
isPron = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -22,12 +22,13 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in {
|
|||||||
a = pron.a
|
a = pron.a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
PredetNP pred np = {
|
PredetNP pred np =
|
||||||
s = \\c0 =>
|
let ag = case pred.a of {PAg n => agrP3 n ; _ => np.a} in {
|
||||||
let c = case pred.c of {NoCase => c0 ; PredCase k => k} in
|
s = \\c0 =>
|
||||||
pred.s ! numberAgr np.a ! Masc ! c0 ++ np.s ! c ; ---- g
|
let c = case pred.c.k of {NoCase => c0 ; PredCase k => k} in
|
||||||
a = np.a
|
pred.s ! numberAgr ag ! genderAgr np.a ! c0 ++ pred.c.p ++ np.s ! c ;
|
||||||
} ;
|
a = ag
|
||||||
|
} ;
|
||||||
|
|
||||||
PPartNP np v2 = {
|
PPartNP np v2 = {
|
||||||
s = \\c => np.s ! c ++ v2.s ! VPastPart APred ; --- invar part
|
s = \\c => np.s ! c ++ v2.s ! VPastPart APred ; --- invar part
|
||||||
|
|||||||
@@ -46,8 +46,14 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
param NPForm = NPCase Case | NPPoss GenNum Case ;
|
param NPForm = NPCase Case | NPPoss GenNum Case ;
|
||||||
|
|
||||||
-- Predeterminers sometimes require a case ("ausser mir"), sometimes not ("nur ich").
|
-- Predeterminers sometimes require a case ("ausser mir"), sometimes not ("nur ich").
|
||||||
|
-- A number is sometimes inherited ("alle Menschen"),
|
||||||
|
-- sometimes forced ("jeder von Mwnschen").
|
||||||
|
|
||||||
param PredetCase = NoCase | PredCase Case ;
|
param
|
||||||
|
PredetCase = NoCase | PredCase Case ;
|
||||||
|
PredetAgr = PAg Number | PAgNone ;
|
||||||
|
oper
|
||||||
|
noCase : {p : Str ; k : PredetCase} = {p = [] ; k = NoCase} ;
|
||||||
|
|
||||||
--2 For $Adjective$
|
--2 For $Adjective$
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
|
|
||||||
above_Prep = mkPrep "über" Dat ;
|
above_Prep = mkPrep "über" Dat ;
|
||||||
after_Prep = mkPrep "nach" Dat ;
|
after_Prep = mkPrep "nach" Dat ;
|
||||||
all_Predet = {s = appAdj (regA "all") ; c = NoCase} ;
|
all_Predet = {s = appAdj (regA "all") ; c = noCase ; a = PAgNone} ;
|
||||||
almost_AdA, almost_AdN = ss "fast" ;
|
almost_AdA, almost_AdN = ss "fast" ;
|
||||||
although_Subj = ss "obwohl" ;
|
although_Subj = ss "obwohl" ;
|
||||||
always_AdV = ss "immer" ;
|
always_AdV = ss "immer" ;
|
||||||
@@ -52,7 +52,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
less_CAdv = X.mkCAdv "weniger" "als" ;
|
less_CAdv = X.mkCAdv "weniger" "als" ;
|
||||||
many_Det = detLikeAdj Pl "viel" ;
|
many_Det = detLikeAdj Pl "viel" ;
|
||||||
more_CAdv = X.mkCAdv "mehr" "als" ;
|
more_CAdv = X.mkCAdv "mehr" "als" ;
|
||||||
most_Predet = {s = appAdj (regA "meist") ; c = NoCase} ;
|
most_Predet = {s = appAdj (regA "meist") ; c = noCase ; a = PAgNone} ;
|
||||||
much_Det = detLikeAdj Sg "viel" ;
|
much_Det = detLikeAdj Sg "viel" ;
|
||||||
must_VV = auxVV
|
must_VV = auxVV
|
||||||
(mkV
|
(mkV
|
||||||
@@ -61,7 +61,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
"müßte" "gemußt" []
|
"müßte" "gemußt" []
|
||||||
VHaben) ;
|
VHaben) ;
|
||||||
--- one_Quant = DEPREC
|
--- one_Quant = DEPREC
|
||||||
only_Predet = {s = \\_,_,_ => "nur" ; c = NoCase} ;
|
only_Predet = {s = \\_,_,_ => "nur" ; c = noCase ; a = PAgNone} ;
|
||||||
no_Utt = ss "nein" ;
|
no_Utt = ss "nein" ;
|
||||||
---b no_Phr = ss "nein" ;
|
---b no_Phr = ss "nein" ;
|
||||||
on_Prep = mkPrep "auf" Dat ;
|
on_Prep = mkPrep "auf" Dat ;
|
||||||
@@ -128,7 +128,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
youPol_Pron = mkPronPers "Sie" "Sie" "Ihnen" "Ihrer" "Ihr" Fem Pl P3 ;
|
youPol_Pron = mkPronPers "Sie" "Sie" "Ihnen" "Ihrer" "Ihr" Fem Pl P3 ;
|
||||||
yes_Utt = ss "ja" ;
|
yes_Utt = ss "ja" ;
|
||||||
|
|
||||||
not_Predet = {s = \\_,_,_ => "nicht" ; c = NoCase} ;
|
not_Predet = {s = \\_,_,_ => "nicht" ; c = noCase ; a = PAgNone} ;
|
||||||
no_Quant = let
|
no_Quant = let
|
||||||
keiner : Number => Gender => Case => Str = table {
|
keiner : Number => Gender => Case => Str = table {
|
||||||
Sg => \\g,c => "kein" + pronEnding ! GSg g ! c ;
|
Sg => \\g,c => "kein" + pronEnding ! GSg g ! c ;
|
||||||
|
|||||||
Reference in New Issue
Block a user