This file is indexed.

/usr/share/link-grammar/en/4.0.knowledge is in link-grammar-dictionaries-en 5.3.16-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
; Post-processing knowledge file
; 6/96

; ----------------------------------------------------------------------------
; This file contains the knowledge related to post-processing, in the
; form of lists and rules. This file is read by post-process.c at run-time.
; Syntax of file:
;           line starting with ";" is a comment
;           commas are field delimiters
;           any token beginning with the character @ is expanded to the set
;               of symbols it defined. e.g. one could write
; FOO: blah1 blah2 blah3
; thus defining a set FOO containing three strings. Then one could later write
; BAR: blah5 @FOO blah8
; which defines a set BAR containing 5 strings.
;
; Capitalized tokens are *required*, though if you feel like providing an
; empty list afterwards, that's your right.
; ----------------------------------------------------------------------------


; The following links start a domain. Each must be given a name in the
; table below (STARTING_LINK_TYPE_TABLE)
;
; Removed Rn as a starter link, since it doesn't seem to be needed,
; and also because it interferes with a verb-wall link for sentences
; like: "only you would say that" and "that I did not know". When Rn is
; allowed to start an r domain, the above sentences then hit the
; "unbounded r domain" rule below, on the WV link.

DOMAIN_STARTER_LINKS:
;W   Ce   Cs   Ca   Cc   Ci   R*   Rn   Re   RSe  Mr   QI#d   Mv*   Jr  Mj   Qd
 W   Ce   Cs   Ca   Cc   Ci   R*   Re   RSe  Mr   QI#d   Mv*   Jr  Mj   Qd
 TOn   TOi   Mg*   MVi  Ss#d   Bsd   ER   Z  Ma#*   SIs#g  BIqx   MX#p   MX#a
 MX#r   MX#j   MV#o   MV#p  Eq   COq   VCq  AFd   PFc



; ----------------------------------------------------------------------
; The following links start a urfl domain.  They are also included in the
; domain, as opposed to regular starter links (above), which are not. A
; urfl domain includes links accessible from the root word, tracing to
; the right (as well as everything accessible from the left end of the
; starter link).

URFL_DOMAIN_STARTER_LINKS:  TOo   I#j  Pa##j   CP



; ----------------------------------------------------------------------
; The following start a urfl_only domain. These include _only_ links :
; reachable from the root word, tracing to the right. They aren't
; included in the domain

URFL_ONLY_DOMAIN_STARTER_LINKS:  SFsx   Ss#g   COp



; ----------------------------------------------------------------------
; Links which start a domain and are also part of the domain. This must be
; a sublist of the domain_starter_list

DOMAIN_CONTAINS_LINKS:
 Mg*   Mx   Bsd   MX#a   Ma#*   Mv*   MX#r   Ss#d   Ws   Wq  Qd   Mj   Wj
 Wi  MX#j   AFd   PFc   Jr   Wd   Wp   Mr



; ----------------------------------------------------------------------
; These links are not put in the word/link graph. They also cannot be the
; starter links for a domain. (These links may also only be used in cycles.)

IGNORE_THESE_LINKS: Xca



; ----------------------------------------------------------------------
; These links may only be used in cycles.
; ---
; Jd and OFd are used with determiner D: "I have a lot of cookies"
; ---
; WV must form a cycle with W links: WV links to the root verb to the wall,
; and W links the leading noun to the wall. Both verb and noun must be in
; the same phrase, forming a cycle, as otherwise, nonsense happens, such as
; *He stated the fact that there be an investigation
; with W linking to "he" and WV linking to "be" (instead of "stated")
; ---
; CV: similar to WV above, must form a loop along with Ce (typically).
; Ce links noun of subordinate clause to the dominating phrase, while
; CV links the verb of the subordinate clause to the dominating phrase.
; Both the linked noun and verb must be in the same subordinate clause.
; Example: "I wish I could see him 100 times a day"

MUST_FORM_A_CYCLE_LINKS:  R#*  TOt  EXx  HA  SFsic  Jd  Jr  JQ  OFd Xca  WV CV IV



