Beliefs and Facts

Initial Belief

A belief is a first-order predicate statement about the world. Beliefs are always local to an agent or object, i.e. only the agent/object can access its beliefs, no other agent/object can. This allows us to represent how a specific agent 'views' the state of the world. For objects beliefs represent information stored in/on the object. Agents act based on their beliefs. Beliefs are the 'triggers' of agent's actions.

Initial beliefs define the initial state for an agent and define the initial information for objects. Initial beliefs are turned into actual beliefs for the agent when the model is initialized for a simulation run. Beliefs can also be created by consequences in work- and thoughtframes, by detectables as well as through communications.

Syntax

initial-belief::=( [ value-expression | relational-expression] )
value-expression::=obj-attr equality-operator value |
obj-attr equality-operator sgl-object-ref
equality-operator::== | !=
evaluation-operator::=equality-operator | > | >= | < | <=
obj-attr::=tuple-object-ref . ATT.attribute-name
{ ( collection-index ) }
tuple-object-ref::=AGT.agent-name |
OBJ.object-name |
COB.conceptual-object-name |
ARE.area-name |
VAR.variable-name |
PAC.param-name |
current
collection-index::=ID.literal-string |
ID.unsigned |
VAR.variable-name |
PAC.param-name
sgl-object-ref::=AGT.agent-name |
OBJ.object-name |
COB.conceptual-object-name |
ARE.area-name |
VAR.variable-name |
PAC.param-name |
unknown
current
value::=ID.literal-string | ID.number | PAC.param-name | unknown
relational-expression::=tuple-object-ref REL.relation-name sgl-object-ref { is ID.truth-value }

Semantics

Example

(Alex_Account.balance = 20.00);

Constraints

  1. Variables and parameters are not allowed in the definition of an initial belief.
  2. The attribute type and the right hand side value-type of a value-expression must be the same, except in the case the attribute type is a collection type.
  3. The left hand side and right hand side types in a relational expression must match the types as defined for the relation used in the relational expression.

Initial Fact

Facts represent the state of the world. A fact is a first-order predicate statement about the world. Facts are in contrast to beliefs, global. Any agent can detect a fact in the world and turn it into a belief and act on it. Objects on the other hand, react to facts (in workframes).

Initial facts define the initial state of the world. Initial facts are turned into actual facts in the world when the model is initialized for a simulation run. Facts can also be created by consequences in workframes (not in thoughtframes).

Syntax

initial-fact::=( [ BEL.value-expression | BEL.relational-expression] )

Semantics

  1. Variables and parameters are not allowed in the definition of an initial fact.
  2. The attribute type and the right hand side value-type of a value-expression must be the same, except in the case the attribute type is a collection type.
  3. The left hand side and right hand side types in a relational expression must match the types as defined for the relation used in the relational expression.