1
0
forked from GitHub/gf-core

German relative "was" in RelS

This commit is contained in:
aarne
2015-07-21 15:00:35 +00:00
parent b0a4dfeddd
commit e366ca76fd
7 changed files with 24 additions and 15 deletions

View File

@@ -10,7 +10,7 @@ concrete CatGer of Cat =
S = {s : Order => Str} ;
QS = {s : QForm => Str} ;
RS = {s : GenNum => Str ; c : Case} ;
RS = {s : RelGenNum => Str ; c : Case} ;
SSlash = {s : Order => Str} ** {c2 : Preposition} ;
-- Sentence
@@ -32,8 +32,8 @@ concrete CatGer of Cat =
-- Relative
RCl = {s : Mood => ResGer.Tense => Anteriority => Polarity => GenNum => Str ; c : Case} ;
RP = {s : GenNum => Case => Str ; a : RAgr} ;
RCl = {s : Mood => ResGer.Tense => Anteriority => Polarity => RelGenNum => Str ; c : Case} ;
RP = {s : RelGenNum => Case => Str ; a : RAgr} ;
-- Verb

View File

@@ -17,7 +17,7 @@ concrete ConjunctionGer of Conjunction =
isPre = ss.isPre
} ;
ConjRS conj ss = conjunctDistrTable GenNum conj ss ** {
ConjRS conj ss = conjunctDistrTable RelGenNum conj ss ** {
c = ss.c
} ;
@@ -39,14 +39,14 @@ concrete ConjunctionGer of Conjunction =
ConsNP xs x = consrTable PCase comma xs x ** {a = conjAgr xs.a x.a} ;
BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ;
ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
BaseRS x y = twoTable GenNum x y ** {c = y.c} ;
ConsRS xs x = consrTable GenNum comma xs x ** {c = xs.c} ;
BaseRS x y = twoTable RelGenNum x y ** {c = y.c} ;
ConsRS xs x = consrTable RelGenNum comma xs x ** {c = xs.c} ;
lincat
[S] = {s1,s2 : Order => Str} ;
[Adv] = {s1,s2 : Str} ;
[NP] = {s1,s2 : PCase => Str ; a : Agr} ;
[AP] = {s1,s2 : AForm => Str ; isPre : Bool} ;
[RS] = {s1,s2 : GenNum => Str ; c : Case} ;
[RS] = {s1,s2 : RelGenNum => Str ; c : Case} ;
}

View File

@@ -9,7 +9,7 @@ concrete IdiomGer of Idiom = CatGer **
GenericCl vp = mkClause "man" (agrP3 Sg) vp ;
CleftNP np rs = mkClause "es" (agrP3 Sg)
(insertExtrapos (rs.s ! gennum (genderAgr np.a) (numberAgr np.a)) ----
(insertExtrapos (rs.s ! RGenNum (gennum (genderAgr np.a) (numberAgr np.a))) ----
(insertObj (\\_ => np.s ! NPC rs.c) (predV MorphoGer.sein_V))) ;
CleftAdv ad s = mkClause "es" (agrP3 Sg)

View File

@@ -174,13 +174,13 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
RelCN cn rs = {
s = \\a,n,c => cn.s ! a ! n ! c ++ "," ++
rs.s ! gennum cn.g n ;
rs.s ! RGenNum (gennum cn.g n) ;
g = cn.g
} ;
RelNP np rs = {
s = \\c => np.s ! c ++ "," ++
rs.s ! gennum (genderAgr np.a) (numberAgr np.a) ;
rs.s ! RGenNum (gennum (genderAgr np.a) (numberAgr np.a)) ;
a = np.a ;
isPron = False
} ;

View File

@@ -10,13 +10,17 @@ concrete RelativeGer of Relative = CatGer ** open ResGer in {
} ;
RelVP rp vp = {
s = \\m,t,ant,b,gn =>
let
s = \\m,t,ant,b,rgn =>
let
gn = case rgn of {
RGenNum gf => gf ;
RSentence => GSg Neutr
} ;
agr = case rp.a of {
RNoAg => agrP3 (numGenNum gn) ;
RAg n p => Ag Neutr n p
} ;
cl = mkClause (rp.s ! gn ! Nom) agr vp
cl = mkClause (rp.s ! rgn ! Nom) agr vp
in
cl.s ! m ! t ! ant ! b ! Sub ;
c = Nom

View File

@@ -29,6 +29,7 @@ resource ResGer = ParamX ** open Prelude in {
-- Gender distinctions are only made in the singular.
GenNum = GSg Gender | GPl ;
RelGenNum = RGenNum GenNum | RSentence ;
-- Agreement of $NP$ has three parts.
@@ -801,7 +802,9 @@ resource ResGer = ParamX ** open Prelude in {
np ** {isPron = False} ;
oper
relPron : GenNum => Case => Str = \\gn,c =>
relPron : RelGenNum => Case => Str = \\rgn,c =>
case rgn of {
RGenNum gn =>
case <gn,c> of {
<GSg Fem,Gen> => "deren" ;
<GSg g,Gen> => "dessen" ;
@@ -809,5 +812,7 @@ resource ResGer = ParamX ** open Prelude in {
<GPl,Gen> => "deren" ;
_ => artDef ! gn ! c
} ;
RSentence => "was"
} ;
}

View File

@@ -66,6 +66,6 @@ concrete SentenceGer of Sentence = CatGer ** open ResGer, Prelude in {
SSubjS a s b = {s = \\o => a.s ! o ++ "," ++ s.s ++ b.s ! Sub} ;
RelS s r = {s = \\o => s.s ! o ++ "," ++ r.s ! gennum Neutr Sg} ; --- "welches"
RelS s r = {s = \\o => s.s ! o ++ "," ++ r.s ! RSentence} ; --- "welches"
}