On a high level, I think a deterministic logical form is probably better than natural language for both simple generation and simple parsing?
E.g. "left(agent, apple)" means apple is on the left of the agent. "green(apple)" means apple is green. "and(left(agent, apple), green(apple))" means a green apple is on the agent's left.
I guess we can always define the parsing rule to parse this kind of grammar if we need. But I don't feel it can make things much easier.
I guess we can always define the parsing rule to parse this kind of grammar if we need. But I don't feel it can make things much easier.