<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi Emily -</p>
<p><br>
</p>
<p>I ran into this behavior too when doing the SWB-oriented grammars for the grammar engineering course I taught with Tom last quarter.&nbsp; The culprit turns out to be the function index-lexicon(), which right at its end cheerfully emits those warning/advice messages
 for all semantically empty entries regardless of whether trigger rules have been defined.&nbsp; Since the same shortcoming is repeated in the separate function reindex-lexicon(), it proved to be easier for me to correct this by changing the function make-trigger-tdl()
 which they both call, so that the global mt::*transfer-triggers* is checked before emitting the warning for each semantically empty lexical entry.&nbsp; Here is the patched version of this function analogous to what I added to my grammars' user-fns.lsp file:</p>
<p><br>
</p>
<p>(defun make-trigger-tdl (empty-semantics-lexical-entries)<br>
&nbsp; (let ((empty-no-trigger-entries <br>
&nbsp;&nbsp; &nbsp; (loop for id in empty-semantics-lexical-entries<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unless (or #&#43;:mt<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; (gethash id mt::*transfer-triggers*)<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; nil)<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; collect id)))<br>
&nbsp;&nbsp; (loop for x in empty-no-trigger-entries<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do<br>
&nbsp;&nbsp; &nbsp;(format t &quot;~%~%~a_gr := generator_rule &amp;<br>
[ CONTEXT.RELS &lt;! [ PRED \&quot;non_existing_rel\&quot; ] !&gt;,<br>
&nbsp; FLAGS.TRIGGER \&quot;~a\&quot; ].&quot; <br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;(string-downcase x) <br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;(string-downcase x)))))</p>
<p><br>
</p>
<p>I expect that Ann or Stephan could see a more elegant way to achieve this effect, but this patch might be a useful temporary expedient.<br>
</p>
<br>
<p>&nbsp; Dan</p>
<p><br>
</p>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" color="#000000" face="Calibri, sans-serif"><b>From:</b> developers-bounces@emmtee.net &lt;developers-bounces@emmtee.net&gt; on behalf of Emily M. Bender &lt;ebender@uw.edu&gt;<br>
<b>Sent:</b> Wednesday, February 10, 2016 7:43 AM<br>
<b>To:</b> developers<br>
<b>Subject:</b> [developers] Trigger rules still being requested</font>
<div>&nbsp;</div>
</div>
<div>
<div dir="ltr">Dear all,
<div><br>
</div>
<div>In the Matrix derived grammars, we have the following in &nbsp;lkb/script:</div>
<div><br>
</div>
<div>
<div>;;;</div>
<div>;;; SSH 2012-03-27 This invokes trigger rules for semantically empty</div>
<div>;;; lexical entries. The trigger rules themselves should be in</div>
<div>;;; trigger.mtr in the grammar directory. The documentation on trigger</div>
<div>;;; rules: <a id="LPlnk208819" href="http://moin.delph-in.net/LkbGeneration">
http://moin.delph-in.net/LkbGeneration</a></div>
<div>;;;</div>
<div>;;; SSH 2013-05-23 The semi.vpm file needs to be loaded *before* the</div>
<div>;;; trigger.mtr file in lkb/script for correct interaction.</div>
<div>;;;</div>
<div><br>
</div>
<div>(mt:read-transfer-rules</div>
<div>&nbsp;(list</div>
<div>&nbsp; (lkb-pathname (parent-directory) &quot;trigger.mtr&quot;))</div>
<div>&nbsp; &quot;Generation trigger rules&quot;</div>
<div>&nbsp; :filter nil :task :trigger :recurse nil :edges 200 :subsume nil)</div>
<div><br>
</div>
<div>;;;</div>
<div>;;; Matrix-derived grammars often have stable enough semantic</div>
<div>;;; representations that the grammar can usefully be tested</div>
<div>;;; by generating from them.&nbsp; The function index-for-generator()</div>
<div>;;; must be called for generation to be enabled.&nbsp; In grammars with</div>
<div>;;; small lexica, this takes a trivial amount of time.&nbsp; If</div>
<div>;;; generation is not being used regularly, and the indexing</div>
<div>;;; is taking too long, comment out the following. &nbsp;index-for-generator()</div>
<div>;;; can also be run from the expanded LKB top menu, under</div>
<div>;;; Generate.</div>
<div>;;;</div>
<div><br>
</div>
<div>(index-for-generator)</div>
</div>
<div><br>
</div>
<div>It is my understanding that (index-for-generator) is what is behind the messages</div>
<div>suggesting trigger rules for semantically empty lexical entries, but even though</div>
<div>we call it after loading the trigger rules, we still get messages such as the following:</div>
<div><br>
<div class="gmail_quote">
<div style="margin:1em 0px 2em"><br>
<img style="-moz-user-select: none;" alt="" src="https://catalyst.uw.edu/file_download.cgi?ptkt=ef7def236ef9aa296b3372e09e0d1c8d7bb3fb0a0f764220c45caa89ec7f1332"><br>
</div>
Is there something else we're supposed to do so that we only see those messages<br>
when an entry truly lacks a trigger rule?<br>
<br>
Thanks,<br>
Emily</div>
<div class="gmail_quote"><br>
</div>
-- <br>
<div class="gmail_signature">
<div dir="ltr">Emily M. Bender<br>
Professor,&nbsp;Department of Linguistics<br>
Check out CLMS on facebook! <a href="http://www.facebook.com/uwclma" target="_blank">
http://www.facebook.com/uwclma</a><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>