summaryrefslogtreecommitdiff
path: root/examples/grammar-terms/GrammarTermsEng.gf
blob: 301020549a1f9a5af417bab92684b6687a2844ce (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
--# -path=.:present

concrete GrammarTermsEng of GrammarTerms = 
  open SyntaxEng, (S = SyntaxEng), ParadigmsEng, (P = ParadigmsEng) in {

lincat
  Rule = Utt ;
  Cat = CN ;
  ParamType = CN ;
  ParamValue = NP ;
  Language = {name : CN ; adj : AP} ;
  [Cat] = NP ;
  [ParamType] = {indef, bare : NP} ;

lin
  RuleFun c cs = 
    mkUtt (mkS (mkCl (mkNP a_Det c) (mkVP can_VV 
      (mkVP (passiveVP construct_V2) (S.mkAdv from_Prep cs))))) ;
  RuleInherent c ps = 
    mkUtt (mkS (mkCl (mkNP aPl_Det c) have_V2 ps.indef)) ;
  RuleVariable c ps = 
    mkUtt (mkS (mkCl (mkNP aPl_Det c)
      (mkVP (passiveVP inflect_V2) (S.mkAdv for_Prep ps.bare)))) ;

oper
  construct_V2 = mkV2 "construct" ;
  inflect_V2 = mkV2 "inflect" ;

lin
  BaseCat c = mkNP a_Det c ;
  ConsCat c cs = mkNP and_Conj (mkNP a_Det c) cs ;

  BaseParamType c = {
    indef = mkNP a_Det c ;
    bare = mkNP c
    } ;
  ConsParamType c cs = {
    indef = mkNP and_Conj (mkNP a_Det c) cs.indef ;
    bare = mkNP and_Conj (mkNP c) cs.bare
    } ;

lin 
  CatA = mkCN (mkN "adjective") ;
  CatA2 = mkCN (mkN "two-place adjective") ;
  CatAP = mkCN (mkA "adjectival") (mkN "phrase") ;
  CatAdA = mkCN (mkA "adjective-modifying") (mkN "adverb") ;
  CatAdN = mkCN (mkN "numeral-modifying adverb") ;
  CatAdV = mkCN (mkN "sentential adverb") ;
  CatAdv = mkCN (mkN "verb-phrase-modifying adverb") ;
  CatAnt = mkCN (mkN "anteriority") ;
  CatCAdv = mkCN (mkN "comparative adverb") ;
  CatCN = mkCN (mkN "common noun phrase") ;
  CatCard = mkCN (mkN "cardinal number") ;
  CatCl = mkCN (mkN "declarative clause") ;
  CatClSlash = slash (mkCN (mkN "clause")) ;
  CatComp = funOf (mkN "complement") (mkN "copula") ;
  CatConj = mkCN (mkN "conjunction") ;
  CatDet = mkCN (mkN "determiner phrase") ;
  CatDig = mkCN (mkN "digit") ;
  CatDigits = funOfPl (mkN "sequence") (mkN "digit") ;
  CatIAdv = mkCN (mkN "interrogative adverb") ;
  CatIComp = 
    mkCN (mkA "interrogative") (funOf (mkN "complement") (mkN "copula")) ;
  CatIDet = mkCN (mkN "interrogative determiner") ;
  CatIP = mkCN (mkN "interrogative pronoun") ;
  CatIQuant = mkCN (mkN "interrogative quantifier") ;
  CatImp = mkCN (mkN "imperative") ;
  CatImpForm = funOf (mkN "form") (mkN "imperative") ;
  CatInterj = mkCN (mkN "interjection") ;
  CatListAP = funOfPl (mkN "list") (mkN "adjectival phrase") ;
  CatListAdv = funOfPl (mkN "list") (mkN "adverb") ;
  CatListNP = funOfPl (mkN "list") (mkN "noun phrase") ;
  CatListRS = funOfPl (mkN "list") (mkN "relative clause") ;
  CatListS = funOfPl (mkN "list") (mkN "sentence") ;
  CatN = mkCN (mkN "noun") ;
  CatN2 = mkCN (mkN "two-place relational noun") ;
  CatN3 = mkCN (mkN "three-place relational noun") ;
  CatNP = mkCN (mkN "noun phrase") ;
  CatNum = mkCN (mkN "number-determining element") ;
  CatNumeral = mkCN (mkN "numeral expression") ;
  CatOrd = mkCN (mkN "ordinal") ;
  CatPConj = mkCN (mkN "phrase conjunction") ;
  CatPN = mkCN (mkN "proper name") ;
  CatPhr = mkCN (mkN "phrase") (S.mkAdv in_Prep (mkNP a_Det (mkN "text"))) ;
  CatPol = mkCN (mkN "polarity") ;
  CatPredet = mkCN (mkN "predeterminer") ;
  CatPrep = mkCN (mkN "preposition") ;
  CatPron = mkCN (mkN "personal pronoun") ;
  CatPunct = mkCN (mkN "punctuation mark") ;
  CatQCl = mkCN (mkN "question clause") ;
  CatQS = mkCN (mkN "question") ;
  CatQuant = mkCN (mkN "quantifier") ;
  CatRCl = mkCN (mkN "relative clause") ;
  CatRP = mkCN (mkN "relative pronoun") ;
  CatRS = mkCN (mkN "relative sentence") ;
  CatS = mkCN (mkN "declarative sentence") ;
  CatSC = mkCN (mkN "embedded clause") ;
  CatSSlash = slash (mkCN (mkN "sentence")) ;
  CatSub100 = mkCN (mkN "numeral") (S.mkAdv under_Prep (mkNP (mkPN "100"))) ;
  CatSub1000 = mkCN (mkN "numeral") (S.mkAdv under_Prep (mkNP (mkPN "1000"))) ;
  CatSubj = mkCN (mkN "subjunction") ;
  CatTemp = mkCN (mkN "temporal and aspectual feature") ;
  CatTense = mkCN (mkN "tense") ;
  CatText = mkCN (mkN "text") ;
  CatUnit = mkCN (mkN "numeral") (S.mkAdv under_Prep (mkNP (mkPN "10"))) ;
  CatUtt = mkCN (mkN "utterance") ;
  CatV = mkCN (mkN "intransitive verb") ;
  CatV2 = mkCN (mkN "two-place verb") ;
  CatV2A = 
    mkCN (mkN "verb") (P.mkAdv "with noun phrase and adjective complements") ;
  CatV2Q = 
    mkCN (mkN "verb") (P.mkAdv "with noun phrase and question complements") ;
  CatV2S = 
    mkCN (mkN "verb") (P.mkAdv "with noun phrase and sentence complements") ;
  CatV2V = 
    mkCN (mkN "verb") (P.mkAdv "with noun phrase and verb phrase complements") ;
  CatV3 = mkCN (mkN "three-place verb") ;
  CatVA = 
    mkCN (mkN "verb") (P.mkAdv "with an adjective complement") ;
  CatVP = mkCN (mkN "verb phrase") ;
  CatVPSlash = slash (mkCN (mkN "verb phrase")) ;
  CatVQ = 
    mkCN (mkN "verb") (P.mkAdv "with a question complement") ;
  CatVS = 
    mkCN (mkN "verb") (P.mkAdv "with a sentence complement") ;
  CatVV = 
    mkCN (mkN "verb") (P.mkAdv "with a verb-phrase complement") ;
  CatVoc = mkCN (mkN "vocative") ;

  PTGender = mkCN (mkN "gender") ;
  PTNumber = mkCN (mkN "number") ;
  PTCase   = mkCN (mkN "case") ;
  PTTense  = mkCN (mkN "tense") ;

oper 
  slash : CN -> CN = \cn ->
     mkCN (mkAP (mkA2 (mkA "missing") []) (mkNP a_Det (mkN "noun phrase"))) cn ;

  funOf : N -> N -> CN = \f,x ->
     mkCN (mkN2 f possess_Prep) (mkNP a_Det x) ;
  funOfPl : N -> N -> CN = \f,x ->
     mkCN (mkN2 f possess_Prep) (mkNP aPl_Det x) ;
}