Finnish complete

This commit is contained in:
aarne
2006-02-07 18:05:25 +00:00
parent 52dc7d460d
commit 0e4a0f2041
45 changed files with 567 additions and 436 deletions

View File

@@ -1,3 +1,5 @@
--1 Verb Phrases in Finnish
concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
flags optimize=all_subs ;
@@ -5,32 +7,54 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
lin
UseV = predV ;
ComplV2 v np = insertObj (\\b,_ => appCompl True b v.c2 np) (predV v) ; ----
{-
ComplV2 v np = insertObj (\\fin,b,_ => appCompl fin b v.c2 np) (predV v) ;
ComplV3 v np np2 =
insertObj (\\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc) (predV v) ;
insertObj
(\\fin,b,_ => appCompl fin b v.c2 np ++ appCompl fin b v.c3 np2) (predV v) ;
ComplVV v vp = insertObj (\\a => v.c2 ++ infVP vp a) (predV v) ;
ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
ComplVV v vp =
insertObj
(\\_,b,a => infVP v.sc b a vp)
(predV {s = v.s ;
sc = case vp.sc of {
NPCase Nom => v.sc ; -- minun täytyy pestä auto
c => c -- minulla täytyy olla auto
}
}
) ;
ComplVA v ap = insertObj (ap.s) (predV v) ;
ComplVS v s = insertExtrapos ("että" ++ s.s) (predV v) ;
ComplVQ v q = insertExtrapos ( q.s) (predV v) ;
ComplVA v ap =
insertObj
(\\_,b,agr =>
ap.s ! False ! AN (NCase agr.n (npform2case v.c2.c))) --- v.cs.s ignored
(predV v) ;
ComplV2A v np ap =
insertObj (\\_ => v.c2 ++ np.s ! Acc ++ ap.s ! np.a) (predV v) ;
-}
insertObj
(\\fin,b,_ => appCompl fin b v.c2 np ++
ap.s ! False ! AN (NCase np.a.n (npform2case v.c2.c))) --agr to obj
(predV v) ;
UseComp comp =
insertObj (\\_ => comp.s) (predV (verbOlla ** {sc = NPCase Nom})) ;
insertObj (\\_,_ => comp.s) (predV (verbOlla ** {sc = NPCase Nom})) ;
AdvVP vp adv = insertObj (\\_,_ => adv.s) vp ;
AdvVP vp adv = insertObj (\\_,_,_ => adv.s) vp ;
---- AdVVP adv vp = insertAdV adv.s vp ;
AdVVP adv vp = insertObj (\\_,_,_ => adv.s) vp ;
-- ReflV2 v = insertObj (\\a => v.c2 ++ reflPron ! a) (predV v) ;
ReflV2 v = insertObj (\\fin,b,agr => appCompl fin b v.c2 (reflPron agr)) (predV v) ;
-- PassV2 v = insertObj (\\_ => v.s ! VPPart) (predAux auxBe) ;
PassV2 v = let vp = predV v in {
s = \\_ => vp.s ! VIPass ;
s2 = \\_,_,_ => [] ;
ext = [] ;
sc = v.c2.c -- minut valitaan ; minua rakastetaan ; minulle kuiskataan
} ; ---- talon valitaan: should be marked like inf.
-- UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; isRefl = vv.isRefl} ; -- no "to"
UseVS, UseVQ = \v -> v ** {c2 = {s = [] ; c = NPAcc ; isPre = True}} ;
CompAP ap = {
s = \\agr =>
@@ -45,5 +69,24 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
CompNP np = {s = \\_ => np.s ! NPCase Nom} ;
CompAdv a = {s = \\_ => a.s} ;
}
--2 The object case
--
-- The rules involved are ComplV2 and ComplVV above.
-- The work is done jointly in ResFin.infVP and appCompl.
-- Cases to test: l -table (to see negated forms)
--```
-- minun täytyy ostaa auto
-- PredVP (UsePron i_Pron) (ComplVV must_VV
-- (ComplV2 buy_V2 (DetCN (DetSg (SgQuant DefArt) NoOrd) (UseN car_N))))
-- minä tahdon ostaa auton
-- PredVP (UsePron i_Pron) (ComplVV want_VV
-- (ComplV2 buy_V2 (DetCN (DetSg (SgQuant DefArt) NoOrd) (UseN car_N))))
-- minulla täytyy olla auto
-- PredVP (UsePron i_Pron) (ComplVV must_VV
-- (ComplV2 have_V2 (DetCN (DetSg (SgQuant DefArt) NoOrd) (UseN car_N))))
--```
-- Unfortunately, there is no nice way to say "I want to have a car".
-- (Other than the paraphrases "I want a car" or "I want to own a car".)