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!