<div dir="ltr"><div><div><div>Dear <span name="Michael Wayne Goodman" class="">Michael Wayne Goodman,<br><br></span></div><span name="Michael Wayne Goodman" class="">              Thank you very much for being so helpful!<br><br></span></div><span name="Michael Wayne Goodman" class="">Kind regards<br></span></div><span name="Michael Wayne Goodman" class="">Vineet Chaitanya <br></span></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 17, 2015 at 1:51 AM, Michael Wayne Goodman <span dir="ltr">&lt;<a href="mailto:goodmami@uw.edu" target="_blank">goodmami@uw.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Vineet,<br>
<br>
I&#39;m CCing developers in case they have anything to add. We also like<br>
to have such technical discussions happen on the list so others can<br>
benefit.<br>
<span class=""><br>
On Sun, Nov 15, 2015 at 5:01 AM Vineet Chaitanya &lt;<a href="mailto:vc@iiit.ac.in">vc@iiit.ac.in</a>&gt; wrote:<br>
&gt;<br>
&gt; Hello,<br>
&gt;<br>
&gt;              We are planning to undertake DMRS to MRS conversion.<br>
&gt;              I understand at one time you were interested in DMRS to MRS conversion.<br>
&gt;              Would you kindly throw some light on this topic?<br>
<br>
<br>
</span>Sure. I&#39;ll assume you&#39;re somewhat familiar with the structures<br>
involved in DMRS (nodes, links) and MRS (Elementary Predications<br>
(EPs), handle constraints (HCONS), etc.).<br>
<br>
Nodes in DMRS are similar to EPs in MRS in that for every node there<br>
is an EP. Links in DMRS, however, represent information that exists in<br>
multiple places in the MRS, such as arguments on EPs, LBL values of<br>
EPs and of TOP (LTOP), and HCONS.<br>
<br>
The algorithm I use is roughly the following:<br>
<br>
0. Initialize a new MRS<br>
0.a. assign &quot;h0&quot; for the TOP handle<br>
0.b. make an EP for every node (and keep a mapping of NODEID to EP)<br>
0.b.1. use the same PRED as the node<br>
0.b.2. if the node has a &quot;carg&quot; attribute, make a CARG argument with<br>
the same value<br>
<br>
1. Assign labels to EPs<br>
1.a. for every */EQ link in the DMRS from START to END<br>
1.a.1. if EPs for START or END have a label assigned, assign it for both<br>
1.a.2. otherwise create a new one and assign it for both<br>
1.b. for every EP without a label, assign it a new one<br>
<br>
2. Make ARG0s (intrinsic variables) for non-quantifier nodes<br>
2.a. use the &quot;cvarsort&quot; property of SORTINFO as the variable sort<br>
2.b. all other properties of SORTINFO are the variable properties<br>
2.c. if the node is linked by a quantifier node, give the quantifier<br>
node&#39;s EP the same ARG0<br>
<br>
3. Assign EP arguments and connect TOP<br>
3.a. if a link from 0 to END has POST H or NIL, make a QEQ from TOP to<br>
the label of END<br>
3.b. for other links that aren&#39;t undirected /EQ links:<br>
3.c.1. if POST is H:<br>
3.c.1.a. arg value is a new hole (handle) variable<br>
3.c.1.b. QEQ the hole to the label of the end node<br>
3.c.2. if POST is HEQ, arg value is label of end node<br>
3.c.3. otherwise arg value is ARG0 of end node<br>
<br>
That&#39;s about it. Note that some kinds of MRS cannot be represented<br>
with the current DMRS formalism. For instance, if two non-quantifier<br>
EPs share an ARG0 in MRS (an unconventional but extant configuration<br>
in some grammars), this conversion from the quasi-equivalent DMRS will<br>
give them unique ARG0s. Also, some grammars use ICONS (individual<br>
constraints), but there is no representation of ICONS in DMRS, so they<br>
cannot be converted.<br>
<br>
Here is a link to my pyDelphin code where I define a DMRS to MRS conversion:<br>
<a href="https://github.com/delph-in/pydelphin/blob/08e000f4bc55c46b607595aee7e1bcc2d5b658c1/delphin/mrs/xmrs.py#L623" rel="noreferrer" target="_blank">https://github.com/delph-in/pydelphin/blob/08e000f4bc55c46b607595aee7e1bcc2d5b658c1/delphin/mrs/xmrs.py#L623</a><br>
<br>
It may be useful for you, but note that I didn&#39;t write it with<br>
human-readability in mind. Also note that Step 0 above is actually one<br>
of the last steps in my code.<br>
<br>
&gt; Regards<br>
&gt; Vineet Chaitanya<br>
</blockquote></div><br></div>