mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-27 11:48:55 -06:00
particle verbs in Finnish, to ease Wordnet translation
This commit is contained in:
@@ -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} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -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 = \_ -> [] ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 ;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ;
|
||||||
|
|||||||
@@ -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 ??
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user