API¶
Agent¶
- Agent(config, id, beliefs, desires, plans, determinePreferences, selfUpdatesPossible, reviseBeliefs, reviseGoals)¶
JS-son agent generation function. Note that an agent can be instantiated using either a configuration object or a series of parameters
- Arguments:
config (object) – agent configuration object
config.id (string) – unique identifier for the agent
config.beliefs (object) – initial beliefs of the agent
config.desires (object) – the agent’s desires; default: empty array (no desire deliberation)
config.plans (array) – the agent’s plans
config.determinePreferences (function) – preference function generator; by default (if no function is provided), the preference function turns all desires into intentions
config.selfUpdatesPossible (boolean) – If true, agents can update their own belief, plans et cetera via a body of their plans. Defaults to
true.config.reviseBeliefs (function) – belief revision function that takes the agent’s currently held beliefs as well as the “new” beliefs obtained from the environment and revises the agent’s beliefs based on this. Defaults to:
(oldBeliefs, newBeliefs) =>({ ...oldBeliefs, ...newBeliefs })config.reviseGoals (function) – goal revision function that takes the agent’s beliefs and goals and then updates the goals. Defaults to:
(beliefs, goals) => goalsORid (string) – unique identifier for the agent
beliefs (object) – initial beliefs of the agent
desires (array) – the agent’s desires
plans (array) – the agent’s plans
determinePreferences (function) – preference function generator; by default (if no function is provided), the preference function turns all desires into intentions
selfUpdatesPossible (boolean) – If true, agents can update their own belief, plans et cetera via a body of their plans. Defaults to
true.reviseBeliefs (function) – belief revision function that takes the agent’s currently held beliefs as well as the “new” beliefs obtained from the environment and revises the agent’s beliefs based on this. Defaults to:
(oldBeliefs, newBeliefs) =>({ ...oldBeliefs, ...newBeliefs })reviseGoals (function) – goal revision function that takes the agent’s beliefs and goals and then updates the goals. Defaults to:
(beliefs, goals) => goals
- Returns:
object – JS-son agent object
- RemoteAgent(id, beliefs, next)¶
JS-son remote agent generation function. The remote agent is an environment’s interface to a JS-son agent that runs in a different context, for example on a client that accesses a server-side environment
- Arguments:
id (string) – unique identifier for the (remote) agent
beliefs (object) – initial beliefs of the agent
next (function) – function that implements and interface to the remote implementation
- Returns:
object – JS-son remote agent object
- Belief(id, value, priority, updatePriority=false)¶
JS-son agent belief generator
- Arguments:
id (string) – the belief’s unique identifier
value (any) – the belief’s value
priority (number) – the belief’s priority in case of belief revision; optional
updatePriority (boolean) – whether in case of a belief update, the priority of the defeating belief should be adopted; optional, defaults to true
- Returns:
object – JS-son agent belief
- Desire(id, body)¶
JS-son agent desire generator
- Arguments:
id (string) – the desire’s unique identifier
body (function) – a function for computing the desires value based on current beliefs
- Returns:
object – JS-son agent desire
- Intentions(beliefs, desires, preferenceFunctionGenerator)¶
JS-son agent intentions generator
- Arguments:
beliefs (object) – the agent’s current beliefs
desires (object) – the agent’s desires (from which the intentions are filtered)
preferenceFunctionGenerator (function)
- Returns:
array – JS-son agent intentions
- Plan(head, body)¶
JS-son plan generator
- Arguments:
head (function) – Determines if plan is active; can be a function or a JS-son goal
body (function) – Determines what actions to execute
- Returns:
object – JS-plan
Built-In Belief Revision Functions¶
- reviseSimpleNonmonotonic(oldBeliefs, newBeliefs)¶
Revises beliefs by merging old and new beliefs such that a new belief overwrites an old one in case of conflict.
- Arguments:
oldBeliefs (object) – Old belief base (JSON object of beliefs)
newBeliefs (object) – New belief base (JSON object of beliefs)
- Returns:
Revised belief base (JSON object of beliefs)
- reviseMonotonic(oldBeliefs, newBeliefs)¶
Revises beliefs by merging old and new beliefs such that an old belief overrides a new one in case of conflict.
- Arguments:
oldBeliefs (object) – Old belief base (JSON object of beliefs)
newBeliefs (object) – New belief base (JSON object of beliefs)
- Returns:
Revised belief base (JSON object of beliefs)
- revisePriority(oldBeliefs, newBeliefs)¶
Revises beliefs by merging old and new beliefs such that an old belief overrides a new one in case of conflict.
- Arguments:
oldBeliefs (object) – Old belief base (JSON object of beliefs)
newBeliefs (object) – New belief base (JSON object of beliefs)
- Returns:
Revised belief base (JSON object of beliefs)
Environment¶
- Environment(agents, state, update, render, stateFilter, runner)¶
JS-son environment generator
- Arguments:
agents (array) – JS-son agents to run
state (object) – Initial environment state
update (function) – Update function, in particular for processing agent actions
render (function) – Visualization function of the environment’s current state
stateFilter (function) – Function for filtering state that agents should receive
runner (function) – Function that manages the next “tick”
- Returns:
object – JS-son environment object
Grid World¶
- GridWorld(agents, state, fieldTypes, stateFilter)¶
JS-son grid world environment
- Arguments:
agents (array) – JS-son agents to run
state (object) – Initial environment state
fieldTypes (object) – Object: all field types (id: {…properties}) the environment supports
stateFilter (function) – Function for filtering state that agents should receive
- Returns:
object – JS-son environment object with grid world render function
- FieldType(id, generateClass, generateCharRep, generateConsequence, generateAnnotation)¶
JS-son world field type generator
- Arguments:
id (string) – Unique identifier of field type
generateClass (function) – Determines field’s table cell class based on state, position
generateCharRep (function) – Determines field’s cli representation, based on state, position
generateConsequence (function) – Determines effect of action in field to agent and env
generateAnnotation (function) – Determines field’s annotation, based on state, position
- Returns:
object – JS-son grid world field type