Semantic grammar: an engineering technique for constructing natural language understanding systems