amrisi / amr-guidelines

250 stars 87 forks source link

Quantification summary #149

Open timjogorman opened 9 years ago

timjogorman commented 9 years ago

Hi all!
Here's a very belated review of my notes from the quantification discussions in the AMR/CCG workshop, as promised; anyone else who was there, please correct or elaborate upon anything here.

Monotonoticity

Lauri Kartunnen started with an emphasis on our current inability to do reasoning about monotonicity: knowing when additional specification can be added to a proposition without changing its meaning. This would be important for inference: "I have a corgy puppy" also entails "I have a puppy" and "I have a dog" but not "I have a black corgy puppy" (you can remove assumptions but not add them); but from "I don't have a puppy", downwardly entails "I don't have a corgy puppy" but not "I don't have a dog". (This is all usually captured through the interaction between polarity cues and syntax, usually, which we naturally can't do.) So that's a possible thing to aim for.

Quantifiers

The other initial discussion starting us off was that of quantification. We ended up talking about two examples: Our treatment of something like "All countries except Cuba", Lauri pointed out, is problematic for these monotonicity goals he was talking about, as you need "except" to interact with "all" in a way that gets you the necessary set (there was disagreement on what to actually do with it). We also treated the example "Not every one has had a friend" from the Little Prince, which was a bit scary (our treatment of "not everyone" being quite simplistic): there seemed to be a general consensus that we could handle quantification with AMR frames like 'every' or 'all' having roles like "arg1 restrictor" and "arg2 scope". Steedman suggested, specifically, that something like "not every" should have it's own frame, as in:

"Not every one has had a friend"

n/ not-every-91
    :arg1 p/ person
    :arg2 h/ have-rel-role-91
        :arg0 p
        :arg2 f/ friend

Restriction, Scope

However, all of this discussion circled slowly into the question of how one is going to refer to whole sets, whole referents and whole propositions -- "not every" doesn't refer to "having a relational role" but to the whole cluster of "having a friendship relational role to p". Bonnie and Mark Steedman suggested later that we should have variables that can refer to clusters of nodes in the AMR -- i.e. that you might have some variable that encompasses many nodes, and then have polarity,quantification, etc. refer to those complex variables (I think roughly like discourse referents in DRT?). Mark Johnson suggested we might be able to do restricution more locally with the trick from MRS of relating roles using something like the 'handles' in HPSG, thinking of it as essentially building a tree from the AMR edge triples where each edge governs their children in the tree.

Mark Johnson also emailed Nathan a simple suggestion for making this predicating vs restriction distinction, suggesting that we just have an AMR frame for it as in the examples below (I doubt we want to do this, but it's a starting point for the "how do you distinguish predictation/restriction")

The tall student is smart

> (p / pred
>      :ARG0 (s / student
>               :ARG0-of tall)
>      :ARG1 (s1 :ARG0-of smart))
>

The smart student is tall

> (p / pred
>      :ARG0 (s / student
>             :ARG0-of smart)
>      :ARG1 (s1 :ARG1-of tall))
>

Annotation

From there we got into the secondary discussion of how to actually handle this as an annotation task. We didn't cover concrete ideas that much. Steedman felt it would be very hard to get annotators to mark restrictor/scope consistently (and Mark Johnson suggested that marking restriction on every single AMR relation would probably be overkill). Lauri also noted that monotonicity doesn't just have local effects, and someone mentioned a worry about what it would mean for AMR to be representing these very non-local patterns directly in an AMR (i.e. you can't memorize the subgraph of a particular string if you need to figure out non-local things like logical polarity or directions of entailment).

Other Observations made:

jflanigan commented 9 years ago

I had a proposal (which I may not have articulated very well in the meeting) to add a scope and restrictor for quantifiers, but to analyze not-every-91 further than Mark Steedman was suggesting. In the example:

Not every one has had a friend

you get the correct entailments if you use the AMR

e / every
    :arg1 p/ person
    :arg2 h/ have-rel-role-91
        :arg0 p
        :arg2 f/ friend
    :polarity -

arg1 marks the restrictor, arg2 marks the scope for every. every is downward monotonic in the restrictor and upward monotonic in the scope, and the polarity flips this.

So the following are valid entailed sentences using the above AMR and monotonicity properties of every:

Not every teacher has had a friend.
Not every young person has had a close friend.

We could do a corpus analysis of the quantifiers we want to handle, figure out their monotonicity properties, and then write up some guidelines for handling quantifiers so that the correct entailments can be made from the AMRs. At that point, if the guidelines seem too complex for annotators, we could simplify them as needed.

I would be willing help out with the corpus study/guidelines if we want to pursue this further.

jflanigan commented 9 years ago

For the examples that Mark gave, the "the" determiner presupposes existence and uniqueness of "tall student" and "smart student", in each example respectively, whereas "a" would only assert existence and say nothing about uniqueness. These determiners could be handled as existential quantifiers but with extra marking to handle the definiteness if we wanted to do that. Here are some options for the AMR annotation, with and without marking of definiteness.

Explicit existential quantifier, mark definiteness

If we wanted to mark the definiteness in the AMR along with the existential quantifier, we could do something like:

The tall student is smart.

(e / exist-01
      :ARG1 (s / student
               :mod (t / tall)
               :definite +)
      :ARG2 (s2 / smart
               :domain s))

The smart student is tall.

(e / exist-01
      :ARG1 (s / student
               :mod (s2 / smart)
               :definite +)
      :ARG2 (t / tall
               :domain s))

ARG1 marks the restrictor of the quantifier, ARG2 marks the scope, and exist-01 is upward monotonic in both, so assuming the uniqueness indicated by the definiteness still holds when dropping the modifiers (this depends on the situation, the discourse, and the polarity of the definiteness), we would get the correct entailments:

The smart student is tall => The student is tall. The tall student is smart => The student is smart.

Explicit existential quantifier, no marking of definiteness

If we didn't want to handle definiteness, then these sentences would be equivalent to "A tall student is smart" and "A smart student is tall". Not representing definiteness in the AMR, we could do:

The tall student is smart. A tall student is smart.

(e / exist-01
      :ARG1 (s / student
               :mod (t / tall))
      :ARG2 (s2 / smart
               :domain s))

The smart student is tall. A smart student is tall.

(e / exist-01
      :ARG1 (s / student
               :mod (s2 / smart))
      :ARG2 (t / tall
               :domain s))

which would give us the correct entailments:

The smart student is tall / A smart student is tall => The student is tall / A student is tall. The tall student is smart / A tall student is smart => The student is smart / A student is smart.

Implicit existential quantifiers, no marking of definiteness

It may be too much to annotate existential quantifiers everywhere in AMR. We could assume that everything that is not quantified in AMR is existentially quantified, which would work out great for entailments because existential quantifier is upward monotonic in both restrictor and scope.

Assuming implicit existential quantifiers and not marking definiteness, we could do:

The tall student is smart. A tall student is smart.

(s / smart
      :domain (s2 / student
               :mod (t / tall)))

The smart student is tall. A smart student is tall.

(t / tall
      :domain (s / student
               :mod (s2 / smart)))

Implicit existential quantifiers, mark definiteness

If we assume implicit existential quantifiers and mark definiteness, we could do:

The tall student is smart.

(s / smart
      :domain (s2 / student
               :mod (t / tall)
               :definite +))

The smart student is tall.

(t / tall
      :domain (s / student
               :mod (s2 / smart)
               :definite +))

and similarly for "A tall student is smart" and "A smart student is tall", but with :definite -. This representation seems good, since the following sentences would all have the same AMR:

The smart student who is tall said something. The tall, smart student said something. The tall student who is smart said something.

(s / say-01
      :ARG0 (s2 / student
               :mod (s1 / smart)
               :mod (t / tall)
               :definite +)
      :ARG1 (s3 / something))

Conclusion If we just care about quantifiers, I would do implicit existential quantifiers and no marking of definiteness. This would mean no changes to the existing annotation in the specific examples Mark gave. If we want to mark definiteness, we could, but we might have reasons not to. If we're planning on doing document level coreference and entity linking anyway it might be unnecessary to also mark definiteness, unless we thought it would help with the coreference and/or entity linking. Also, we might not want to mark definiteness for cross-linguistic reasons as well, since not all languages grammaticalize definiteness.