  While we do not always use words, communicating what we want to an AI is a
conversation -- with ourselves as well as with it, a recurring loop with
optional steps depending on the complexity of the situation and our request.
Any given conversation of this type may include: (a) the human forming an
intent, (b) the human expressing that intent as a command or utterance, (c) the
AI performing one or more rounds of inference on that command to resolve
ambiguities and/or requesting clarifications from the human, (d) the AI showing
the inferred meaning of the command and/or its execution on current and future
situations or data, (e) the human hopefully correctly recognizing whether the
AI's interpretation actually aligns with their intent. In the process, they may
(f) update their model of the AI's capabilities and characteristics, (g) update
their model of the situations in which the AI is executing its interpretation
of their intent, (h) confirm or refine their intent, and (i) revise their
expression of their intent to the AI, where the loop repeats until the human is
satisfied. With these critical cognitive and computational steps within this
back-and-forth laid out as a framework, it is easier to anticipate where
communication can fail, and design algorithms and interfaces that ameliorate
those failure points.
