-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSentencesChi.gf
62 lines (43 loc) · 1.99 KB
/
SentencesChi.gf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
concrete SentencesChi of Sentences = NumeralChi ** SentencesI - [QWhereModVerbPhrase, APlace,ThePlace, PropCit, CitiNat, ACitizen, Nationality, CitizenShip, ByTransp, GObjectPlease, AKnowPerson, QDoHave , QWhereDoVerbPhrase, SHaveNo, AHaveCurr]
with
(Syntax = SyntaxChi),
(Symbolic = SymbolicChi),
(Lexicon = LexiconChi) ** open SyntaxChi, (P = ParadigmsChi) in {
flags coding=utf8 ;
lincat
Citizenship = N ;
Nationality = {lang : NP ; country : NP; prop : A };
lin
ThePlace kind =
let name : NP = lin NP (Syntax.mkNP theSg_Det kind.name) in {
name = lin NP name ;
at = mkAdv kind.at (lin NP name) ;
to = mkAdv kind.to (lin NP name)
} ;
APlace kind =
let name : NP = lin NP (Syntax.mkNP aSg_Det kind.name) in {
name = lin NP name ;
at = mkAdv kind.at (lin NP name) ;
to = mkAdv kind.to (lin NP name)
} ;
ACitizen p n = mkCl p.name (lin N {s = n.s ++ "人" } ) ; -- to get 俄罗斯人, not 俄罗斯(人)的 ;
CitiNat n = n.prop ; -- lin A { s = n.prop.s ++ "人" ; lock_A = <> ; monoSyl = False} ;
PropCit c = lin A { s = c.s ; lock_A = <>; monoSyl = True } ;
ByTransp t = t.by ;
QWhereModVerbPhrase m p vp = mkQS (mkQCl zai_where_IAdv (mkCl p.name (mkVP m vp))) ;
GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) please_shang_Voc) | lin Text (mkUtt o) ;
AKnowPerson p q = mkCl p.name (P.mkV2 "认识") q.name ;
QDoHave p obj = mkQS (mkQCl (mkCl p.name have_V2 obj)) ;
QWhereDoVerbPhrase p vp = mkQS (mkQCl qu_where_IAdv (mkCl p.name vp)) ;
SHaveNo p k = mkS negativePol (mkCl p.name have_V2 (mkNP k)) ;
AHaveCurr p curr = mkCl p.name have_V2 (mkNP curr) ;
MCan = can_VV ;
MWant = want_VV ;
MMust = must_VV ;
oper
qu_where_IAdv = mkIAdvL "去哪里" ;
zai_where_IAdv = mkIAdvL "在哪里" ;
where_m_IAdv : VV -> SS = \m -> mkIAdvL m.s ; -- ( "想在哪里" ) ;
have_or_not_V2 = P.mkV2 (P.mkV "有没有" "了" "着" "在" "过" "没") ;
please_shang_Voc : SS = ss "请上" ;
}