; ----------------------------------------------------------------------
; These links are not traced further if they point back before the root word.
;
; The creation of Rw necessitated making B#m a restricted link, to
; prevent the (e) domain, started by Ce, from extending around through
; the Rw link.
; Reverted the B#m thing ...
; This breaks parsing of
;    How fast a program does he think it is
;    I wonder how fast a program he thinks it is
;    I wonder how much money you earned
;    I wonder how many people you saw
;    I wonder how big a department it is
;    I wonder how much oil they spilled
;    This is the man whose dog I bought
;    I wonder which dog he said you chased
;    How efficient a program is it
; Meanwhile, I can't find the Ce problem mentioned ... this needs more
; documentation!

RESTRICTED_LINKS:
   B#*  D##w   B#w   B#d   AFh  MVt   Xx   HL   SFsic  AFd   Bc   CX  EAh
   H   HA   PFc   B#j   Wd   PF   Z

;   H   HA   PFc   B#j   Wd   PF   Z  B#m


; ----------------------------------------------------------------------
; ---------------------- LINK TYPE TABLE-------------------------------
; ----------------------------------------------------------------------
; The following table associates a domain type with each possible
; starting link. It contains pairs: the first of each pair is a link
; type, and the second is the domain to which that link type belongs.
;
; Rn commented out, as per above.

STARTING_LINK_TYPE_TABLE:
 Ce    e
 R*    r
; Rn    r
 Re    r
 W     m
 RSe   e
 Cs    s
 Ca    s
 Jr    e
 Mr    r
 Cc    s
 Mv*   e
 QI#d  s
 BIqx  s
 TOn   e
 TOi   e
 MVi   e
 MV#o  s
 MV#p  s
 AFd   s
 PFc   s
 Mg*   e
 Mj    j
 Qd    m
 MX#j  j
 TOo   x
 I#j   x
 Pa##j x
 CP    x
 COp   d
 SFsx  d
 Ss#g  d
 SIs#g s
 Ss#d  s
 Bsd   s
 ER    s
 Z     s
 Ma#*  e
 MX#p  e
 Ci    e
 MX#a  e
 Eq    e
 COq   e
 VCq   s
 MX#r  r


; ----------------------------------------------------------------------
; ----------------------- LINK SETS ------------------------------------
; ----------------------------------------------------------------------
; (Not in use at present; see comment at beginning of file)

; ----------------------------------------------------------------------
; ----------------- RULES ----------------------------------------------
; ----------------------------------------------------------------------
; Explanation of syntax: as usual, each stanza begins with a label
; terminated by a colon. The interpretation of the rule depends on
; the label, as specified in each stanza.

; The following rule asserts that the linkage must *still* be connected
; when the specified set(s) of links are removed from the linkage.

FORM_A_CYCLE_RULES:
        @MUST_FORM_A_CYCLE_LINKS  ,  "'must form a cycle' violation0"


; For the following rules, if a domain contains a link matching the 1st
; column, it must also contain a linkage matching one of the members of the
; set in the 2nd column. The individual rules are demarcated by semicolons and
; the fields within a rule are demarcated by commas.

; XXX fixme -- Qd should be replaced by Qw in first four.
CONTAINS_ONE_RULES:
 SI#*  ,  Wq    Qd    Qw    CQ    PFc  Wp   , "Bad use of s-v inversion1" ,
 SI#x  ,  Wq    Qd    CQ    PFc   Wp        , "Bad use of s-v inversion2" ,
 SFI##* , Wq    Qd    CQ    PFc             , "Bad use of s-v inversion3" ,
 SXI   ,  Wq    Qd    CQ    PFc             , "Bad use of s-v inversion4" ,
 Ws    ,  D##w  S##w   H                    , "S-V inversion required5" ,
 I#a   ,  B#m   B#w                         , "incorrect use of 'to'6"  ,
 Wq    ,  SI    SFI   SXI                   , "S-V inversion required7" ,
 Qd    ,  SI    SFI   SXI                   , "S-V inversion required8" ,
 PFc   ,  SI    SFI   SXI                   , "S-V inversion required9" ,
 Mj    ,  Jw    JQ                          , "Incorrect relative10" ,
 MX#j  ,  Jw    JQ                          , "Incorrect relative11" ,
 Wj    ,  Jw    JQ                          , "Misuse of preposition12" ,
 JQ    ,  Mj    Wj    MX#j                  , "Misuse of preposition13" ,
 Jw    ,  Mj    Wj    MX#j                  , "Misuse of preposition14" ,
 B#j   ,  Jr                                , "Incorrect relative15"    ,
 Jr    ,  B#j                               , "Incorrect relative16"    ,
