From cd276cbebeec444fb246ceb30e5b7e8e37c37fc1 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 16 May 2006 13:07:02 +0000 Subject: [PATCH] ExistIP (still unfinished) --- lib/resource-1.0/abstract/Idiom.gf | 6 ++++-- lib/resource-1.0/english/IdiomEng.gf | 13 +++++++++++-- lib/resource-1.0/french/IdiomFre.gf | 12 ++++++++++-- lib/resource-1.0/swedish/IdiomSwe.gf | 17 +++++++++++++++-- lib/resource-1.0/swedish/IrregSwe.gf | 1 + lib/resource-1.0/swedish/IrregSweAbs.gf | 1 + 6 files changed, 42 insertions(+), 8 deletions(-) diff --git a/lib/resource-1.0/abstract/Idiom.gf b/lib/resource-1.0/abstract/Idiom.gf index dcce3f6b7..8fdcef740 100644 --- a/lib/resource-1.0/abstract/Idiom.gf +++ b/lib/resource-1.0/abstract/Idiom.gf @@ -6,10 +6,12 @@ abstract Idiom = Cat ** { -- often different even in closely related languages. fun - ExistNP : NP -> Cl ; -- there is a house ImpersCl : VP -> Cl ; -- it rains GenericCl : VP -> Cl ; -- one sleeps - ProgrVP : VP -> VP ; -- sleeping + ExistNP : NP -> Cl ; -- there is a house + ExistIP : IP -> QCl ; -- which houses are there + + ProgrVP : VP -> VP ; -- be sleeping } diff --git a/lib/resource-1.0/english/IdiomEng.gf b/lib/resource-1.0/english/IdiomEng.gf index 516d7cd1f..7f24b11de 100644 --- a/lib/resource-1.0/english/IdiomEng.gf +++ b/lib/resource-1.0/english/IdiomEng.gf @@ -3,11 +3,20 @@ concrete IdiomEng of Idiom = CatEng ** open Prelude, ResEng in { flags optimize=all_subs ; lin - ExistNP np = - mkClause "there" (agrP3 np.a.n) (insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ; ImpersCl vp = mkClause "it" (agrP3 Sg) vp ; GenericCl vp = mkClause "one" (agrP3 Sg) vp ; + ExistNP np = + mkClause "there" (agrP3 np.a.n) (insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ; + + ExistIP ip = + let cl = + mkClause (ip.s ! Nom) (agrP3 ip.n) (insertObj (\\_ => "there") (predAux auxBe)) + in { + s = \\t,a,b,_ => cl.s ! t ! a ! b ! ODir --- "what is there", no "what there is" + } ; + + ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ; } diff --git a/lib/resource-1.0/french/IdiomFre.gf b/lib/resource-1.0/french/IdiomFre.gf index ddab140dd..44af51f7d 100644 --- a/lib/resource-1.0/french/IdiomFre.gf +++ b/lib/resource-1.0/french/IdiomFre.gf @@ -4,11 +4,19 @@ concrete IdiomFre of Idiom = CatFre ** flags optimize=all_subs ; lin + ImpersCl vp = mkClause "il" (agrP3 Masc Sg) vp ; + GenericCl vp = mkClause "on" (agrP3 Masc Sg) vp ; + + ExistNP np = mkClause "il" (agrP3 Masc Sg) (insertClit2 "y" (insertComplement (\\_ => np.s ! Ton Acc) (predV avoir_V))) ; - ImpersCl vp = mkClause "il" (agrP3 Masc Sg) vp ; - GenericCl vp = mkClause "on" (agrP3 Masc Sg) vp ; + + ExistIP ip = { + s = \\t,a,p,_ => + (mkClause (ip.s ! Nom) (agrP3 ip.a.g ip.a.n) + (insertClit2 "y" (predV avoir_V))).s ! t ! a ! p ! Indic + } ; ProgrVP vp = insertComplement diff --git a/lib/resource-1.0/swedish/IdiomSwe.gf b/lib/resource-1.0/swedish/IdiomSwe.gf index fd2be3d87..b5364ee7f 100644 --- a/lib/resource-1.0/swedish/IdiomSwe.gf +++ b/lib/resource-1.0/swedish/IdiomSwe.gf @@ -4,11 +4,24 @@ concrete IdiomSwe of Idiom = CatSwe ** flags optimize=all_subs ; lin + ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ; + GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ; ExistNP np = mkClause "det" (agrP3 neutrum Sg) (insertObj (\\_ => np.s ! accusative) (predV (depV finna_V))) ; - ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ; - GenericCl vp = mkClause "man" (agrP3 neutrum Sg) vp ; + + ExistIP ip = { + s = \\t,a,p => + let + cls = + (mkClause "det" (agrP3 neutrum Sg) (predV (depV finna_V))).s ! t ! a ! p ; + who = ip.s ! accusative + in table { + QDir => who ++ cls ! Inv ; + QIndir => who ++ cls ! Sub + } + } ; + ProgrVP vp = insertObj (\\a => "att" ++ infVP vp a) (predV (partV hålla_V "på")) ; diff --git a/lib/resource-1.0/swedish/IrregSwe.gf b/lib/resource-1.0/swedish/IrregSwe.gf index c8078dbe0..25f63a0fa 100644 --- a/lib/resource-1.0/swedish/IrregSwe.gf +++ b/lib/resource-1.0/swedish/IrregSwe.gf @@ -109,6 +109,7 @@ concrete IrregSwe of IrregSweAbs = CatSwe ** open ParadigmsSwe in { ljuda_V = irregV "ljuda" "ljöd" "ljudit" ; ljuga_V = irregV "ljuga" "ljög" "ljugit" ; ljuta_V = irregV "ljuta" "ljöt" "ljutit" ; + lägga_V = irregV "lägga" "lade" "lagt" ; mottaga_V = irregV "mottaga" "mottog" "mottagit" ; nerstiga_V = irregV "nerstiga" "nersteg" "nerstigit" ; niga_V = irregV "niga" "neg" "nigit" ; diff --git a/lib/resource-1.0/swedish/IrregSweAbs.gf b/lib/resource-1.0/swedish/IrregSweAbs.gf index 83a756fad..b4da1aaa7 100644 --- a/lib/resource-1.0/swedish/IrregSweAbs.gf +++ b/lib/resource-1.0/swedish/IrregSweAbs.gf @@ -103,6 +103,7 @@ abstract IrregSweAbs = Cat ** { ljuda_V : V ; ljuga_V : V ; ljuta_V : V ; + lägga_V : V ; mottaga_V : V ; nerstiga_V : V ; niga_V : V ;