particle verbs in Finnish, to ease Wordnet translation

This commit is contained in:
aarne
2013-01-26 21:24:53 +00:00
parent 827c46a03c
commit e14f6a5488
7 changed files with 21 additions and 19 deletions

View File

@@ -96,6 +96,6 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
N3 = {s : NForm => Str ; h: Harmony} ** {c2,c3 : Compl ; isPre,isPre2 : Bool} ; N3 = {s : NForm => Str ; h: Harmony} ** {c2,c3 : Compl ; isPre,isPre2 : Bool} ;
PN = {s : Case => Str} ; PN = {s : Case => Str} ;
oper Verb1 = {s : VForm => Str ; sc : NPForm ; qp : Bool} ; oper Verb1 = {s : VForm => Str ; sc : NPForm ; qp : Bool ; p : Str} ;
} }

View File

@@ -69,7 +69,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
AdvExistNP adv np = AdvExistNP adv np =
mkClause (\_ -> adv.s) np.a (insertObj mkClause (\_ -> adv.s) np.a (insertObj
(\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom ; qp = True}))) ; (\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}))) ;
RelExistNP prep rp np = { RelExistNP prep rp np = {
s = \\t,ant,bo,ag => s = \\t,ant,bo,ag =>
@@ -80,7 +80,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
np.a np.a
(insertObj (insertObj
(\\_,b,_ => np.s ! NPCase Nom) (\\_,b,_ => np.s ! NPCase Nom)
(predV (verbOlla ** {sc = NPCase Nom ; qp = True}))) ; (predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}))) ;
in in
cl.s ! t ! ant ! bo ! SDecl ; cl.s ! t ! ant ! bo ! SDecl ;
c = NPCase Nom c = NPCase Nom
@@ -92,7 +92,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
ICompExistNP adv np = ICompExistNP adv np =
let cl = mkClause (\_ -> adv.s ! np.a) np.a (insertObj let cl = mkClause (\_ -> adv.s ! np.a) np.a (insertObj
(\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom ; qp = True}))) ; (\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}))) ;
in { in {
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
} ; } ;

View File

@@ -71,7 +71,7 @@ concrete IdiomFin of Idiom = CatFin **
} ; } ;
oper oper
olla = verbOlla ** {sc = NPCase Nom ; qp = True} ; olla = verbOlla ** {sc = NPCase Nom ; qp = True ; p = []} ;
noSubj : Polarity -> Str = \_ -> [] ; noSubj : Polarity -> Str = \_ -> [] ;
} }

View File

@@ -164,6 +164,7 @@ oper
mkV : (huutaa,huudan,huusi : Str) -> V ; -- also deviating pres. 1sg mkV : (huutaa,huudan,huusi : Str) -> V ; -- also deviating pres. 1sg
mkV : (huutaa,dan,taa,tavat,takaa,detaan,sin,si,sisi,tanut,dettu,tanee : Str) -> V ; -- worst-case verb mkV : (huutaa,dan,taa,tavat,takaa,detaan,sin,si,sisi,tanut,dettu,tanee : Str) -> V ; -- worst-case verb
mkV : VK -> V ; -- verb from DictFin (Kotus) mkV : VK -> V ; -- verb from DictFin (Kotus)
mkV : V -> Str -> V ; -- hakata päälle (particle verb)
} ; } ;
-- All the patterns above have $nominative$ as subject case. -- All the patterns above have $nominative$ as subject case.
@@ -519,20 +520,21 @@ oper
mkV : ( mkV : (
huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan, huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan,
huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V = mk12V ; huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V = mk12V ;
mkV : (sana : VK) -> V = \w -> vforms2V w.s ** {sc = NPCase Nom ; lock_V = <>} ; mkV : (sana : VK) -> V = \w -> vforms2V w.s ** {sc = NPCase Nom ; lock_V = <> ; p = []} ;
mkV : V -> Str -> V = \w,p -> vforms2V w.s ** {sc = NPCase Nom ; lock_V = <> ; p = p} ;
} ; } ;
mk1V : Str -> V = \s -> mk1V : Str -> V = \s ->
let vfs = vforms2V (vForms1 s) in let vfs = vforms2V (vForms1 s) in
vfs ** {sc = NPCase Nom ; lock_V = <>} ; vfs ** {sc = NPCase Nom ; lock_V = <> ; p = []} ;
mk2V : (_,_ : Str) -> V = \x,y -> mk2V : (_,_ : Str) -> V = \x,y ->
let vfs = vforms2V (vForms2 x y) in vfs ** {sc = NPCase Nom ; lock_V = <>} ; let vfs = vforms2V (vForms2 x y) in vfs ** {sc = NPCase Nom ; lock_V = <> ; p = []} ;
mk3V : (huutaa,huudan,huusi : Str) -> V = \x,_,y -> mk2V x y ; ---- mk3V : (huutaa,huudan,huusi : Str) -> V = \x,_,y -> mk2V x y ; ----
mk12V : ( mk12V : (
huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan, huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan,
huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V = huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V =
\a,b,c,d,e,f,g,h,i,j,k,l -> \a,b,c,d,e,f,g,h,i,j,k,l ->
vforms2V (vForms12 a b c d e f g h i j k l) ** {sc = NPCase Nom ; lock_V = <>} ; vforms2V (vForms12 a b c d e f g h i j k l) ** {sc = NPCase Nom ; lock_V = <> ; p = []} ;
vForms1 : Str -> VForms = \ottaa -> vForms1 : Str -> VForms = \ottaa ->
let let
@@ -595,9 +597,9 @@ oper
caseV c v = {s = v.s ; sc = NPCase c ; qp = v.qp ; lock_V = <>} ; caseV c v = {s = v.s ; sc = NPCase c ; qp = v.qp ; lock_V = <> ; p = v.p} ;
vOlla = verbOlla ** {sc = NPCase Nom ; qp = True ; lock_V = <>} ; ---- lieneekö vOlla = verbOlla ** {sc = NPCase Nom ; qp = True ; lock_V = <> ; p = []} ; ---- lieneekö
mk2V2 : V -> Prep -> V2 = \v,c -> v ** {c2 = c ; lock_V2 = <>} ; mk2V2 : V -> Prep -> V2 = \v,c -> v ** {c2 = c ; lock_V2 = <>} ;
caseV2 : V -> Case -> V2 = \v,c -> mk2V2 v (casePrep c) ; caseV2 : V -> Case -> V2 = \v,c -> mk2V2 v (casePrep c) ;
@@ -613,7 +615,7 @@ oper
mkV2 : V -> V2 = dirV2 ; mkV2 : V -> V2 = dirV2 ;
mkV2 : V -> Case -> V2 = caseV2 ; mkV2 : V -> Case -> V2 = caseV2 ;
mkV2 : V -> Prep -> V2 = mk2V2 ; mkV2 : V -> Prep -> V2 = mk2V2 ;
mkV2 : VK -> V2 = \w -> dirV2 (vforms2V w.s ** {sc = NPCase Nom ; lock_V = <>}) ; mkV2 : VK -> V2 = \w -> dirV2 (vforms2V w.s ** {sc = NPCase Nom ; lock_V = <> ; p = []}) ;
} ; } ;
mk2V2 : V -> Prep -> V2 ; mk2V2 : V -> Prep -> V2 ;

