I am exploring the idea of "Cognitive Adequacy" -- the thesis that there is a core set of metareasoning principles that makes intelligent behavior possible. In the last few years my group has begun to study this in the context of natural language dialogue; we refer to the underlying ability we are aiming at in that context, as "Conversational Adequacy".
Below are two sample dialogues. The first does not show Conversational Adequacy; the second does. Yet the first was a prize-winner at a recent Turing-Test contest! The second does not yet exist -- no one knows how to build such a program; but we are trying! Our current work involves substantial programming, mostly in Prolog, but also Java and Common Lisp.
The idea in the following dialogues is that a human (you) are talking with a computer (other). The first dialogue is a real one between a real human and a real program; but the program lacks an important ingredient: the ability to reason about the dialogue itself, hence it gets off track. The second dialogue has never happened, it is our long-range goal, ie, to design a program that can converse in the indicated way. Note that altho it does not know very much, it learns as it goes, and can attend pretty well to the course of the dialogue.
We can use lots of help in (i) the design, (ii) the coding, and (iii) the testing of our ongoing system. Although we are still far from the behavior in the second dialogue, we are making step-by-step progress, and have a variety of near-term goals to be worked on.