An intention to disambiguate a reference causes the Reference Disambiguator to identify the object that the reference refers to. Reference resolution is carried out in 3 ways : introspection, interaction with task-oriented system and communicating with the user. The Disambiguator first introspects to find the referent by checking whether the required information can be derived from the current KB. If introspection does not resolve the referent, then the agent tries to disambiguate by creating a desire to communicate with the user or TOS. Once the referent is determined, it is represented in the KB.
For instance, to disambiguate the reference ``the bedroom light'', the agent would first introspect to see whether it can determine the referent. If that process fails to identify the referent , then it will check whether it can find the referent from the task-oriented system (say, by asking ``Which is the light in the bedroom?'', if it already knows that the expression ``the bedroom light'' refers to the light in the bedroom). If both introspection and interaction with the task-oriented system fail to provide a referent, then the Disambiguator would create a desire to ask the user.