Interpreting natural language is such a complex task that writing a perfect set of rules would be extremely challenging.
a more ideal solution would be a learning-based method that can exploit ideas from compositional semantics while providing the flexibility to the rigid application of the heuristic rules.