; The two below prevent "How big?" and "How quickly?"
; EAh   ,  AF    Bsm    B*m  Qe  Ca  AFm    , "Incorrect use of 'how'17"   ,
; EEh   ,  AF    Bsm    B*m  Qe  Ca  AFm    , "Incorrect use of 'how'18"   ,
 Qe    ,  EEh  EAh                          , "Incorrect use of adverb19"  ,
 THi   ,  SFsi   SFIsi   OXi                , "Complement requires 'it'20" ,
 TSi   ,  SFsi   SFIsi   OXi                , "Complement requires 'it'21" ,
 QIi   ,  SFsi   SFIsi   OXi                , "Complement requires 'it'22" ,
 TOi   ,  SFsi   SFIsi   OXi                , "Complement requires 'it'23" ,
 Ci    ,  SFsi   SFIsi   OXi                , "Complement requires 'it'24" ,
 COqi  ,  SFsi   SFIsi   OXi                , "Complement requires 'it'25" ,
 CPi   ,  SFsi   SFIsi   OXi                , "Complement requires 'it'26" ,
 Eqi   ,  SFsi   SFIsi   OXi                , "Complement requires 'it'27" ,
 LEi   ,  SFsi   SFIsi   OXi                , "Complement requires 'it'28" ,
 MVti  ,  SFsi   SFIsi   OXi                , "Complement requires 'it'29"     ,
 AFdi  ,  SFsi   SFIsi   OXi                , "Complement requires 'it'30"     ,
 O#i   ,  SFsi   SFIsi   OXi                , "Complement requires 'it'31"     ,
; SFs, SFp SFu: force subject-object agreement for
; singular/plural/uncountable noun objects
 SFst  ,  O*t   Ost   Omt   Omm   Bs#t    B*#t    Bc#t    , "Bad use of 'there'32s"           ,
 SFp   ,  O*t   Opt   Omt   Omm   Bp#t    B*#t    Bc#t    , "Bad use of 'there'32p"           ,
 SFu   ,  O*t   Out   Omt   Omm   Bp#t    B*#t    Bc#t    , "Bad use of 'there'32u"           ,
;
 SFIst ,  O*t   Ost   Omt    Bs#t    B*#t    Bc#t    , "Bad use of 'there'34"           ,
 SFIp  ,  O*t   Opt   Omt    Bp#t    B*#t    Bc#t    , "Bad use of 'there'35"           ,
 OXt   ,  O#t   B##t                     ,   "Bad use of 'there'36"           ,
 SFsi* ,  TOi    THi   QIi    TSi    O#i    Ci    THb   CPi
          COqi    CPi    Eqi    AFdi    BIh , "Bad use of 'it'37"           ,
 SFIsi ,  TOi    THi   QIi    TSi    O#i    Ci    THb   CPi
          COqi    CPi    Eqi    AFdi    BIh , "Bad use of 'it'38"           ,
 OXi   ,  TOi    THi   QIi    TSi    O#i    Ci    THb   CPi
          COqi    CPi    Eqi    AFdi    BIh , "Bad use of 'it'39"           ,
 THb   ,  S##t    SI##t  SFsi  SFIsi        , "Bad use of predicate40"      ,
 BIh   ,  Ss#b    SIs#b  SFsi  SFIsi        , "Bad use of predicate41"      ,
 BIq   ,  S##q    SI##q  SFsi  Ss#b    SFIsi SIs#b
                                            , "Bad use of predicate42"      ,
 MVt   ,  Dm#m   EAm   EEm   MVm  Pam   Pafm   AFm   EB#m   MVb AJrc
          Om   Mam  Am  Jm  Ds*m   MX#m     , "Bad comparative43"    ,
 MVz   ,  D##y    EAy    EEy    MVy    EB#y , "Bad comparative44"    ,
 MV#a  ,  Pam    Pafm    EAm   Ds*m   EAy   AFm   Mam   Am
					    , "Bad comparative45"    ,
 MV#i  ,  Pam    Pafm    EAm   Ds*m   EAy   AFm   Mam   Am
					    , "Bad comparative46"    ,
 MV#o  ,  D##m    D##y    Om    Oy    Jm    Jy   Am   MX#m
					    , "Bad comparative47"    ,
 MV#p  ,  EEm   MVb   Dm#m   EEy   D##y  MVm   Om   Oy
                            Jm   Jy   Am   MX#m
					    , "Bad comparative48"    ,
 Pafc  ,  EB#m    EB#y                      , "Bad comparative49"    ,
 Pafc  ,  Pa*    Paf*                       , "Bad comparative50"    ,
 MVat  ,  MVm                               , "Bad comparative51"    ,
 MVpt  ,  MVm                               , "Bad comparative52"    ,
 MVat  ,  MVa   MVp                         , "Bad comparative53"    ,
 MVpt  ,  MVa   MVp                         , "Bad comparative54"    ,
 U#t   ,  D##m    D##y    Om    Oy    Jm    Jy   Am   MX#m
				            , "Bad comparative55"    ,
 Cc    ,  EEm    EEy    MVm    MVb    MVy
	                                    , "Bad comparative56"    ,
 Sp#c  ,  Dmcm    Dmcy    Om    Oy    Jm    Jy  MX#m
	 				    , "Bad comparative57"    ,
 Ss#c  ,  Dmum    Dmuy    Om    Oy    Jm    Jy    Ds*y  MX#m
					    , "Bad comparative58"    ,
 S##c  ,  Dm#m    D##y    Om    Oy    Jm    Jy   MX#m
					    , "Bad comparative59"    ,
 THc   ,  TH                                , "Bad comparative60"    ,
 TOc   ,  TO**   TOf*   TOi*                , "Bad comparative61"    ,
 TOtc  ,  TOt  ,                              "Bad comparative62"    ,
 Ma**  ,  TO   TOf   TH   MVp   TOt   QI   OF  MVt   MVz   MVh   Ytm   Ya
					    , "Bad use of adjective63"    ,
 Mam   ,  TO   TOf   TH   MVp   TOt   QI   OF  MVt   MVz   MVh   Ytm   Ya
					    , "Bad use of adjective64"    ,
