amrisi / amr-guidelines

240 stars 86 forks source link

Clarify discussion of root/focus? #274

Closed nschneid closed 1 week ago

nschneid commented 2 weeks ago

In the literature there has been some confusion about whether changing the focus (root node) is meaning-preserving (e.g. [1], [2]). Our intention was that sentence focus IS meaningful, hence the section on focus. But other parts of the guidelines may be misleading. E.g.:

This AMR can also be viewed as conjunction of logical triples, omitting root information:

Perhaps this example should be augmented with the root, rather than suggesting that the root may be omitted.

flipz357 commented 1 week ago

This is interesting. I think there are three options for this, that can have different implications. Consider the AMR

# "A car."
(c / car)
  1. Triples without root:
[('c', ':instance', 'car')]
  1. Triples with "anonymous" root:
[('root', ':root', 'c'), ('c', ':instance', 'car')]
  1. Triples with concept label as root (root as an "attribute")
[('c', ':root', 'car'), ('c', ':instance', 'car')]

(you might also here replace ":root" with ":top" for convenience, it wouldn't change the semantics)

Personally, and after some communication with Johannes and Michael in the context of a related issue, I think the third option may be preferable. The main reason for this is that it seems to aligns best with what is mentioned in the guidelines:

The concept of focus only applies at the very top (root) of the AMR. After a root concept is selected, there are no more focus considerations

To me, this sentence suggests that a) there is a root (that is, option 2 and 3 win over 1) and b) the root should be the concept and not be anonymous (option 3 wins over 2).

The second option, as opposed to option 1. and 3. can also lead to some funny quirks. E.g., when using snowblink's smatch to compare graphs, the graphs (c / car) and (h / have-mod-91) get a score of 0.5, since the anonymous root will be matched (it assumes option 2). However, the two graphs don't have the same focus, so a score of 0.0 might make more sense. I think this is why your linked paper [2] (thanks for linking, this is interesting) doesn't explicate a root (using option 1). For the similar reason, flipz's smatchpp uses option 3, which also gives a score of 0.0.

But other than that I think the status of the root can depend on the application. E.g., I think from some point of view it can be accepted that changing the root yields a (near-)paraphrase. This is why [1] seems a sound way of generating paraphrases, I think they want the same meaning, just with a slightly different structure/focus. For this, changing the root seems ideal.

To finally circle back to your suggestion

Perhaps this example should be augmented with the root,

I would be in favor for this (and suggest using a root in the fashion of option 3).

flipz357 commented 1 week ago

To make a concrete suggestion that uses a conservative change while having (hopefully) less ambiguity, how about writing in the corresponding place:

(...)

This AMR can also be viewed as conjunction of logical triples:

instance(w, want-01) ^         /* w is an instance of wanting */
instance(b, boy) ^             /* b is an instance of boy */
instance(b2, believe-01) ^     /* b2 is an instance of believing */
instance(g, girl) ^            /* g is an instance of girl */
ARG0(w, b) ^                   /* b is the wanter in w */
ARG1(w, b2) ^                  /* b2 is the wantee in w */
ARG0(b2, g) ^                  /* g is the believer in b2 */
ARG1(b2, b)                    /* b is the believee in b2 */

Note that the above conjunction omits the root and focus information. Therefore, we might want to add a triple root(w, want-01) as to indicate that w denotes the root, and want-01 the focus of the AMR.

(...)

nschneid commented 1 week ago

Implemented a variant of that. Thanks!

flipz357 commented 1 week ago

Not sure if I'm being too picky here (sorry...), but it occurs to me that root(w) is not really a "triple" in the most strict sense of the word (tri = three parts). Instead root(∅, w) might do the trick and express the same thing that I figure you intended to express. Though this might also be already totally obvious to all.

flipz357 commented 1 week ago

Just seeing that I failed to properly read what you wrote: "triples along with root information". This is well worded, and makes my above comment unecessary!