I have a minor grammatical correction for (is $). Currently if the head of a list is uncountable it produces sentences like “In the bottle are some water and some wine”. There ought to be a rule
(is [(uncountable $Head) | $]) (is $Head)
Also, I would like to second all the positive comments which have been made about the design of Dialog. Marrying inform and prolog was an inspired decision.