summaryrefslogtreecommitdiff
path: root/examples/phrasebook/SentencesChi.gf
blob: 7ca72eb56d9157f3cd691c658a0e418a88141737 (plain)
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 "请上" ;


}