"Interpretation as Abduction" is one of the more infuential computational semantics papers from its era (and really, ever).
The basic claim is that through (weighted) abduction, one can explain a whole host of complex linguistic phenomena:
- Reference resolution ("John_1 saw himself_1 in the mirror" -- where "John" and "himself" co-refer)
- Interpretation of compound nominals ("computer science" versus "cs department")
- Syntactic ambiguity (eg., PP attachment)
- Metonymy ("The White House announced that..." really means that someone in the White House announced something)
- Etc....
In modern terms, if you're familiar with probabilistic modeling, interpretation as abduction can be through of as computing most probable explanations in graphical models / databases. (If that means nothing to you, that's fine, too.)
Abduction is the type of inference we try to do in science. We observe something, and we try to posit what caused this to happen. For instance, we may observe that apples fall from trees. We can posit this is due to gravity. Or we can posit that this is due to little elves that hang out in apples and little pots of gold in the earth and the elves are trying to get to the pots of gold. One of these is a more plausible explanation than the other, since it requires us to invent fewer things. (Though as far as I know, no one really knows how gravity works... so maybe it's a bad example... maybe it is elves/gold.) This is often referred to as Occam's Razor: of all explanations, choose the "simplest."
The key idea to use abduction to do sentence interpretation is:
- Prove the logical form of the sentence
- together with the constraints that predicates impose on their arguments (eg., the subject of "run" must be animate)
- allowing for coercions (eg., we might coerce someone who works at the White House into the White House)
- Merging redundancies where possible
- Making assumptions where necessary
The last point in the key point: anything we have to assume in order to prove the sentence is the new information conveyed in the sentence.
In
weighted abduction, we assume that there is a cost for coercions and making assumptions, and that we want to find the set of things we can assume that have the least possible cost.
The idea is that our database might contain entries like:
We will add weights to these to get something like:
- If P / w1 and Q / w2 then R
The semantics is that if it costs $c to
assume R, then it costs $w1*c to assume P and $w2*c to assume Q.
If we have redundancy... eg., something like "blah blah q(x) and q(y) blah blah" and at some point we derive x=y, then we can merge this to just "blah blah q(x) blah blah" and the
cost of q(x) is the minimum of the costs of q(x) and q(y).
For example, we might have:
- (forall x) car(x) / 0.8 AND notop(x) / 0.4 IMPLIES convertible(x)
The weights here say that if we know something is a car, it costs less to assume it's a convertible than it would if we had only known it had no top.
One kind of cool outcome of this is that you can make "reverse" inferences fairly easily. For instance, maybe I want to be able to assume that sometimes when people talk about animals, they're actually talking about cats. But they're being vague. I can just add a rule:
- (forall x) animal(x) AND etc(x) IMPLIES cat(x)
Here, we're saying that if you're an animal, and if certain other unspecified things ("etc") happen, then you're a cat. Without the etc(), this is obviously false. But with the etc(), we can just add weights and allow ourselves to interpret sentences like "I sensed an animal in the shadows. It meowed.", whereI need to coerce an animal into a cat.
It turns out (see section 6 in the paper) that you can actually handle
all of syntax, semantics and pragmatics in this single framework!