Release Notes

Embed Size (px)

DESCRIPTION

Jason

Citation preview

---------------------------version 1.4.1revision 1792 on SVN---------------------------New features- web view of agent's mind (the url usually is http://localhost:3272)---------------------------version 1.4.0revision 1759 on SVN--------------------------- New features- implementation of tail recursion optimisation (TRO) for sub-goals. It can be turned off in agent options, e.g.: agents: bob [tro=false];Changes in the API- the method apply was removed and replaced by capply that clones and applies an unifier. Usually a code like Term t = .... t = t.clone(); t.apply(u); can be replaced by Term t = ..... t = t.capply(u); NB. the TRO and capply have improved the performance of some application by 30%.---------------------------version 1.3.10brevision 1750 on SVN---------------------------New features- (sub)goals can have a deadline, e.g....; !g(4)[hard_deadline(3000)]; ... if g(4) is not finished in 3 seconds, a failure event is produced. - the internal action .wait accepts a logical expression as argument, as in ...; .wait(b(X) & X > 10); .... The intention will be suspended until the agent believes b(X) with X > 10. Timeout and elapse time arguments can be used as previously. New example:- Santa Claus: a classical benchmark for concurrent programming http://www.cs.otago.ac.nz/staffpriv/ok/santa---------------------------version 1.3.9revision 1721 on SVN---------------------------New features- new operators do add beliefs"++" add a belief with new focus (a new intention is created for the event produced by the addition)"+ 3) { bla; } else { bla; } ";" is not required after "}" last formula in can be followed by ";" keyword "else" is usedBugs fixed- equals in ObjectTermImpl, as reported by Tim Cleaver in jason-bugs list- unnamed variables in some rules are not correctly replaced, as reported by Tim Cleaver in jason-bugs list- "E+1" is parsed as instead of arithmetic expression- .relevant_plan with meta-variable plans as reported by Iain Wallance ---------------------------version 1.3.1revision 1553 on SVN---------------------------New demo- use of controllers to write a customised mind inspectorInternal actions- .random has an optional second parameter to setup backtrackBugs fixed- foreach when no solution exists causes failure- perception of atoms cause failure with SACI- initialisation of TimeSteppedEnvironment (bug: waits for a first action to start)- .succeed_goal does not work when applied to 'itself' (the intention succeed itself)- !Var does no work correctly---------------------------version 1.3revision 1489 on SVN---------------------------New features- Plans and Triggers can be used as terms when enclosed by { and } This feature is used in the following internal actions .relevant_plans e.g. .relevant_plans({ +!g(_) }, ListOfPlans) instead of .relevant_plans( "+!g(_)" , ListOfPlans) .add_plan .at .wait It may be used in send tellHow .send(bob, tellHow, { +te : c add_plan, createAgent -> create_agent.. .drop_desire does not produce events anymore, it just removes the event from the circumstance.. uses of .dropGoal(g,true) should be replaced by .succeed_goal(g).. uses of .dropGoal(g,false) should be replaced by .fail_goal(g).. new internal action .nth to select some term of a list. Documentation. all internal actions were documented using javadoc (see doc/api).Bugs fixed in 0.9.5b. The date in the application build.xml use latin characters.. The variable name in the KQML plans may conflict with users' variables.. .sort changes the first parameter.. the include directive can not be used before initial beliefs.-------------version 0.9.4-------------New features. The user can define class paths for Jason projects, see the Sniffer project file (Sniffer.mas2j) for an example.Examples:. Add support form message sniffing in centralised infrastructure and improve the Sniffer example to use it (and also store all messages in a data base). Improve the wandering capabilities in the Gold-Miners example.Changes in the API. The TermImpl was renamed to Structure. The method that executes actions in the environment is notexecuteAction(String agName, Term act) anymore, but was changed to executeAction(String agName, Structure act) So you should change your environment method parameters to work with this version.Bugs fixed:. unification of variable in annotations-------------version 0.9.3-------------New features. an event +!idle is generated when the agent has nothing to do (no other event, no intention, no message, ....). Mind inspector can show the agent state in LaTeX. New commands: asl2html and asl2tex. We add some useful classes to develop grid based environments. There is a class to model (maintain the data) the scenario and another class to draw it in the screen. The examples CleaningRobots, DomesticRobot, and Gold-Miners use these classes. More information is available in these examples and in the API of package import jason.environment.grid. goal patterns as proposed in DALT 2006 paper: . Backtracking Declarative Goal . Blind Commitment Goal . Open-Minded Commitment . Maintenance Goal . Relativised Commitment Goal . and othersNew examples. Sniffer: shows how to get all messages sent by the agents.. ContractNetProtocol: shows how the CNP may be implemented with JasonNew internal action:. dropGoal(,[true|false]): the implementation of the .dropGoal as specified in DALT 2006 paper. All intentions with goal will be popped until the intended means (im). If the second parameter is true, the IM is considered successfully finished. Otherwise, the IM fails.. member(, ), verify whether belong to the . this internal action backtracks when there are more than one answer, as in .member(X, [4,1,6]) which has 3 results. . planLabel(, ), gets the string of a plan based on its label (useful for tellHow). E.g.: @test +!g : true Term.getTerm(i) . Term.funcSymb -> Term.getFunctor()A new internal action, .broadcast(,), was added.-----------version 0.4-----------The implementation of the user-defined environment class has beenchanged so as to allow users to specify customised perception foreach individual agent.Users who used old-style environment code such as:public class marsEnv implements Environment { EnvironmentPerception envP = null; public void setEnvironmentPerception(EnvironmentPerception ep) { envP = ep;

} }should be changed to:public class marsEnv extends Environment { public marsEnv() { } }Briefly, the changes are as follows: 1. The user's environment class does not "implements Environment" anymore, but "extends Environment". (See API documentation for more information on this new class.) 2. The method setEnvironmentPerception, where the environment initialisation was done, is replaced by the user environment constructor. 3. To change the environment perception list use: getPercepts().remove(g1); instead of envP.getPercepts().remove(g1); 4. To send specific perceptions for an individual agent, override the method getPercepts(agName); for example: public class marsEnv extends Environment { ... public List getPercepts(String agName) { if (agName.equals(...)) { List customPercepts = new LinkedList(super.getPercepts(agName)); customPercepts.add(...); customPercepts.remove(...); return customPercepts; } else { return super.getPerceps(agName); } } ... }The option "event=retrieve" was added. It makes the selectOption function be called even if there is not relevant plans.-----------version 0.3-----------Jason now has an IDE! This version of Jason also runs on MSWindows, if you must.-----------version 0.2-----------First public release.Agent and AgentArchitecture classes are only required if the userneeds to provide any customisation. The same environment code nowworks for Saci and Centralised.-----------version 0.1-----------The very first release of Jason!