1
0
forked from GitHub/gf-core

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

View File

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

View File

@@ -164,6 +164,7 @@ oper
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 : VK -> V ; -- verb from DictFin (Kotus)
mkV : V -> Str -> V ; -- hakata päälle (particle verb)
} ;
-- All the patterns above have $nominative$ as subject case.
@@ -519,20 +520,21 @@ oper
mkV : (
huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan,
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 ->
let vfs = vforms2V (vForms1 s) in
vfs ** {sc = NPCase Nom ; lock_V = <>} ;
vfs ** {sc = NPCase Nom ; lock_V = <> ; p = []} ;
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 ; ----
mk12V : (
huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan,
huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V =
\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 ->
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 = <>} ;
caseV2 : V -> Case -> V2 = \v,c -> mk2V2 v (casePrep c) ;
@@ -613,7 +615,7 @@ oper
mkV2 : V -> V2 = dirV2 ;
mkV2 : V -> Case -> V2 = caseV2 ;
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 ;

View File

@@ -31,7 +31,7 @@ concrete QuestionFin of Question = CatFin ** open ResFin, Prelude in {
QuestIComp icomp np = {
s = \\t,a,p =>
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 ;
in
icomp.s ! np.a ++ cl.s ! t ! a ! p ! SDecl

View File

@@ -198,7 +198,7 @@ oper
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 =>
let
@@ -256,7 +256,7 @@ oper
} ;
s2 = \\_,_,_ => [] ;
adv = \\_ => [] ;
adv = \\_ => verb.p ; -- the particle of the verb
ext = [] ;
sc = verb.sc ;
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
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 ;
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 =
insertObj
@@ -65,7 +65,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
NPCase Nom => v.sc ; -- minun täytyy pestä auto
c => c -- minulla täytyy olla auto
} ;
qp = v.qp
qp = v.qp ; p = v.p
}
) ** {c2 = vp.c2} ; ---- correct ??