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> file named
convert.lisp in the ppcre directory. ECL compiles both of these into object files<br> named convert.o. Both object files are them compiled into libmrs.a. This has the effect that<br> one of them becomes inaccessable. The fix for this problem is to rename rmrs/convert.lisp
<br> 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> When running cheap with -mrs=xml, ECL complains about not being able to find the variable
<br> 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) <16:84> (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 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> (if *rel-handel-path*<br> (progn<br> (initialize-rmrs-variables-plus)<br> (let ((lzt (psoa-liszt mrs))<br> (new-lzt nil)<br> (new-args nil)<br> (label-recs nil)
<br> (ings nil)<br> <span style="color: rgb(255, 0, 0);">;;(tchart-edges (lkb::get-edges lkb::*tchart*)) ;; [bmw] see below</span><br> )<br> (dolist (rel lzt)<br> (multiple-value-bind (ep rmrs-args new-label-recs)
<br> (parsonify-rel rel label-recs)<br> (push ep new-lzt)<br> (setf new-args (append new-args rmrs-args))<br> (setf label-recs new-label-recs)))<br> (setf ings (construct-converted-in-groups label-recs))
<br> (make-rmrs :top-h (psoa-top-h mrs)<br> :h-cons (construct-converted-hcons <br> (psoa-h-cons mrs) ings)<br> :liszt (nreverse new-lzt)
<br> :in-groups ings<br> :rmrs-args new-args<br> ;; [bmw] hack to obtain standoff points<br> ;; (which are NOT provided by the input mrs...)
<br><span style="color: rgb(255, 0, 0);"> ;;:cfrom (lkb::get-min-edge-cfrom tchart-edges)</span><br style="color: rgb(255, 0, 0);"><span style="color: rgb(255, 0, 0);"> ;;:cto (lkb::get-max-edge-cto tchart-edges)
</span><br> :origin :erg)))))<br><br>#|<br>bindings aren't set, since the assumption is that all variable<br>equalities are known. 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> <<a href="mailto:eric-n@is.naist.jp">eric-n@is.naist.jp</a>> 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. 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) <16:87> (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 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.
<br><br>nm libmrs.a<br>...<br>0000006b t L2mrs_to_rmrs<br>...<br><br>so it seens to be in there, 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> (mrs::mrs-to-rms)<br>The function MRS::MRS-TO-RMS is undefined.<br>Broken at EVAL.<br>MT>><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