Jam agents in a Nutshell Version 65 76i 1



Download 391.89 Kb.
Page14/15
Date09.06.2017
Size391.89 Kb.
#20093
1   ...   7   8   9   10   11   12   13   14   15

precond.jam


This file tests the precondition and effects sections of plans and highlights the functional difference between the precondition and context fields.

lisplist.jam


This file tests and demonstrates the string and token-handling primitive actions suggested and originally implemented by Chip McVey at the Johns Hopkins University Applied Physics Lab (JHU-APL).

succeedfail.jam


This file is anachronistic and effectively only tests and and or branch constructs. The comments indicate a point in development when these constructs exhibited non-deterministic behavior.

goalsemantics.jam


This file demonstrates the difference between achieve and perform plans and goals. Notice the difference in behavior when achieve and perform are switched in the subgoaling actions and the plan’s goal specification. There is also two assert actions in the subgoal that can be uncommented to modify the agent’s behavior. These actions perform “opportunistic accomplishment” of the respective goals when the parent or subgoal are invoked as achievement goals.

maintain.jam


This file tests and demonstrates maintain goals.

post.jam


This file tests the post and unpost actions.

doallany2.jam


This file tests the do_all and do_any constructs in conjunction with other JAM constructs.

threads2.jam


This file tests subgoaling from within a parallel construct. Note that the subgoaling works because subgoal2 is achieved in the second branch before the first branch tries to subgoal to subgoal1. Simultaneous parallel subgoaling is not currently supported and will result in one branch of the parallel construct never completing.

wait.jam


This file tests the two forms of the wait construct.

conclude.jam


This file test plans with conclude specifications (i.e., data-driven) intermixed with standard goal-driven behavior (both achieve and maintain). Note that the goals, plans, and facts are mixed throughout the file. There is nothing new with this, but the previous files do not demonstrate this “feature”.

The overall behavior of this example is that the agent will start working on the top-level goal and then notice every 125 cycles that the conclude specification is met and will exhibit some data-driven behavior. The goal-driven plan will be suspended temporarily because the utility of the data-driven plan is higher than the goal-driven one. The maintain goal state will be undone four times before the agent removes that goal and exits.


metalevel.jam


This file tests and demonstrates handling of arbitrary Java objects and metalevel reasoning behavior and primitive actions.

parse-string.jam


This file tests and demonstrates runtime, dynamic parsing of information into the agent’s World Model and Goal List.

sockets-client.jam

sockets-client2.jam


This file tests and demonstrates use of the socket-based communication primitives. Each of these files are used in conjunction with the corresponding sockets-server file below (i.e., sockets-client.jam with sockets-server.jam, and sockets-client2.jam with sockets-server2.jam). As indicated by the names, these files are used by a JAM agent connecting as a client to another agent.

sockets-server.jam

sockets-server2.jam


This file tests and demonstrates use of the socket-based communication primitives. Each of these files are used in conjunction with the corresponding sockets-server file above (i.e., sockets-client.jam with sockets-server.jam, and sockets-client2.jam with sockets-server2.jam). As indicated by the names, these files are used by a JAM agent acting as a server for connecting to another agent.
  1. JAM BNF Grammar


The JAM agent grammar starts with the "ParseJamAgentDefinition" symbol.

NON-TERMINALS

ParseJamAgentDefinition

::=

agent_components

agent_components

::=

( ( goal )* | ( fact )* |
( plan )* | ( "{" plan_body_elements "}" )* )+

goal

::=

goal_action ";"

fact

::=

explist ";"

plan

::=

"{" plan_components "}"

plan_components

::=

plan_component ( plan_component )*

plan_component

::=

plan_name




|

plan_doc




|

plan_goalspec




|

plan_concludespec




|

plan_context




|

plan_precondition




|

plan_utility




|

plan_effects




|

plan_failure




|

plan_attributes




|

plan_body

plan_name

::=

( )?



plan_doc

::=

( )?



plan_attributes

::=

( )?



plan_goalspec

::=

( goal_action ";" )?



plan_concludespec

::=

( relation ";" )?



plan_context

::=

( condition_list )?



plan_precondition

::=

( condition_list )?



plan_utility

::=

( expression ";" )?



plan_effects

::=

( plan_body_elements )?



plan_failure

::=

( plan_body_elements )?



plan_body

::=

( plan_body_elements )?



plan_branch

::=

"{" plan_body_elements "}"

plan_body_elements

::=

plan_body_element ( plan_body_element )*

plan_body_element

::=

action ";"




|


plan_branch ( plan_branch )* ";"




|


plan_branch ( plan_branch )* ";"




|


plan_branch ( plan_branch )* ";"




|


plan_branch ( plan_branch )* ";"




|


plan_branch ( plan_branch )* ";"




|

wait_construct




|

":" action plan_branch ";"






|

":" action plan_branch ";"






|


plan_branch
":" action ";"




|


plan_branch ";"




|

action plan_branch ( action plan_branch )* ( plan_branch )? ";"

wait_construct

::=

":" action ";"






|


relation ";"

condition_list

::=

condition ( condition )*

condition

::=

expression ";"




|

explist ";"




|

explist ";"

action

::=

exec_action




|

misc_action




|

goal_action

exec_action

::=

"." explist




|

explist




|

explist




|


explist




|

explist




|

expression




|

explist




|

explist




|

"(" explist ")" "(" explist ")"

misc_action

::=

expression expression




|

explist




|






|


goal_action




|

goal_action

goal_action

::=

goal_action_basic ( expression )? ( explist )? ( explist )?




|

goal_action_basic

goal_action_basic

::=

relation




|


relation




|

relation




|

relation

relation

::=

explist

expression

::=

value




|

variable




|

funcall




|

predicate

explist

::=

( expression ( expression )* )?

value

::=






|






|



variable

::=



funcall

::=

"(" ( | ) explist ")"

predicate

::=

"(" explist ")"




|

"(" explist ")"




|

"(" explist ")"

errorSkipTo

::=

java code

getMatchedText

::=

java code

getSpecialTokenText

::=

java code




  1. Download 391.89 Kb.

    Share with your friends:
1   ...   7   8   9   10   11   12   13   14   15




The database is protected by copyright ©ininet.org 2024
send message

    Main page