mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-13 23:09:31 -06:00
German questions
This commit is contained in:
@@ -12,8 +12,8 @@ concrete CatGer of Cat = open ResGer, Prelude in {
|
||||
-- RS = {s : Agr => Str} ;
|
||||
|
||||
Cl = {s : Tense => Anteriority => Polarity => Order => Str} ;
|
||||
-- Slash = {s : Tense => Anteriority => Polarity => Order => Str} ** {c2 : Str} ;
|
||||
--
|
||||
Slash = {s : Tense => Anteriority => Polarity => Order => Str} ** {c2 : Preposition} ;
|
||||
|
||||
QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ;
|
||||
RCl = {s : Tense => Anteriority => Polarity => Agr => Str} ;
|
||||
|
||||
|
||||
@@ -32,33 +32,33 @@ concrete LexGer of Lex = CatGer ** open ResGer, Prelude in {
|
||||
he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein" Sg P3 ;
|
||||
we_Pron = mkPronPers "wir" "uns" "uns" "unser" "unser" Pl P1 ;
|
||||
|
||||
-- whoSg_IP = mkIP "who" "whom" "whose" Sg ;
|
||||
-- whoPl_IP = mkIP "who" "whom" "whose" Pl ;
|
||||
--
|
||||
-- when_IAdv = {s = "when"} ;
|
||||
-- where_IAdv = {s = "where"} ;
|
||||
-- why_IAdv = {s = "why"} ;
|
||||
--
|
||||
-- whichSg_IDet = {s = "which" ; n = Sg} ;
|
||||
-- whichPl_IDet = {s = "which" ; n = Pl} ;
|
||||
--
|
||||
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ;
|
||||
whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Pl} ;
|
||||
|
||||
when_IAdv = {s = "wann"} ;
|
||||
where_IAdv = {s = "wo"} ;
|
||||
why_IAdv = {s = "warum"} ;
|
||||
|
||||
whichSg_IDet = {s = appAdj (regA "welch") ! Sg ; n = Sg} ;
|
||||
whichPl_IDet = {s = appAdj (regA "welch") ! Sg ; n = Pl} ;
|
||||
|
||||
-- one_Numeral = {s = table {NCard => "one" ; NOrd => "first"} ; n = Sg} ;
|
||||
-- forty_Numeral = {s = table {NCard => "forty" ; NOrd => "fortieth"} ; n = Pl} ;
|
||||
--
|
||||
-- in_Prep = {s = "in"} ;
|
||||
-- of_Prep = {s = "of"} ;
|
||||
--
|
||||
|
||||
in_Prep = {s = "in" ; c = Dat} ;
|
||||
of_Prep = {s = "von" ; c = Dat} ;
|
||||
|
||||
-- and_Conj = {s = "and" ; n = Pl} ;
|
||||
-- either7or_DConj = {s1 = "either" ; s2 = "or" ; n = Sg} ;
|
||||
--
|
||||
-- if_Subj = ss "if" ;
|
||||
-- because_Subj = ss "because" ;
|
||||
--
|
||||
-- but_PConj = {s = "but"} ;
|
||||
--
|
||||
-- please_Voc = {s = "," ++ "please"} ;
|
||||
--
|
||||
-- more_CAdv = ss "more" ;
|
||||
-- less_CAdv = ss "less" ;
|
||||
--
|
||||
|
||||
if_Subj = ss "wenn" ;
|
||||
because_Subj = ss "weil" ;
|
||||
|
||||
but_PConj = {s = "aber"} ;
|
||||
|
||||
please_Voc = {s = "," ++ "bitte"} ;
|
||||
|
||||
more_CAdv = ss "mehr" ;
|
||||
less_CAdv = ss "weniger" ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,54 +1,69 @@
|
||||
concrete QuestionGer of Question = CatGer ** open ResGer in {
|
||||
--
|
||||
-- flags optimize=all_subs ;
|
||||
--
|
||||
-- lin
|
||||
--
|
||||
-- QuestCl cl = {
|
||||
-- s = \\t,a,p =>
|
||||
-- let cls = cl.s ! t ! a ! p
|
||||
-- in table {
|
||||
-- QDir => cls ! OQuest ;
|
||||
-- QIndir => "if" ++ cls ! ODir
|
||||
-- } ---- "whether" in ExtGer
|
||||
-- } ;
|
||||
--
|
||||
-- QuestVP qp vp =
|
||||
-- let cl = mkClause (qp.s ! Nom) {n = qp.n ; p = P3} vp
|
||||
-- in {s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir} ;
|
||||
--
|
||||
-- QuestSlash ip slash = {
|
||||
-- s = \\t,a,p =>
|
||||
-- let
|
||||
-- cls = slash.s ! t ! a ! p ;
|
||||
-- who = slash.c2 ++ ip.s ! Acc --- stranding in ExtGer
|
||||
-- in table {
|
||||
-- QDir => who ++ cls ! OQuest ;
|
||||
-- QIndir => who ++ cls ! ODir
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
-- QuestIAdv iadv cl = {
|
||||
-- s = \\t,a,p =>
|
||||
-- let
|
||||
-- cls = cl.s ! t ! a ! p ;
|
||||
-- why = iadv.s
|
||||
-- in table {
|
||||
-- QDir => why ++ cls ! OQuest ;
|
||||
-- QIndir => why ++ cls ! ODir
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
-- PrepIP p ip = {s = p.s ++ ip.s ! Nom} ;
|
||||
--
|
||||
-- AdvIP ip adv = {
|
||||
-- s = \\c => ip.s ! c ++ adv.s ;
|
||||
-- n = ip.n
|
||||
-- } ;
|
||||
--
|
||||
-- IDetCN idet num ord cn = {
|
||||
-- s = \\c => idet.s ++ num.s ++ ord.s ++ cn.s ! idet.n ! c ;
|
||||
-- n = idet.n
|
||||
-- } ;
|
||||
--
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
|
||||
QuestCl cl = {
|
||||
s = \\t,a,p =>
|
||||
let cls = cl.s ! t ! a ! p
|
||||
in table {
|
||||
QDir => cls ! Inv ;
|
||||
QIndir => "ob" ++ cls ! Sub
|
||||
}
|
||||
} ;
|
||||
|
||||
QuestVP qp vp = {
|
||||
s = \\t,a,b,q =>
|
||||
let
|
||||
cl = (mkClause (qp.s ! Nom) (agrP3 qp.n) vp).s ! t ! a ! b
|
||||
in
|
||||
case q of {
|
||||
QIndir => cl ! Sub ;
|
||||
_ => cl ! Main
|
||||
}
|
||||
} ;
|
||||
|
||||
QuestSlash ip slash = {
|
||||
s = \\t,a,p =>
|
||||
let
|
||||
cls = slash.s ! t ! a ! p ;
|
||||
who = appPrep slash.c2 ip.s
|
||||
in table {
|
||||
QDir => who ++ cls ! Inv ;
|
||||
QIndir => who ++ cls ! Sub
|
||||
}
|
||||
} ;
|
||||
|
||||
QuestIAdv iadv cl = {
|
||||
s = \\t,a,p =>
|
||||
let
|
||||
cls = cl.s ! t ! a ! p ;
|
||||
why = iadv.s
|
||||
in table {
|
||||
QDir => why ++ cls ! Inv ;
|
||||
QIndir => why ++ cls ! Sub
|
||||
}
|
||||
} ;
|
||||
|
||||
PrepIP p ip = {
|
||||
s = appPrep p ip.s
|
||||
} ;
|
||||
|
||||
AdvIP ip adv = {
|
||||
s = \\c => ip.s ! c ++ adv.s ;
|
||||
n = ip.n
|
||||
} ;
|
||||
|
||||
IDetCN idet num ord cn =
|
||||
let
|
||||
g = cn.g ;
|
||||
n = idet.n
|
||||
in {
|
||||
s = \\c =>
|
||||
idet.s ! g ! c ++ num.s ! g ! c ++ ord.s ! Weak ! g ! c ++ cn.s ! Weak ! n ! c ;
|
||||
n = n
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ concrete UntensedGer of Untensed = CatGer ** open ResGer in {
|
||||
PosCl cl = {s = cl.s ! Pres ! Simul ! Pos} ;
|
||||
NegCl cl = {s = cl.s ! Pres ! Simul ! Neg} ;
|
||||
|
||||
-- PosQCl cl = {s = cl.s ! Pres ! Simul ! Pos} ;
|
||||
-- NegQCl cl = {s = cl.s ! Pres ! Simul ! Neg} ;
|
||||
--
|
||||
PosQCl cl = {s = cl.s ! Pres ! Simul ! Pos} ;
|
||||
NegQCl cl = {s = cl.s ! Pres ! Simul ! Neg} ;
|
||||
|
||||
-- PosRCl cl = {s = cl.s ! Pres ! Simul ! Pos} ;
|
||||
-- NegRCl cl = {s = cl.s ! Pres ! Simul ! Neg} ;
|
||||
--
|
||||
|
||||
@@ -13,9 +13,9 @@ concrete VerbGer of Verb = CatGer ** open ResGer in {
|
||||
insertObj (\\a => v.part ++ (vp.s ! a ! VPInfinit Simul).inf) (predV v) ;
|
||||
ComplVS v s =
|
||||
insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ;
|
||||
ComplVQ v q =
|
||||
insertExtrapos (q.s ! QIndir) (predV v) ;
|
||||
|
||||
-- ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
||||
--
|
||||
-- ComplVA v ap = insertObj (ap.s) (predV v) ;
|
||||
-- ComplV2A v np ap =
|
||||
-- insertObj (\\_ => v.c2 ++ np.s ! Acc ++ ap.s ! np.a) (predV v) ;
|
||||
|
||||
@@ -83,3 +83,18 @@ SentenceGer: ImpVP
|
||||
PhraseGer: almost all (actually copied from PhraseScand)
|
||||
> p -cat=Imp -mcfg "geh hier"
|
||||
ImpVP (AdvVP (UseV walk_V) here_Adv)
|
||||
|
||||
QuestionGer: almost all (copied from Scand)
|
||||
UntensedGer: PosQCl, NegQCl
|
||||
> p -cat=QS -mcfg "gehen wir nicht" | l -table
|
||||
QDir : gehen wir nicht
|
||||
QIndir : ob wir nicht gehen
|
||||
|
||||
VerbGer: ComplVQ
|
||||
> p -cat=S -mcfg "ich frage ob wir warm sind"
|
||||
|
||||
LexGer: *IDet, *IP, *Prep
|
||||
QuestionGer: IDetCN (using NounGer.MkDet)
|
||||
> p -cat=QS -mcfg "welcher Hund geht"
|
||||
> p -cat=QS -mcfg "in welchem Hund geht er"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user