[developers] DMRS to MRS conversion

Vineet Chaitanya vc at iiit.ac.in
Tue Nov 17 06:00:46 CET 2015


Dear Michael Wayne Goodman,

              Thank you very much for being so helpful!

Kind regards
Vineet Chaitanya

On Tue, Nov 17, 2015 at 1:51 AM, Michael Wayne Goodman <goodmami at uw.edu>
wrote:

> Hi Vineet,
>
> I'm CCing developers in case they have anything to add. We also like
> to have such technical discussions happen on the list so others can
> benefit.
>
> On Sun, Nov 15, 2015 at 5:01 AM Vineet Chaitanya <vc at iiit.ac.in> wrote:
> >
> > Hello,
> >
> >              We are planning to undertake DMRS to MRS conversion.
> >              I understand at one time you were interested in DMRS to MRS
> conversion.
> >              Would you kindly throw some light on this topic?
>
>
> Sure. I'll assume you're somewhat familiar with the structures
> involved in DMRS (nodes, links) and MRS (Elementary Predications
> (EPs), handle constraints (HCONS), etc.).
>
> Nodes in DMRS are similar to EPs in MRS in that for every node there
> is an EP. Links in DMRS, however, represent information that exists in
> multiple places in the MRS, such as arguments on EPs, LBL values of
> EPs and of TOP (LTOP), and HCONS.
>
> The algorithm I use is roughly the following:
>
> 0. Initialize a new MRS
> 0.a. assign "h0" for the TOP handle
> 0.b. make an EP for every node (and keep a mapping of NODEID to EP)
> 0.b.1. use the same PRED as the node
> 0.b.2. if the node has a "carg" attribute, make a CARG argument with
> the same value
>
> 1. Assign labels to EPs
> 1.a. for every */EQ link in the DMRS from START to END
> 1.a.1. if EPs for START or END have a label assigned, assign it for both
> 1.a.2. otherwise create a new one and assign it for both
> 1.b. for every EP without a label, assign it a new one
>
> 2. Make ARG0s (intrinsic variables) for non-quantifier nodes
> 2.a. use the "cvarsort" property of SORTINFO as the variable sort
> 2.b. all other properties of SORTINFO are the variable properties
> 2.c. if the node is linked by a quantifier node, give the quantifier
> node's EP the same ARG0
>
> 3. Assign EP arguments and connect TOP
> 3.a. if a link from 0 to END has POST H or NIL, make a QEQ from TOP to
> the label of END
> 3.b. for other links that aren't undirected /EQ links:
> 3.c.1. if POST is H:
> 3.c.1.a. arg value is a new hole (handle) variable
> 3.c.1.b. QEQ the hole to the label of the end node
> 3.c.2. if POST is HEQ, arg value is label of end node
> 3.c.3. otherwise arg value is ARG0 of end node
>
> That's about it. Note that some kinds of MRS cannot be represented
> with the current DMRS formalism. For instance, if two non-quantifier
> EPs share an ARG0 in MRS (an unconventional but extant configuration
> in some grammars), this conversion from the quasi-equivalent DMRS will
> give them unique ARG0s. Also, some grammars use ICONS (individual
> constraints), but there is no representation of ICONS in DMRS, so they
> cannot be converted.
>
> Here is a link to my pyDelphin code where I define a DMRS to MRS
> conversion:
>
> https://github.com/delph-in/pydelphin/blob/08e000f4bc55c46b607595aee7e1bcc2d5b658c1/delphin/mrs/xmrs.py#L623
>
> It may be useful for you, but note that I didn't write it with
> human-readability in mind. Also note that Step 0 above is actually one
> of the last steps in my code.
>
> > Regards
> > Vineet Chaitanya
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.delph-in.net/archives/developers/attachments/20151117/690d91e9/attachment.html>


More information about the developers mailing list