diff --git a/lib/resource-1.0/finnish/ExtraFin.gf b/lib/resource-1.0/finnish/ExtraFin.gf index 851080628..715426e58 100644 --- a/lib/resource-1.0/finnish/ExtraFin.gf +++ b/lib/resource-1.0/finnish/ExtraFin.gf @@ -1,6 +1,7 @@ --# -path=.:abstract:common:prelude -concrete ExtraFin of ExtraFinAbs = CatFin ** open ResFin, MorphoFin, Coordination, Prelude, StructuralFin in { +concrete ExtraFin of ExtraFinAbs = CatFin ** + open ResFin, MorphoFin, Coordination, Prelude, StructuralFin in { lin GenNP np = { @@ -28,6 +29,20 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** open ResFin, MorphoFin, Coordinatio mkClause (\_ -> adv.s) np.a (insertObj (\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom}))) ; + RelExistNP prep rp np = { + s = \\t,ant,bo,ag => + let cl = + mkClause + (\_ -> appCompl True Pos prep (rp2np ag.n rp)) + np.a + (insertObj + (\\_,b,_ => np.s ! NPCase Nom) + (predV (verbOlla ** {sc = NPCase Nom}))) ; + in + cl.s ! t ! ant ! bo ! SDecl ; + c = NPCase Nom + } ; + AdvPredNP adv v np = mkClause (\_ -> adv.s) np.a (insertObj (\\_,b,_ => np.s ! NPCase Nom) (predV v)) ; diff --git a/lib/resource-1.0/finnish/ExtraFinAbs.gf b/lib/resource-1.0/finnish/ExtraFinAbs.gf index 356d9b7ea..861350308 100644 --- a/lib/resource-1.0/finnish/ExtraFinAbs.gf +++ b/lib/resource-1.0/finnish/ExtraFinAbs.gf @@ -5,6 +5,8 @@ abstract ExtraFinAbs = Extra [ AdvExistNP : Adv -> NP -> Cl ; -- kuvassa olemme me AdvPredNP : Adv -> V -> NP -> Cl ; -- kuvassa hymyilee Veikko + RelExistNP : Prep -> RP -> NP -> RCl ; -- jossa on jazzia + i_implicPron : Pron ; -- (minä), minut, ... whatPart_IP : IP ; diff --git a/lib/resource-1.0/finnish/RelativeFin.gf b/lib/resource-1.0/finnish/RelativeFin.gf index 570eee2f4..9aab4e869 100644 --- a/lib/resource-1.0/finnish/RelativeFin.gf +++ b/lib/resource-1.0/finnish/RelativeFin.gf @@ -17,7 +17,9 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in RNoAg => ag ; RAg a => a } ; - cl = mkClause (subjForm {s = rp.s ! agr.n ; a = agr ; isPron = False} vp.sc) agr vp + cl = mkClause + (subjForm {s = rp.s ! agr.n ; + a = agr ; isPron = False} vp.sc) agr vp in cl.s ! t ! ant ! b ! SDecl ; c = NPCase Nom @@ -43,11 +45,6 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in a = RNoAg } ; -oper - rp2np : Number -> {s : Number => NPForm => Str ; a : RAgr} -> NP = \n,rp -> { - s = rp.s ! n ; - a = agrP3 Sg ; -- does not matter (--- at least in Slash) - isPron = False -- has no special accusative - } ; + } diff --git a/lib/resource-1.0/finnish/ResFin.gf b/lib/resource-1.0/finnish/ResFin.gf index 3e75611a2..03d92dbe7 100644 --- a/lib/resource-1.0/finnish/ResFin.gf +++ b/lib/resource-1.0/finnish/ResFin.gf @@ -563,4 +563,10 @@ oper possSuffix : Agr -> Str = \agr -> table Agr ["ni" ; "si" ; "nsa" ; "mme" ; "nne" ; "nsa"] ! agr ; +oper + rp2np : Number -> {s : Number => NPForm => Str ; a : RAgr} -> NP = \n,rp -> { + s = rp.s ! n ; + a = agrP3 Sg ; -- does not matter (--- at least in Slash) + isPron = False -- has no special accusative + } ; }