FOL application expression

81 Views Asked by At

I'm attempting to implement (using NLTK's logic module) the translation of Abstract Meaning Representation (AMR) to First-Order Logic described here (http://www.mitpressjournals.org/doi/pdf/10.1162/COLI_a_00257), but I think there are some gaps in how the paper describes the procedure.

In one of the examples, it shows that when

λp.∃x(person(x)∧named(x,”Mr Krupp”)∧p)

is applied to

∃e(dry(e)∧ARG0(e,x)∧ARG1(e,x))

you get

∃x(person(x)∧named(x,”Mr Krupp”)∧∃e(dry(e)∧ARG0(e,x)∧ARG1(e,x))).

However, when I attempt to do this, I get

∃z1.(person(z1) & named(z1,"Mr_SPACE_Krupp") & ∃e.(dry(e) & ARG0(e,x) & ARG1(e,x)))

and $x$ remains a free variable.

I also tried replacing the second expression with

λx.∃e(dry(e)∧ARG0(e,x)∧ARG1(e,x))

but that does not work (the result is ∃z1(person(z1) & named(z1,"Mr_SPACE_Krupp") & λx.∃e(dry(e) & ARG0(e,x) & ARG1(e,x))).

I'm assuming there's something missing from the second expression to obtain the right result. Is that right? If so, what should that expression be?

Also, I know very little about FOL and if someone has a reference to a good introduction that will help me figure out this sorts of gaps in the paper, that would be greatly appreciated!