mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 09:28:54 -06:00
(Ger) reimplementation of infinitives to improve compilation
- removed Control and treat control verbs with VPSlash.objCtrl:Bool - combined VP.inf and VP.infExt to VP.inf with inplace/extracted parts depending on Agr, to subj/obj-control reflexives in infinitival complements - AllGer compiles from src in 250s (SlashV2VNP!), .gfo loads in 15s on x86_64
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
abstract TestLang =
|
||||
Grammar,
|
||||
TestLexiconGerAbs
|
||||
-- , Construction
|
||||
, Construction
|
||||
** {
|
||||
flags startcat=Phr ;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
concrete TestLangEng of TestLang =
|
||||
GrammarEng
|
||||
, TestLexiconEng
|
||||
-- , ConstructionEng
|
||||
, ConstructionEng
|
||||
** open (R=ResEng), (P=ParadigmsEng), Prelude, (E=ExtendEng)
|
||||
in {
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
-- use the modified files in gf-rgl/src/german
|
||||
|
||||
concrete TestLangGer of TestLang =
|
||||
GrammarGer - [PassV2] -- to improve these ,ComplVV,SlashVV,SlashV2V,SlashV2VNP
|
||||
, TestLexiconGer - [helfen_V2V, warnen_V2V, versprechen_dat_V2V, lassen_V2V]
|
||||
-- , ConstructionGer -- needs SlashV2VNP of VerbGer
|
||||
GrammarGer
|
||||
, TestLexiconGer
|
||||
, ConstructionGer
|
||||
** open ResGer,Prelude,(P=ParadigmsGer) in {
|
||||
|
||||
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
||||
@@ -27,147 +27,128 @@ concrete TestLangGer of TestLang =
|
||||
ReflVPSlash v3 = -- reflexive use of v:V3, untested
|
||||
(insertObjRefl (predVc v3) ** {c2 = v3.c3});
|
||||
|
||||
PassV2 v = -- insertObj (\\_ => v.s ! VPastPart APred) (predV werdenPass) ;
|
||||
let c = case <v.c2.c, v.c2.isPrep> of {
|
||||
<NPC Acc, False> => NPC Nom ; _ => v.c2.c} -- acc object -> nom; all others: same PCase
|
||||
in insertObjc (\\_ => v.s ! VPastPart APred) (predV werdenPass) ** { subjc = v.c2 ** {c = c} } ;
|
||||
|
||||
PassV2Q v q =
|
||||
PassV2Q v q =
|
||||
let c = case <v.c2.c, v.c2.isPrep> of {
|
||||
<NPC Acc, False> => NPC Nom ; _ => v.c2.c} ; -- acc;pcase object -> nom;pcase subject
|
||||
vp = insertObjc (\\_ => v.s ! VPastPart APred) (predV werdenPass)
|
||||
** { subjc = v.c2 ** {c = c} }
|
||||
vp = insertObj (\\_ => v.s ! VPastPart APred) (predV werdenPass)
|
||||
** { c1 = v.c2 ** {c = c} }
|
||||
in insertExtrapos (bindComma ++ q.s ! QIndir) vp ;
|
||||
|
||||
PassV2S v s =
|
||||
PassV2S v s =
|
||||
let c = case <v.c2.c, v.c2.isPrep> of {
|
||||
<NPC Acc, False> => NPC Nom ; _ => v.c2.c} ; -- acc;pcase object -> nom;pcase subject
|
||||
vp = insertObjc (\\_ => v.s ! VPastPart APred) (predV werdenPass)
|
||||
** { subjc = v.c2 ** {c = c} }
|
||||
vp = insertObj (\\_ => v.s ! VPastPart APred) (predV werdenPass)
|
||||
** { c1 = v.c2 ** {c = c} }
|
||||
in insertExtrapos (bindComma ++ conjThat ++ s.s ! Sub) vp ;
|
||||
|
||||
PassV2V v vp =
|
||||
let c = case <v.c2.c, v.c2.isPrep> of {
|
||||
let
|
||||
inf = mkInf v.isAux Simul Pos vp ; -- ok for v.isAux=False, v.c2.c=Acc
|
||||
c = case <v.c2.c, v.c2.isPrep> of { -- v.objCtrl=True HL 3/22
|
||||
<NPC Acc, False> => NPC Nom ; _ => v.c2.c} ; -- acc;pcase object -> nom;pcase subject
|
||||
vp2 = insertObjc (\\_ => v.s ! VPastPart APred) (predV werdenPass)
|
||||
** { subjc = v.c2 ** {c = c} }
|
||||
in insertExtrapos (bindComma ++ (useInfVP False vp)) vp2 ; -- misses subject agr for vp = ReflVP vps
|
||||
{-
|
||||
vp2 = insertObj (\\_ => v.s ! VPastPart APred) (predV werdenPass)
|
||||
** { c1 = v.c2 ** {c = c} } ;
|
||||
in insertInf inf vp2 ; -- v=lassen needs in-place inf instead
|
||||
|
||||
PassVPSlash vp =
|
||||
let c = case <vp.c2.c,vp.c2.isPrep> of {
|
||||
<NPC Acc, False> => NPC Nom ; _ => vp.c2.c}
|
||||
in insertObjc (\\_ => (PastPartAP vp).s ! APred) (predV werdenPass)
|
||||
** {ext = vp.ext ; subjc = vp.c2 ** {c = c}} ;
|
||||
-- regulates passivised object: accusative objects -> nom; all others: same case
|
||||
-- this also gives "mit dir wird gerechnet" ;
|
||||
-- the alternative linearisation ("es wird mit dir gerechnet") is not implemented
|
||||
-- HL: does not work for vp = (Slash2V3 v np): uns wird den Beweis erklärt
|
||||
-- vp = (SlashV2V v2v reflVP): wir werden gebeten, uns zu fragen , ob S
|
||||
<NPC Acc, False> => NPC Nom ; _ => vp.c2.c} ;
|
||||
ctrl = case vp.objCtrl of { True => False ; _ => True } -- always False?
|
||||
in -- insertObj (\\_ => (PastPartAP vp).s ! APred) (predV werdenPass ** {c1 = vp.c2 ** {c = c}})
|
||||
insertObj (\\_ => vp.s.s ! (VPastPart APred))
|
||||
(predV werdenPass ** {nn = vp.nn ; c1 = vp.c2 ** {c = c}})
|
||||
** {ext = vp.ext ; inf = vp.inf ; c2 =vp.c2 ; objCtrl = ctrl } ; -- c2 ?
|
||||
-- Scharolta: passivised object: acc object -> nom subject; all others: same case/prep
|
||||
-- HL: does not work for vp = (Slash2V3 v np): uns wird *den Beweis erklärt
|
||||
-- 3/22 works for vp = (SlashV2V v2v reflVP): wir werden gebeten, uns zu waschen
|
||||
|
||||
PastPartAP vp = {
|
||||
s = \\af => (vp.nn ! agrP3 Sg).p1 ++ (vp.nn ! agrP3 Sg).p2 ++
|
||||
(vp.nn ! agrP3 Sg).p3 ++ (vp.nn ! agrP3 Sg).p4 ++ vp.adj ++ vp.a2
|
||||
++ vp.inf.s ++ vp.infExt ++ vp.s.s ! VPastPart af ;
|
||||
++ vp.inf.inpl.p2 ++ vp.s.s ! VPastPart af ;
|
||||
isPre = True ;
|
||||
c = <[],[]> ;
|
||||
adj = [] ;
|
||||
ext = vp.ext
|
||||
ext = (vp.inf.extr ! agrP3 Sg) ++ vp.ext -- HL 5/4/2022
|
||||
} ;
|
||||
-}
|
||||
|
||||
Pass2V3 v np = -- HL 7/19: making the (active) direct object to the (passive) subject
|
||||
let vps = insertObjc (\\_ => (v.s ! VPastPart APred)) (predV werdenPass)
|
||||
** { subjc = PrepNom ; c2 = v.c3 }
|
||||
in insertObjNP np vps.c2 vps ;
|
||||
let vps = insertObj (\\_ => (v.s ! VPastPart APred)) (predV werdenPass)
|
||||
** { c1 = PrepNom ; c2 = v.c3 }
|
||||
in insertObjNP np vps.c2 (vps ** {objCtrl = False});
|
||||
|
||||
Pass3V3 v np = -- HL 7/19: making the (active) indirect object to the (passive) subject
|
||||
let bekommen : Verb = P.habenV (P.irregV "bekommen" "bekommt" "bekam" "bekäme" "bekommen") ;
|
||||
vps = insertObjc (\\_ => (v.s ! VPastPart APred)) (predV bekommen)
|
||||
** { subjc = PrepNom ; c2 = v.c2 }
|
||||
in insertObjNP np vps.c2 vps ;
|
||||
vps = insertObj (\\_ => (v.s ! VPastPart APred)) (predV bekommen)
|
||||
** { c1 = PrepNom ; c2 = v.c2 }
|
||||
in insertObjNP np vps.c2 (vps ** {objCtrl = False});
|
||||
{-
|
||||
Pass2V4 v np =
|
||||
let vps = -- : VPSlashSlash =
|
||||
insertObj (\\_ => (v.s ! VPastPart APred)) (predV werdenPass)
|
||||
** { subjc = PrepNom ; c2 = v.c3 ; c3 = v.c4 }
|
||||
** { c1 = PrepNom ; c2 = v.c3 ; c3 = v.c4 }
|
||||
in (insertObjNP np vps.c3 vps) ;
|
||||
|
||||
-- Todo: Pass?V2S, Pass?V2Q, PassVS, PassVQ Pass?V2V
|
||||
-}
|
||||
|
||||
SlashV2Vneg v vp = -- versprechen, (\agr => sich!agr es nicht zu merken)
|
||||
SlashV2Vneg v vp = -- HL 3/22
|
||||
let
|
||||
vps = (predVGen v.isAux v) ** { c2 = v.c2 } ; --; ctrl = v.ctrl } ;
|
||||
vpi = infzuVP v.isAux v.ctrl Simul Neg vp ;
|
||||
comma = case orB vp.isAux (case vp.inf.ctrl of { NoC => True ; _ => False }) of {True => [] ; _ => bindComma} ;
|
||||
embeddedInf : Agr => Str = case vp.inf.isAux of {
|
||||
True => \\agr => comma ++ (vp.nn!agr).p5 ++ (vp.nn!agr).p6 ++ vpi.inf ; -- ihn es lesen (zu) lassen
|
||||
False => \\agr => comma ++ (vp.nn!agr).p5 ++ vpi.inf ++ (vp.nn!agr).p6 } -- ihn (zu) bitten , es zu lesen
|
||||
in
|
||||
insertExtrapos vpi.ext (
|
||||
insertInf vpi.pred (
|
||||
insertInfExtraObj vpi.objs (
|
||||
insertInfExtraInf embeddedInf vps))) ;
|
||||
vps = (predVGen v.isAux v) ;
|
||||
inf = mkInf v.isAux Simul Neg vp
|
||||
in
|
||||
insertExtrapos vp.ext (
|
||||
insertInf inf vps) ** {c2 = v.c2 ; objCtrl = v.objCtrl} ;
|
||||
|
||||
lin -- with param Control in ../../src/german/ParadigmsGer.gf
|
||||
helfen_V2V = P.mkV2V (P.irregV "helfen" "hilft" "half" "hälfe" "geholfen") P.datPrep ;
|
||||
warnen_V2V = P.mkV2V (P.regV "warnen") P.accPrep ;
|
||||
versprechen_dat_V2V =
|
||||
P.subjV2V (P.mkV2V (P.irregV "versprechen" "verspricht" "versprach" "verspräche" "versprochen") P.datPrep) ;
|
||||
lassen_V2V = P.auxV2V (P.irregV "lassen" "lasst" "ließ" "ließe" "gelassen") P.accPrep ; -- lasse dich (*zu) arbeiten
|
||||
}
|
||||
|
||||
-- SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy
|
||||
-- -- (the book) that (she (begged:V2V me:NP (to buy ()):VPSlash):VPSlash):ClSlash
|
||||
|
||||
-- very expensive:
|
||||
-- + SlashV2V 2332800 (6480,40)
|
||||
-- + SlashV2VNP 2267481600 (4320,270) vs. (1080,90) in VerbGer, 305460 msec
|
||||
-- Languages: TestLangGer
|
||||
-- 623657 msec
|
||||
{-
|
||||
SlashV2VNP v np vp =
|
||||
let
|
||||
vps = (predVGen v.isAux v) ** { c2 = vp.c2 } ; -- objCtrl =
|
||||
vpi = infzuVP v.isAux v.ctrl Simul Pos vp ;
|
||||
-- comma = case <vp.isAux,vp.inf.ctrl> of { <True,_> => [] ; <_,NoC> => [] ; _ => bindComma} ;
|
||||
embeddedInf : Agr => Str =
|
||||
\\agr => "[" ++ (vp.nn!agr).p5 ++ (vp.nn!agr).p6 ++ vpi.inf ++ "]";
|
||||
-- embeddedInf : Agr => Str = case vp.inf.isAux of {
|
||||
-- True => \\agr => comma ++ (vp.nn!agr).p5 ++ (vp.nn!agr).p6 ++ vpi.inf ; -- ihn es lesen (zu) lassen
|
||||
-- False => \\agr => comma ++ (vp.nn!agr).p5 ++ vpi.inf ++ (vp.nn!agr).p6 } -- ihn (zu) bitten , es zu lesen
|
||||
in
|
||||
insertExtrapos vpi.ext ( -- vps.ext <- vp's object-sentence ++ extractedInfzu?
|
||||
insertInf vpi.pred ( -- vps.inf <- vp's infinite main verb
|
||||
insertInfExtraObj vpi.objs ( -- vps.nn.p5 <- vp's object nps
|
||||
insertInfExtraInf embeddedInf (
|
||||
insertObjNP np v.c2 vps )))) ;
|
||||
-}
|
||||
-- 3/22 expensive:
|
||||
-- i -v -src TestLangGer.gf
|
||||
-- + ComplSlash 699840 (355680,532)
|
||||
-- + SlashV2V 259200 (1440,20)
|
||||
-- + SlashV2VNP 503884800 (77760,540)
|
||||
-- 243273 msec
|
||||
|
||||
{-
|
||||
TestLang> p "the book that we beg her to promise him to read" | l
|
||||
the book that we beg her to promise him to read
|
||||
das Buch , das wir sie bitten , ihn zu versprechen [ [ ] zu lesen ]
|
||||
das Buch , das wir sie bitten , ihm zu versprechen , zu lesen
|
||||
|
||||
TestLang> p "the book that we beg her to beg him to read" | l
|
||||
the book that we beg her to beg him to read
|
||||
das Buch , das wir sie bitten , ihn zu bitten [ [ ] zu lesen ]
|
||||
das Buch , das wir sie bitten , ihn zu bitten , zu lesen
|
||||
|
||||
TestLang: DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPres ASimul) PPos (RelSlash IdRP (SlashVP (UsePron we_Pron) (SlashV2VNP versprechen_dat_V2V (UsePron she_Pron) (SlashV2a read_V2))))))
|
||||
TestLangEng: the book that we promise her to read
|
||||
TestLangGer: das Buch , dem wir ihr versprechen , zu lesen Bug: dem => das
|
||||
TestLangGer: das Buch , das wir ihr versprechen , zu lesen
|
||||
|
||||
TestLang> p "the book that we beg her to sell to him" | l
|
||||
the book that we beg her to sell to him
|
||||
das Buch , das wir ihm sie bitten , zu verkaufen
|
||||
=> das Buch , das wir sie bitten , ihm zu verkaufen
|
||||
das Buch , das wir sie bitten , ihm zu verkaufen
|
||||
|
||||
p -lang=Ger "das Kind , auf das wir ihn bitten , zu warten ," | l
|
||||
the child that we beg him to wait for
|
||||
das Kind , auf das wir ihn bitten , zu warten
|
||||
|
||||
pied piping:
|
||||
~~> das Buch , das ihm zu verkaufen wir sie bitten
|
||||
~~ das Buch , an das zu glauben wir sie bitten
|
||||
~~> das Kind , auf das zu warten wir ihn bitten
|
||||
|
||||
Wrong in gf-3.9 as well:
|
||||
Lang> p "the woman that we beg him to listen to" | l
|
||||
the woman that we beg him to listen to
|
||||
die Frau , die wir ihn zuzuhören bitten (Bug: die => der)
|
||||
die Frau , der wir ihn bitten , zuzuhören
|
||||
|
||||
Lang> p "the book that we beg her to sell to him" | l
|
||||
the book that we beg her to sell to him
|
||||
das Buch , das wir ihn sie zu verkaufen bitten (Bug: ihn sie => sie ihm)
|
||||
=> das Buch, das wir sie bitten, ihm zu verkaufen
|
||||
das Buch, das wir sie bitten, ihm zu verkaufen
|
||||
|
||||
Test reflexive resolution:
|
||||
|
||||
gr -tr (PredVP (UsePron ?) (ComplSlash (SlashV2V lassen_V2V (ReflVP (SlashV2a wash_V2))) (UsePron ?))) | l
|
||||
|
||||
-}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@ oper
|
||||
\v,p2,p3,p4 -> lin V4 (v ** { c2=p2 ; c3=p3 ; c4=p4 }) ;
|
||||
dirV4 : V -> Prep -> Prep -> V4 = \v,c,d -> mkV4 v accPrep c d ;
|
||||
-- control verbs
|
||||
dirV2V : V -> V2V = \v -> mkV2V v ;
|
||||
|
||||
dirV2V : V -> V2V = \v -> mkV2V v ; -- object control verb;
|
||||
-- subjV2V v2v = subject-control verb
|
||||
lin
|
||||
aendern_rV = reflV (regV "ändern") accusative ;
|
||||
anstrengen_rV = reflV (prefixV "an" (regV "strengen")) accusative ;
|
||||
@@ -37,29 +37,37 @@ lin
|
||||
|
||||
erklaeren_dat_V3 = mkV3 (irregV "erklären" "erklärt" "erklärte" "erklärte" "erklärt") ;
|
||||
anklagen_gen_V3 = dirV3 (prefixV "an" (regV "klagen")) genPrep ;
|
||||
erinnern_an_V3 = dirV3 (irregV "erinnern" "erinnert" "erinnerte" "erinnerte" "erinnert") (mkPrep "an" accusative) ;
|
||||
erinnern_an_V3 = dirV3 (irregV "erinnern" "erinnert" "erinnerte"
|
||||
"erinnerte" "erinnert") (mkPrep "an" accusative) ;
|
||||
danken_dat_fuer_V3 = mkV3 (regV "danken") datPrep (mkPrep "für" accusative) ;
|
||||
debattieren_mit_ueber_V3 = mkV3 (irregV "debattieren" "debattiert" "debattierte" "debattierte" "debattiert") mit_Prep (mkPrep "über" accusative) ;
|
||||
debattieren_mit_ueber_V3 = mkV3 (irregV "debattieren" "debattiert" "debattierte"
|
||||
"debattierte" "debattiert") mit_Prep (mkPrep "über" accusative) ;
|
||||
lehren_V3 = dirV3 (regV "lehren") accPrep ;
|
||||
|
||||
abschauen_bei_rV3 = reflV3 (prefixV "ab" (irregV "schauen" "schaut" "schaute" "schaute" "geschaut")) dative accPrep bei_Prep ;
|
||||
abschauen_bei_rV3 = reflV3 (prefixV "ab" (irregV "schauen" "schaut"
|
||||
"schaute" "schaute" "geschaut")) dative accPrep bei_Prep ;
|
||||
leihen_von_rV3 = reflV3 (irregV "leihen" "leiht" "lieh" "liehe" "geliehen") dative accPrep von_Prep ;
|
||||
|
||||
entschuldigen_bei_fuer_rV3 =
|
||||
reflV3 (irregV "entschuldigen" "entschuldigt" "entschuldigte" "entschuldigte" "entschuldigt") accusative bei_Prep fuer_Prep ;
|
||||
entschuldigen_bei_fuer_rV3 = reflV3 (irregV "entschuldigen" "entschuldigt" "entschuldigte"
|
||||
"entschuldigte" "entschuldigt") accusative bei_Prep fuer_Prep ;
|
||||
raechen_am_fuer_rV3 = reflV3 (regV "rächen") accusative (mkPrep "an" dative) fuer_Prep ;
|
||||
|
||||
kaufen_bei_fuer_V4 = dirV4 (regV "kaufen") bei_Prep fuer_Prep ;
|
||||
mieten_von_fuer_V4 = dirV4 (regV "mieten") von_Prep fuer_Prep ;
|
||||
|
||||
neugierig_auf_A2 = mkA2 (mk3A "neugierig" "neugieriger" "neugierigste") (mkPrep "auf" accusative) ;
|
||||
|
||||
|
||||
-- verbs with infinitival object (non-modal):
|
||||
wagen_VV = mkVV (regV "wagen") ;
|
||||
versuchen_VV = mkVV (irregV "versuchen" "versucht" "versuchte" "versuchte" "versucht") ;
|
||||
|
||||
-- object control verbs:
|
||||
helfen_V2V = mkV2V (irregV "helfen" "hilft" "half" "hälfe" "geholfen") datPrep ;
|
||||
warnen_V2V = dirV2V (regV "warnen") ;
|
||||
-- versprechen_dat_V2V = subjV2V (mkV2V (irregV "versprechen" "verspricht" "versprach" "verspräche" "versprochen") datPrep) ;
|
||||
lassen_V2V = auxV2V (irregV "lassen" "lasst" "ließ" "ließe" "gelassen") accPrep ; -- lasse dich (*zu) arbeiten
|
||||
lassen_V2V = auxV2V (irregV "lassen" "läßt" "ließ" "ließe" "gelassen") accPrep ;
|
||||
-- lasse dich (*zu) arbeiten
|
||||
-- subject control verb:
|
||||
versprechen_dat_V2V = subjV2V (mkV2V (irregV "versprechen" "verspricht"
|
||||
"versprach" "verspräche" "versprochen") datPrep) ;
|
||||
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashVV want_VV (SlashV2a read_V2
|
||||
TestLangGer: ich will das Buch lesen
|
||||
TestLangEng: I want to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashVV wagen_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich wage das Buch , zu lesen -- wrong
|
||||
TestLangGer: ich wage das Buch zu lesen
|
||||
TestLangEng: I dare to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV must_VV (ComplSlash (SlashV2a read_V2) (DetCN (DetQuant DefArt NumSg) (UseN book_N))))
|
||||
TestLangGer: ich muss das Buch lesen
|
||||
@@ -68,22 +68,22 @@ TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashVV must_VV (SlashVV want_VV
|
||||
TestLangGer: ich muss das Buch lesen wollen
|
||||
TestLangEng: I must want to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashVV must_VV (SlashVV wagen_VV (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich muss das Buch wagen , zu lesen -- wrong
|
||||
TestLangGer: ich muss das Buch zu lesen wagen
|
||||
TestLangEng: I must dare to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashVV want_VV (SlashVV wagen_VV (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich will das Buch wagen , zu lesen -- wrong
|
||||
TestLangGer: ich will das Buch zu lesen wagen
|
||||
TestLangEng: I want to dare to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashVV wagen_VV (SlashVV want_VV (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich wage das Buch , lesen zu wollen -- wrong
|
||||
TestLangGer: ich wage das Buch lesen zu wollen
|
||||
TestLangEng: I dare to want to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV must_VV (ComplSlash (SlashVV want_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N))))
|
||||
TestLangGer: ich muss das Buch lesen wollen
|
||||
TestLangEng: I must want to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV must_VV (ComplSlash (SlashVV wagen_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N))))
|
||||
TestLangGer: ich muss das Buch wagen , zu lesen -- wrong
|
||||
TestLangGer: ich muss das Buch wagen zu lesen -- wrong
|
||||
TestLangEng: I must dare to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV want_VV (ComplSlash (SlashVV wagen_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N))))
|
||||
TestLangGer: ich will das Buch wagen , zu lesen -- wrong
|
||||
TestLangGer: ich will das Buch wagen zu lesen -- wrong
|
||||
TestLangEng: I want to dare to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV wagen_VV (ComplSlash (SlashVV want_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N))))
|
||||
TestLangGer: ich wage , das Buch lesen zu wollen
|
||||
@@ -101,22 +101,22 @@ TestLang: PredVP (UsePron i_Pron) (ComplVV wagen_VV (ComplVV want_VV (ComplSlash
|
||||
TestLangGer: ich wage , das Buch lesen zu wollen
|
||||
TestLangEng: I dare to want to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV must_VV (ComplSlash (SlashVV want_VV (SlashVV wagen_VV (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N))))
|
||||
TestLangGer: ich muss das Buch wagen wollen , zu lesen -- wrong
|
||||
TestLangGer: ich muss das Buch zu lesen wagen wollen
|
||||
TestLangEng: I must want to dare to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV must_VV (ComplVV want_VV (ComplSlash (SlashVV wagen_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))))
|
||||
TestLangGer: ich muss das Buch wagen wollen , zu lesen -- wrong
|
||||
TestLangGer: ich muss das Buch wagen wollen zu lesen -- wrong
|
||||
TestLangEng: I must want to dare to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV must_VV (ComplVV want_VV (ComplVV wagen_VV (ComplSlash (SlashV2a read_V2) (DetCN (DetQuant DefArt NumSg) (UseN book_N))))))
|
||||
TestLangGer: ich muss wagen wollen , das Buch zu lesen
|
||||
TestLangEng: I must want to dare to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashVV must_VV (SlashVV wagen_VV (SlashVV want_VV (SlashV2a read_V2)))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich muss das Buch wagen , lesen zu wollen -- wrong
|
||||
TestLangGer: ich muss das Buch wagen lesen zu wollen -- wrong
|
||||
TestLangEng: I must dare to want to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashVV must_VV (SlashVV want_VV (SlashVV wagen_VV (SlashV2a read_V2)))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich muss das Buch wagen , zu lesen wollen -- wrong
|
||||
TestLangGer: ich muss das Buch zu lesen wagen wollen
|
||||
TestLangEng: I must want to dare to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV must_VV (ComplSlash (SlashVV wagen_VV (SlashVV want_VV (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N))))
|
||||
TestLangGer: ich muss das Buch wagen , lesen zu wollen -- wrong
|
||||
TestLangGer: ich muss das Buch wagen lesen zu wollen -- wrong
|
||||
TestLangEng: I must dare to want to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV must_VV (ComplVV wagen_VV (ComplSlash (SlashVV want_VV (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))))
|
||||
TestLangGer: ich muss wagen , das Buch lesen zu wollen
|
||||
@@ -149,43 +149,43 @@ TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V beg_V2V (ComplSlash (Sla
|
||||
TestLangGer: ich bitte ihn , ihm zu versprechen , das Buch zu lesen
|
||||
TestLangEng: I beg him to promise him to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2VNP lassen_V2V (UsePron he_Pron) (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich lasse das Buch ihn lesen -- wrong object order (3.9 SlashV2VNP)
|
||||
TestLangGer: ich lasse ihn das Buch lesen
|
||||
TestLangEng: I let him read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2VNP beg_V2V (UsePron he_Pron) (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich bitte das Buch ihn , zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangGer: ich bitte ihn das Buch , zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangEng: I beg him to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2VNP versprechen_dat_V2V (UsePron he_Pron) (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich verspreche das Buch ihm , zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangGer: ich verspreche ihm das Buch , zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangEng: I promise him to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2VNP beg_V2V (DetNP (DetQuant DefArt NumPl)) (SlashV2VNP lassen_V2V (UsePron he_Pron) (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich bitte das Buch ihn die , zu lassen lesen -- wrong (SlahV2VNP) bitte die, ihn es lesen zu lassen
|
||||
TestLangGer: ich bitte die das Buch , ihn lesen zu lassen -- wrong (SlahV2VNP)
|
||||
TestLangEng: I beg them to let him read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2VNP beg_V2V (UsePron they_Pron) (SlashV2VNP lassen_V2V (UsePron he_Pron) (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich bitte das Buch ihn sie , zu lassen lesen -- wrong (SlashV2VNP)
|
||||
TestLangGer: ich bitte sie das Buch , ihn lesen zu lassen -- wrong (SlashV2VNP)
|
||||
TestLangEng: I beg them to let him read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V beg_V2V (ComplSlash (SlashV2VNP lassen_V2V (UsePron he_Pron) (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))) (DetNP (DetQuant DefArt NumPl)))
|
||||
TestLangGer: ich bitte die , das Buch ihn lesen zu lassen -- wrong obj order
|
||||
TestLangGer: ich bitte die , ihn das Buch lesen zu lassen
|
||||
TestLangEng: I beg them to let him read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V beg_V2V (ComplSlash (SlashV2VNP lassen_V2V (UsePron he_Pron) (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))) (UsePron they_Pron))
|
||||
TestLangGer: ich bitte sie , das Buch ihn lesen zu lassen -- wrong obj order
|
||||
TestLangGer: ich bitte sie , ihn das Buch lesen zu lassen
|
||||
TestLangEng: I beg them to let him read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2VNP versprechen_dat_V2V (DetNP (DetQuant DefArt NumPl)) (SlashV2VNP beg_V2V (UsePron he_Pron) (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich verspreche das Buch ihn denen , zu bitten zu lesen -- wrong (SlashV2VNP gf-3.9))
|
||||
TestLangGer: ich verspreche denen das Buch , ihn zu bitten , zu lesen -- wrong (SlashV2VNP))
|
||||
TestLangEng: I promise them to beg him to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2VNP versprechen_dat_V2V (UsePron they_Pron) (SlashV2VNP beg_V2V (UsePron he_Pron) (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich verspreche das Buch ihn ihnen , zu bitten zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangGer: ich verspreche ihnen das Buch , ihn zu bitten , zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangEng: I promise them to beg him to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V versprechen_dat_V2V (ComplSlash (SlashV2VNP beg_V2V (UsePron he_Pron) (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))) (DetNP (DetQuant DefArt NumPl)))
|
||||
TestLangGer: ich verspreche denen , das Buch ihn zu bitten , zu lesen -- wrong obj order
|
||||
TestLangGer: ich verspreche denen , ihn das Buch zu bitten , zu lesen
|
||||
TestLangEng: I promise them to beg him to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V versprechen_dat_V2V (ComplSlash (SlashV2VNP beg_V2V (UsePron he_Pron) (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))) (UsePron they_Pron))
|
||||
TestLangGer: ich verspreche ihnen , das Buch ihn zu bitten , zu lesen -- wrong obj order
|
||||
TestLangGer: ich verspreche ihnen , ihn das Buch zu bitten , zu lesen -- wrong
|
||||
TestLangEng: I promise them to beg him to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2VNP beg_V2V (UsePron he_Pron) (SlashV2VNP versprechen_dat_V2V (UsePron he_Pron) (SlashV2a read_V2))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))
|
||||
TestLangGer: ich bitte das Buch ihm ihn , zu versprechen zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangGer: ich bitte ihn das Buch , ihm zu versprechen , zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangEng: I beg him to promise him to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V beg_V2V (ComplSlash (SlashV2VNP versprechen_dat_V2V (UsePron he_Pron) (SlashV2a read_V2)) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))) (UsePron he_Pron))
|
||||
TestLangGer: ich bitte ihn , das Buch ihm zu versprechen , zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangGer: ich bitte ihn , ihm das Buch zu versprechen , zu lesen -- wrong (SlashV2VNP)
|
||||
TestLangEng: I beg him to promise him to read the book
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V beg_V2V (ReflVP (SlashV2a love_V2))) (UsePron youSg_Pron))
|
||||
TestLangGer: ich bitte dich , dich zu lieben
|
||||
@@ -200,7 +200,7 @@ TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V versprechen_dat_V2V (Com
|
||||
TestLangGer: ich verspreche ihr , mich lieben zu wollen
|
||||
TestLangEng: I promise her to want to love herself -- wrong: myself
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV want_VV (ComplSlash (SlashV2V beg_V2V (ComplSlash (SlashV2Vneg versprechen_dat_V2V (ReflVP (SlashV2a hate_V2))) (UsePron youSg_Pron))) (UsePron she_Pron)))
|
||||
TestLangGer: ich will sie bitten , dir zu versprechen , sich nicht zu hassen
|
||||
TestLangGer: ich will sie bitten , dir zu versprechen , sich nicht zu hassen (uses SlashV2Vneg)
|
||||
TestLangEng: I want to beg her to promise you not to hate yourself -- wrong: herself
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V versprechen_dat_V2V (ComplSlash (ReflVPSlash entschuldigen_bei_fuer_rV3) (UsePron it_Pron))) (UsePron she_Pron))
|
||||
TestLangGer: ich verspreche ihr , mich bei mir für es zu entschuldigen
|
||||
@@ -209,7 +209,7 @@ TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V versprechen_dat_V2V (Com
|
||||
TestLangGer: ich verspreche uns , es mir zu geben
|
||||
TestLangEng: I promise us to give it itself -- wrong: myself
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplVV want_VV (ComplSlash (SlashV2V versprechen_dat_V2V (ComplSlash (SlashV2Vneg beg_V2V (ReflVP (SlashV2a hate_V2))) (UsePron youSg_Pron))) (UsePron she_Pron)))
|
||||
TestLangGer: ich will ihr versprechen , dich zu bitten , dich nicht zu hassen
|
||||
TestLangGer: ich will ihr versprechen , dich zu bitten , dich nicht zu hassen -- SlashV2Vneg
|
||||
TestLangEng: I want to promise her to beg you to not hate yourself
|
||||
TestLang: PredVP (UsePron i_Pron) (ComplSlash (SlashV2V beg_V2V (ComplSlash (ReflVPSlash entschuldigen_bei_fuer_rV3) (UsePron it_Pron))) (UsePron youSg_Pron))
|
||||
TestLangGer: ich bitte dich , dich bei dir für es zu entschuldigen
|
||||
@@ -227,7 +227,7 @@ TestLang: DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPas
|
||||
TestLangGer: das Buch , das wir nicht lesen mussten
|
||||
TestLangEng: the book that we hadn't to read
|
||||
TestLang: DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPast ASimul) PNeg (RelSlash IdRP (SlashVP (UsePron we_Pron) (SlashVV wagen_VV (SlashV2a read_V2))))))
|
||||
TestLangGer: das Buch , das wir nicht wagten , zu lesen
|
||||
TestLangGer: das Buch , das wir nicht zu lesen wagten
|
||||
TestLangEng: the book that we didn't dare to read
|
||||
TestLang: DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPast ASimul) PNeg (RelSlash IdRP (SlashVP (UsePron we_Pron) (SlashVV wagen_VV (Slash3V3 erklaeren_dat_V3 (UsePron she_Pron)))))))
|
||||
TestLangGer: das Buch , das wir nicht wagten , ihr zu erklären
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-- To create vp-paradigm.out, I used changes of 30/6/2019 (in git branch vp-paradigm):
|
||||
-- i ../../src/german/LangGer.gf
|
||||
i ../../src/german/LangGer.gf
|
||||
-- Use gf --run < vp-paradigm.gfs > vp-paradigm.tmp to compare with gf-rgl. HL 3/7/2019
|
||||
i alltenses/LangGer.gfo
|
||||
-- i alltenses/LangGer.gfo
|
||||
|
||||
-- verb phrases with modal verb
|
||||
l -lang=Ger -table (PredVP (UsePron he_Pron) (ComplVV want_VV (UseV sleep_V)))
|
||||
@@ -19,3 +19,7 @@ l -table (PredVP (DetCN (DetQuant DefArt NumSg) (UseN book_N)) (PassV2 read_V2))
|
||||
l PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (Slash3V3 send_V3 (DetCN (DetQuant DefArt NumSg) (UseN woman_N))) (DetCN (DetQuant DefArt NumSg) (UseN book_N)))))) NoVoc
|
||||
|
||||
l PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron i_Pron) (ComplSlash (Slash3V3 send_V3 (UsePron she_Pron)) (UsePron it_Pron))))) NoVoc
|
||||
|
||||
-- relative clause from object np is not extracted behind vpart:
|
||||
l UseCl (TTAnt TPast AAnter) PNeg (PredVP (UsePron i_Pron) (ComplSlash (SlashV2a know_V2) (DetCN (DetQuant DefArt NumSg) (RelCN (UseN book_N) (UseRCl (TTAnt TPast AAnter) PPos (RelSlash IdRP (SlashVP (UsePron youPl_Pron) (SlashV2VNP beg_V2V (UsePron we_Pron) (AdvVPSlash (SlashV2a read_V2) today_Adv)))))))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user