diff --git a/lib/resource-1.0/finnish/NounFin.gf b/lib/resource-1.0/finnish/NounFin.gf index 20140292c..94e78e9bc 100644 --- a/lib/resource-1.0/finnish/NounFin.gf +++ b/lib/resource-1.0/finnish/NounFin.gf @@ -18,9 +18,8 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in { <_, Nom, True,_,_> => NCase Sg Part ; -- kolme kytkintä(ni) <_, _, True,False,_> => NCase Sg c ; -- kolmeksi kytkimeksi => NCase Pl Part ; -- kytkimiä - <_, Nom,_,True,_> => NPossNom ; -- kytkime+ni on/ovat... - => NPossNom ; -- kytkime+ni vika - => NPossGenPl ; -- kytkimie+ni viat + <_, Nom,_,True,_> => NPossNom n ; -- kytkime+ni on/ovat... + <_, Gen,_,True,_> => NPossNom n ; -- kytkime+ni vika <_, Transl,_,True,_> => NPossTransl n ; -- kytkim(e|i)kse+ni <_, Illat,_,True,_> => NPossIllat n ; -- kytkim(ee|ii)+ni @@ -138,7 +137,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in { } ; AdjCN ap cn = { - s = \\nf => ap.s ! True ! AN nf ++ cn.s ! nf + s = \\nf => ap.s ! True ! AN (n2nform nf) ++ cn.s ! nf } ; RelCN cn rs = {s = \\nf => cn.s ! nf ++ rs.s ! agrP3 (numN nf)} ; diff --git a/lib/resource-1.0/finnish/ResFin.gf b/lib/resource-1.0/finnish/ResFin.gf index 07a9d4b19..699f90c4a 100644 --- a/lib/resource-1.0/finnish/ResFin.gf +++ b/lib/resource-1.0/finnish/ResFin.gf @@ -23,7 +23,8 @@ resource ResFin = ParamX ** open Prelude in { NForm = NCase Number Case | NComit | NInstruct -- no number dist - | NPossNom | NPossGenPl | NPossTransl Number | NPossIllat Number ; + | NPossNom Number | NPossGen Number --- number needed for syntax of AdjCN + | NPossTransl Number | NPossIllat Number ; -- Agreement of $NP$ is a record. We'll add $Gender$ later. @@ -60,6 +61,14 @@ oper NPAcc => Gen -- appCompl does the job } ; + n2nform : NForm -> NForm = \nf -> case nf of { + NPossNom n => NCase n Nom ; ---- + NPossGen n => NCase n Gen ; + NPossTransl n => NCase n Transl ; + NPossIllat n => NCase n Illat ; + _ => nf + } ; + --2 For $Verb$ @@ -461,8 +470,9 @@ oper NComit => vetii + "ne" ; NInstruct => vesii + "n" ; - NPossNom => vete ; - NPossGenPl => Predef.tk 1 vesien ; + NPossNom _ => vete ; + NPossGen Sg => vete ; + NPossGen Pl => Predef.tk 1 vesien ; NPossTransl Sg => vede + "kse" ; NPossTransl Pl => vesii + "kse" ; NPossIllat Sg => Predef.tk 1 veteen ; @@ -529,7 +539,7 @@ oper nsa = possSuffix agr in { s = table { - NPCase (Nom | Gen) | NPAcc => itse ! NPossNom + nsa ; + NPCase (Nom | Gen) | NPAcc => itse ! NPossNom Sg + nsa ; NPCase Transl => itse ! NPossTransl Sg + nsa ; NPCase Illat => itse ! NPossIllat Sg + nsa ; NPCase c => itse ! NCase Sg c + nsa