Inference Operators

Inference operators provide a mechanism to infer new knowledge from existing knowledge. By using this operators, its possible to write even more general goals that can be triggered by more than one condition or event. Moreover, the goal’s success conditions can be written so that there are several situations that can achieve it. For instance, instead of writing a goal of coping (ex: fight back) for each possible situation that may trigger it, one can write a goal triggered by a property that is inferred from several possible situations. As example consider the following operators:

<!– I need to cope if someone deceives me –>

<Action name=”InferenceNeedToCope1([target])”>

<PreConditions>

<Property name=”SpeechContext()” operator=”=”

value=”#EVENT([any],SpeechAct,[target],deceptionreveal)” />

</PreConditions>

<Effects>

<Effect probability=”1.0″>

<Property name=”[target](needToCope)” operator=”=” value=”True” />

</Effect>

</Effects>

</Action>

<!– I need to cope if someone tries to sabotage a party invitation for me –>

<Action name=”InferenceNeedToCope2([target])”>

<PreConditions>

<Property name=”SpeechContext()” operator=”=”

value=”#EVENT([any],SpeechAct,[any2],

sabotagepartyinvitation,[target])” />

</PreConditions>

<Effects>

<Effect probability=”1.0″>

<Property name=”[target](needToCope)” operator=”=” value=”True” />

</Effect>

</Effects>

</Action>

 

These two inference operators assert the property “[target](needToCope)” when someone sabotages the party invitation for [target] or when the [target] is deceived. This property can then be used as goal’s precondition to activate coping strategies. A similar mechanism can be used to provide two or more alternative ways of achieving a given goal by using this kind of properties as success conditions. Since the planner can also deal with this type of operators, it can detect that he can choose these operators to achieve the goal.

Inference operators are defined and used by the planner exactly in the same way as ordinary actions. In order to differentiate inference operators from standard actions, the operator’s name must start with “Inference”.

Whenever the preconditions of an Inference Operator are verified, its effects are added to the KnowledgeBase. And since they only add new knowledge to the KnowledgeBase, inference operators can only define equal “=” property conditions as effects.

Although the definition of new actions poses additional considerations in the virtual environment and corresponding graphic visualization system, defining new inference operators do not imply any changes, because it only adds new internal knowledge to the agents’ minds that is not even visible in the virtual world. Therefore, authors are free to create and add new inference operators if they think it are necessary.