mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
adjectival predication now without copula by default in Chi
This commit is contained in:
@@ -2,7 +2,7 @@ concrete AdjectiveChi of Adjective = CatChi ** open ResChi, Prelude in {
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
PositA a = a ;
|
PositA a = a ** {hasAdA = False} ;
|
||||||
|
|
||||||
--ComparA a np = complexAP (a.s ++ than_s ++ np.s) ;
|
--ComparA a np = complexAP (a.s ++ than_s ++ np.s) ;
|
||||||
ComparA a np = complexAP (than_s ++ np.s ++ a.s) ;
|
ComparA a np = complexAP (than_s ++ np.s ++ a.s) ;
|
||||||
@@ -20,9 +20,9 @@ concrete AdjectiveChi of Adjective = CatChi ** open ResChi, Prelude in {
|
|||||||
|
|
||||||
SentAP ap sc = complexAP (ap.s ++ sc.s) ;
|
SentAP ap sc = complexAP (ap.s ++ sc.s) ;
|
||||||
|
|
||||||
AdAP ada ap = complexAP (ada.s ++ ap.s) ;
|
AdAP ada ap = {s = ada.s ++ ap.s ; monoSyl = False ; hasAdA = True} ;
|
||||||
|
|
||||||
UseA2 a = a ;
|
UseA2 a = a ** {hasAdA = False} ;
|
||||||
|
|
||||||
AdvAP ap adv = complexAP (adv.s ++ ap.s) ; ----
|
AdvAP ap adv = complexAP (adv.s ++ ap.s) ; ----
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ concrete CatChi of Cat = CommonX - [Tense, Temp, Adv] ** open ResChi, Prelude in
|
|||||||
|
|
||||||
-- Adjective
|
-- Adjective
|
||||||
|
|
||||||
AP = ResChi.Adj ;
|
AP = ResChi.Adj ** {hasAdA : Bool} ;
|
||||||
|
|
||||||
-- Noun
|
-- Noun
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ concrete ConjunctionChi of Conjunction = CatChi ** open ResChi, Prelude, Coordin
|
|||||||
ConjS c = conjunctDistrSS (c.s ! CSent) ;
|
ConjS c = conjunctDistrSS (c.s ! CSent) ;
|
||||||
ConjAdv c as = conjunctDistrSS (c.s ! CSent) as ** {advType = as.advType} ; ---- ??
|
ConjAdv c as = conjunctDistrSS (c.s ! CSent) as ** {advType = as.advType} ; ---- ??
|
||||||
ConjNP c = conjunctDistrSS (c.s ! CPhr CNPhrase) ;
|
ConjNP c = conjunctDistrSS (c.s ! CPhr CNPhrase) ;
|
||||||
ConjAP c as = conjunctDistrSS (c.s ! CPhr CAPhrase) as ** {monoSyl = False} ;
|
ConjAP c as = conjunctDistrSS (c.s ! CPhr CAPhrase) as ** {monoSyl = False ; hasAdA = True} ; ---- ??
|
||||||
ConjRS c = conjunctDistrSS (c.s ! CSent) ;
|
ConjRS c = conjunctDistrSS (c.s ! CSent) ;
|
||||||
ConjCN c ns = conjunctDistrSS (c.s ! CPhr CNPhrase) ns ** {c = ns.c} ;
|
ConjCN c ns = conjunctDistrSS (c.s ! CPhr CNPhrase) ns ** {c = ns.c} ;
|
||||||
|
|
||||||
|
|||||||
@@ -103,12 +103,14 @@ DashCN noun cn = {s = noun.s ++ cn.s ; c = cn.c} ; ----
|
|||||||
|
|
||||||
GerundAP v = {
|
GerundAP v = {
|
||||||
s = v.s ++ de_s ; ----
|
s = v.s ++ de_s ; ----
|
||||||
monoSyl = False
|
monoSyl = False ;
|
||||||
|
hasAdA = True ; ---
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
PastPartAP v = {
|
PastPartAP v = {
|
||||||
s = v.s ++ de_s ;
|
s = v.s ++ de_s ;
|
||||||
monoSyl = False
|
monoSyl = False ;
|
||||||
|
hasAdA = True ; ---
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ resource ResChi = ParamX ** open Prelude in {
|
|||||||
xie_s = "些" ;
|
xie_s = "些" ;
|
||||||
the_s = "那" ;
|
the_s = "那" ;
|
||||||
geng_s = "更" ; -- more, in comparison
|
geng_s = "更" ; -- more, in comparison
|
||||||
|
hen_s = "很" ; -- very, or predicating a monosyllabic adjective
|
||||||
|
|
||||||
zai_V = mkVerb "在" [] [] [] [] "不" ;
|
zai_V = mkVerb "在" [] [] [] [] "不" ;
|
||||||
fullstop_s = "。" ;
|
fullstop_s = "。" ;
|
||||||
@@ -98,15 +99,16 @@ oper
|
|||||||
|
|
||||||
-- for morphology
|
-- for morphology
|
||||||
|
|
||||||
Noun : Type = {s : Str; c : Str} ;
|
Noun : Type = {s : Str ; c : Str} ;
|
||||||
Adj : Type = {s : Str; monoSyl: Bool} ;
|
Adj : Type = {s : Str ; monoSyl: Bool} ;
|
||||||
Verb : Type = {s : Str ; pp,ds,dp,ep : Str ; neg : Str} ;
|
Verb : Type = {s,sn : Str ; pp,ds,dp,ep : Str ; neg : Str} ; --- sn=[] needed for "hen" as copula
|
||||||
|
|
||||||
regNoun : Str -> Str -> Noun = \s,c -> {s = word s ; c = word c};
|
regNoun : Str -> Str -> Noun = \s,c -> {s = word s ; c = word c};
|
||||||
|
|
||||||
mkAdj : Str -> Bool -> Adj = \s,b -> {s = word s ; monoSyl = b};
|
mkAdj : Str -> Bool -> Adj = \s,b -> {s = word s ; monoSyl = b};
|
||||||
|
|
||||||
complexAP : Str -> Adj = \s -> {s = s ; monoSyl = False} ;
|
complexAP : Str -> Adj ** {hasAdA : Bool} =
|
||||||
|
\s -> {s = s ; monoSyl = False ; hasAdA = False} ; --- not used for adding AdA
|
||||||
|
|
||||||
simpleAdj : Str -> Adj = \s -> case s of {
|
simpleAdj : Str -> Adj = \s -> case s of {
|
||||||
? => mkAdj s True ; -- monosyllabic
|
? => mkAdj s True ; -- monosyllabic
|
||||||
@@ -114,6 +116,9 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
copula : Verb = mkVerb "是" [] [] [] [] "不" ;
|
copula : Verb = mkVerb "是" [] [] [] [] "不" ;
|
||||||
|
hen_copula : Verb =
|
||||||
|
{s = hen_s ; sn = [] ; pp = [] ; ds = [] ; dp = [] ; ep = [] ; neg = "不"} ; ---
|
||||||
|
nocopula : Verb = mkVerb [] [] [] [] [] "不" ;
|
||||||
|
|
||||||
regVerb : (walk : Str) -> Verb = \v ->
|
regVerb : (walk : Str) -> Verb = \v ->
|
||||||
mkVerb v "了" "着" "在" "过" "没" ;
|
mkVerb v "了" "着" "在" "过" "没" ;
|
||||||
@@ -121,7 +126,7 @@ oper
|
|||||||
noVerb : Verb = regVerb [] ; ---?? -- used as copula for verbal adverbs
|
noVerb : Verb = regVerb [] ; ---?? -- used as copula for verbal adverbs
|
||||||
|
|
||||||
mkVerb : (v : Str) -> (pp,ds,dp,ep,neg : Str) -> Verb = \v,pp,ds,dp,ep,neg ->
|
mkVerb : (v : Str) -> (pp,ds,dp,ep,neg : Str) -> Verb = \v,pp,ds,dp,ep,neg ->
|
||||||
{s = word v ; pp = pp ; ds = ds ; dp = dp ; ep = ep ; neg = neg} ;
|
{s,sn = word v ; pp = pp ; ds = ds ; dp = dp ; ep = ep ; neg = neg} ;
|
||||||
|
|
||||||
useVerb : Verb -> Polarity => Aspect => Str = \v ->
|
useVerb : Verb -> Polarity => Aspect => Str = \v ->
|
||||||
table {
|
table {
|
||||||
@@ -133,11 +138,11 @@ oper
|
|||||||
AExper => v.s ++ v.ep
|
AExper => v.s ++ v.ep
|
||||||
} ;
|
} ;
|
||||||
Neg => table {
|
Neg => table {
|
||||||
APlain => v.neg ++ v.s ; --- neg?
|
APlain => v.neg ++ v.sn ; --- neg?
|
||||||
APerf => "不" ++ v.s ++ v.pp ;
|
APerf => "不" ++ v.sn ++ v.pp ;
|
||||||
ADurStat => "不" ++ v.s ;
|
ADurStat => "不" ++ v.sn ;
|
||||||
ADurProg => v.neg ++ v.dp ++ v.s ; -- mei or bu
|
ADurProg => v.neg ++ v.dp ++ v.sn ; -- mei or bu
|
||||||
AExper => v.neg ++ v.s ++ v.ep
|
AExper => v.neg ++ v.sn ++ v.ep
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,11 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in {
|
|||||||
|
|
||||||
PassV2 v = insertAdv (mkNP passive_s) (predV v v.part) ; ----
|
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) (
|
||||||
|
case ap.hasAdA of {
|
||||||
|
True => predV nocopula [] ;
|
||||||
|
False => predV hen_copula []}
|
||||||
|
) ;
|
||||||
|
|
||||||
CompNP np = insertObj np (predV copula []) ; ----
|
CompNP np = insertObj np (predV copula []) ; ----
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user