;
; The rule below sounds nice, in principle, in preventing some
; nasty constructions ... however, it also prevents some good
; ones, too. e.g. "The dog, unsatisfied, barked loudly"
;
MX#a  ,  TO  TOf  TH  MVp  TOt  QI  OF  MVt  MVz  MVh  Ytm Ya  MJ E EA
			                    , "Bad use of adjective65"    ,

; There's no JUNK connector, which means that Oxn is
; prohibited from ever occuring. 4.0.batch covers this.
 Oxn   ,  JUNK                              , "Bad use of pronoun66" ,
 MVh   ,  EExk   EAxk   D##k                , "Incorrect use of that67" ,

; The Rw link necessitated commenting out 68, because we had to make B#m
; a restricted link(see above) xxx reverted .. this is needed ...
;
B#m  ,   D##w   H   HA                     , "Bad use of gerund68"

CONTAINS_NONE_RULES:
 S     ,  Spxi                             , "Bad n-v agreement69" ,
 SI     , SIpxi                            , "Bad n-v agreement70" ,
 Ws    ,  B#m   Ca   BT                    , "Question inversion violated71" ,
 SF    ,  I*   PP*   TO*   Pa*   Pam  Pg*   Pv*   LE*   AFd*  MVta
                                           , "Bad use of 'filler' subject72" ,
 SFI   ,  I*   PP*   TO*   Pa*   Pam  Pg*   Pv*   LE*   AFd*  MVta
                                           , "Bad use of 'filler' subject73" ,
 OX    ,  I*   PP*   TO*   Pa*   Pam  Pg*   Pv*   LE*   AFd*  MVta
                                           , "Bad use of 'filler' subject74" ,
 MXsr  ,  Sp#w                             , "Bad n-v agreement75" ,
 MXpr  ,  Ss#w   S#iw                      , "Bad n-v agreement76" ,
 Mr    ,  B#*                              , "Bad use of 'whose'77"


; ----------------------------------------------------------------------
; The following rules assert that all specified domains must have the
; property that all of the words that touch a link in the domain are
; not to the left of the root word of the domain. These rules are
; different from the above in that the first field is a *domain name*,
; rather than a set of links.

BOUNDED_RULES:
 s                               , "Unbounded s domain78" ,
 r                               , "Unbounded r domain79"