Greetings,<br><br>After a bit more prodding, Francis and I think we have found the source(s) of our problems.<br><br>1) ECL couldn't access anything in rmrs/convert.lisp. Francis noticed that there was another<br>&nbsp;&nbsp;&nbsp; file named 
convert.lisp in the ppcre directory. ECL compiles both of these into object files<br>&nbsp;&nbsp;&nbsp; named convert.o. Both object files are them compiled into libmrs.a. This has the effect that<br>&nbsp;&nbsp;&nbsp; one of them becomes inaccessable. The fix for this problem is to rename rmrs/convert.lisp
<br>&nbsp;&nbsp;&nbsp; to rmrs/rmrs-convert.lisp and change system/mrs.system to reflect this change.<br><br>2) Once ECL was able to find the mrs to rmrs conversion code, we encountered another problem:<br>&nbsp;&nbsp;&nbsp; When running cheap with -mrs=xml, ECL complains about not being able to find the variable 
<br>&nbsp;&nbsp;&nbsp; lkb::*tchart*:<br><br>eric@wsd-m:~/tmp [14:13:52] [5673]<br>:) cheap -mrs=xml /usr/share/delphin/grammars<div id="mb_4">/erg/english<br>reading `/usr/share/delphin/grammars/erg/pet/english.set'... including `/usr/share/delphin/grammars/erg/pet/common.set'... `/usr/share/delphin/grammars/erg/pet/global.set'... 
<br>loading `/usr/share/delphin/grammars/erg/english.grm' (LinGO (18-Jul-06)) reading ME model `/usr/share/delphin/grammars/erg/jh.mem'... [31519 features] Unknown type/instance `v_nbar_idm_le' in feature #577<br>...<br>
61364 types in 6 s
<br>fish fish<br>(1) `fish fish' [0] --- 6 (0.00|0.01s) &lt;16:84&gt; (630.7K) [0.0s]<br>derivation[1] (0.9809):fish fish <br>The variable LKB::*TCHART* is unbound.<span class="q"><br>0 is an illegal frs index.<br>...<br>
0 is an illegal frs index.
<br></span>zsh: segmentation fault&nbsp; cheap -mrs=xml /usr/share/delphin/grammars/erg/english<br><br>This call is made from the function mrs-to-rmrs which, of course, resides in rmrs/convert.lisp --<br>the file causing problems in 1). If I understand the code correctly, it appears that some changes
<br>were made recently to try and correctly calculate cto and cfrom in RMRS for the entire sentence.<br>Commenting out the lines that reference the variable tchart-edges (given in <span style="color: rgb(255, 0, 0);">red
<span style="color: rgb(0, 0, 0);">
 below) allows<br>cheap to produce RMRS again (albeit with cfrom and cto equal to -1 for the sentence). This is<br>actually a line-by-line reversion of the CVS change introduced on 2006/7/27.<br></span></span><br>(defun mrs-to-rmrs (mrs)
<br>&nbsp; (if *rel-handel-path*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (initialize-rmrs-variables-plus)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (let ((lzt (psoa-liszt mrs))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (new-lzt nil)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (new-args nil)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (label-recs nil)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ings nil)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(255, 0, 0);">;;(tchart-edges (lkb::get-edges lkb::*tchart*)) ;; [bmw] see below</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (dolist (rel lzt)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (multiple-value-bind (ep rmrs-args new-label-recs)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (parsonify-rel rel label-recs)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (push ep new-lzt)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setf new-args (append new-args rmrs-args))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setf label-recs new-label-recs)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setf ings (construct-converted-in-groups label-recs))
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (make-rmrs&nbsp;&nbsp; :top-h (psoa-top-h mrs)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :h-cons (construct-converted-hcons <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (psoa-h-cons mrs) ings)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :liszt (nreverse new-lzt)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :in-groups ings<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :rmrs-args new-args<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;; [bmw] hack to obtain standoff points<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;; (which are NOT provided by the input mrs...)
<br><span style="color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;:cfrom (lkb::get-min-edge-cfrom tchart-edges)</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;:cto (lkb::get-max-edge-cto tchart-edges)
</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :origin :erg)))))<br><br>#|<br>bindings aren't set, since the assumption is that all variable<br>equalities are known.&nbsp; So the code simply has to walk down the list<br>of rels in the lzt, converting them to simple eps plus rmrs-args
<br>|#<br><br>Francis and I would be grateful if Ben (or someone else more familiar than us with the inner workings<br>ofLKB's MRS code) would take a look at this problem and try to come up with a more workable solution.
<br>
<br>Thank you in advance,<br><br>Eric</div><br><div><span class="gmail_quote">On 11/1/06, <b class="gmail_sendername">Eric Nichols</b> &lt;<a href="mailto:eric-n@is.naist.jp">eric-n@is.naist.jp</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello again,<br><br>Actually, the changes seem to have solved the problem for two out of four cases:<br>-mrs=mrs and -mrs=mrx work fine.&nbsp; However, -mrs=rmrs and -mrs=xml fail to work.<br><br>Turning on debug gives the following output:
<span class="q"><br>61364 types in 3.6 s<br></span>fish fish.<br>(1) `fish fish.' [0] --- 6 (0.00|0.01s) &lt;16:87&gt; (631.3K) [0.0s]<br>derivation[1] (1.165):fish fish.<br>The function MRS::MRS-TO-RMRS is undefined.<br>
0 is an illegal frs index.
<br>....<br>0 is an illegal frs index.<br>zsh: segmentation fault&nbsp; cheap -mrs=rmrs /usr/share/delphin/grammars/erg/english<br><br>rrms/convert.lisp (where mrs-to-rmrs is defined) seems to be being compiled and linked OK.&nbsp; 
<br><br>nm libmrs.a<br>...<br>0000006b t L2mrs_to_rmrs<br>...<br><br>so it seens to be in there,&nbsp; However, when I drop into ecl by killing cheap with ^C, mrs::mrs-to-rmrs is indeed undefined.<br>Console interrupt.<br>Top level.
<br>MT&gt; (mrs::mrs-to-rms)<br>The function MRS::MRS-TO-RMS is undefined.<br>Broken at EVAL.<br>MT&gt;&gt;<br><br>I must admit I am baffled.<br><span class="sg"><br>-- <br>Francis Bond, writing as Eric Nichols

</span></blockquote></div><br><br clear="all"><br>-- <br>--Eric Nichols