Chinese verbal adjective predication and repeated verb questions

This commit is contained in:
aarne
2013-10-08 14:19:16 +00:00
parent 227b9ef0a8
commit 0e14ae92e8
7 changed files with 53 additions and 19 deletions

View File

@@ -1,8 +1,9 @@
concrete ExtraChi of ExtraChiAbs = CatChi **
open ResChi, Coordination, Prelude in {
flags coding = utf8 ;
lincat
Aspect = {s : Str ; a : ResChi.Aspect} ;
VPS = {s : Str} ;
[VPS] = {s1,s2 : Str} ;
VPI = {s : Str} ; --- ???
@@ -27,4 +28,28 @@ concrete ExtraChi of ExtraChiAbs = CatChi **
GenRP nu cn = {s = cn.s ++ relative_s} ; ---- ??
-----------------------
-- Chinese-only extras
lincat
Aspect = {s : Str ; a : ResChi.Aspect} ;
lin
PredBareAP np ap = case ap.hasAdA of {
True => mkClause np.s (insertObj (mkNP ap.s) (predV nocopula [])) ;
False => mkClause np.s (insertObj (mkNP ap.s) (predV hen_copula []))
} ;
QuestRepV cl = {
s = \\p,a =>
let
v = cl.vp.verb ;
verb = case a of {
APlain => v.s ++ v.neg ++ v.sn ;
APerf => v.s ++ "不" ++ v.sn ++ v.pp ;
ADurStat => v.s ++ "不" ++ v.sn ;
ADurProg => v.dp ++ v.neg ++ v.dp ++ v.sn ; -- mei or bu
AExper => v.s ++ v.neg ++ v.sn ++ v.ep
}
in
cl.np ++ cl.vp.prePart ++ verb ++ cl.vp.compl
} ;
}

View File

@@ -8,4 +8,10 @@ abstract ExtraChiAbs = Cat,
** {
cat
Aspect ;
fun
PredBareAP : NP -> AP -> Cl ; -- adjectival predication without copula
QuestRepV : Cl -> QCl ; -- V neg V question
} ;

View File

@@ -11,12 +11,9 @@ concrete QuestionChi of Question = CatChi **
s = \\p,a => ip.s ++ vp.prePart ++ useVerb vp.verb ! p ! a ++ vp.compl
} ;
QuestSlash ip cls = {
s =\\p,a => appPrep cls.c2 cls.np ++ cls.vp ! p ! a ++
possessive_s ++ di_s ++ ip.s
} ;
QuestSlash ip cls = mkClauseCompl cls.np (insertObj (ss (appPrep cls.c2 ip.s)) cls.vp) [] ;
QuestIAdv iadv cl = {s = \\p,a => cl.np ++ iadv.s ++ cl.vp ! p ! a} ;
QuestIAdv iadv cl = mkClauseCompl cl.np (insertAdv iadv cl.vp) [] ;
QuestIComp icomp np = {s = \\p,a => np.s ++ icomp.s} ; ---- order

View File

@@ -119,12 +119,12 @@ oper
hen_copula : Verb =
{s = hen_s ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "不"} ; ---
nocopula : Verb =
{s = [] ; sn = "是" ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "不"} ; ---
{s = [] ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "不"} ; ---
adjcopula : Verb =
{s = "是" ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "不"} ; ---
regVerb : (walk : Str) -> Verb = \v ->
mkVerb v "了" "着" "在" "过" "没" ;
mkVerb v "了" "着" "在" "过" "不" ; -- 没" ;
noVerb : Verb = regVerb [] ; ---?? -- used as copula for verbal adverbs
@@ -189,23 +189,25 @@ oper
Clause : Type = {
s : Polarity => Aspect => Str ;
np : Str;
vp : Polarity => Aspect => Str
vp : VP
} ;
mkClause = overload {
mkClause : Str -> Verb -> Clause = \np,v -> mkClauseCompl np (useVerb v) [] ;
mkClause : Str -> (Polarity => Aspect => Str) -> Str -> Clause = mkClauseCompl ;
mkClause : Str -> Verb -> Clause = \np,v ->
mkClauseCompl np (predV v []) [] ;
mkClause : Str -> Verb -> Str -> Clause = \subj,verb,obj ->
mkClauseCompl subj (useVerb verb) obj ;
mkClauseCompl subj (predV verb []) obj ;
mkClause : Str -> VP -> Clause = \np,vp ->
mkClauseCompl np (\\p,a => vp.prePart ++ useVerb vp.verb ! p ! a) vp.compl ;
mkClauseCompl np vp [] ;
mkClause : Str -> VP -> Str -> Clause =
mkClauseCompl ;
} ;
mkClauseCompl : Str -> (Polarity => Aspect => Str) -> Str -> Clause = \np,vp,compl -> {
s = \\p,a => np ++ vp ! p ! a ++ compl ;
mkClauseCompl : Str -> VP -> Str -> Clause = \np,vp,compl -> {
s = \\p,a => np ++ vp.prePart ++ useVerb vp.verb ! p ! a ++ vp.compl ++ compl ;
np = np ;
vp = \\p,a => vp ! p ! a ++ compl
vp = vp ;
} ;

View File

@@ -17,7 +17,7 @@ concrete SentenceChi of Sentence = CatChi **
} ;
SlashVP np vp =
mkClauseCompl np.s (\\p,a => vp.prePart ++ useVerb vp.verb ! p ! a) vp.compl
mkClauseCompl np.s vp []
** {c2 = vp.c2} ;
SlashVS np vs sslash = <mkClause np.s vs sslash.s : Clause> ** {c2 = sslash.c2} ;
@@ -25,7 +25,7 @@ concrete SentenceChi of Sentence = CatChi **
-- yet another reason for discontinuity of clauses
AdvSlash slash adv =
mkClause slash.np (<\\p,a => adv.s ++ slash.vp ! p ! a : Polarity => Aspect => Str>) []
mkClauseCompl slash.np <insertAdv adv slash.vp : VP> []
** {c2 = slash.c2} ;
SlashPrep cl prep = cl ** {c2 = prep} ;

View File

@@ -94,7 +94,7 @@ not_Predet = ssword "不" ;
otherwise_PConj = mkPConjL "还是" ;
to_Prep = mkPrep "往" ;
have_V2 = mkV2 "有" ;
have_V2 = mkV2 (mkV "有" "了" "着" "在" "过" "没") ;
yes_Utt = ss "对" ;
no_Utt = ss neg_s ;

View File

@@ -54,10 +54,14 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
PassV2 v = insertAdv (mkNP passive_s) (predV v v.part) ; ----
CompAP ap = insertObj (mkNP (ap.s ++ de_s)) (predV copula []) ;
{-
CompAP ap = case ap.hasAdA of {
True => insertObj (mkNP ap.s) (predV nocopula []) ;
False => insertObj (mkNP (ap.s ++ de_s)) (predV copula [])
} ;
-}
CompNP np = insertObj np (predV copula []) ; ----