Answer Set Programming, Bi-directional Grammars, Controlled Natural Languages, executable specifications, sentence planning.