View File

@@ -31,7 +31,7 @@ concrete QuestionFin of Question = CatFin ** open ResFin, Prelude in {
QuestIComp icomp np = { QuestIComp icomp np = {
s = \\t,a,p => s = \\t,a,p =>
let let
vp = predV (verbOlla ** {sc = NPCase Nom ; qp = True}) ; vp = predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}) ;
cl = mkClause (subjForm np vp.sc) np.a vp ; cl = mkClause (subjForm np vp.sc) np.a vp ;
in in
icomp.s ! np.a ++ cl.s ! t ! a ! p ! SDecl icomp.s ! np.a ++ cl.s ! t ! a ! p ! SDecl

View File

@@ -198,7 +198,7 @@ oper
qp : Bool -- True = back vowel qp : Bool -- True = back vowel
} ; } ;
predV : (Verb ** {sc : NPForm ; qp : Bool}) -> VP = \verb -> { predV : (Verb ** {sc : NPForm ; qp : Bool ; p : Str}) -> VP = \verb -> {
s = \\vi,ant,b,agr0 => s = \\vi,ant,b,agr0 =>
let let
@@ -256,7 +256,7 @@ oper
} ; } ;
s2 = \\_,_,_ => [] ; s2 = \\_,_,_ => [] ;
adv = \\_ => [] ; adv = \\_ => verb.p ; -- the particle of the verb
ext = [] ; ext = [] ;
sc = verb.sc ; sc = verb.sc ;
qp = verb.qp ; qp = verb.qp ;

View File

@@ -24,7 +24,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
NPCase Nom => v.sc ; -- minun täytyy pestä auto NPCase Nom => v.sc ; -- minun täytyy pestä auto
c => c -- minulla täytyy olla auto c => c -- minulla täytyy olla auto
} ; } ;
qp = v.qp qp = v.qp ; p = v.p
} }
) ; ) ;
@@ -53,9 +53,9 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
ComplSlash vp np = insertObjPre np.isNeg (\\fin,b,_ => appCompl fin b vp.c2 np) vp ; ComplSlash vp np = insertObjPre np.isNeg (\\fin,b,_ => appCompl fin b vp.c2 np) vp ;
UseComp comp = UseComp comp =
insertObj (\\_,_ => comp.s) (predV (verbOlla ** {sc = NPCase Nom ; qp = True})) ; insertObj (\\_,_ => comp.s) (predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []})) ;
UseCopula = predV (verbOlla ** {sc = NPCase Nom ; qp = True}) ; UseCopula = predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}) ;
SlashVV v vp = SlashVV v vp =
insertObj insertObj
@@ -65,7 +65,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
NPCase Nom => v.sc ; -- minun täytyy pestä auto NPCase Nom => v.sc ; -- minun täytyy pestä auto
c => c -- minulla täytyy olla auto c => c -- minulla täytyy olla auto
} ; } ;
qp = v.qp qp = v.qp ; p = v.p
} }
) ** {c2 = vp.c2} ; ---- correct ?? ) ** {c2 = vp.c2} ; ---- correct ??