In general, we assume that the parse output will be quite distinct from the semantic representation we are ultimately interested in producing, and is more likely to be a linguistically motivated form like a parse tree or a predicate-argument structure.
for example, with the grammar used for the experiments in Section 4 the parse output for go to the next step is [ [ form ( imperative, [ [go, term (pron, you, [ )  We implement hand-coded rules defining patterns which match sub-structures of these parse representations: each such rule has the form pattern((Pattern), (Atom), (Example)).