forked from GitHub/gf-core
fixed prepositional verbs in Chinese, and swapped mkPrep to the natural pre-post order
This commit is contained in:
@@ -65,8 +65,8 @@ concrete CatChi of Cat = CommonX - [Tense, Temp, Adv] ** open ResChi, Prelude in
|
|||||||
-- Open lexical classes, e.g. Lexicon
|
-- Open lexical classes, e.g. Lexicon
|
||||||
|
|
||||||
V, VS, VQ, VA = Verb ;
|
V, VS, VQ, VA = Verb ;
|
||||||
V2, V2Q, V2S = Verb ** {c2 : Preposition} ;
|
V2, V2Q, V2S = Verb ** {c2 : Preposition ; hasPrep : Bool ; part : Str} ;
|
||||||
V3, V2A, V2V = Verb ** {c2, c3 : Preposition} ;
|
V3, V2A, V2V = Verb ** {c2, c3 : Preposition ; hasPrep : Bool ; part : Str} ;
|
||||||
VV = Verb ;
|
VV = Verb ;
|
||||||
|
|
||||||
A = ResChi.Adj ;
|
A = ResChi.Adj ;
|
||||||
|
|||||||
@@ -466,7 +466,7 @@ lin
|
|||||||
|
|
||||||
--- TODO
|
--- TODO
|
||||||
|
|
||||||
of_Prep = mkPrep "的" ;
|
of_Prep = mkPrep [] "的" ;
|
||||||
by_Prep = mkPrep "由" ;
|
by_Prep = mkPrep "由" ;
|
||||||
at_Prep = mkPrep "在" ;
|
at_Prep = mkPrep "在" ;
|
||||||
as_Prep = mkPrep "如" ;
|
as_Prep = mkPrep "如" ;
|
||||||
@@ -1213,7 +1213,7 @@ evidence_N = mkN "证据" ;
|
|||||||
appear_VV = mkVV "出现" ;
|
appear_VV = mkVV "出现" ;
|
||||||
sure_A = mkA "肯定" ;
|
sure_A = mkA "肯定" ;
|
||||||
size_N = mkN "大小" ;
|
size_N = mkN "大小" ;
|
||||||
out_Prep = mkPrep "到。。。外面" ;
|
out_Prep = mkPrep "到" "外面" ;
|
||||||
face_N = mkN "面对" ;
|
face_N = mkN "面对" ;
|
||||||
anything_NP = mkNPword "无论何事" ;
|
anything_NP = mkNPword "无论何事" ;
|
||||||
version_N = mkN "版本" ;
|
version_N = mkN "版本" ;
|
||||||
@@ -1630,7 +1630,7 @@ delay_N = mkN "延迟" ;
|
|||||||
decline_V2 = mkV2 "下降" ;
|
decline_V2 = mkV2 "下降" ;
|
||||||
crisis_N = mkN "危机" ;
|
crisis_N = mkN "危机" ;
|
||||||
audience_N = mkN "听众" ;
|
audience_N = mkN "听众" ;
|
||||||
amid_Prep = mkPrep "在。。。之中" ;
|
amid_Prep = mkPrep "在" "之中" ;
|
||||||
yield_V = mkV "产量" ;
|
yield_V = mkV "产量" ;
|
||||||
street_N = mkN "街头" ;
|
street_N = mkN "街头" ;
|
||||||
soar_V = mkV "翱翔" ;
|
soar_V = mkV "翱翔" ;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in {
|
|||||||
|
|
||||||
PredetNP pred np = mkNP (pred.s ++ possessive_s ++ np.s) ;
|
PredetNP pred np = mkNP (pred.s ++ possessive_s ++ np.s) ;
|
||||||
|
|
||||||
PPartNP np v2 = mkNP ((predV v2).verb.s ++ possessive_s ++ np.s) ; ---- ??
|
PPartNP np v2 = mkNP ((predV v2 v2.part).verb.s ++ possessive_s ++ np.s) ; ---- ??
|
||||||
|
|
||||||
AdvNP np adv = mkNP (adv.s ++ possessive_s ++ np.s) ;
|
AdvNP np adv = mkNP (adv.s ++ possessive_s ++ np.s) ;
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ oper
|
|||||||
---- = \n,p -> lin N2 (n ** {c2 = mkPrep p}) ;
|
---- = \n,p -> lin N2 (n ** {c2 = mkPrep p}) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkN3 : N -> Preposition -> Preposition -> N3
|
mkN3 : N -> Prep -> Prep -> N3
|
||||||
= \n,p,q -> lin N3 (n ** {c2 = p ; c3 = q}) ;
|
= \n,p,q -> lin N3 (n ** {c2 = p ; c3 = q}) ;
|
||||||
|
|
||||||
|
|
||||||
@@ -43,17 +43,26 @@ oper
|
|||||||
= \arrive,pp,ds,dp,ep,neg -> lin V (mkVerb arrive pp ds dp ep neg) ;
|
= \arrive,pp,ds,dp,ep,neg -> lin V (mkVerb arrive pp ds dp ep neg) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
mkV2 = overload {
|
||||||
mkV2 : Str -> V2
|
mkV2 : Str -> V2
|
||||||
= \s -> lin V2 (regVerb s ** {c2 = emptyPrep}) ;
|
= \s -> case s of {
|
||||||
|
v + "+" + p => lin V2 (regVerb v ** {c2 = emptyPrep ; hasPrep = False ; part = p}) ;
|
||||||
|
v + "*" + p => lin V2 (regVerb v ** {c2 = ResChi.mkPreposition p [] ; hasPrep = True ; part = []}) ;
|
||||||
|
_ => lin V2 (regVerb s ** {c2 = emptyPrep ; hasPrep = False ; part = []})
|
||||||
|
} ;
|
||||||
|
mkV2 : V -> V2
|
||||||
|
= \v -> lin V2 (v ** {c2 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
|
mkV2 : V -> Prep -> V2
|
||||||
|
= \v,p -> lin V2 (v ** {c2 = p ; hasPrep = True ; part = []}) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
mkV3 = overload {
|
mkV3 = overload {
|
||||||
mkV3 : Str -> V3
|
mkV3 : Str -> V3
|
||||||
= \s -> lin V3 (regVerb s ** {c2,c3 = emptyPrep}) ;
|
= \s -> lin V3 (regVerb s ** {c2,c3 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
mkV3 : V -> V3
|
mkV3 : V -> V3
|
||||||
= \s -> lin V3 (s ** {c2,c3 = emptyPrep}) ;
|
= \s -> lin V3 (s ** {c2,c3 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
---- mkV3 : V -> Str -> Str -> V3
|
mkV3 : V -> Prep -> Prep -> V3
|
||||||
---- = \v,p,q -> lin V3 (v ** {c2 = mkPrep p ; c3 = mkPrep q}) ;
|
= \v,p,q -> lin V3 (v ** {c2 = p ; c3 = q ; hasPrep = True ; part = []}) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkVV : Str -> VV = ----
|
mkVV : Str -> VV = ----
|
||||||
@@ -77,34 +86,34 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV2Q : V -> V2Q =
|
mkV2Q : V -> V2Q =
|
||||||
\v -> lin V2Q (v ** {c2 = emptyPrep}) ;
|
\v -> lin V2Q (v ** {c2 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
---- mkV2Q : V -> Str -> V2Q =
|
---- mkV2Q : V -> Str -> V2Q =
|
||||||
---- \v,p -> lin V2Q (v ** {c2 = mkPrep p}) ;
|
---- \v,p -> lin V2Q (v ** {c2 = mkPrep p}) ;
|
||||||
|
|
||||||
mkV2V= overload {
|
mkV2V= overload {
|
||||||
mkV2V : Str -> V2V =
|
mkV2V : Str -> V2V =
|
||||||
\s -> lin V2V (regVerb s ** {c2 = emptyPrep ; c3 = emptyPrep}) ;
|
\s -> lin V2V (regVerb s ** {c2 = emptyPrep ; c3 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
|
|
||||||
mkV2V : V -> V2V =
|
mkV2V : V -> V2V =
|
||||||
\v -> lin V2V (v ** {c2 = emptyPrep ; c3 = emptyPrep}) ;
|
\v -> lin V2V (v ** {c2 = emptyPrep ; c3 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
---- mkV2V : V -> Str -> Str -> V2V =
|
---- mkV2V : V -> Str -> Str -> V2V =
|
||||||
---- \v,p,q -> lin V2V (v ** {c2 = mkPrep p ; c3 = mkPrep q}) ;
|
---- \v,p,q -> lin V2V (v ** {c2 = mkPrep p ; c3 = mkPrep q}) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV2S = overload {
|
mkV2S = overload {
|
||||||
mkV2S : Str -> V2S =
|
mkV2S : Str -> V2S =
|
||||||
\s -> lin V2S (regVerb s ** {c2 = emptyPrep}) ;
|
\s -> lin V2S (regVerb s ** {c2 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
mkV2S : V -> V2S =
|
mkV2S : V -> V2S =
|
||||||
\v -> lin V2S (v ** {c2 = emptyPrep}) ;
|
\v -> lin V2S (v ** {c2 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
---- mkV2S : V -> Str -> V2S =
|
---- mkV2S : V -> Str -> V2S =
|
||||||
---- \v,p -> lin V2S (v ** {c2 = mkPrep p}) ;
|
---- \v,p -> lin V2S (v ** {c2 = mkPrep p}) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV2A = overload {
|
mkV2A = overload {
|
||||||
mkV2A : Str -> V2A
|
mkV2A : Str -> V2A
|
||||||
= \s -> lin V2A (regVerb s ** {c2 = emptyPrep ; c3 = emptyPrep}) ;
|
= \s -> lin V2A (regVerb s ** {c2 = emptyPrep ; c3 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
mkV2A : V -> V2A
|
mkV2A : V -> V2A
|
||||||
= \v -> lin V2A (v ** {c2 = emptyPrep ; c3 = emptyPrep}) ;
|
= \v -> lin V2A (v ** {c2 = emptyPrep ; c3 = emptyPrep ; hasPrep = False ; part = []}) ;
|
||||||
} ;
|
} ;
|
||||||
---- mkV2A : V -> Str -> Str -> V2A
|
---- mkV2A : V -> Str -> Str -> V2A
|
||||||
---- = \v,p,q -> lin V2A (v ** {c2 = mkPrep p ; c3 = mkPrep q}) ;
|
---- = \v,p,q -> lin V2A (v ** {c2 = mkPrep p ; c3 = mkPrep q}) ;
|
||||||
@@ -125,9 +134,9 @@ oper
|
|||||||
mannerAdvType : AdvType
|
mannerAdvType : AdvType
|
||||||
= ATManner ;
|
= ATManner ;
|
||||||
|
|
||||||
mkPrep = overload { ---- is this the right order of the fields?
|
mkPrep = overload { -- first pre part, then optional post part
|
||||||
mkPrep : Str -> Prep
|
mkPrep : Str -> Prep
|
||||||
= \s -> lin Prep (ResChi.mkPreposition [] s) ;
|
= \s -> lin Prep (ResChi.mkPreposition s []) ;
|
||||||
mkPrep : Str -> Str -> Prep
|
mkPrep : Str -> Str -> Prep
|
||||||
= \s,t -> lin Prep (ResChi.mkPreposition s t) ;
|
= \s,t -> lin Prep (ResChi.mkPreposition s t) ;
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ DashCN noun cn = {s = noun.s ++ cn.s ; c = cn.c} ; ----
|
|||||||
|
|
||||||
SlashV2V v a p vp =
|
SlashV2V v a p vp =
|
||||||
insertObj (ResChi.mkNP (a.s ++ p.s ++ useVerb vp.verb ! p.p ! APlain ++ vp.compl))
|
insertObj (ResChi.mkNP (a.s ++ p.s ++ useVerb vp.verb ! p.p ! APlain ++ vp.compl))
|
||||||
(predV v) ** {c2 = v.c2 ; isPre = True} ; ---- aspect
|
(predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ; ---- aspect
|
||||||
|
|
||||||
{-
|
{-
|
||||||
SlashVPIV2V v p vpi = insertObjc (\\a => p.s ++
|
SlashVPIV2V v p vpi = insertObjc (\\a => p.s ++
|
||||||
@@ -114,15 +114,15 @@ DashCN noun cn = {s = noun.s ++ cn.s ; c = cn.c} ; ----
|
|||||||
PredVPovs np vp = PredVP np vp ; ---- (lin NP np) (lin VP vp) ; ----
|
PredVPovs np vp = PredVP np vp ; ---- (lin NP np) (lin VP vp) ; ----
|
||||||
|
|
||||||
|
|
||||||
CompS s = insertObj s (predV copula) ; ----
|
CompS s = insertObj s (predV copula []) ; ----
|
||||||
|
|
||||||
|
|
||||||
CompQS qs = insertObj qs (predV copula) ; ----
|
CompQS qs = insertObj qs (predV copula []) ; ----
|
||||||
CompVP ant p vp = insertObj (ss (infVP vp)) (predV copula) ; ----
|
CompVP ant p vp = insertObj (ss (infVP vp)) (predV copula []) ; ----
|
||||||
|
|
||||||
{-
|
{-
|
||||||
VPSlashVS vs vp =
|
VPSlashVS vs vp =
|
||||||
insertObj (\\a => infVP VVInf vp Simul CPos a) (predV vs) **
|
insertObj (\\a => infVP VVInf vp Simul CPos a) (predV vs []) **
|
||||||
{c2 = ""; gapInMiddle = False} ;
|
{c2 = ""; gapInMiddle = False} ;
|
||||||
|
|
||||||
-}
|
-}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ concrete QuestionChi of Question = CatChi **
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
QuestSlash ip cls = {
|
QuestSlash ip cls = {
|
||||||
s =\\p,a => cls.c2.prepPre ++ cls.np ++ cls.c2.prepMain ++ cls.vp ! p ! a ++
|
s =\\p,a => appPrep cls.c2 cls.np ++ cls.vp ! p ! a ++
|
||||||
possessive_s ++ di_s ++ ip.s
|
possessive_s ++ di_s ++ ip.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -137,9 +137,9 @@ oper
|
|||||||
|
|
||||||
infVP : VP -> Str = \vp -> vp.prePart ++ vp.verb.s ++ vp.compl ;
|
infVP : VP -> Str = \vp -> vp.prePart ++ vp.verb.s ++ vp.compl ;
|
||||||
|
|
||||||
predV : Verb -> VP = \v -> {
|
predV : Verb -> Str -> VP = \v,part -> {
|
||||||
verb = v ;
|
verb = v ;
|
||||||
compl = [] ;
|
compl = part ;
|
||||||
prePart = [] ;
|
prePart = [] ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -158,7 +158,13 @@ oper
|
|||||||
insertAdv : SS -> VP -> VP = \adv,vp -> {
|
insertAdv : SS -> VP -> VP = \adv,vp -> {
|
||||||
verb = vp.verb ;
|
verb = vp.verb ;
|
||||||
compl = vp.compl ;
|
compl = vp.compl ;
|
||||||
prePart = adv.s
|
prePart = adv.s ++ vp.prePart
|
||||||
|
} ;
|
||||||
|
|
||||||
|
insertPP : SS -> VP -> VP = \pp,vp -> {
|
||||||
|
verb = vp.verb ;
|
||||||
|
compl = vp.compl ;
|
||||||
|
prePart = vp.prePart ++ pp.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertExtra : SS -> VP -> VP = \ext,vp ->
|
insertExtra : SS -> VP -> VP = \ext,vp ->
|
||||||
@@ -215,9 +221,9 @@ oper
|
|||||||
s = word s
|
s = word s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkPreposition : Str -> Str -> Preposition = \s,b -> {
|
mkPreposition : Str -> Str -> Preposition = \s1,s2 -> {
|
||||||
prepMain = word s ;
|
prepPre = word s1 ;
|
||||||
prepPre = word b
|
prepPost = word s2
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkSubj : Str -> Str -> {prePart : Str ; sufPart : Str} = \p,s -> {
|
mkSubj : Str -> Str -> {prePart : Str ; sufPart : Str} = \p,s -> {
|
||||||
@@ -225,13 +231,13 @@ oper
|
|||||||
sufPart = word s
|
sufPart = word s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Preposition = {prepMain : Str ; prepPre : Str} ;
|
Preposition = {prepPre : Str ; prepPost : Str} ;
|
||||||
|
|
||||||
-- added by AR
|
-- added by AR
|
||||||
|
|
||||||
mkNP : Str -> NP = ss ; -- not to be used in lexicon building
|
mkNP : Str -> NP = ss ; -- not to be used in lexicon building
|
||||||
|
|
||||||
appPrep : Preposition -> Str -> Str = \prep,s ->
|
appPrep : Preposition -> Str -> Str = \prep,s ->
|
||||||
prep.prepPre ++ s ++ prep.prepMain ;
|
prep.prepPre ++ s ++ prep.prepPost ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,11 @@ lin
|
|||||||
|
|
||||||
very_AdA = ssword "非常" ;
|
very_AdA = ssword "非常" ;
|
||||||
|
|
||||||
by8means_Prep = mkPrep "旁边" [] ;
|
by8means_Prep = mkPrep [] "旁边" ;
|
||||||
in_Prep = mkPrep "里" [];
|
-- in_Prep = mkPrep "里" []; --- in Paris
|
||||||
possess_Prep = mkPrep "的" [];
|
in_Prep = mkPrep "在" "中" ; --- in the house, the car, etc
|
||||||
with_Prep = mkPrep "一起" "和";
|
possess_Prep = mkPrep [] "的" ;
|
||||||
|
with_Prep = mkPrep "和" "一起" ;
|
||||||
---- with_Prep = mkPrep [] "和"; -- an alternative for some uses
|
---- with_Prep = mkPrep [] "和"; -- an alternative for some uses
|
||||||
|
|
||||||
and_Conj = {s = table {
|
and_Conj = {s = table {
|
||||||
@@ -82,10 +83,10 @@ but_PConj = mkPConjL "但是" ;
|
|||||||
can8know_VV = mkV "会" [] [] [] [] "不" ; ----
|
can8know_VV = mkV "会" [] [] [] [] "不" ; ----
|
||||||
|
|
||||||
|
|
||||||
except_Prep = mkPrep "除了" "以外" ;
|
except_Prep = mkPrep "以外" "除了" ;
|
||||||
for_Prep = mkPrep "为了" ;
|
for_Prep = mkPrep "为了" ;
|
||||||
from_Prep = mkPrep "从" ;
|
from_Prep = mkPrep "从" ;
|
||||||
in8front_Prep = mkPrep "前边" zai_s ;
|
in8front_Prep = mkPrep zai_s "前边" ;
|
||||||
it_Pron = pronNP "它" ;
|
it_Pron = pronNP "它" ;
|
||||||
much_Det = mkDet "多" Sg ;
|
much_Det = mkDet "多" Sg ;
|
||||||
no_Quant = mkQuant "不" ;
|
no_Quant = mkQuant "不" ;
|
||||||
@@ -114,7 +115,7 @@ almost_AdN = ssword "几乎" ;
|
|||||||
as_CAdv = {s = word "和" ; p = word "一样" } ; -- modified by chenpeng 11.24
|
as_CAdv = {s = word "和" ; p = word "一样" } ; -- modified by chenpeng 11.24
|
||||||
at_least_AdN = ssword "最少" ; -- at least five
|
at_least_AdN = ssword "最少" ; -- at least five
|
||||||
at_most_AdN = ssword "最多" ;
|
at_most_AdN = ssword "最多" ;
|
||||||
behind_Prep = mkPrep "后面" "在";
|
behind_Prep = mkPrep "在" "后面" ;
|
||||||
|
|
||||||
both7and_DConj = {s = table { -- modified by chenpeng 11.19
|
both7and_DConj = {s = table { -- modified by chenpeng 11.19
|
||||||
CPhr CNPhrase => mkConjForm2 "包括" "和" ;
|
CPhr CNPhrase => mkConjForm2 "包括" "和" ;
|
||||||
@@ -126,7 +127,7 @@ both7and_DConj = {s = table { -- modified by chenpeng 11.19
|
|||||||
|
|
||||||
by8agent_Prep = mkPrep "被" ; -- by for agent in passive
|
by8agent_Prep = mkPrep "被" ; -- by for agent in passive
|
||||||
-- [mark] 被
|
-- [mark] 被
|
||||||
during_Prep = mkPrep "期间" "在" ; -- [mark] often equivalent to nothing
|
during_Prep = mkPrep "在" "期间" ; -- [mark] often equivalent to nothing
|
||||||
-- translation for "he swam during this summer. " and "he swam this summer." are often the same
|
-- translation for "he swam during this summer. " and "he swam this summer." are often the same
|
||||||
|
|
||||||
either7or_DConj = {s = table { -- modified by chenpeng 11.19
|
either7or_DConj = {s = table { -- modified by chenpeng 11.19
|
||||||
@@ -159,7 +160,7 @@ if_then_Conj = {s = table { -- added by chenpeng 11.19
|
|||||||
} ;
|
} ;
|
||||||
nobody_NP = ssword "没人" ;
|
nobody_NP = ssword "没人" ;
|
||||||
nothing_NP = ssword "没有什么" ;
|
nothing_NP = ssword "没有什么" ;
|
||||||
on_Prep = mkPrep "上" "在" ;
|
on_Prep = mkPrep "在" "上" ;
|
||||||
only_Predet = ssword "只有" ; -- only John
|
only_Predet = ssword "只有" ; -- only John
|
||||||
so_AdA = ssword "如此" ;
|
so_AdA = ssword "如此" ;
|
||||||
somebody_NP = ssword "某人" ;
|
somebody_NP = ssword "某人" ;
|
||||||
@@ -172,7 +173,7 @@ therefore_PConj = ssword "因此" ;
|
|||||||
through_Prep = mkPrep "通过" ;
|
through_Prep = mkPrep "通过" ;
|
||||||
which_IQuant = mkIQuant "哪" ;
|
which_IQuant = mkIQuant "哪" ;
|
||||||
--which_IQuant = ssword [] ; -- [mark] in sent, it depends on the context
|
--which_IQuant = ssword [] ; -- [mark] in sent, it depends on the context
|
||||||
without_Prep = mkPrep "没有" [];
|
without_Prep = mkPrep [] "没有" ;
|
||||||
youPol_Pron = ssword "您" ; -- polite you
|
youPol_Pron = ssword "您" ; -- polite you
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,18 +3,18 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
|
|||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
UseV = predV ;
|
UseV v = predV v [] ;
|
||||||
|
|
||||||
SlashV2a v = predV v ** {c2 = v.c2 ; isPre = False} ;
|
SlashV2a v = predV v v.part ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
||||||
|
|
||||||
Slash2V3 v np = insertAdv (mkNP (ba_s ++ np.s)) (predV v) ** {c2 = v.c3 ; isPre = False} ; -- slot for third argument
|
Slash2V3 v np = insertAdv (mkNP (ba_s ++ np.s)) (predV v v.part) ** {c2 = v.c3 ; isPre = v.hasPrep} ; -- slot for third argument
|
||||||
Slash3V3 v np = insertObj (mkNP (appPrep v.c3 np.s)) (predV v) ** {c2 = v.c2 ; isPre = True} ; -- slot for ba object
|
Slash3V3 v np = insertObj (mkNP (appPrep v.c3 np.s)) (predV v v.part) ** {c2 = v.c2 ; isPre = True} ; -- slot for ba object
|
||||||
|
|
||||||
SlashV2A v ap = insertObj ap (predV v) ** {c2 = v.c2 ; isPre = True} ;
|
SlashV2A v ap = insertObj ap (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
||||||
|
|
||||||
SlashV2V v vp = insertObj (mkNP (infVP vp)) (predV v) ** {c2 = v.c2 ; isPre = True} ;
|
SlashV2V v vp = insertObj (mkNP (infVP vp)) (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
||||||
SlashV2S v s = insertObj (ss (say_s ++ s.s)) (predV v) ** {c2 = v.c2 ; isPre = True} ;
|
SlashV2S v s = insertObj (ss (say_s ++ s.s)) (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
||||||
SlashV2Q v q = insertObj (ss (say_s ++ q.s)) (predV v) ** {c2 = v.c2 ; isPre = True} ;
|
SlashV2Q v q = insertObj (ss (say_s ++ q.s)) (predV v v.part) ** {c2 = v.c2 ; isPre = v.hasPrep} ;
|
||||||
|
|
||||||
ComplVV v vp = {
|
ComplVV v vp = {
|
||||||
verb = v ;
|
verb = v ;
|
||||||
@@ -22,24 +22,25 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
|
|||||||
prePart = vp.prePart
|
prePart = vp.prePart
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplVS v s = insertObj s (predV v) ;
|
ComplVS v s = insertObj s (predV v []) ;
|
||||||
ComplVQ v q = insertObj q (predV v) ;
|
ComplVQ v q = insertObj q (predV v []) ;
|
||||||
ComplVA v ap = insertObj ap (predV v) ;
|
ComplVA v ap = insertObj ap (predV v []) ;
|
||||||
|
|
||||||
ComplSlash vp np = case vp.isPre of {
|
ComplSlash vp np = case vp.isPre of {
|
||||||
True => insertAdv (mkNP (ba_s ++ np.s)) vp ; --- ba or vp.c2 ?
|
--- True => insertAdv (mkNP (ba_s ++ np.s)) vp ; --- ba or vp.c2 ?
|
||||||
|
True => insertPP (mkNP (appPrep vp.c2 np.s)) vp ; --- ba or vp.c2 ?
|
||||||
False => insertObj (mkNP (appPrep vp.c2 np.s)) vp
|
False => insertObj (mkNP (appPrep vp.c2 np.s)) vp
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
UseComp comp = comp ;
|
UseComp comp = comp ;
|
||||||
UseCopula = predV copula ;
|
UseCopula = predV copula [] ;
|
||||||
|
|
||||||
SlashVV v vp = ---- too simple?
|
SlashVV v vp = ---- too simple?
|
||||||
insertObj (mkNP (infVP vp)) (predV v) ** {c2 = vp.c2 ; isPre = vp.isPre} ;
|
insertObj (mkNP (infVP vp)) (predV v []) ** {c2 = vp.c2 ; isPre = vp.isPre} ;
|
||||||
|
|
||||||
SlashV2VNP v np vp =
|
SlashV2VNP v np vp =
|
||||||
insertObj np
|
insertObj np
|
||||||
(insertObj (mkNP (infVP vp)) (predV v)) ** {c2 = vp.c2 ; isPre = vp.isPre} ;
|
(insertObj (mkNP (infVP vp)) (predV v v.part)) ** {c2 = vp.c2 ; isPre = vp.isPre} ;
|
||||||
|
|
||||||
AdvVP vp adv = case adv.advType of {
|
AdvVP vp adv = case adv.advType of {
|
||||||
ATManner => insertObj (ss (deVAdv_s ++ adv.s)) vp ; -- he sleeps well
|
ATManner => insertObj (ss (deVAdv_s ++ adv.s)) vp ; -- he sleeps well
|
||||||
@@ -50,15 +51,15 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
|
|||||||
|
|
||||||
ReflVP vp = insertObj (mkNP reflPron) vp ;
|
ReflVP vp = insertObj (mkNP reflPron) vp ;
|
||||||
|
|
||||||
PassV2 v = insertAdv (mkNP passive_s) (predV v) ; ----
|
PassV2 v = insertAdv (mkNP passive_s) (predV v v.part) ; ----
|
||||||
|
|
||||||
CompAP ap = insertObj (mkNP (ap.s ++ possessive_s)) (predV copula) ; ---- hen / bu
|
CompAP ap = insertObj (mkNP (ap.s ++ possessive_s)) (predV copula []) ; ---- hen / bu
|
||||||
|
|
||||||
CompNP np = insertObj np (predV copula) ; ----
|
CompNP np = insertObj np (predV copula []) ; ----
|
||||||
|
|
||||||
CompCN cn = insertObj cn (predV copula) ; ----
|
CompCN cn = insertObj cn (predV copula []) ; ----
|
||||||
|
|
||||||
CompAdv adv = insertObj adv (predV zai_V) ;
|
CompAdv adv = insertObj adv (predV zai_V []) ;
|
||||||
|
|
||||||
VPSlashPrep vp prep = vp ** {c2 = prep ; isPre = True} ;
|
VPSlashPrep vp prep = vp ** {c2 = prep ; isPre = True} ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user