title: nltk semantic parsing with coordination
body: <p>I'm trying to build a semantic parser using python's NLTK library and following Neo-Davidsonian event representation.  I've built up my grammar to include semantic features that parse correctly but I'm struggling with coordinated constituents.  For example, my grammar has:</p>
  
  <pre><code>PropN[SEM=&lt;\P.P(Mary)&gt;] -&gt; 'Mary'
  PropN[SEM=&lt;\P.P(John)&gt;] -&gt; 'John'
  
  IV[SEM=&lt;\x.exists e.(drinks(e) &amp; drinker(e, x))&gt;] -&gt; 'drinks'
  
  NP[SEM=?np] -&gt; PropN[SEM=?np]
  VP[SEM=?v] -&gt; IV[SEM=?v]
  S[SEM=&lt;?subj(?vp)&gt;] -&gt; NP[SEM=?subj] VP[SEM=?vp]
  </code></pre>
  
  <p>So if the sentences is "John drinks" the result is: </p>
  
  <pre><code>exists e.(drinks(e) &amp; drinker(e,John)).
  </code></pre>
  
  <p>But if I add a rule such as: </p>
  
  <pre><code>NP[SEM=&lt;?p | ?q&gt;] -&gt; PropN[SEM=?p] CONJ PropN[SEM=?q]
  </code></pre>
  
  <p>as in "John or Mary", I end up getting this: </p>
  
  <pre><code>(\P.P(John) | \P.P(Mary))(\x.exists e.(drinks(e) &amp; drinker(e,x)))  
  </code></pre>
  
  <p>As in, the NP lambdas are not being passed into the argument for the verb.  I tried looking around but there's very little info on coordination in nltk semantic parsing, and even less on using it with lambdas.  I know it's possible, because a classmate apparently got his to work but I'm not sure what the trick is.</p>