You can subscribe to this list here.
2004 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
(12) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
(3) |
Nov
(2) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
|
Mar
(6) |
Apr
(2) |
May
(3) |
Jun
(6) |
Jul
|
Aug
(1) |
Sep
(5) |
Oct
(32) |
Nov
|
Dec
(4) |
2006 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
(1) |
May
(1) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(6) |
Nov
(6) |
Dec
|
2007 |
Jan
|
Feb
(7) |
Mar
(20) |
Apr
(9) |
May
(4) |
Jun
(13) |
Jul
(9) |
Aug
(8) |
Sep
|
Oct
(7) |
Nov
(7) |
Dec
(3) |
2008 |
Jan
|
Feb
(5) |
Mar
(1) |
Apr
(46) |
May
(7) |
Jun
(5) |
Jul
(1) |
Aug
(15) |
Sep
(19) |
Oct
|
Nov
(2) |
Dec
(1) |
2009 |
Jan
(3) |
Feb
(2) |
Mar
(10) |
Apr
(16) |
May
(18) |
Jun
(12) |
Jul
(13) |
Aug
(10) |
Sep
(5) |
Oct
|
Nov
(2) |
Dec
(3) |
2010 |
Jan
(17) |
Feb
(10) |
Mar
(3) |
Apr
(2) |
May
(12) |
Jun
(17) |
Jul
(27) |
Aug
(20) |
Sep
(8) |
Oct
(12) |
Nov
(3) |
Dec
(2) |
2011 |
Jan
(16) |
Feb
(6) |
Mar
(3) |
Apr
(2) |
May
|
Jun
(11) |
Jul
(4) |
Aug
(9) |
Sep
(10) |
Oct
(8) |
Nov
(10) |
Dec
(3) |
2012 |
Jan
(6) |
Feb
(4) |
Mar
(3) |
Apr
(10) |
May
(7) |
Jun
(5) |
Jul
(4) |
Aug
(18) |
Sep
(14) |
Oct
(17) |
Nov
(12) |
Dec
|
2013 |
Jan
(6) |
Feb
(7) |
Mar
(4) |
Apr
(8) |
May
(5) |
Jun
(7) |
Jul
(4) |
Aug
(1) |
Sep
(3) |
Oct
|
Nov
|
Dec
(6) |
2014 |
Jan
(4) |
Feb
|
Mar
(6) |
Apr
(2) |
May
|
Jun
(10) |
Jul
(1) |
Aug
(2) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
(3) |
Apr
(3) |
May
(7) |
Jun
(5) |
Jul
(1) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(6) |
Dec
(3) |
2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
(7) |
May
|
Jun
(5) |
Jul
(1) |
Aug
(2) |
Sep
(5) |
Oct
(5) |
Nov
(2) |
Dec
|
2017 |
Jan
(5) |
Feb
(4) |
Mar
(3) |
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2018 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
(6) |
Jun
(1) |
Jul
(3) |
Aug
(2) |
Sep
|
Oct
(6) |
Nov
(4) |
Dec
|
2019 |
Jan
(1) |
Feb
(5) |
Mar
(6) |
Apr
(5) |
May
|
Jun
(5) |
Jul
(2) |
Aug
(7) |
Sep
(1) |
Oct
(7) |
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(2) |
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(3) |
Nov
|
Dec
|
2022 |
Jan
(5) |
Feb
(1) |
Mar
|
Apr
|
May
(5) |
Jun
(9) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
(4) |
Dec
|
2023 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
|
Jun
(5) |
Jul
(1) |
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(3) |
2024 |
Jan
(7) |
Feb
(1) |
Mar
|
Apr
(17) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jomi F. H. <jo...@in...> - 2007-03-29 14:31:17
|
Hi Guillermo, unfortunately the current version of Jason still does not support JADE as an infrastructure, although we plan to provide this feature soon. Meanwhile, for one that knows JADE (and Java) well, it is not difficult at all to implement that feature. I guess there are 2 approaches: 1. write a customised agent architecture overriding the methods checkMail and sendMsg to use JADE for doing this. 2. write a new Jason infrastructure (that can be set in the application project file -- .mas2j -- as it is done with Centralised and Saci infrastructures). The Jason API is prepared for the inclusion of new infrastructures. In this case, a good start point is the implementation of these two infrastructures. If you need some more specific information, feel free to ask us. Cheers, Jomi On Thu, Mar 29, 2007 at 02:25:27PM +0200, Guillermo Vigueras González wrote: > Hi boys!! Someone told me a few time ago, that it is possible to use > JASON over JADE (instead of SACI), but making some modifications. I'm > interested into know which kind of modifications are those. Thanks. > Cheers!! > > -- > ------------------------------------------------------------------ > Guillermo Vigueras González. > Departamento de Ingenieria de la información y las comunicaciones. > Facultad de Informática. Universidad de Murcia. > email: gui...@di... > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users |
From: <gui...@di...> - 2007-03-29 12:25:35
|
Hi boys!! Someone told me a few time ago, that it is possible to use JASON over JADE (instead of SACI), but making some modifications. I'm interested into know which kind of modifications are those. Thanks. Cheers!! -- ------------------------------------------------------------------ Guillermo Vigueras González. Departamento de Ingenieria de la información y las comunicaciones. Facultad de Informática. Universidad de Murcia. email: gui...@di... |
From: Rafael H B. <r.b...@du...> - 2007-03-27 16:39:22
|
Hi Neil, It seems you are using addPercept() to add new percepts in the environment model but you are not deleting the old percepts which are no longer perceivable (with removePercepts() for example, or clearPercepts to be more "drastic"). If you remove p1 and add p2, in the next reasoning cycle bug() will delete p1 and add p2 to the belief base (both with "source(percept)") and generate both events. Cheers, Rafael Quoting Neil Madden <nem@Cs.Nott.AC.UK>: > Hi Rafael, > > On 27 Mar 2007, at 13:52, Rafael H Bordini wrote: > > Further to Jomi's message, note that what Jomi says solves the > problem > > you asked about, but you probably shouldn't be worrying about > this in > > the first place. If you guarantee the environemnt keeps sending > the > > old "self(...)" percept until a new one is available, the buf() > mehtod > > (belief update function) itself guarantees that the old percept > is > > deleted and the new one added to the belief base (note that this > > generated two events, but you can always ignore the events if > > they don't matter to you). You only need to create internal > beliefs > > (mental notes) about percepts, as in the plan you mentioned, if > you > > need to remember them once they are no longer perceivable. > > But something seems not to be working here. In the custom > environment, I do not have access to the individual Agent > instances, > so I cannot call buf() directly. Instead, I call addPercept(String > > ag, Literal percept) on the environment to add to the list of > percepts. From my reading of the source code, the default Agent > class > then simply retrieves this list of percepts every cycle and then > calls buf() with them. However, the old "self(...)" facts are not > > removed by this process, and instead the memory continues to grow. > > How often are old percepts deleted? > > Adding an explicit [source(percept)] annotation to my plan, as Jomi > > suggested, does solve the immediate problem. > > -- Neil > |
From: Neil M. <nem@Cs.Nott.AC.UK> - 2007-03-27 16:20:29
|
Hi Rafael, On 27 Mar 2007, at 13:52, Rafael H Bordini wrote: > Further to Jomi's message, note that what Jomi says solves the problem > you asked about, but you probably shouldn't be worrying about this in > the first place. If you guarantee the environemnt keeps sending the > old "self(...)" percept until a new one is available, the buf() mehtod > (belief update function) itself guarantees that the old percept is > deleted and the new one added to the belief base (note that this > generated two events, but you can always ignore the events if > they don't matter to you). You only need to create internal beliefs > (mental notes) about percepts, as in the plan you mentioned, if you > need to remember them once they are no longer perceivable. But something seems not to be working here. In the custom environment, I do not have access to the individual Agent instances, so I cannot call buf() directly. Instead, I call addPercept(String ag, Literal percept) on the environment to add to the list of percepts. From my reading of the source code, the default Agent class then simply retrieves this list of percepts every cycle and then calls buf() with them. However, the old "self(...)" facts are not removed by this process, and instead the memory continues to grow. How often are old percepts deleted? Adding an explicit [source(percept)] annotation to my plan, as Jomi suggested, does solve the immediate problem. -- Neil |
From: Rafael H B. <r.b...@du...> - 2007-03-27 12:53:16
|
Further to Jomi's message, note that what Jomi says solves the problem you asked about, but you probably shouldn't be worrying about this in the first place. If you guarantee the environemnt keeps sending the old "self(...)" percept until a new one is available, the buf() mehtod (belief update function) itself guarantees that the old percept is deleted and the new one added to the belief base (note that this generated two events, but you can always ignore the events if they don't matter to you). You only need to create internal beliefs (mental notes) about percepts, as in the plan you mentioned, if you need to remember them once they are no longer perceivable. Rafael Quoting Jomi Hubner <jo...@in...>: > Dear Neil, > > the problem is probably caused because the command > > -self(Pos, Area, Health); > > is indeed a shortcut for > > -self(Pos, Area, Health)[source(self)]; > > since +b is indeed +b[source(self)]. In your case, the belief has > > source(percept), and thus is not removed. A simple solution is to > add > the source in the - command: > > -self(Pos, Area, Health)[source(percept)]; > > or even an unknown source: > > -self(Pos, Area, Health)[source(_)]; > > Regards, > > Jomi > > On Mar 26, 2007, at 9:39 PM, Neil Madden wrote: > > > Hi, > > > > I am having trouble ensuring that only the most recent copy of a > > percept is maintained by my Jason agents. Each agent receives a > "self > > (...)" percept periodically from the environment, detailing its > > position, health, etc in that environment. I currently try to > ensure > > that only the most recent copy is maintained using the following > plan: > > > > +self(Pos, Area, Health) <- > > -self(Pos, Area, Health); > > -+myself(Pos, Area, Health). > > > > This ensures that I have a single "myself" fact which is indeed > kept > > up-to-date. However, the -self(Pos, Area, Health) action seems > to > > have no effect whatsoever -- each agent accumulates more and > more > > self facts until eventually the Java heap space is exhausted and > I > > get an OutOfMemoryException. I don't see a build-up of > intentions, so > > it appears as if the plan runs to completion fine. It just seems > to > > ignore this action. > > > > Any help appreciated. > > > > Cheers, > > > > -- Neil > > > > > ---------------------------------------------------------------------- > > > --- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to > > > share your > > opinions on IT & business topics through brief surveys-and earn > cash > > http://www.techsay.com/default.php? > > page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > > Jason-users mailing list > > Jas...@li... > > https://lists.sourceforge.net/lists/listinfo/jason-users > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn > cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users > |
From: Jomi H. <jo...@in...> - 2007-03-27 12:40:47
|
Dear Neil, the problem is probably caused because the command -self(Pos, Area, Health); is indeed a shortcut for -self(Pos, Area, Health)[source(self)]; since +b is indeed +b[source(self)]. In your case, the belief has source(percept), and thus is not removed. A simple solution is to add the source in the - command: -self(Pos, Area, Health)[source(percept)]; or even an unknown source: -self(Pos, Area, Health)[source(_)]; Regards, Jomi On Mar 26, 2007, at 9:39 PM, Neil Madden wrote: > Hi, > > I am having trouble ensuring that only the most recent copy of a > percept is maintained by my Jason agents. Each agent receives a "self > (...)" percept periodically from the environment, detailing its > position, health, etc in that environment. I currently try to ensure > that only the most recent copy is maintained using the following plan: > > +self(Pos, Area, Health) <- > -self(Pos, Area, Health); > -+myself(Pos, Area, Health). > > This ensures that I have a single "myself" fact which is indeed kept > up-to-date. However, the -self(Pos, Area, Health) action seems to > have no effect whatsoever -- each agent accumulates more and more > self facts until eventually the Java heap space is exhausted and I > get an OutOfMemoryException. I don't see a build-up of intentions, so > it appears as if the plan runs to completion fine. It just seems to > ignore this action. > > Any help appreciated. > > Cheers, > > -- Neil > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users |
From: Neil M. <ne...@cs...> - 2007-03-27 00:40:07
|
Hi, I am having trouble ensuring that only the most recent copy of a percept is maintained by my Jason agents. Each agent receives a "self (...)" percept periodically from the environment, detailing its position, health, etc in that environment. I currently try to ensure that only the most recent copy is maintained using the following plan: +self(Pos, Area, Health) <- -self(Pos, Area, Health); -+myself(Pos, Area, Health). This ensures that I have a single "myself" fact which is indeed kept up-to-date. However, the -self(Pos, Area, Health) action seems to have no effect whatsoever -- each agent accumulates more and more self facts until eventually the Java heap space is exhausted and I get an OutOfMemoryException. I don't see a build-up of intentions, so it appears as if the plan runs to completion fine. It just seems to ignore this action. Any help appreciated. Cheers, -- Neil |
From: <jom...@gm...> - 2007-03-22 13:39:46
|
On Mar 22, 2007, at 8:26 AM, Felipe Rech Meneguzzi wrote: > First of all, sorry for the delay in responding, I was finishing up > the DALT paper and some admin here at King's. > > Second, to my further questions. I have found the methods to export > an agent to XML, now one thing is missing to me, which is how can > this exported state be used to create a new agent, the Agent class, > which sounded to me like the place to find such a method has not > "restoreAgentProgram/State", does this mean that I will have to > implement this methods myself, That's it :-) I guess that the approach of implementing clone() methods will be much easier. [] Jomi > or is there another place responsible for creating an agent out of > the XML state? > > Regards, > > Felipe > > On 3/16/07, Rafael H Bordini <R.B...@du...> wrote: > Interesting! It seems the agent exporting its state in XML and > using this in a dummy (not in the sense of not-smart but in > the sense that it's a fake agent used for "premeditation" only) > agent should work. But I also think we could add a clone() method in > the Agent and add a method setAgArch which could be used > to change the agent architecture in runtime so that instead > of the "real" act/perceive the cloned agent changes the > architecture to use the empty ones. Those methods might not be in the > next release of Jason, it might take some time... > > Cheers, > > Rafael > > > On 16 Mar 2007, at 19:08, Jomi Hubner wrote: > > > Felipe, > > > > it isn't a simple problem at all! And I am not sure how Jason is > > prepared for it. But, I will try to write how I might initially > > tackle the problem. First, I agree that you need a kind of agent > > "clone" where those plans run in a (even more) "simulated" world. > > Second, if your concern is the actions in the environment, the > > architecture should be customised. This architecture will create the > > Agent and run the TransitionSystem, as it usually happens in Jason, > > but overrides the act method to collect the actions and eventually > > change the perceptions accordingly. > > > > I guess that the second task is possible by means of architecture > > customisation (see for example the usingOnlyJasonEngine example). > But > > for the first task you need to clone all the agent state (beliefs, > > plans, and circumstance) -- and use this agent in the new > > architecture. The problem is that the classes Agent, > > DefaultBeliefBase and Circumstance do not support clone yet! I can > > see three solutions: (i) implement the clone() methods in the Jason > > sources; (ii) create a new Agent class that tries to get all these > > information for another Agent and populates all this data > structures; > > (iii) The agent can "export" itself as a XML document, maybe you can > > create an agent from this XML data. > > > > I hope that it helps a bit..... > > > > Jomi > > > > > > On Mar 16, 2007, at 2:31 PM, Felipe Rech Meneguzzi wrote: > > > >> Dear All, > >> > >> I am trying to create an agent that "test-executed" plans before > >> adopting them, by using an agent's current beliefs and a module to > >> predict the effects of actions in the environment, but without > >> actually affecting an agent's beliefs or the environment. To do > >> that, I have created a subclass of agent that ignores the > >> TransitionSystem, since I did not want to really post events and I > >> don't need to process multiple things happening in parallel, which > >> I believe is the main reason for the complexity in this class. > >> However it seems that my approach is proving harder to implement > >> cleanly than I expected. Now my question is, what should I modify > >> in Jason's classes to make a carbon copy of an entire agent and > >> then disconnect this copy from the "real" environment so I can do > >> this kind of simulation using the entire Jason machinery? > >> > >> Thanks in advance, > >> > >> -- > >> ___________________________ > >> Felipe Rech Meneguzzi > >> fel...@gm... > >> http://fmeneguzzi.blogspot.com > >> ___________________________ > >> > --------------------------------------------------------------------- > >> - > >> --- > >> Take Surveys. Earn Cash. Influence the Future of IT > >> Join SourceForge.net's Techsay panel and you'll get the chance to > >> share your > >> opinions on IT & business topics through brief surveys-and earn > cash > >> http://www.techsay.com/default.php? > >> > page=join.php&p=sourceforge&CID=DEVDEV_______________________________ > >> _ > >> _______________ > >> Jason-users mailing list > >> Jas...@li... > >> https://lists.sourceforge.net/lists/listinfo/jason-users > > > > > > > ---------------------------------------------------------------------- > > --- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to > > share your > > opinions on IT & business topics through brief surveys-and earn cash > > http://www.techsay.com/default.php? > > page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > > Jason-users mailing list > > Jas...@li... > > https://lists.sourceforge.net/lists/listinfo/jason-users > > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net 's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users > > > > -- > ___________________________ > Felipe Rech Meneguzzi > fel...@gm... > http://fmeneguzzi.blogspot.com > ___________________________ > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV________________________________ > _______________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users |
From: Felipe R. M. <fel...@gm...> - 2007-03-22 11:26:12
|
First of all, sorry for the delay in responding, I was finishing up the DALT paper and some admin here at King's. Second, to my further questions. I have found the methods to export an agent to XML, now one thing is missing to me, which is how can this exported state be used to create a new agent, the Agent class, which sounded to me like the place to find such a method has not "restoreAgentProgram/State", does this mean that I will have to implement this methods myself, or is there another place responsible for creating an agent out of the XML state? Regards, Felipe On 3/16/07, Rafael H Bordini <R.B...@du...> wrote: > > Interesting! It seems the agent exporting its state in XML and > using this in a dummy (not in the sense of not-smart but in > the sense that it's a fake agent used for "premeditation" only) > agent should work. But I also think we could add a clone() method in > the Agent and add a method setAgArch which could be used > to change the agent architecture in runtime so that instead > of the "real" act/perceive the cloned agent changes the > architecture to use the empty ones. Those methods might not be in the > next release of Jason, it might take some time... > > Cheers, > > Rafael > > > On 16 Mar 2007, at 19:08, Jomi Hubner wrote: > > > Felipe, > > > > it isn't a simple problem at all! And I am not sure how Jason is > > prepared for it. But, I will try to write how I might initially > > tackle the problem. First, I agree that you need a kind of agent > > "clone" where those plans run in a (even more) "simulated" world. > > Second, if your concern is the actions in the environment, the > > architecture should be customised. This architecture will create the > > Agent and run the TransitionSystem, as it usually happens in Jason, > > but overrides the act method to collect the actions and eventually > > change the perceptions accordingly. > > > > I guess that the second task is possible by means of architecture > > customisation (see for example the usingOnlyJasonEngine example). But > > for the first task you need to clone all the agent state (beliefs, > > plans, and circumstance) -- and use this agent in the new > > architecture. The problem is that the classes Agent, > > DefaultBeliefBase and Circumstance do not support clone yet! I can > > see three solutions: (i) implement the clone() methods in the Jason > > sources; (ii) create a new Agent class that tries to get all these > > information for another Agent and populates all this data structures; > > (iii) The agent can "export" itself as a XML document, maybe you can > > create an agent from this XML data. > > > > I hope that it helps a bit..... > > > > Jomi > > > > > > On Mar 16, 2007, at 2:31 PM, Felipe Rech Meneguzzi wrote: > > > >> Dear All, > >> > >> I am trying to create an agent that "test-executed" plans before > >> adopting them, by using an agent's current beliefs and a module to > >> predict the effects of actions in the environment, but without > >> actually affecting an agent's beliefs or the environment. To do > >> that, I have created a subclass of agent that ignores the > >> TransitionSystem, since I did not want to really post events and I > >> don't need to process multiple things happening in parallel, which > >> I believe is the main reason for the complexity in this class. > >> However it seems that my approach is proving harder to implement > >> cleanly than I expected. Now my question is, what should I modify > >> in Jason's classes to make a carbon copy of an entire agent and > >> then disconnect this copy from the "real" environment so I can do > >> this kind of simulation using the entire Jason machinery? > >> > >> Thanks in advance, > >> > >> -- > >> ___________________________ > >> Felipe Rech Meneguzzi > >> fel...@gm... > >> http://fmeneguzzi.blogspot.com > >> ___________________________ > >> --------------------------------------------------------------------- > >> - > >> --- > >> Take Surveys. Earn Cash. Influence the Future of IT > >> Join SourceForge.net's Techsay panel and you'll get the chance to > >> share your > >> opinions on IT & business topics through brief surveys-and earn cash > >> http://www.techsay.com/default.php? > >> page=join.php&p=sourceforge&CID=DEVDEV_______________________________ > >> _ > >> _______________ > >> Jason-users mailing list > >> Jas...@li... > >> https://lists.sourceforge.net/lists/listinfo/jason-users > > > > > > ---------------------------------------------------------------------- > > --- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to > > share your > > opinions on IT & business topics through brief surveys-and earn cash > > http://www.techsay.com/default.php? > > page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > > Jason-users mailing list > > Jas...@li... > > https://lists.sourceforge.net/lists/listinfo/jason-users > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users > -- ___________________________ Felipe Rech Meneguzzi fel...@gm... http://fmeneguzzi.blogspot.com ___________________________ |
From: Rafael H B. <R.B...@du...> - 2007-03-16 19:25:38
|
Interesting! It seems the agent exporting its state in XML and using this in a dummy (not in the sense of not-smart but in the sense that it's a fake agent used for "premeditation" only) agent should work. But I also think we could add a clone() method in the Agent and add a method setAgArch which could be used to change the agent architecture in runtime so that instead of the "real" act/perceive the cloned agent changes the architecture to use the empty ones. Those methods might not be in the next release of Jason, it might take some time... Cheers, Rafael On 16 Mar 2007, at 19:08, Jomi Hubner wrote: > Felipe, > > it isn't a simple problem at all! And I am not sure how Jason is > prepared for it. But, I will try to write how I might initially > tackle the problem. First, I agree that you need a kind of agent > "clone" where those plans run in a (even more) "simulated" world. > Second, if your concern is the actions in the environment, the > architecture should be customised. This architecture will create the > Agent and run the TransitionSystem, as it usually happens in Jason, > but overrides the act method to collect the actions and eventually > change the perceptions accordingly. > > I guess that the second task is possible by means of architecture > customisation (see for example the usingOnlyJasonEngine example). But > for the first task you need to clone all the agent state (beliefs, > plans, and circumstance) -- and use this agent in the new > architecture. The problem is that the classes Agent, > DefaultBeliefBase and Circumstance do not support clone yet! I can > see three solutions: (i) implement the clone() methods in the Jason > sources; (ii) create a new Agent class that tries to get all these > information for another Agent and populates all this data structures; > (iii) The agent can "export" itself as a XML document, maybe you can > create an agent from this XML data. > > I hope that it helps a bit..... > > Jomi > > > On Mar 16, 2007, at 2:31 PM, Felipe Rech Meneguzzi wrote: > >> Dear All, >> >> I am trying to create an agent that "test-executed" plans before >> adopting them, by using an agent's current beliefs and a module to >> predict the effects of actions in the environment, but without >> actually affecting an agent's beliefs or the environment. To do >> that, I have created a subclass of agent that ignores the >> TransitionSystem, since I did not want to really post events and I >> don't need to process multiple things happening in parallel, which >> I believe is the main reason for the complexity in this class. >> However it seems that my approach is proving harder to implement >> cleanly than I expected. Now my question is, what should I modify >> in Jason's classes to make a carbon copy of an entire agent and >> then disconnect this copy from the "real" environment so I can do >> this kind of simulation using the entire Jason machinery? >> >> Thanks in advance, >> >> -- >> ___________________________ >> Felipe Rech Meneguzzi >> fel...@gm... >> http://fmeneguzzi.blogspot.com >> ___________________________ >> --------------------------------------------------------------------- >> - >> --- >> Take Surveys. Earn Cash. Influence the Future of IT >> Join SourceForge.net's Techsay panel and you'll get the chance to >> share your >> opinions on IT & business topics through brief surveys-and earn cash >> http://www.techsay.com/default.php? >> page=join.php&p=sourceforge&CID=DEVDEV_______________________________ >> _ >> _______________ >> Jason-users mailing list >> Jas...@li... >> https://lists.sourceforge.net/lists/listinfo/jason-users > > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users |
From: Jomi H. <jom...@gm...> - 2007-03-16 19:13:28
|
Felipe, it isn't a simple problem at all! And I am not sure how Jason is prepared for it. But, I will try to write how I might initially tackle the problem. First, I agree that you need a kind of agent "clone" where those plans run in a (even more) "simulated" world. Second, if your concern is the actions in the environment, the architecture should be customised. This architecture will create the Agent and run the TransitionSystem, as it usually happens in Jason, but overrides the act method to collect the actions and eventually change the perceptions accordingly. I guess that the second task is possible by means of architecture customisation (see for example the usingOnlyJasonEngine example). But for the first task you need to clone all the agent state (beliefs, plans, and circumstance) -- and use this agent in the new architecture. The problem is that the classes Agent, DefaultBeliefBase and Circumstance do not support clone yet! I can see three solutions: (i) implement the clone() methods in the Jason sources; (ii) create a new Agent class that tries to get all these information for another Agent and populates all this data structures; (iii) The agent can "export" itself as a XML document, maybe you can create an agent from this XML data. I hope that it helps a bit..... Jomi On Mar 16, 2007, at 2:31 PM, Felipe Rech Meneguzzi wrote: > Dear All, > > I am trying to create an agent that "test-executed" plans before > adopting them, by using an agent's current beliefs and a module to > predict the effects of actions in the environment, but without > actually affecting an agent's beliefs or the environment. To do > that, I have created a subclass of agent that ignores the > TransitionSystem, since I did not want to really post events and I > don't need to process multiple things happening in parallel, which > I believe is the main reason for the complexity in this class. > However it seems that my approach is proving harder to implement > cleanly than I expected. Now my question is, what should I modify > in Jason's classes to make a carbon copy of an entire agent and > then disconnect this copy from the "real" environment so I can do > this kind of simulation using the entire Jason machinery? > > Thanks in advance, > > -- > ___________________________ > Felipe Rech Meneguzzi > fel...@gm... > http://fmeneguzzi.blogspot.com > ___________________________ > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV________________________________ > _______________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users |
From: Felipe R. M. <fel...@gm...> - 2007-03-16 17:31:25
|
Dear All, I am trying to create an agent that "test-executed" plans before adopting them, by using an agent's current beliefs and a module to predict the effects of actions in the environment, but without actually affecting an agent's beliefs or the environment. To do that, I have created a subclass of agent that ignores the TransitionSystem, since I did not want to really post events and I don't need to process multiple things happening in parallel, which I believe is the main reason for the complexity in this class. However it seems that my approach is proving harder to implement cleanly than I expected. Now my question is, what should I modify in Jason's classes to make a carbon copy of an entire agent and then disconnect this copy from the "real" environment so I can do this kind of simulation using the entire Jason machinery? Thanks in advance, -- ___________________________ Felipe Rech Meneguzzi fel...@gm... http://fmeneguzzi.blogspot.com ___________________________ |
From: Jomi H. <jo...@in...> - 2007-03-15 11:25:18
|
Hi, Just to complement the Rafael's answer a bit, the reason for the NullPointerException is probably that the agent "test" has no perception yet. (The addPercept(<agname>,<literal>) should be used to add perceptions for the agents.) Jomi On Mar 14, 2007, at 9:02 PM, Daniel Tallentire wrote: > Hi All, > > I'm trying to use getPercepts(String agent) inside my environment - I > am doing this in the execute action function: > > logger.info("we have " + > getEnvironmentInfraTier().getRuntimeServices().getAgentsQty() + " > agents"); > > logger.info("agent names... " + > getEnvironmentInfraTier().getRuntimeServices().getAgentsName > ().toString()); > > Iterator<Literal> it = getPercepts("test").iterator(); > > while (it.hasNext()) > { > Literal l = it.next(); > // process literals here... > } > > > However, I get an error when the iterator is being assigned. Here is > the extract of my log: > > > [testweb] we have 1 agents > [testweb] agent names... [test] > [test] *** ERROR in the transition system. > java.lang.NullPointerException > at testweb.executeAction(testweb.java:58) > at jason.infra.centralised.CentralisedAgArch.act > (CentralisedAgArch.java:220) > at jason.architecture.AgArch.act(AgArch.java:121) > at jason.asSemantics.TransitionSystem.reasoningCycle > (TransitionSystem.java:869) > at jason.infra.centralised.CentralisedAgArch.run > (CentralisedAgArch.java:157) > > > > I feel like I must be making some obvious mistake, or misunderstanding > how this function should work - how should I get a list of the > percepts for agent "test"? > > > Thanks, > > Daniel > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users |
From: Rafael H B. <R.B...@du...> - 2007-03-15 09:33:57
|
Hi Daniel, The getPercepts method is to be used by the agent architecture to retrieve all percepts, it wasn't intended to be used in the environment. We do provide the containsPercept method which you could use to check if the agent currently has a particular literal already in it's list of percepts. Would that help? If not, let us know. Cheers, Rafael On 15 Mar 2007, at 00:02, Daniel Tallentire wrote: > Hi All, > > I'm trying to use getPercepts(String agent) inside my environment - I > am doing this in the execute action function: > > logger.info("we have " + > getEnvironmentInfraTier().getRuntimeServices().getAgentsQty() + " > agents"); > > logger.info("agent names... " + > getEnvironmentInfraTier().getRuntimeServices().getAgentsName > ().toString()); > > Iterator<Literal> it = getPercepts("test").iterator(); > > while (it.hasNext()) > { > Literal l = it.next(); > // process literals here... > } > > > However, I get an error when the iterator is being assigned. Here is > the extract of my log: > > > [testweb] we have 1 agents > [testweb] agent names... [test] > [test] *** ERROR in the transition system. > java.lang.NullPointerException > at testweb.executeAction(testweb.java:58) > at jason.infra.centralised.CentralisedAgArch.act > (CentralisedAgArch.java:220) > at jason.architecture.AgArch.act(AgArch.java:121) > at jason.asSemantics.TransitionSystem.reasoningCycle > (TransitionSystem.java:869) > at jason.infra.centralised.CentralisedAgArch.run > (CentralisedAgArch.java:157) > > > > I feel like I must be making some obvious mistake, or misunderstanding > how this function should work - how should I get a list of the > percepts for agent "test"? > > > Thanks, > > Daniel > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users |
From: Daniel T. <dan...@gm...> - 2007-03-15 00:02:38
|
Hi All, I'm trying to use getPercepts(String agent) inside my environment - I am doing this in the execute action function: logger.info("we have " + getEnvironmentInfraTier().getRuntimeServices().getAgentsQty() + " agents"); logger.info("agent names... " + getEnvironmentInfraTier().getRuntimeServices().getAgentsName().toString()); Iterator<Literal> it = getPercepts("test").iterator(); while (it.hasNext()) { Literal l = it.next(); // process literals here... } However, I get an error when the iterator is being assigned. Here is the extract of my log: [testweb] we have 1 agents [testweb] agent names... [test] [test] *** ERROR in the transition system. java.lang.NullPointerException at testweb.executeAction(testweb.java:58) at jason.infra.centralised.CentralisedAgArch.act(CentralisedAgArch.java:220) at jason.architecture.AgArch.act(AgArch.java:121) at jason.asSemantics.TransitionSystem.reasoningCycle(TransitionSystem.java:869) at jason.infra.centralised.CentralisedAgArch.run(CentralisedAgArch.java:157) I feel like I must be making some obvious mistake, or misunderstanding how this function should work - how should I get a list of the percepts for agent "test"? Thanks, Daniel |
From: Jomi F. H. <jo...@in...> - 2007-03-07 00:45:59
|
Neil, Jason 0.9.5b, just released, allows "include" in any point of the source. Regards, Jomi nem@Cs.Nott.AC.UK wrote: > Hi Jomi, > > On Feb 21 2007, Jomi Fred Hubner wrote: >> Niel, you can use the include directive. For example >> >> .... >> { include("bla.asl") } >> .... > > Thanks for this. Can I just confirm where this is syntactically valid? I > seem to have trouble with this anywhere other than between the initial > beliefs/rules/goals and the plans. Ideally, I'd like to be able to group > includes at the top of a file so that I can quickly see the dependencies. > At present, the includes can be difficult to spot. > > Cheers, > > -- Neil > http://www.agents.cs.nott.ac.uk/people/Neil_Madden.shtml > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses, which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users -- Jomi F. Hübner Universidade Regional de Blumenau - FURB Departamento de Sistemas e Computação - DSC Campus IV, rua Braz Wanka, 238, Vila Nova 89035-160, Blumenau, SC, Brasil mailto:jo...@in... http://www.inf.furb.br/~jomi Tel: +55(47)3321-7810 Fax: +55(47)3321-7802 |
From: Jomi F. H. <jo...@in...> - 2007-03-05 13:31:20
|
Niel, you are right, the include can be used only after bels/goals, but in any place after that. We will consider to allow includes at the top of the source in the next release. Regards, Jomi On Mon, Mar 05, 2007 at 01:05:23PM +0000, nem@Cs.Nott.AC.UK wrote: > Hi Jomi, > > On Feb 21 2007, Jomi Fred Hubner wrote: > > Niel, you can use the include directive. For example > > > > .... > > { include("bla.asl") } > > .... > > Thanks for this. Can I just confirm where this is syntactically valid? I > seem to have trouble with this anywhere other than between the initial > beliefs/rules/goals and the plans. Ideally, I'd like to be able to group > includes at the top of a file so that I can quickly see the dependencies. > At present, the includes can be difficult to spot. > > Cheers, > > -- Neil > http://www.agents.cs.nott.ac.uk/people/Neil_Madden.shtml > > This message has been checked for viruses but the contents of an attachment > may still contain software viruses, which could damage your computer system: > you are advised to perform your own checks. Email communications with the > University of Nottingham may be monitored as permitted by UK legislation. > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users |
From: nem@Cs.Nott.AC.UK - 2007-03-05 13:06:29
|
Hi Jomi, On Feb 21 2007, Jomi Fred Hubner wrote: > Niel, you can use the include directive. For example > > .... > { include("bla.asl") } > .... Thanks for this. Can I just confirm where this is syntactically valid? I seem to have trouble with this anywhere other than between the initial beliefs/rules/goals and the plans. Ideally, I'd like to be able to group includes at the top of a file so that I can quickly see the dependencies. At present, the includes can be difficult to spot. Cheers, -- Neil http://www.agents.cs.nott.ac.uk/people/Neil_Madden.shtml This message has been checked for viruses but the contents of an attachment may still contain software viruses, which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. |
From: Neil M. <ne...@cs...> - 2007-02-21 12:53:17
|
Thanks Jomi, the fixes you suggest solved the problem for me. I'm using Jason to develop a framework for reporting on events from collaborative virtual environments, for my PhD here at Nottingham (supervisor: Brian Logan). The finished system should support up to around 100 agents, performing a variety of functions (navigating the environment, event detection and recognition, some shallow plan recognition, report editing and presenting). -- Neil On 21 Feb 2007, at 01:41, Jomi Fred Hubner wrote: > Dear Niel, > > it is very exciting to know that you are developing a complex MAS with > Jason! And thanks a lot for posting a so "interesting" problem and > finding a bug in Jason. The use of rules in AgentSpeak programs is > quite new and some bugs are inevitable while we are getting used to > them. > > In the last version of Jason (0.9.5a -- just released) some bugs are > fixed: one related to =.. and another that avoid loops. But your > program also requires some fixes :-). There must be a predicate for > equal arguments and the rule that uses =.. should be applied only for > predicates that have arguments. > > Here are the rules (I add some prints to "debug"): > > matches(any, _) :- true. > matches(X,X) :- true. > matches(Pat, What) :- > Pat =.. [PFunctor, PTerms, _] & .print("Pat=", Pat, " > PF=",PFunctor,",",PTerms) & > What =.. [Functor, Terms, _] & .print("What=",What," F=", > Functor, ",",Terms) & > .length(PTerms,N1) & N1 \== 0 & > .length(Terms, N2) & N2 \== 0 & > matches(PFunctor, Functor) & > matchesList(PTerms, Terms). > matchesList([], []) :- true. > matchesList([PH|PT], [H|T]) :- > matches(PH, H) & > matchesList(PT, T). > > > Cheers, > > Jomi > > > > On 2/20/07, Neil Madden <ne...@cs...> wrote: Hello, > > I am using Jason to develop a moderately complex multi-agent system. > I have a simple publish/subscribe mechanism whereby agents can > broadcast "patterns" to other agents, and these agents will then send > "tell" messages when they acquire beliefs that match the pattern. A > pattern is simply a ground literal, with the addition of the special > "any" symbol which can appear anywhere and acts as a wild-card. To > determine if a belief matches a pattern I use a Prolog-style rule > "matches": > > matches(any, _) :- true. > matches(Pat, What) :- > Pat =.. [PFunctor, PTerms, _] & > What =.. [Functor, Terms, _] & > matches(PFunctor, Functor) & > matchesList(PTerms, Terms). > matchesList([], []) :- true. > matchesList([PH|PT], [H|T]) :- > matches(PH, H) & > matchesList(PT, T). > > This is called from the context of a plan like: > > +!report(What) : > interested(Ag, Pat) & > matches(Pat, What) > <- > !sendReport(Ag, What). > > However, when I call this in even the simplest cases, it causes a > stack overflow. There seem to be a number of issues involved: > > 1. I don't seem to be using the =.. operator correctly. Whatever I > pass in, the entire literal seems to unify with the Functor/PFunctor > variables, and the Terms/PTerms variables are always undefined. This > causes the infinite loop. > 2. Even in the base case, where the pattern is just the literal > "any", the second part of the matches rule is still being tried, > leading to an infinite loop even in this case. I would've expected > that the first rule pattern would succeed and that the second > wouldn't be tried (as in Prolog). Is there some documentation on how > Jason implements these rules? > 3. In the beliefs of the agents, I notice that the matchesList rule > has an incorrect pattern. It appears as: > matchesList(PH, H) :- > matches(PH, H) & > matchesList(PT, T). > The PT and T variables seem to have vanished from the rule head. Is > this an incorrect parse, or just the belief inspector not properly > displaying the pattern? > > Cheers, > > -- Neil > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV________________________________ > _______________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users |
From: Jomi F. H. <jom...@gm...> - 2007-02-21 01:44:13
|
Niel, you can use the include directive. For example .... { include("bla.asl") } .... Regards, Jomi On 2/20/07, Neil Madden <ne...@cs...> wrote: > Hi all, another question: > > I can't seem to find any mechanism for including one .asl file in > another (e.g., an include/import statement). Is there any way to > accomplish this? I am developing a fairly large number of rules and > plans, and would like to spread them over several source code files > (for a single agent). > > Cheers, > > -- Neil > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users > |
From: Jomi F. H. <jom...@gm...> - 2007-02-21 01:41:23
|
Dear Niel, it is very exciting to know that you are developing a complex MAS with Jason! And thanks a lot for posting a so "interesting" problem and finding a bug in Jason. The use of rules in AgentSpeak programs is quite new and some bugs are inevitable while we are getting used to them. In the last version of Jason (0.9.5a -- just released) some bugs are fixed: one related to =.. and another that avoid loops. But your program also requires some fixes :-). There must be a predicate for equal arguments and the rule that uses =.. should be applied only for predicates that have arguments. Here are the rules (I add some prints to "debug"): matches(any, _) :- true. matches(X,X) :- true. matches(Pat, What) :- Pat =.. [PFunctor, PTerms, _] & .print("Pat=", Pat, " PF=",PFunctor,",",PTerms) & What =.. [Functor, Terms, _] & .print("What=",What," F=", Functor, ",",Terms) & .length(PTerms,N1) & N1 \== 0 & .length(Terms, N2) & N2 \== 0 & matches(PFunctor, Functor) & matchesList(PTerms, Terms). matchesList([], []) :- true. matchesList([PH|PT], [H|T]) :- matches(PH, H) & matchesList(PT, T). Cheers, Jomi On 2/20/07, Neil Madden <ne...@cs...> wrote: > > Hello, > > I am using Jason to develop a moderately complex multi-agent system. > I have a simple publish/subscribe mechanism whereby agents can > broadcast "patterns" to other agents, and these agents will then send > "tell" messages when they acquire beliefs that match the pattern. A > pattern is simply a ground literal, with the addition of the special > "any" symbol which can appear anywhere and acts as a wild-card. To > determine if a belief matches a pattern I use a Prolog-style rule > "matches": > > matches(any, _) :- true. > matches(Pat, What) :- > Pat =.. [PFunctor, PTerms, _] & > What =.. [Functor, Terms, _] & > matches(PFunctor, Functor) & > matchesList(PTerms, Terms). > matchesList([], []) :- true. > matchesList([PH|PT], [H|T]) :- > matches(PH, H) & > matchesList(PT, T). > > This is called from the context of a plan like: > > +!report(What) : > interested(Ag, Pat) & > matches(Pat, What) > <- > !sendReport(Ag, What). > > However, when I call this in even the simplest cases, it causes a > stack overflow. There seem to be a number of issues involved: > > 1. I don't seem to be using the =.. operator correctly. Whatever I > pass in, the entire literal seems to unify with the Functor/PFunctor > variables, and the Terms/PTerms variables are always undefined. This > causes the infinite loop. > 2. Even in the base case, where the pattern is just the literal > "any", the second part of the matches rule is still being tried, > leading to an infinite loop even in this case. I would've expected > that the first rule pattern would succeed and that the second > wouldn't be tried (as in Prolog). Is there some documentation on how > Jason implements these rules? > 3. In the beliefs of the agents, I notice that the matchesList rule > has an incorrect pattern. It appears as: > matchesList(PH, H) :- > matches(PH, H) & > matchesList(PT, T). > The PT and T variables seem to have vanished from the rule head. Is > this an incorrect parse, or just the belief inspector not properly > displaying the pattern? > > Cheers, > > -- Neil > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users > |
From: Nico H. <nic...@gm...> - 2007-02-20 21:27:12
|
Dear Jason Users, my name is Nico and I am writing my final thesis about BDI agent frameworks. In my chapter about JASON I would like to mention some applications of JASON, hence I would like to know who is using JASON and in which application domains is JASON used ? Hopefully you can provide some facts ?! Thanks. Cheers, Nico Nico Hochgeschwender Hungerbergtr. 11 75392 Deckenpfronn --------------------------------------------- nic...@gm... http://ivc.siit.tu.ac.th/~nico |
From: Jomi F. H. <jom...@gm...> - 2007-02-20 19:40:59
|
Jason 0.9.5 has been released and is available at http://sourceforge.net/project/showfiles.php?group_id=98417 This version fixes some bugs in the previous version and adds the following main new features: . Users can define their own compiler directives. . Asynchronous ask in communication. . New internal actions (.substring, .nth, ...). The semantics of "-" was changed, so that "-b" in a plan removes "b [source(self)]" from the Belief Base and not b with its all annotations. However, the source(self) annotation is added only in case b has no annots. For -b[a], the "self" source is not added and only annotation "a" is removed. The documentation for internal actions was improved and some of them were renamed to follow a Prolog pattern. E.g., addPlan -> add_plan, createAgent -> create_agent. Best regards, Jomi & Rafael |
From: Neil M. <nem@Cs.Nott.AC.UK> - 2007-02-20 18:57:56
|
Hi all, another question: I can't seem to find any mechanism for including one .asl file in another (e.g., an include/import statement). Is there any way to accomplish this? I am developing a fairly large number of rules and plans, and would like to spread them over several source code files (for a single agent). Cheers, -- Neil |
From: Neil M. <nem@Cs.Nott.AC.UK> - 2007-02-20 18:54:14
|
Hello, I am using Jason to develop a moderately complex multi-agent system. I have a simple publish/subscribe mechanism whereby agents can broadcast "patterns" to other agents, and these agents will then send "tell" messages when they acquire beliefs that match the pattern. A pattern is simply a ground literal, with the addition of the special "any" symbol which can appear anywhere and acts as a wild-card. To determine if a belief matches a pattern I use a Prolog-style rule "matches": matches(any, _) :- true. matches(Pat, What) :- Pat =.. [PFunctor, PTerms, _] & What =.. [Functor, Terms, _] & matches(PFunctor, Functor) & matchesList(PTerms, Terms). matchesList([], []) :- true. matchesList([PH|PT], [H|T]) :- matches(PH, H) & matchesList(PT, T). This is called from the context of a plan like: +!report(What) : interested(Ag, Pat) & matches(Pat, What) <- !sendReport(Ag, What). However, when I call this in even the simplest cases, it causes a stack overflow. There seem to be a number of issues involved: 1. I don't seem to be using the =.. operator correctly. Whatever I pass in, the entire literal seems to unify with the Functor/PFunctor variables, and the Terms/PTerms variables are always undefined. This causes the infinite loop. 2. Even in the base case, where the pattern is just the literal "any", the second part of the matches rule is still being tried, leading to an infinite loop even in this case. I would've expected that the first rule pattern would succeed and that the second wouldn't be tried (as in Prolog). Is there some documentation on how Jason implements these rules? 3. In the beliefs of the agents, I notice that the matchesList rule has an incorrect pattern. It appears as: matchesList(PH, H) :- matches(PH, H) & matchesList(PT, T). The PT and T variables seem to have vanished from the rule head. Is this an incorrect parse, or just the belief inspector not properly displaying the pattern? Cheers, -- Neil |