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
           | 
        
      
| 2025 | 
          Jan
           | 
        
        
        
        
          Feb
           | 
        
        
        
        
          Mar
           (3)  | 
        
        
        
        
          Apr
           | 
        
        
        
        
          May
           | 
        
        
        
        
          Jun
           | 
        
        
        
        
          Jul
           | 
        
        
        
        
          Aug
           | 
        
        
        
        
          Sep
           | 
        
        
        
        
          Oct
           | 
        
        
        
        
          Nov
           | 
        
        
        
        
          Dec
           | 
        
      
| S | M | T | W | T | F | S | 
|---|---|---|---|---|---|---|
| 
           
           | 
        
        
           
           | 
        
        
          1
           (1)  | 
        
        
          2
           (1)  | 
        
        
          3
           (2)  | 
        
        
          4
           | 
        
        
          5
           | 
        
      
| 
          6
           | 
        
        
          7
           | 
        
        
          8
           (2)  | 
        
        
          9
           (6)  | 
        
        
          10
           | 
        
        
          11
           | 
        
        
          12
           | 
        
      
| 
          13
           | 
        
        
          14
           | 
        
        
          15
           | 
        
        
          16
           (7)  | 
        
        
          17
           (1)  | 
        
        
          18
           (2)  | 
        
        
          19
           (6)  | 
        
      
| 
          20
           | 
        
        
          21
           (5)  | 
        
        
          22
           (1)  | 
        
        
          23
           | 
        
        
          24
           | 
        
        
          25
           | 
        
        
          26
           | 
        
      
| 
          27
           | 
        
        
          28
           | 
        
        
          29
           (10)  | 
        
        
          30
           (2)  | 
        
        
           
           | 
        
        
           
           | 
        
        
           
           | 
        
      
| 
     
      
      
      From: Rafael H B. <R.B...@du...> - 2008-04-30 14:45:48
      
     
   | 
Hi, Just two things that Jomi and I still have to answer from previous questions. About the Jason-OC development space. Of course you're welcome to use our SVN at SF, but we think the Jason-OC developers might feel more comfortable and "proud" creating their own project (sf is quite good, and so is google, I hear). But just let us know if you want space in our SVN. I guess the text above also answers the other question. About names... We'd slightly prefer if you used Jason rather than AgentSpeak, just to make it clear it's the same variant of AgentSpeak we are "talking" about. Then we would be the proud developers of Jason-J, and we would do our best to... show that Jason-J is - OF COURSE - so much better than Jason-OC and Jason-P. :D Just joking, as Jomi said, we'll give as much support as we can for Jason-*. Only problem is that California's Orange County might sue you for using Jason-OC. :D Problem for Jason-J is that you would be very popular on the web as people would think Jason-OC is a character in that TV show. :D BTW, Jason-OC is just a name suggestion, you should use whatever name you like of course, but if you make a reference to Jason in your project, that's great. Note that from now on, any discussion of Jason variants should be off this list, as I'm sure lots of people (probably the non-Brazilians in the list ;)) are not interested in this discussion. Best, Rafael On 30 Apr 2008, at 09:17, Jomi Fred Hubner wrote: > > HI all, > > I am really loving all this discussion! > > Some thoughts follow. > > Regarding the idea of a VM (as proposed by Augusto). For me it is a > great challenge/research project. We should have arguments to answer: > why do not use current VM as java or even WAM (used in prolog > interpreters)? > > Of course we can use JVM (that is indeed the current approach). I > guess > we could also use WAM (maybe with a better performance than JVM). We > can > even use real machines (translate AS to binary code). > > But, imo, we are not mature enough for a BDI VM. What features will we > add in that VM? If we see the history of some paradigms, the initial > approach is to base on others machines (virtual or not). The C++ comes > first. > > However, with the different experiences in developing BDI languages > (AgentSpeak in several interpreters, 2APL, ....), we can collect > arguments to answer the initial question. So, I am keen about new > approaches/initiatives/tentatives/.... > > Regarding porting (as proposed by Carlos), as Rafael said, we can take > the syntax and semantics of AS as published in the book (*that is an > important point*) and have different implementations (inspired or > not in > the sources of Jason). > > You will see that the basic syntax and semantics is quite simple > (packages asSyntax and asSemantics). The "size" of Jason comes from > customisations and internal actions (that can be ported latter). > > -- a small note about customisation: It is important for us to allow a > lot of customisations so that researches can try and evalutate > different > approaches effortlessly. > > So, I do like to support other implementations of ASL and I am > available > to explain some parts of the code (as you will see, not every thing is > commented, as usual :-) > > Cheers, > > Jomi > > Carlos Alexandre Queiroz wrote: >> Hi there, >> >> I like the idea of making ASL a standard, and yes, we intend porting >> Jason using C. then, we could wrapper to anything else (as stated by >> Augusto). >> >> Rafael, could you please send the "slim" version of Jason to me? I'd >> like to take a look and start our efforts using it. >> >> Regarding the problem of having two implementations of Jason, one in >> Java and another one in C, after the harder effort has been made (the >> port has been done), I guess, keeping both versions sync will be >> easier. If we keep enough developers in each of the versions. >> >> I am really keen on doing this port. I think, all Jason and agents >> community will win with that. It will mean more platform options to >> deploy Jason-based agents. >> >> Are you guys have any suggestions for the project's name? >> >> Augusto, if you still have your python parser for ASL, do you mind on >> sending it to me? >> >> Rafael and Jomi, do you think is better to create another project on >> google code or sf.net for hosting this new initiative or we could use >> the current jason project with a new branch on svn for hosting the C >> code? >> >> >> P.S lots of brazilians around here, huh? -:) >> >> thanks a lot, >> >> >> >> 2008/4/30 Augusto Radtke <ra...@ra...>: >>> Actually I like the fact of Jason being in Java, besides I never >>> made any >>> large project using this language I know it's advantages and I >>> think you >>> guys made it right. Actually Jason was one of the reasons I >>> choose Java for >>> a project I'm starting. The main problem is the burden that comes >>> with Java >>> and it's gigantic standard library that makes sometimes it >>> difficult to have >>> on small platforms like the iPhone. I'm really happy with Sun open >>> sourcing >>> Java completely, this will make it into a better direction of >>> portability >>> and package-ability but that can take a while. >>> >>> For me the best option would have Jason in a de-facto raw >>> language, that >>> is, ANSI C, and with that every other language can have easily >>> it's own >>> bindings and extensions (JNI for Java, extensions for Python, >>> wrapping in >>> Objective-C). But the cost of such a port as you said Rafael is >>> too high, >>> that's for sure. >>> >>> Maybe there is another possibility to run Jason on the iPhone, >>> that is >>> shipping the JVM together with Jason. But I think that shipping >>> the Sun's >>> JVM would be too difficult and another smaller and simple VM like >>> JamVM >>> could be used. Of course that would loose on the performance side, >>> as this >>> VM it's not optimizing like Sun's and it's mostly an interpreter. >>> Another >>> point it's that the person would need to ship some part of the >>> standard >>> library with it, so the person will need to check how much is Jason >>> dependable on the standard library. >>> >>> I think you guys made the right move on documenting all the effort >>> on the >>> book (although I didn't read I trust you guys) so if everyone want >>> to make >>> it own implementation can start from this point and the current >>> source code. >>> My thinking in proposing a standard it's just to try to make sure >>> that even >>> with side projects there is cooperation between then so everyone >>> can reuse >>> all the expertise and know-how you guys gained implementing Jason >>> from the >>> start, and after that the new project could return back this >>> expertise in >>> form of ideas and enhancements for the original Jason . I don't >>> want to push >>> any standards for it, I'm just sharing some ideas that could be >>> done, if >>> there is a brave enough heart for this. >>> >>> Augusto >>> >>> >>> >>> >>> On Apr 29, 2008, at 1:14 PM, Rafael H Bordini wrote: >>> >>> >>>> Dear Carlos, and Augusto, >>>> >>>> About 1 year ago, Jomi and I stripped down the Jason code because >>>> some colleagues in Liverpool needed some code for a joint project >>>> I have with them (for the AIL code, if you heard about it). >>>> This is a MUCH simplified version of Jason, without parsing, >>>> without much of the customisation mechanisms, etc. If you think >>>> it will help you to start the porting from this code, just >>>> let me know and I'll send it to you. However, many bugs have >>>> been fixed in Jason since then, so you'd have to trace all the >>>> SVN transactions to check which ones need to be added to your code. >>>> >>>> In general, Jomi and I think it's a pity to have to port all the >>>> code to another language. We are constantly improving Jason >>>> (hopefully >>>> the AgentSpeak variant won't change (much :D) more in the future, >>>> but >>>> many improvements in performance of the platform/interpretation of >>>> the language, features provided, customisation, etc) would be lost >>>> and had to be reimplemented over and over again. There is also >>>> another issue which is a Jason development relies both on >>>> AgentSpeak >>>> and Java (for the customisations, and internal actions, and >>>> possibly >>>> environment, for example). So a system developed for Jason-Java >>>> would >>>> not normally run in Jason-ObjC or Jason-Python. But then again, I'm >>>> certainly not in favour of forcing people to use a particular >>>> imperative >>>> language for the imperative side of their development. In fact, I >>>> have >>>> had >>>> researchers (in a visit to Edinburgh and also some other events >>>> including one in Brazil) asking me about or saying they would >>>> consider >>>> re-implementing Jason in Python (what won't Python fans do! :D). >>>> >>>> So, even if we standardise on the Jason variant of AgentSpeak >>>> (which >>>> has MANY extensions from Rao's original language) there will be >>>> features >>>> in one implementation an not in another. On the other hand, at >>>> least >>>> the main agent (high-level) code could be reused, that's >>>> certainly some >>>> advantage. I guess a de facto standard for the AgentSpeak variant >>>> across platforms should be the one we used in the Jason book (as >>>> interpreted >>>> by Jason 1.0.1). That's the most stable (as it is in print) full >>>> specification of a PRACTICAL variant of AgentSpeak, so a good >>>> candidate >>>> for the job. >>>> >>>> The project with Liverpool has produced something that could in the >>>> future >>>> become something like a VM for (various) agent languages including >>>> AgentSpeak, implemented in Java. I don't think the VM option will >>>> be >>>> practical though in the near future. I have a feeling ports will >>>> be done >>>> before an acceptable cross platform non-Java-based VM for >>>> AgentSpeak >>>> will appear. Beside the VM solves the AgentSpeak problem but not >>>> the >>>> other parts of realistic Jason projects (which WILL most likely >>>> involve >>>> Java or some other language besides the Jason AgentSpeak variant >>>> for >>>> the agent's high-level practical reasoning). >>>> >>>> BTW, it is SUCH a shame that Apple does not plan to allow Java on >>>> the >>>> iPhone (thanks for this info Jeff). Yet, I wonder if they won't >>>> have to >>>> eventually change their mind about this. I think porting Jason to >>>> another >>>> language is a MAJOR effort possibly not worth it if the only >>>> reason is >>>> to allow it to run in the iPhone specifically (many other mobile >>>> phone >>>> can run Java these days). >>>> >>>> All the best, >>>> >>>> Rafael >>>> >>>> >>>> On 29 Apr 2008, at 09:35, Carlos Alexandre Queiroz wrote: >>>> >>>>> >>>>> On 29/04/2008, at 5:26 PM, Rafael H Bordini wrote: >>>>> >>>>> >>>>>> Another interesting issue is this. So you cannot download >>>>>> interpreted >>>>>> files, but what if you run an agent and send a message to it >>>>>> with all >>>>>> the plans you want it to have in the plan library. I imagine >>>>>> there >>>>>> are >>>>>> other rules preventing this too? >>>>>> Or even network communication isn't allowed in iPhone >>>>>> applications? >>>>>> If >>>>>> so, it wouldn't be as fun to have Jason applications running on >>>>>> the >>>>>> iPhone... >>>>>> >>>>>> Rafael >>>>>> >>>>>> >>>>> Apps can open connection and receive requests without a problem. >>>>> We >>>>> can even use zeroconf protocol (aka bonjour) to register >>>>> services and >>>>> discovery services on the network. That is kinda cool, imagine >>>>> we can >>>>> register agents performing some services, and easily we can >>>>> discovery >>>>> them and then start communicating. I've used zeroconf before, it >>>>> is >>>>> very nice. Itunes uses bonjour to make personal libraries >>>>> discoverable >>>>> on network. We can use the C socket library or high-level objc >>>>> libraries. >>>>> >>>>> This link illustrates examples of that. >>> http://developer.apple.com/iphone/library/navigation/Topics/NetworkingInternet/index.html >>>>> In the worst case scenario we would end up with a BDI engine >>>>> running >>>>> natively on Macs supporting all Jason apps. >>>>> >>>>> At the first interaction we want to implement the basics of >>>>> Jason and >>>>> ASL, then we go to the full porting. This is why we need you >>>>> (Jason >>>>> developers and users) to help us out on deciding what should be >>>>> on the >>>>> first interaction :) >>>>> >>>>> >>>>> >>>>> >>>>>> Quoting Carlos Alexandre Queiroz <cax...@gm...>: >>>>>> >>>>>> >>>>>>> hi there, >>>>>>> >>>>>>> I am aware of that and this is one of the restrictions for >>>>>>> running >>>>>>> a >>>>>>> JVM on iPhone. >>>>>>> the license states: >>>>>>> >>>>>>> >>>>>>> APIs and Functionality: >>>>>>> >>>>>>> 3.3.1 Applications may only use Published APIs in the manner >>>>>>> prescribed by Apple >>>>>>> and must not use or call any unpublished or private APIs. >>>>>>> >>>>>>> 3.3.2 An Application may not itself install or launch other >>>>>>> executable >>>>>>> code by any >>>>>>> means, including without limitation through the use of a plug-in >>>>>>> architecture, calling other >>>>>>> frameworks, other APIs or otherwise. No interpreted code may be >>>>>>> downloaded and used in >>>>>>> an Application except for code that is interpreted and run by >>>>>>> Apple's >>>>>>> Published APIs and built- >>>>>>> in interpreter(s)." >>>>>>> >>>>>>> source: >>>>>>> >>>>>>> >>>>>>> >>> http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf >>>>>>> The thing is, what they define as an API? we intend to offer >>>>>>> source >>>>>>> >>>>>>> code to be compiled and run together with the iPhone app. It >>>>>>> will >>>>>>> not >>>>>>> be a framework to be installed on iPhone. As far as I know asl >>>>>>> files >>>>>>> are not executable. >>>>>>> >>>>>>> Maybe, you are seeing something I am not. >>>>>>> >>>>>>> >>>>>>> Thanks for raising the issue, >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: >>>>>>> >>>>>>> >>>>>>>> On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre >>>>>>>> >>>>>>> Queiroz >>>>>>> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi there, >>>>>>>>> >>>>>>>>> I and a friend of mine came up with this "crazy" idea of >>>>>>>>> porting >>>>>>>>> >>>>>>> >>>>>>>>> Jason >>>>>>>>> to run on iPhone natively. It means, porting Jason to objc. >>>>>>>>> We'd >>>>>>>>> >>>>>>> like >>>>>>> >>>>>>>>> to know what you think about this idea. In particular, the >>>>>>>>> >>>>>>> project >>>>>>> >>>>>>>>> leaders, how hard the implementation can be, any tips to use >>>>>>>>> on >>>>>>>>> porting, etc. And also any NOT IS A GOOD IDEA issues, are also >>>>>>>>> >>>>>>> >>>>>>>>> welcome. >>>>>>>>> >>>>>>>> Sorry to break the bad news, but Apple do not permit anything >>>>>>>> >>>>>>> that >>>>>>> >>>>>>>> runs programs. Jason is a programming language, so it's out. >>>>>>>> >>>>>>>> >>>>>>>> Jeff Schultz >>>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Carlos Alexandre Queiroz >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>> ------------------------------------------------------------------------- >>>>>>> This SF.net email is sponsored by the 2008 JavaOne(SM) >>>>>>> Conference >>>>>>> Don't miss this year's exciting event. There's still time to >>>>>>> save >>>>>>> $100. >>>>>>> Use priority code J8TL2D2. >>>>>>> >>>>>>> >>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >>>>>>> _______________________________________________ >>>>>>> Jason-users mailing list >>>>>>> Jas...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/jason-users >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> Thanks, >>>>> >>>>> Carlos Alexandre Queiroz >>>>> >>>>> >> >> >> > > -- > Jomi Fred Hubner > ENS Mines Saint-Etienne > 158 Cours Fauriel > 42023 Saint-Etienne Cedex 02 > France > http://www.emse.fr/~hubner > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users >  | 
| 
     
      
      
      From: Jomi F. H. <hu...@em...> - 2008-04-30 13:01:46
      
     
   | 
HI all, I am really loving all this discussion! Some thoughts follow. Regarding the idea of a VM (as proposed by Augusto). For me it is a great challenge/research project. We should have arguments to answer: why do not use current VM as java or even WAM (used in prolog interpreters)? Of course we can use JVM (that is indeed the current approach). I guess we could also use WAM (maybe with a better performance than JVM). We can even use real machines (translate AS to binary code). But, imo, we are not mature enough for a BDI VM. What features will we add in that VM? If we see the history of some paradigms, the initial approach is to base on others machines (virtual or not). The C++ comes first. However, with the different experiences in developing BDI languages (AgentSpeak in several interpreters, 2APL, ....), we can collect arguments to answer the initial question. So, I am keen about new approaches/initiatives/tentatives/.... Regarding porting (as proposed by Carlos), as Rafael said, we can take the syntax and semantics of AS as published in the book (*that is an important point*) and have different implementations (inspired or not in the sources of Jason). You will see that the basic syntax and semantics is quite simple (packages asSyntax and asSemantics). The "size" of Jason comes from customisations and internal actions (that can be ported latter). -- a small note about customisation: It is important for us to allow a lot of customisations so that researches can try and evalutate different approaches effortlessly. So, I do like to support other implementations of ASL and I am available to explain some parts of the code (as you will see, not every thing is commented, as usual :-) Cheers, Jomi Carlos Alexandre Queiroz wrote: > Hi there, > > I like the idea of making ASL a standard, and yes, we intend porting > Jason using C. then, we could wrapper to anything else (as stated by > Augusto). > > Rafael, could you please send the "slim" version of Jason to me? I'd > like to take a look and start our efforts using it. > > Regarding the problem of having two implementations of Jason, one in > Java and another one in C, after the harder effort has been made (the > port has been done), I guess, keeping both versions sync will be > easier. If we keep enough developers in each of the versions. > > I am really keen on doing this port. I think, all Jason and agents > community will win with that. It will mean more platform options to > deploy Jason-based agents. > > Are you guys have any suggestions for the project's name? > > Augusto, if you still have your python parser for ASL, do you mind on > sending it to me? > > Rafael and Jomi, do you think is better to create another project on > google code or sf.net for hosting this new initiative or we could use > the current jason project with a new branch on svn for hosting the C > code? > > > P.S lots of brazilians around here, huh? -:) > > thanks a lot, > > > > 2008/4/30 Augusto Radtke <ra...@ra...>: >> Actually I like the fact of Jason being in Java, besides I never made any >> large project using this language I know it's advantages and I think you >> guys made it right. Actually Jason was one of the reasons I choose Java for >> a project I'm starting. The main problem is the burden that comes with Java >> and it's gigantic standard library that makes sometimes it difficult to have >> on small platforms like the iPhone. I'm really happy with Sun open sourcing >> Java completely, this will make it into a better direction of portability >> and package-ability but that can take a while. >> >> For me the best option would have Jason in a de-facto raw language, that >> is, ANSI C, and with that every other language can have easily it's own >> bindings and extensions (JNI for Java, extensions for Python, wrapping in >> Objective-C). But the cost of such a port as you said Rafael is too high, >> that's for sure. >> >> Maybe there is another possibility to run Jason on the iPhone, that is >> shipping the JVM together with Jason. But I think that shipping the Sun's >> JVM would be too difficult and another smaller and simple VM like JamVM >> could be used. Of course that would loose on the performance side, as this >> VM it's not optimizing like Sun's and it's mostly an interpreter. Another >> point it's that the person would need to ship some part of the standard >> library with it, so the person will need to check how much is Jason >> dependable on the standard library. >> >> I think you guys made the right move on documenting all the effort on the >> book (although I didn't read I trust you guys) so if everyone want to make >> it own implementation can start from this point and the current source code. >> My thinking in proposing a standard it's just to try to make sure that even >> with side projects there is cooperation between then so everyone can reuse >> all the expertise and know-how you guys gained implementing Jason from the >> start, and after that the new project could return back this expertise in >> form of ideas and enhancements for the original Jason . I don't want to push >> any standards for it, I'm just sharing some ideas that could be done, if >> there is a brave enough heart for this. >> >> Augusto >> >> >> >> >> On Apr 29, 2008, at 1:14 PM, Rafael H Bordini wrote: >> >> >>> Dear Carlos, and Augusto, >>> >>> About 1 year ago, Jomi and I stripped down the Jason code because >>> some colleagues in Liverpool needed some code for a joint project >>> I have with them (for the AIL code, if you heard about it). >>> This is a MUCH simplified version of Jason, without parsing, >>> without much of the customisation mechanisms, etc. If you think >>> it will help you to start the porting from this code, just >>> let me know and I'll send it to you. However, many bugs have >>> been fixed in Jason since then, so you'd have to trace all the >>> SVN transactions to check which ones need to be added to your code. >>> >>> In general, Jomi and I think it's a pity to have to port all the >>> code to another language. We are constantly improving Jason (hopefully >>> the AgentSpeak variant won't change (much :D) more in the future, but >>> many improvements in performance of the platform/interpretation of >>> the language, features provided, customisation, etc) would be lost >>> and had to be reimplemented over and over again. There is also >>> another issue which is a Jason development relies both on AgentSpeak >>> and Java (for the customisations, and internal actions, and possibly >>> environment, for example). So a system developed for Jason-Java would >>> not normally run in Jason-ObjC or Jason-Python. But then again, I'm >>> certainly not in favour of forcing people to use a particular imperative >>> language for the imperative side of their development. In fact, I have >>> had >>> researchers (in a visit to Edinburgh and also some other events >>> including one in Brazil) asking me about or saying they would consider >>> re-implementing Jason in Python (what won't Python fans do! :D). >>> >>> So, even if we standardise on the Jason variant of AgentSpeak (which >>> has MANY extensions from Rao's original language) there will be features >>> in one implementation an not in another. On the other hand, at least >>> the main agent (high-level) code could be reused, that's certainly some >>> advantage. I guess a de facto standard for the AgentSpeak variant >>> across platforms should be the one we used in the Jason book (as >>> interpreted >>> by Jason 1.0.1). That's the most stable (as it is in print) full >>> specification of a PRACTICAL variant of AgentSpeak, so a good candidate >>> for the job. >>> >>> The project with Liverpool has produced something that could in the >>> future >>> become something like a VM for (various) agent languages including >>> AgentSpeak, implemented in Java. I don't think the VM option will be >>> practical though in the near future. I have a feeling ports will be done >>> before an acceptable cross platform non-Java-based VM for AgentSpeak >>> will appear. Beside the VM solves the AgentSpeak problem but not the >>> other parts of realistic Jason projects (which WILL most likely involve >>> Java or some other language besides the Jason AgentSpeak variant for >>> the agent's high-level practical reasoning). >>> >>> BTW, it is SUCH a shame that Apple does not plan to allow Java on the >>> iPhone (thanks for this info Jeff). Yet, I wonder if they won't have to >>> eventually change their mind about this. I think porting Jason to >>> another >>> language is a MAJOR effort possibly not worth it if the only reason is >>> to allow it to run in the iPhone specifically (many other mobile phone >>> can run Java these days). >>> >>> All the best, >>> >>> Rafael >>> >>> >>> On 29 Apr 2008, at 09:35, Carlos Alexandre Queiroz wrote: >>> >>>> >>>> On 29/04/2008, at 5:26 PM, Rafael H Bordini wrote: >>>> >>>> >>>>> Another interesting issue is this. So you cannot download interpreted >>>>> files, but what if you run an agent and send a message to it with all >>>>> the plans you want it to have in the plan library. I imagine there >>>>> are >>>>> other rules preventing this too? >>>>> Or even network communication isn't allowed in iPhone applications? >>>>> If >>>>> so, it wouldn't be as fun to have Jason applications running on the >>>>> iPhone... >>>>> >>>>> Rafael >>>>> >>>>> >>>> Apps can open connection and receive requests without a problem. We >>>> can even use zeroconf protocol (aka bonjour) to register services and >>>> discovery services on the network. That is kinda cool, imagine we can >>>> register agents performing some services, and easily we can discovery >>>> them and then start communicating. I've used zeroconf before, it is >>>> very nice. Itunes uses bonjour to make personal libraries discoverable >>>> on network. We can use the C socket library or high-level objc >>>> libraries. >>>> >>>> This link illustrates examples of that. >> http://developer.apple.com/iphone/library/navigation/Topics/NetworkingInternet/index.html >>>> In the worst case scenario we would end up with a BDI engine running >>>> natively on Macs supporting all Jason apps. >>>> >>>> At the first interaction we want to implement the basics of Jason and >>>> ASL, then we go to the full porting. This is why we need you (Jason >>>> developers and users) to help us out on deciding what should be on the >>>> first interaction :) >>>> >>>> >>>> >>>> >>>>> Quoting Carlos Alexandre Queiroz <cax...@gm...>: >>>>> >>>>> >>>>>> hi there, >>>>>> >>>>>> I am aware of that and this is one of the restrictions for running >>>>>> a >>>>>> JVM on iPhone. >>>>>> the license states: >>>>>> >>>>>> >>>>>> APIs and Functionality: >>>>>> >>>>>> 3.3.1 Applications may only use Published APIs in the manner >>>>>> prescribed by Apple >>>>>> and must not use or call any unpublished or private APIs. >>>>>> >>>>>> 3.3.2 An Application may not itself install or launch other >>>>>> executable >>>>>> code by any >>>>>> means, including without limitation through the use of a plug-in >>>>>> architecture, calling other >>>>>> frameworks, other APIs or otherwise. No interpreted code may be >>>>>> downloaded and used in >>>>>> an Application except for code that is interpreted and run by >>>>>> Apple's >>>>>> Published APIs and built- >>>>>> in interpreter(s)." >>>>>> >>>>>> source: >>>>>> >>>>>> >>>>>> >> http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf >>>>>> The thing is, what they define as an API? we intend to offer source >>>>>> >>>>>> code to be compiled and run together with the iPhone app. It will >>>>>> not >>>>>> be a framework to be installed on iPhone. As far as I know asl >>>>>> files >>>>>> are not executable. >>>>>> >>>>>> Maybe, you are seeing something I am not. >>>>>> >>>>>> >>>>>> Thanks for raising the issue, >>>>>> >>>>>> >>>>>> >>>>>> On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: >>>>>> >>>>>> >>>>>>> On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre >>>>>>> >>>>>> Queiroz >>>>>> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi there, >>>>>>>> >>>>>>>> I and a friend of mine came up with this "crazy" idea of porting >>>>>>>> >>>>>> >>>>>>>> Jason >>>>>>>> to run on iPhone natively. It means, porting Jason to objc. We'd >>>>>>>> >>>>>> like >>>>>> >>>>>>>> to know what you think about this idea. In particular, the >>>>>>>> >>>>>> project >>>>>> >>>>>>>> leaders, how hard the implementation can be, any tips to use on >>>>>>>> porting, etc. And also any NOT IS A GOOD IDEA issues, are also >>>>>>>> >>>>>> >>>>>>>> welcome. >>>>>>>> >>>>>>> Sorry to break the bad news, but Apple do not permit anything >>>>>>> >>>>>> that >>>>>> >>>>>>> runs programs. Jason is a programming language, so it's out. >>>>>>> >>>>>>> >>>>>>> Jeff Schultz >>>>>>> >>>>>> Thanks, >>>>>> >>>>>> Carlos Alexandre Queiroz >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >> ------------------------------------------------------------------------- >>>>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >>>>>> Don't miss this year's exciting event. There's still time to save >>>>>> $100. >>>>>> Use priority code J8TL2D2. >>>>>> >>>>>> >> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >>>>>> _______________________________________________ >>>>>> Jason-users mailing list >>>>>> Jas...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/jason-users >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> Thanks, >>>> >>>> Carlos Alexandre Queiroz >>>> >>>> > > > -- Jomi Fred Hubner ENS Mines Saint-Etienne 158 Cours Fauriel 42023 Saint-Etienne Cedex 02 France http://www.emse.fr/~hubner  | 
| 
     
      
      
      From: Carlos A. Q. <cax...@gm...> - 2008-04-29 23:24:23
      
     
   | 
Hi there, I like the idea of making ASL a standard, and yes, we intend porting Jason using C. then, we could wrapper to anything else (as stated by Augusto). Rafael, could you please send the "slim" version of Jason to me? I'd like to take a look and start our efforts using it. Regarding the problem of having two implementations of Jason, one in Java and another one in C, after the harder effort has been made (the port has been done), I guess, keeping both versions sync will be easier. If we keep enough developers in each of the versions. I am really keen on doing this port. I think, all Jason and agents community will win with that. It will mean more platform options to deploy Jason-based agents. Are you guys have any suggestions for the project's name? Augusto, if you still have your python parser for ASL, do you mind on sending it to me? Rafael and Jomi, do you think is better to create another project on google code or sf.net for hosting this new initiative or we could use the current jason project with a new branch on svn for hosting the C code? P.S lots of brazilians around here, huh? -:) thanks a lot, 2008/4/30 Augusto Radtke <ra...@ra...>: > Actually I like the fact of Jason being in Java, besides I never made any > large project using this language I know it's advantages and I think you > guys made it right. Actually Jason was one of the reasons I choose Java for > a project I'm starting. The main problem is the burden that comes with Java > and it's gigantic standard library that makes sometimes it difficult to have > on small platforms like the iPhone. I'm really happy with Sun open sourcing > Java completely, this will make it into a better direction of portability > and package-ability but that can take a while. > > For me the best option would have Jason in a de-facto raw language, that > is, ANSI C, and with that every other language can have easily it's own > bindings and extensions (JNI for Java, extensions for Python, wrapping in > Objective-C). But the cost of such a port as you said Rafael is too high, > that's for sure. > > Maybe there is another possibility to run Jason on the iPhone, that is > shipping the JVM together with Jason. But I think that shipping the Sun's > JVM would be too difficult and another smaller and simple VM like JamVM > could be used. Of course that would loose on the performance side, as this > VM it's not optimizing like Sun's and it's mostly an interpreter. Another > point it's that the person would need to ship some part of the standard > library with it, so the person will need to check how much is Jason > dependable on the standard library. > > I think you guys made the right move on documenting all the effort on the > book (although I didn't read I trust you guys) so if everyone want to make > it own implementation can start from this point and the current source code. > My thinking in proposing a standard it's just to try to make sure that even > with side projects there is cooperation between then so everyone can reuse > all the expertise and know-how you guys gained implementing Jason from the > start, and after that the new project could return back this expertise in > form of ideas and enhancements for the original Jason . I don't want to push > any standards for it, I'm just sharing some ideas that could be done, if > there is a brave enough heart for this. > > Augusto > > > > > On Apr 29, 2008, at 1:14 PM, Rafael H Bordini wrote: > > > > Dear Carlos, and Augusto, > > > > About 1 year ago, Jomi and I stripped down the Jason code because > > some colleagues in Liverpool needed some code for a joint project > > I have with them (for the AIL code, if you heard about it). > > This is a MUCH simplified version of Jason, without parsing, > > without much of the customisation mechanisms, etc. If you think > > it will help you to start the porting from this code, just > > let me know and I'll send it to you. However, many bugs have > > been fixed in Jason since then, so you'd have to trace all the > > SVN transactions to check which ones need to be added to your code. > > > > In general, Jomi and I think it's a pity to have to port all the > > code to another language. We are constantly improving Jason (hopefully > > the AgentSpeak variant won't change (much :D) more in the future, but > > many improvements in performance of the platform/interpretation of > > the language, features provided, customisation, etc) would be lost > > and had to be reimplemented over and over again. There is also > > another issue which is a Jason development relies both on AgentSpeak > > and Java (for the customisations, and internal actions, and possibly > > environment, for example). So a system developed for Jason-Java would > > not normally run in Jason-ObjC or Jason-Python. But then again, I'm > > certainly not in favour of forcing people to use a particular imperative > > language for the imperative side of their development. In fact, I have > > had > > researchers (in a visit to Edinburgh and also some other events > > including one in Brazil) asking me about or saying they would consider > > re-implementing Jason in Python (what won't Python fans do! :D). > > > > So, even if we standardise on the Jason variant of AgentSpeak (which > > has MANY extensions from Rao's original language) there will be features > > in one implementation an not in another. On the other hand, at least > > the main agent (high-level) code could be reused, that's certainly some > > advantage. I guess a de facto standard for the AgentSpeak variant > > across platforms should be the one we used in the Jason book (as > > interpreted > > by Jason 1.0.1). That's the most stable (as it is in print) full > > specification of a PRACTICAL variant of AgentSpeak, so a good candidate > > for the job. > > > > The project with Liverpool has produced something that could in the > > future > > become something like a VM for (various) agent languages including > > AgentSpeak, implemented in Java. I don't think the VM option will be > > practical though in the near future. I have a feeling ports will be done > > before an acceptable cross platform non-Java-based VM for AgentSpeak > > will appear. Beside the VM solves the AgentSpeak problem but not the > > other parts of realistic Jason projects (which WILL most likely involve > > Java or some other language besides the Jason AgentSpeak variant for > > the agent's high-level practical reasoning). > > > > BTW, it is SUCH a shame that Apple does not plan to allow Java on the > > iPhone (thanks for this info Jeff). Yet, I wonder if they won't have to > > eventually change their mind about this. I think porting Jason to > > another > > language is a MAJOR effort possibly not worth it if the only reason is > > to allow it to run in the iPhone specifically (many other mobile phone > > can run Java these days). > > > > All the best, > > > > Rafael > > > > > > On 29 Apr 2008, at 09:35, Carlos Alexandre Queiroz wrote: > > > > > > > > > > > On 29/04/2008, at 5:26 PM, Rafael H Bordini wrote: > > > > > > > > > > Another interesting issue is this. So you cannot download interpreted > > > > files, but what if you run an agent and send a message to it with all > > > > the plans you want it to have in the plan library. I imagine there > > > > are > > > > other rules preventing this too? > > > > Or even network communication isn't allowed in iPhone applications? > > > > If > > > > so, it wouldn't be as fun to have Jason applications running on the > > > > iPhone... > > > > > > > > Rafael > > > > > > > > > > > > > > Apps can open connection and receive requests without a problem. We > > > can even use zeroconf protocol (aka bonjour) to register services and > > > discovery services on the network. That is kinda cool, imagine we can > > > register agents performing some services, and easily we can discovery > > > them and then start communicating. I've used zeroconf before, it is > > > very nice. Itunes uses bonjour to make personal libraries discoverable > > > on network. We can use the C socket library or high-level objc > > > libraries. > > > > > > This link illustrates examples of that. > http://developer.apple.com/iphone/library/navigation/Topics/NetworkingInternet/index.html > > > > > > In the worst case scenario we would end up with a BDI engine running > > > natively on Macs supporting all Jason apps. > > > > > > At the first interaction we want to implement the basics of Jason and > > > ASL, then we go to the full porting. This is why we need you (Jason > > > developers and users) to help us out on deciding what should be on the > > > first interaction :) > > > > > > > > > > > > > > > > > > > > Quoting Carlos Alexandre Queiroz <cax...@gm...>: > > > > > > > > > > > > > > > > > > hi there, > > > > > > > > > > I am aware of that and this is one of the restrictions for running > > > > > a > > > > > JVM on iPhone. > > > > > the license states: > > > > > > > > > > > > > > > APIs and Functionality: > > > > > > > > > > 3.3.1 Applications may only use Published APIs in the manner > > > > > prescribed by Apple > > > > > and must not use or call any unpublished or private APIs. > > > > > > > > > > 3.3.2 An Application may not itself install or launch other > > > > > executable > > > > > code by any > > > > > means, including without limitation through the use of a plug-in > > > > > architecture, calling other > > > > > frameworks, other APIs or otherwise. No interpreted code may be > > > > > downloaded and used in > > > > > an Application except for code that is interpreted and run by > > > > > Apple's > > > > > Published APIs and built- > > > > > in interpreter(s)." > > > > > > > > > > source: > > > > > > > > > > > > > > > > > > > > http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf > > > > > > > > > > > > > > The thing is, what they define as an API? we intend to offer source > > > > > > > > > > code to be compiled and run together with the iPhone app. It will > > > > > not > > > > > be a framework to be installed on iPhone. As far as I know asl > > > > > files > > > > > are not executable. > > > > > > > > > > Maybe, you are seeing something I am not. > > > > > > > > > > > > > > > Thanks for raising the issue, > > > > > > > > > > > > > > > > > > > > On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: > > > > > > > > > > > > > > > > On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre > > > > > > > > > > > Queiroz > > > > > > > > > > > wrote: > > > > > > > > > > > > > Hi there, > > > > > > > > > > > > > > I and a friend of mine came up with this "crazy" idea of porting > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Jason > > > > > > > to run on iPhone natively. It means, porting Jason to objc. We'd > > > > > > > > > > > > > > > > > > like > > > > > > > > > > > > > > > > > > to know what you think about this idea. In particular, the > > > > > > > > > > > > > > > > > > project > > > > > > > > > > > > > > > > > > leaders, how hard the implementation can be, any tips to use on > > > > > > > porting, etc. And also any NOT IS A GOOD IDEA issues, are also > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > welcome. > > > > > > > > > > > > > > > > > > > Sorry to break the bad news, but Apple do not permit anything > > > > > > > > > > > that > > > > > > > > > > > runs programs. Jason is a programming language, so it's out. > > > > > > > > > > > > > > > > > > Jeff Schultz > > > > > > > > > > > > > > > > Thanks, > > > > > > > > > > Carlos Alexandre Queiroz > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > > > > > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > > > > Don't miss this year's exciting event. There's still time to save > > > > > $100. > > > > > Use priority code J8TL2D2. > > > > > > > > > > > > > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > > > > > > > > _______________________________________________ > > > > > Jason-users mailing list > > > > > Jas...@li... > > > > > https://lists.sourceforge.net/lists/listinfo/jason-users > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Thanks, > > > > > > Carlos Alexandre Queiroz > > > > > > > > > -- thanks, Carlos Alexandre Queiroz  | 
| 
     
      
      
      From: Augusto R. <ra...@ra...> - 2008-04-29 17:48:08
      
     
   | 
Actually I like the fact of Jason being in Java, besides I never made any large project using this language I know it's advantages and I think you guys made it right. Actually Jason was one of the reasons I choose Java for a project I'm starting. The main problem is the burden that comes with Java and it's gigantic standard library that makes sometimes it difficult to have on small platforms like the iPhone. I'm really happy with Sun open sourcing Java completely, this will make it into a better direction of portability and package-ability but that can take a while. For me the best option would have Jason in a de-facto raw language, that is, ANSI C, and with that every other language can have easily it's own bindings and extensions (JNI for Java, extensions for Python, wrapping in Objective-C). But the cost of such a port as you said Rafael is too high, that's for sure. Maybe there is another possibility to run Jason on the iPhone, that is shipping the JVM together with Jason. But I think that shipping the Sun's JVM would be too difficult and another smaller and simple VM like JamVM could be used. Of course that would loose on the performance side, as this VM it's not optimizing like Sun's and it's mostly an interpreter. Another point it's that the person would need to ship some part of the standard library with it, so the person will need to check how much is Jason dependable on the standard library. I think you guys made the right move on documenting all the effort on the book (although I didn't read I trust you guys) so if everyone want to make it own implementation can start from this point and the current source code. My thinking in proposing a standard it's just to try to make sure that even with side projects there is cooperation between then so everyone can reuse all the expertise and know-how you guys gained implementing Jason from the start, and after that the new project could return back this expertise in form of ideas and enhancements for the original Jason . I don't want to push any standards for it, I'm just sharing some ideas that could be done, if there is a brave enough heart for this. Augusto On Apr 29, 2008, at 1:14 PM, Rafael H Bordini wrote: > Dear Carlos, and Augusto, > > About 1 year ago, Jomi and I stripped down the Jason code because > some colleagues in Liverpool needed some code for a joint project > I have with them (for the AIL code, if you heard about it). > This is a MUCH simplified version of Jason, without parsing, > without much of the customisation mechanisms, etc. If you think > it will help you to start the porting from this code, just > let me know and I'll send it to you. However, many bugs have > been fixed in Jason since then, so you'd have to trace all the > SVN transactions to check which ones need to be added to your code. > > In general, Jomi and I think it's a pity to have to port all the > code to another language. We are constantly improving Jason (hopefully > the AgentSpeak variant won't change (much :D) more in the future, but > many improvements in performance of the platform/interpretation of > the language, features provided, customisation, etc) would be lost > and had to be reimplemented over and over again. There is also > another issue which is a Jason development relies both on AgentSpeak > and Java (for the customisations, and internal actions, and possibly > environment, for example). So a system developed for Jason-Java would > not normally run in Jason-ObjC or Jason-Python. But then again, I'm > certainly not in favour of forcing people to use a particular > imperative > language for the imperative side of their development. In fact, I have > had > researchers (in a visit to Edinburgh and also some other events > including one in Brazil) asking me about or saying they would consider > re-implementing Jason in Python (what won't Python fans do! :D). > > So, even if we standardise on the Jason variant of AgentSpeak (which > has MANY extensions from Rao's original language) there will be > features > in one implementation an not in another. On the other hand, at least > the main agent (high-level) code could be reused, that's certainly > some > advantage. I guess a de facto standard for the AgentSpeak variant > across platforms should be the one we used in the Jason book (as > interpreted > by Jason 1.0.1). That's the most stable (as it is in print) full > specification of a PRACTICAL variant of AgentSpeak, so a good > candidate > for the job. > > The project with Liverpool has produced something that could in the > future > become something like a VM for (various) agent languages including > AgentSpeak, implemented in Java. I don't think the VM option will be > practical though in the near future. I have a feeling ports will be > done > before an acceptable cross platform non-Java-based VM for AgentSpeak > will appear. Beside the VM solves the AgentSpeak problem but not the > other parts of realistic Jason projects (which WILL most likely > involve > Java or some other language besides the Jason AgentSpeak variant for > the agent's high-level practical reasoning). > > BTW, it is SUCH a shame that Apple does not plan to allow Java on the > iPhone (thanks for this info Jeff). Yet, I wonder if they won't have > to > eventually change their mind about this. I think porting Jason to > another > language is a MAJOR effort possibly not worth it if the only reason is > to allow it to run in the iPhone specifically (many other mobile phone > can run Java these days). > > All the best, > > Rafael > > > On 29 Apr 2008, at 09:35, Carlos Alexandre Queiroz wrote: >> >> >> On 29/04/2008, at 5:26 PM, Rafael H Bordini wrote: >> >>> Another interesting issue is this. So you cannot download >>> interpreted >>> files, but what if you run an agent and send a message to it with >>> all >>> the plans you want it to have in the plan library. I imagine there >>> are >>> other rules preventing this too? >>> Or even network communication isn't allowed in iPhone applications? >>> If >>> so, it wouldn't be as fun to have Jason applications running on the >>> iPhone... >>> >>> Rafael >>> >> >> Apps can open connection and receive requests without a problem. We >> can even use zeroconf protocol (aka bonjour) to register services and >> discovery services on the network. That is kinda cool, imagine we can >> register agents performing some services, and easily we can discovery >> them and then start communicating. I've used zeroconf before, it is >> very nice. Itunes uses bonjour to make personal libraries >> discoverable >> on network. We can use the C socket library or high-level objc >> libraries. >> >> This link illustrates examples of that. http://developer.apple.com/iphone/library/navigation/Topics/NetworkingInternet/index.html >> >> In the worst case scenario we would end up with a BDI engine running >> natively on Macs supporting all Jason apps. >> >> At the first interaction we want to implement the basics of Jason and >> ASL, then we go to the full porting. This is why we need you (Jason >> developers and users) to help us out on deciding what should be on >> the >> first interaction :) >> >> >> >>> >>> Quoting Carlos Alexandre Queiroz <cax...@gm...>: >>> >>>> >>>> hi there, >>>> >>>> I am aware of that and this is one of the restrictions for running >>>> a >>>> JVM on iPhone. >>>> the license states: >>>> >>>> >>>> APIs and Functionality: >>>> >>>> 3.3.1 Applications may only use Published APIs in the manner >>>> prescribed by Apple >>>> and must not use or call any unpublished or private APIs. >>>> >>>> 3.3.2 An Application may not itself install or launch other >>>> executable >>>> code by any >>>> means, including without limitation through the use of a plug-in >>>> architecture, calling other >>>> frameworks, other APIs or otherwise. No interpreted code may be >>>> downloaded and used in >>>> an Application except for code that is interpreted and run by >>>> Apple's >>>> Published APIs and built- >>>> in interpreter(s)." >>>> >>>> source: >>>> >>>> >>> http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf >>>> >>>> The thing is, what they define as an API? we intend to offer source >>>> >>>> code to be compiled and run together with the iPhone app. It will >>>> not >>>> be a framework to be installed on iPhone. As far as I know asl >>>> files >>>> are not executable. >>>> >>>> Maybe, you are seeing something I am not. >>>> >>>> >>>> Thanks for raising the issue, >>>> >>>> >>>> >>>> On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: >>>> >>>>> On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre >>>> Queiroz >>>>> wrote: >>>>>> Hi there, >>>>>> >>>>>> I and a friend of mine came up with this "crazy" idea of porting >>>> >>>>>> Jason >>>>>> to run on iPhone natively. It means, porting Jason to objc. We'd >>>> like >>>>>> to know what you think about this idea. In particular, the >>>> project >>>>>> leaders, how hard the implementation can be, any tips to use on >>>>>> porting, etc. And also any NOT IS A GOOD IDEA issues, are also >>>> >>>>>> welcome. >>>>> >>>>> Sorry to break the bad news, but Apple do not permit anything >>>> that >>>>> runs programs. Jason is a programming language, so it's out. >>>>> >>>>> >>>>> Jeff Schultz >>>> >>>> Thanks, >>>> >>>> Carlos Alexandre Queiroz >>>> >>>> >>>> >>>> >>>> >>>> >>> ------------------------------------------------------------------------- >>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >>>> Don't miss this year's exciting event. There's still time to save >>>> $100. >>>> Use priority code J8TL2D2. >>>> >>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >>>> _______________________________________________ >>>> Jason-users mailing list >>>> Jas...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jason-users >>>> >>>> >>> >>> >> >> Thanks, >> >> Carlos Alexandre Queiroz >>  | 
| 
     
      
      
      From: Rafael H B. <R.B...@du...> - 2008-04-29 16:16:14
      
     
   | 
Dear Carlos, and Augusto, About 1 year ago, Jomi and I stripped down the Jason code because some colleagues in Liverpool needed some code for a joint project I have with them (for the AIL code, if you heard about it). This is a MUCH simplified version of Jason, without parsing, without much of the customisation mechanisms, etc. If you think it will help you to start the porting from this code, just let me know and I'll send it to you. However, many bugs have been fixed in Jason since then, so you'd have to trace all the SVN transactions to check which ones need to be added to your code. In general, Jomi and I think it's a pity to have to port all the code to another language. We are constantly improving Jason (hopefully the AgentSpeak variant won't change (much :D) more in the future, but many improvements in performance of the platform/interpretation of the language, features provided, customisation, etc) would be lost and had to be reimplemented over and over again. There is also another issue which is a Jason development relies both on AgentSpeak and Java (for the customisations, and internal actions, and possibly environment, for example). So a system developed for Jason-Java would not normally run in Jason-ObjC or Jason-Python. But then again, I'm certainly not in favour of forcing people to use a particular imperative language for the imperative side of their development. In fact, I have had researchers (in a visit to Edinburgh and also some other events including one in Brazil) asking me about or saying they would consider re-implementing Jason in Python (what won't Python fans do! :D). So, even if we standardise on the Jason variant of AgentSpeak (which has MANY extensions from Rao's original language) there will be features in one implementation an not in another. On the other hand, at least the main agent (high-level) code could be reused, that's certainly some advantage. I guess a de facto standard for the AgentSpeak variant across platforms should be the one we used in the Jason book (as interpreted by Jason 1.0.1). That's the most stable (as it is in print) full specification of a PRACTICAL variant of AgentSpeak, so a good candidate for the job. The project with Liverpool has produced something that could in the future become something like a VM for (various) agent languages including AgentSpeak, implemented in Java. I don't think the VM option will be practical though in the near future. I have a feeling ports will be done before an acceptable cross platform non-Java-based VM for AgentSpeak will appear. Beside the VM solves the AgentSpeak problem but not the other parts of realistic Jason projects (which WILL most likely involve Java or some other language besides the Jason AgentSpeak variant for the agent's high-level practical reasoning). BTW, it is SUCH a shame that Apple does not plan to allow Java on the iPhone (thanks for this info Jeff). Yet, I wonder if they won't have to eventually change their mind about this. I think porting Jason to another language is a MAJOR effort possibly not worth it if the only reason is to allow it to run in the iPhone specifically (many other mobile phone can run Java these days). All the best, Rafael On 29 Apr 2008, at 09:35, Carlos Alexandre Queiroz wrote: > > > On 29/04/2008, at 5:26 PM, Rafael H Bordini wrote: > >> Another interesting issue is this. So you cannot download interpreted >> files, but what if you run an agent and send a message to it with all >> the plans you want it to have in the plan library. I imagine there >> are >> other rules preventing this too? >> Or even network communication isn't allowed in iPhone applications? >> If >> so, it wouldn't be as fun to have Jason applications running on the >> iPhone... >> >> Rafael >> > > Apps can open connection and receive requests without a problem. We > can even use zeroconf protocol (aka bonjour) to register services and > discovery services on the network. That is kinda cool, imagine we can > register agents performing some services, and easily we can discovery > them and then start communicating. I've used zeroconf before, it is > very nice. Itunes uses bonjour to make personal libraries discoverable > on network. We can use the C socket library or high-level objc > libraries. > > This link illustrates examples of that. http://developer.apple.com/iphone/library/navigation/Topics/NetworkingInternet/index.html > > In the worst case scenario we would end up with a BDI engine running > natively on Macs supporting all Jason apps. > > At the first interaction we want to implement the basics of Jason and > ASL, then we go to the full porting. This is why we need you (Jason > developers and users) to help us out on deciding what should be on the > first interaction :) > > > >> >> Quoting Carlos Alexandre Queiroz <cax...@gm...>: >> >>> >>> hi there, >>> >>> I am aware of that and this is one of the restrictions for running >>> a >>> JVM on iPhone. >>> the license states: >>> >>> >>> APIs and Functionality: >>> >>> 3.3.1 Applications may only use Published APIs in the manner >>> prescribed by Apple >>> and must not use or call any unpublished or private APIs. >>> >>> 3.3.2 An Application may not itself install or launch other >>> executable >>> code by any >>> means, including without limitation through the use of a plug-in >>> architecture, calling other >>> frameworks, other APIs or otherwise. No interpreted code may be >>> downloaded and used in >>> an Application except for code that is interpreted and run by >>> Apple's >>> Published APIs and built- >>> in interpreter(s)." >>> >>> source: >>> >>> >> http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf >>> >>> The thing is, what they define as an API? we intend to offer source >>> >>> code to be compiled and run together with the iPhone app. It will >>> not >>> be a framework to be installed on iPhone. As far as I know asl >>> files >>> are not executable. >>> >>> Maybe, you are seeing something I am not. >>> >>> >>> Thanks for raising the issue, >>> >>> >>> >>> On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: >>> >>>> On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre >>> Queiroz >>>> wrote: >>>>> Hi there, >>>>> >>>>> I and a friend of mine came up with this "crazy" idea of porting >>> >>>>> Jason >>>>> to run on iPhone natively. It means, porting Jason to objc. We'd >>> like >>>>> to know what you think about this idea. In particular, the >>> project >>>>> leaders, how hard the implementation can be, any tips to use on >>>>> porting, etc. And also any NOT IS A GOOD IDEA issues, are also >>> >>>>> welcome. >>>> >>>> Sorry to break the bad news, but Apple do not permit anything >>> that >>>> runs programs. Jason is a programming language, so it's out. >>>> >>>> >>>> Jeff Schultz >>> >>> Thanks, >>> >>> Carlos Alexandre Queiroz >>> >>> >>> >>> >>> >>> >> ------------------------------------------------------------------------- >>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >>> Don't miss this year's exciting event. There's still time to save >>> $100. >>> Use priority code J8TL2D2. >>> >> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >>> _______________________________________________ >>> Jason-users mailing list >>> Jas...@li... >>> https://lists.sourceforge.net/lists/listinfo/jason-users >>> >>> >> >> > > Thanks, > > Carlos Alexandre Queiroz > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users >  | 
| 
     
      
      
      From: Augusto R. <ra...@ra...> - 2008-04-29 14:37:09
      
     
   | 
Hello! First I would like to say that I have an iPhone and I can help with your efforts. Jomi, I know you are far away from Blumenau but I talked with Dalton from FURB (I'm back to Brazil) and they will receive some money from a project to study software development on smart appliances, including some iPhones. That means you guys maybe get some more developers for this project. Now come my $0.02. It seems for various reasons, but mostly to have a wide range of applications that Jason will soon be ported to another language/platform. While I was a student with Jomi I did made a parser of ASL in Python, but mostly for study purposes and now there is some group that would like to put some effort porting it to Objective-C/C. That's one of the problems and feature of open source, segmentation, but I think you guys can walk in the same direction if some kind of standard is adopted. What about trying to make the ASL language a standard? I don't mean submitting to an standards forum like ISO or IEEE, but generating a document like the Java Language Specification dealing with the language issues and that specification can be followed by all the projects involved. I think it also could be a good idea to make ASL codes compilable to run on a target VM, that would be useful to create binary compatibility between projects. I know every project has it own issues (you won't get the sensors of the iPhone on a regular desktop) but having a standard will make developers from each project to share problems and features mutually helping both realms. Making an language like ASL run on a VM won't be easy for sure, mainly because of the integration with the native language the current project is developed, like Java or Objective-C (when you need your environment and the external actions) but I think we have an example like JNI to follow. They have a native language calls available at multiple platforms running on the JVM. Of course the Jason VM would be more difficult to create because it will have to make something similar to JNI to deal with the environment definition where the agents would run. What you guys think about? On Apr 29, 2008, at 10:08 AM, Jomi Fred Hubner wrote: > Hi, > > I don't have an iPhone yet because there is no Jason agents running in > it :-) > > Another issue about the migration to iPhone is the communication > infrastructure. The Jason project focus on the interpretation of ASL, > the communication is delegated to JADE or SACI. There is also a > centralised infrastructure, but I guess this one is not interesting > for > your project. > > To run the agents on iPhone you will also need to either port jade/ > saci > to iPhone or develop a new communication infrastructure (which, I > guess, > is not a difficult job since it is basically send/receive messages). > > Cheers, > > Jomi > > > > Rafael H Bordini wrote: >> Hi, >> >> First, let me say that I have an iPhone so I can't say how happy I'd >> be if someone allowed Jason to run on it! :D >> >> I think translating all the code to objc would be a huge effort, it's >> a lot of code... >> >> But it seems to me that if all the API which the Jason API itself >> relies upon gets published (if that's possible) then we could publish >> the Jason API too (using the other APIs "in the manner that Apple"). >> Or Published API means APIs provided BY Apple itself so no new APIs >> can be published? >> >> The issue that Jeff seemed to be referring to from the rules quoted >> by >> Carlos is the issue of interpreted files. So you can't have the >> AgentSpeak source codes downloaded and interpreted by Jason but it's >> dead easy to pre-compile them into (Java or whatever) structures. >> This >> would allow Jason-*based* *applications* to be downloaded and run on >> the iPhone. I don't think anyone who would want to program and do >> software development typing on the iPhone (bad!) keyboard anyway. :D >> So the idea would be to publish the Jason API (if possible) and >> precompile applications to be individually published/downloadable >> too. >> >> Note however that I have not read the rules and I know nothing of how >> iPhone applications/publishing actually works so what I said above >> might still not be possible. >> >> But are you sure a JVM cannot be run on the iPhone? Surely they >> cannot >> plan to keep this restriction for ever? >> >> Cheers, >> >> Rafael >> >> >> >> Quoting Carlos Alexandre Queiroz <cax...@gm...>: >> >>> hi there, >>> >>> I am aware of that and this is one of the restrictions for running >>> a >>> JVM on iPhone. >>> the license states: >>> >>> >>> APIs and Functionality: >>> >>> 3.3.1 Applications may only use Published APIs in the manner >>> prescribed by Apple >>> and must not use or call any unpublished or private APIs. >>> >>> 3.3.2 An Application may not itself install or launch other >>> executable >>> code by any >>> means, including without limitation through the use of a plug-in >>> architecture, calling other >>> frameworks, other APIs or otherwise. No interpreted code may be >>> downloaded and used in >>> an Application except for code that is interpreted and run by >>> Apple's >>> Published APIs and built- >>> in interpreter(s)." >>> >>> source: >>> >>> >> http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf >>> The thing is, what they define as an API? we intend to offer source >>> >>> code to be compiled and run together with the iPhone app. It will >>> not >>> be a framework to be installed on iPhone. As far as I know asl >>> files >>> are not executable. >>> >>> Maybe, you are seeing something I am not. >>> >>> >>> Thanks for raising the issue, >>> >>> >>> >>> On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: >>> >>>> On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre >>> Queiroz >>>> wrote: >>>>> Hi there, >>>>> >>>>> I and a friend of mine came up with this "crazy" idea of porting >>> >>>>> Jason >>>>> to run on iPhone natively. It means, porting Jason to objc. We'd >>> like >>>>> to know what you think about this idea. In particular, the >>> project >>>>> leaders, how hard the implementation can be, any tips to use on >>>>> porting, etc. And also any NOT IS A GOOD IDEA issues, are also >>>>> welcome. >>>> Sorry to break the bad news, but Apple do not permit anything >>> that >>>> runs programs. Jason is a programming language, so it's out. >>>> >>>> >>>> Jeff Schultz >>> Thanks, >>> >>> Carlos Alexandre Queiroz >>> >>> >>> >>> >>> >>> >> ------------------------------------------------------------------------- >>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >>> Don't miss this year's exciting event. There's still time to save >>> $100. >>> Use priority code J8TL2D2. >>> >> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >>> _______________________________________________ >>> Jason-users mailing list >>> Jas...@li... >>> https://lists.sourceforge.net/lists/listinfo/jason-users >>> >>> >> >> >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >> Don't miss this year's exciting event. There's still time to save >> $100. >> Use priority code J8TL2D2. >> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >> _______________________________________________ >> Jason-users mailing list >> Jas...@li... >> https://lists.sourceforge.net/lists/listinfo/jason-users > > -- > Jomi Fred Hubner > ENS Mines Saint-Etienne > 158 Cours Fauriel > 42023 Saint-Etienne Cedex 02 > France > http://www.emse.fr/~hubner > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users  | 
| 
     
      
      
      From: Jomi F. H. <hu...@em...> - 2008-04-29 13:05:14
      
     
   | 
Hi, I don't have an iPhone yet because there is no Jason agents running in it :-) Another issue about the migration to iPhone is the communication infrastructure. The Jason project focus on the interpretation of ASL, the communication is delegated to JADE or SACI. There is also a centralised infrastructure, but I guess this one is not interesting for your project. To run the agents on iPhone you will also need to either port jade/saci to iPhone or develop a new communication infrastructure (which, I guess, is not a difficult job since it is basically send/receive messages). Cheers, Jomi Rafael H Bordini wrote: > Hi, > > First, let me say that I have an iPhone so I can't say how happy I'd > be if someone allowed Jason to run on it! :D > > I think translating all the code to objc would be a huge effort, it's > a lot of code... > > But it seems to me that if all the API which the Jason API itself > relies upon gets published (if that's possible) then we could publish > the Jason API too (using the other APIs "in the manner that Apple"). > Or Published API means APIs provided BY Apple itself so no new APIs > can be published? > > The issue that Jeff seemed to be referring to from the rules quoted by > Carlos is the issue of interpreted files. So you can't have the > AgentSpeak source codes downloaded and interpreted by Jason but it's > dead easy to pre-compile them into (Java or whatever) structures. This > would allow Jason-*based* *applications* to be downloaded and run on > the iPhone. I don't think anyone who would want to program and do > software development typing on the iPhone (bad!) keyboard anyway. :D > So the idea would be to publish the Jason API (if possible) and > precompile applications to be individually published/downloadable too. > > Note however that I have not read the rules and I know nothing of how > iPhone applications/publishing actually works so what I said above > might still not be possible. > > But are you sure a JVM cannot be run on the iPhone? Surely they cannot > plan to keep this restriction for ever? > > Cheers, > > Rafael > > > > Quoting Carlos Alexandre Queiroz <cax...@gm...>: > >> hi there, >> >> I am aware of that and this is one of the restrictions for running >> a >> JVM on iPhone. >> the license states: >> >> >> APIs and Functionality: >> >> 3.3.1 Applications may only use Published APIs in the manner >> prescribed by Apple >> and must not use or call any unpublished or private APIs. >> >> 3.3.2 An Application may not itself install or launch other >> executable >> code by any >> means, including without limitation through the use of a plug-in >> architecture, calling other >> frameworks, other APIs or otherwise. No interpreted code may be >> downloaded and used in >> an Application except for code that is interpreted and run by >> Apple's >> Published APIs and built- >> in interpreter(s)." >> >> source: >> >> > http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf >> The thing is, what they define as an API? we intend to offer source >> >> code to be compiled and run together with the iPhone app. It will >> not >> be a framework to be installed on iPhone. As far as I know asl >> files >> are not executable. >> >> Maybe, you are seeing something I am not. >> >> >> Thanks for raising the issue, >> >> >> >> On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: >> >>> On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre >> Queiroz >>> wrote: >>>> Hi there, >>>> >>>> I and a friend of mine came up with this "crazy" idea of porting >> >>>> Jason >>>> to run on iPhone natively. It means, porting Jason to objc. We'd >> like >>>> to know what you think about this idea. In particular, the >> project >>>> leaders, how hard the implementation can be, any tips to use on >>>> porting, etc. And also any NOT IS A GOOD IDEA issues, are also >>>> welcome. >>> Sorry to break the bad news, but Apple do not permit anything >> that >>> runs programs. Jason is a programming language, so it's out. >>> >>> >>> Jeff Schultz >> Thanks, >> >> Carlos Alexandre Queiroz >> >> >> >> >> >> > ------------------------------------------------------------------------- >> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >> Don't miss this year's exciting event. There's still time to save >> $100. >> Use priority code J8TL2D2. >> > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >> _______________________________________________ >> Jason-users mailing list >> Jas...@li... >> https://lists.sourceforge.net/lists/listinfo/jason-users >> >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users -- Jomi Fred Hubner ENS Mines Saint-Etienne 158 Cours Fauriel 42023 Saint-Etienne Cedex 02 France http://www.emse.fr/~hubner  | 
| 
     
      
      
      From: Carlos A. Q. <cax...@gm...> - 2008-04-29 08:36:18
      
     
   | 
On 29/04/2008, at 5:26 PM, Rafael H Bordini wrote: > Another interesting issue is this. So you cannot download interpreted > files, but what if you run an agent and send a message to it with all > the plans you want it to have in the plan library. I imagine there are > other rules preventing this too? > Or even network communication isn't allowed in iPhone applications? If > so, it wouldn't be as fun to have Jason applications running on the > iPhone... > > Rafael > Apps can open connection and receive requests without a problem. We can even use zeroconf protocol (aka bonjour) to register services and discovery services on the network. That is kinda cool, imagine we can register agents performing some services, and easily we can discovery them and then start communicating. I've used zeroconf before, it is very nice. Itunes uses bonjour to make personal libraries discoverable on network. We can use the C socket library or high-level objc libraries. This link illustrates examples of that. http://developer.apple.com/iphone/library/navigation/Topics/NetworkingInternet/index.html In the worst case scenario we would end up with a BDI engine running natively on Macs supporting all Jason apps. At the first interaction we want to implement the basics of Jason and ASL, then we go to the full porting. This is why we need you (Jason developers and users) to help us out on deciding what should be on the first interaction :) > > Quoting Carlos Alexandre Queiroz <cax...@gm...>: > >> >> hi there, >> >> I am aware of that and this is one of the restrictions for running >> a >> JVM on iPhone. >> the license states: >> >> >> APIs and Functionality: >> >> 3.3.1 Applications may only use Published APIs in the manner >> prescribed by Apple >> and must not use or call any unpublished or private APIs. >> >> 3.3.2 An Application may not itself install or launch other >> executable >> code by any >> means, including without limitation through the use of a plug-in >> architecture, calling other >> frameworks, other APIs or otherwise. No interpreted code may be >> downloaded and used in >> an Application except for code that is interpreted and run by >> Apple's >> Published APIs and built- >> in interpreter(s)." >> >> source: >> >> > http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf >> >> The thing is, what they define as an API? we intend to offer source >> >> code to be compiled and run together with the iPhone app. It will >> not >> be a framework to be installed on iPhone. As far as I know asl >> files >> are not executable. >> >> Maybe, you are seeing something I am not. >> >> >> Thanks for raising the issue, >> >> >> >> On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: >> >>> On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre >> Queiroz >>> wrote: >>>> Hi there, >>>> >>>> I and a friend of mine came up with this "crazy" idea of porting >> >>>> Jason >>>> to run on iPhone natively. It means, porting Jason to objc. We'd >> like >>>> to know what you think about this idea. In particular, the >> project >>>> leaders, how hard the implementation can be, any tips to use on >>>> porting, etc. And also any NOT IS A GOOD IDEA issues, are also >> >>>> welcome. >>> >>> Sorry to break the bad news, but Apple do not permit anything >> that >>> runs programs. Jason is a programming language, so it's out. >>> >>> >>> Jeff Schultz >> >> Thanks, >> >> Carlos Alexandre Queiroz >> >> >> >> >> >> > ------------------------------------------------------------------------- >> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >> Don't miss this year's exciting event. There's still time to save >> $100. >> Use priority code J8TL2D2. >> > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >> _______________________________________________ >> Jason-users mailing list >> Jas...@li... >> https://lists.sourceforge.net/lists/listinfo/jason-users >> >> > > Thanks, Carlos Alexandre Queiroz  | 
| 
     
      
      
      From: Rafael H B. <r.b...@du...> - 2008-04-29 07:27:09
      
     
   | 
Another interesting issue is this. So you cannot download interpreted files, but what if you run an agent and send a message to it with all the plans you want it to have in the plan library. I imagine there are other rules preventing this too? Or even network communication isn't allowed in iPhone applications? If so, it wouldn't be as fun to have Jason applications running on the iPhone... Rafael Quoting Carlos Alexandre Queiroz <cax...@gm...>: > > hi there, > > I am aware of that and this is one of the restrictions for running > a > JVM on iPhone. > the license states: > > > APIs and Functionality: > > 3.3.1 Applications may only use Published APIs in the manner > prescribed by Apple > and must not use or call any unpublished or private APIs. > > 3.3.2 An Application may not itself install or launch other > executable > code by any > means, including without limitation through the use of a plug-in > architecture, calling other > frameworks, other APIs or otherwise. No interpreted code may be > downloaded and used in > an Application except for code that is interpreted and run by > Apple's > Published APIs and built- > in interpreter(s)." > > source: > > http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf > > The thing is, what they define as an API? we intend to offer source > > code to be compiled and run together with the iPhone app. It will > not > be a framework to be installed on iPhone. As far as I know asl > files > are not executable. > > Maybe, you are seeing something I am not. > > > Thanks for raising the issue, > > > > On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: > > > On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre > Queiroz > > wrote: > >> Hi there, > >> > >> I and a friend of mine came up with this "crazy" idea of porting > > >> Jason > >> to run on iPhone natively. It means, porting Jason to objc. We'd > like > >> to know what you think about this idea. In particular, the > project > >> leaders, how hard the implementation can be, any tips to use on > >> porting, etc. And also any NOT IS A GOOD IDEA issues, are also > > >> welcome. > > > > Sorry to break the bad news, but Apple do not permit anything > that > > runs programs. Jason is a programming language, so it's out. > > > > > > Jeff Schultz > > Thanks, > > Carlos Alexandre Queiroz > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users > >  | 
| 
     
      
      
      From: Rafael H B. <r.b...@du...> - 2008-04-29 06:57:55
      
     
   | 
Hi, First, let me say that I have an iPhone so I can't say how happy I'd be if someone allowed Jason to run on it! :D I think translating all the code to objc would be a huge effort, it's a lot of code... But it seems to me that if all the API which the Jason API itself relies upon gets published (if that's possible) then we could publish the Jason API too (using the other APIs "in the manner that Apple"). Or Published API means APIs provided BY Apple itself so no new APIs can be published? The issue that Jeff seemed to be referring to from the rules quoted by Carlos is the issue of interpreted files. So you can't have the AgentSpeak source codes downloaded and interpreted by Jason but it's dead easy to pre-compile them into (Java or whatever) structures. This would allow Jason-*based* *applications* to be downloaded and run on the iPhone. I don't think anyone who would want to program and do software development typing on the iPhone (bad!) keyboard anyway. :D So the idea would be to publish the Jason API (if possible) and precompile applications to be individually published/downloadable too. Note however that I have not read the rules and I know nothing of how iPhone applications/publishing actually works so what I said above might still not be possible. But are you sure a JVM cannot be run on the iPhone? Surely they cannot plan to keep this restriction for ever? Cheers, Rafael Quoting Carlos Alexandre Queiroz <cax...@gm...>: > > hi there, > > I am aware of that and this is one of the restrictions for running > a > JVM on iPhone. > the license states: > > > APIs and Functionality: > > 3.3.1 Applications may only use Published APIs in the manner > prescribed by Apple > and must not use or call any unpublished or private APIs. > > 3.3.2 An Application may not itself install or launch other > executable > code by any > means, including without limitation through the use of a plug-in > architecture, calling other > frameworks, other APIs or otherwise. No interpreted code may be > downloaded and used in > an Application except for code that is interpreted and run by > Apple's > Published APIs and built- > in interpreter(s)." > > source: > > http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf > > The thing is, what they define as an API? we intend to offer source > > code to be compiled and run together with the iPhone app. It will > not > be a framework to be installed on iPhone. As far as I know asl > files > are not executable. > > Maybe, you are seeing something I am not. > > > Thanks for raising the issue, > > > > On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: > > > On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre > Queiroz > > wrote: > >> Hi there, > >> > >> I and a friend of mine came up with this "crazy" idea of porting > > >> Jason > >> to run on iPhone natively. It means, porting Jason to objc. We'd > like > >> to know what you think about this idea. In particular, the > project > >> leaders, how hard the implementation can be, any tips to use on > >> porting, etc. And also any NOT IS A GOOD IDEA issues, are also > > >> welcome. > > > > Sorry to break the bad news, but Apple do not permit anything > that > > runs programs. Jason is a programming language, so it's out. > > > > > > Jeff Schultz > > Thanks, > > Carlos Alexandre Queiroz > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users > >  | 
| 
     
      
      
      From: Carlos A. Q. <cax...@gm...> - 2008-04-29 01:30:24
      
     
   | 
hi there, I am aware of that and this is one of the restrictions for running a JVM on iPhone. the license states: APIs and Functionality: 3.3.1 Applications may only use Published APIs in the manner prescribed by Apple and must not use or call any unpublished or private APIs. 3.3.2 An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple's Published APIs and built- in interpreter(s)." source: http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk/iphone_sdk_agt_3308_ea0425a_copy.pdf The thing is, what they define as an API? we intend to offer source code to be compiled and run together with the iPhone app. It will not be a framework to be installed on iPhone. As far as I know asl files are not executable. Maybe, you are seeing something I am not. Thanks for raising the issue, On 29/04/2008, at 10:52 AM, Jeff Schultz wrote: > On Tue, Apr 29, 2008 at 10:24:21AM +1000, Carlos Alexandre Queiroz > wrote: >> Hi there, >> >> I and a friend of mine came up with this "crazy" idea of porting >> Jason >> to run on iPhone natively. It means, porting Jason to objc. We'd like >> to know what you think about this idea. In particular, the project >> leaders, how hard the implementation can be, any tips to use on >> porting, etc. And also any NOT IS A GOOD IDEA issues, are also >> welcome. > > Sorry to break the bad news, but Apple do not permit anything that > runs programs. Jason is a programming language, so it's out. > > > Jeff Schultz Thanks, Carlos Alexandre Queiroz  | 
| 
     
      
      
      From: Carlos A. Q. <cax...@gm...> - 2008-04-29 00:24:29
      
     
   | 
Hi there, I and a friend of mine came up with this "crazy" idea of porting Jason to run on iPhone natively. It means, porting Jason to objc. We'd like to know what you think about this idea. In particular, the project leaders, how hard the implementation can be, any tips to use on porting, etc. And also any NOT IS A GOOD IDEA issues, are also welcome. this project has two main intents: 1 - use the iphone and the bdi engine for some domain apps. 2 - Academic nature. Evaluate how a BDI engine running agentspeak would perform in a embedded environment. And, of course, the engine would be open source using the same license of Jason. Thanks in advance, Carlos Alexandre Queiroz  | 
| 
     
      
      
      From: Rafael H B. <r.b...@du...> - 2008-04-22 08:43:11
      
     
   | 
Hi all, In a discussion, Jomi and I came up with a new exercise which some of you reading the book may want to do (but it's rather advanced). The "unachieve" performative as in the default Jason implementation allow an agent to ask another agent to drop any of its goals (provided the message is "socially acceptable" for that agent). There is an exercise in the book asking for another performative where you need to check the source annotation on the goal before dropping it. Yet another thing that could be wanted in some applications (and this is the new exercise) is to drop a goal only if the goal was initially requested by that agent or a CONSEQUENCE of that goal. Consider the example intention of agent ag2: +!g2[source(self)] : ... <- ... . --- +!g1[source(ag1)] : ... <- ...; !g2; ... . In this example, ag1 asked the agent to achieve g1; it was ag2's choice to use a course of action which require it to achieve g2. So g2 is a goal of ag2 but as a consequence of the goal g1 delegated by ag1. So the exercise requires retrieving the source of the triggering event of the bottom plan in the intention stack! In general, an agent could in principle at least ASK another agent to drop any goal. There are many considerations that an agent could want to use to decide whether to drop a goal as requested or not; this would involve having plans to decide the best course of action. Implementations of this kind of behaviour would be very interesting too. Cheers, Rafael  | 
| 
     
      
      
      From: Rafael H B. <R.B...@du...> - 2008-04-21 12:52:11
      
     
   | 
Hi all,
Jomi reminded me that there is an exercise in the book suggesting the  
use of fail_goal instead of drop_desire. This allows a different  
behaviour than what Jomi described below. With this, the plan for !g2  
would be terminated and a failure of !g1 (note it's g1 here) would be  
created; with a plan for -!g1 we could attempt !g1 again: there could  
be e.g. some way of achieving g1 which does not depend on g2, just  
note that the programmer needs to ensure that no plan with g2 will be  
attempted next time the agent tries to achieve g1, if that was the  
expected behaviour.
Cheers,
Rafael
On 21 Apr 2008, at 13:27, Jomi Fred Hubner wrote:
>
> We can also image the step (5) as
>
> (5) ag2 receives an 'unachieve !g2' message from ag1
>    -- note that it is unachieve !g2 and not !g1
>
> In that case !g1 will be also dropped since the unachieve uses the
> .drop_desire intention. .drop_desire(g2) "kills" the intention where  
> g2
> appears and no failure event is produced.
>
> Regards,
>
> Jomi
>
>
> Adil Hussain wrote:
>> Rafael, I will try those exercises.
>>
>> Jomi, that is interesting.
>>
>> A hypothetical question: What if
>> (1) an agent ag1 delegated a goal !g1 to an agent ag2;
>> (2) ag2 began executing !g1 (as delegated by ag1);
>> (3) ag2 reached a stage in the plan body of !g1 where it had to  
>> execute !g2;
>> (4) ag2 is in the process of executing !g2 (called from !g1);
>> (5) ag2 receives an 'unachieve !g1' message from ag1.
>>
>> Now, in processing the 'unachieve' message, I presume !g1 would be
>> removed from the current set of intentions. My question is, would !g2
>> (and any goals subsequently called by !g2 that are currently in the
>> stack of intentions) also be removed?
>>
>> Regards,
>> Adil
>>
>> Jomi Fred Hubner wrote:
>>> Just a small note: your agent ag2 also creates a g2 goal (in the g1
>>> plan). So it is possible that ag2 has two intentions for g2 (one  
>>> from
>>> the message of ag1 and another from itself). The unachieve will  
>>> "kill"
>>> only the intention create by the message from ag1. Other agents can
>>> only drop desires created from their achieve messages.
>>>
>>> Jomi
>>>
>>>
>>> On Apr 19, 2008, at 1:36 PM, Rafael H Bordini wrote:
>>>
>>>> Hi Adil,
>>>>
>>>> Thanks for your questions, they are really interesting and I'm sure
>>>> useful for the other users too. The problem with this is that  
>>>> when an
>>>> agent receives and unachieve message, it checks all it's desires  
>>>> (goal
>>>> addition events in the set of events) and intentions (goal  
>>>> additions
>>>> in the set of intentions or in suspended intentions) and drop  
>>>> those.
>>>> In your example, the agent receives the unachieve message BEFORE it
>>>> has even the desire to achieve g1 and g2, because the unachieve
>>>> message is received while the ag2 is still processing the first
>>>> message (the Mind Inspector helps for checking this kind of thing).
>>>>
>>>> Two nice extra exercises would be as follows. First, change your  
>>>> plans
>>>> so that ag2 informs ag1 when it is about to start executing a  
>>>> plan to
>>>> achieve a goal delegated by ag1. Only when ag1 receives that  
>>>> message
>>>> it decides to tell ag1 to "forget about it" (i.e., to drop the  
>>>> goal).
>>>> Second would be slightly more advanced. You could define a new
>>>> variation of the unachieve performative which before dropping the
>>>> desire, also drops the kqml plans for processing lists of goals, or
>>>> indeed making the achieve/unachieve plans atomic.
>>>>
>>>> Cheers,
>>>>
>>>> Rafael
>>>>
>>>>
>>>>
>>>> On 18 Apr 2008, at 13:01, Adil Hussain wrote:
>>>>
>>>>
>>>>> Hi all,
>>>>>
>>>>> I have another general question (no rush to respond). Apologies  
>>>>> for
>>>>> bugging everyone with questions.
>>>>>
>>>>> I have written code for two agents to test/observe the 'unachieve'
>>>>> goal
>>>>> delegation, as follows:
>>>>>
>>>>> -----
>>>>> //ag1
>>>>>
>>>>> !start.
>>>>>
>>>>> +!start
>>>>>  <-    .send(ag2,achieve,[g1,g2]);
>>>>>          .send(ag2,unachieve,g2).
>>>>>
>>>>> -----
>>>>> //ag2
>>>>>
>>>>> b1.
>>>>> b2.
>>>>>
>>>>> +!g1
>>>>>  <-    a1;
>>>>>          +b3;
>>>>>          a2;
>>>>>          !g2;
>>>>>          .print("performed g1").
>>>>>
>>>>> +!g2
>>>>>  <-    -b1;
>>>>>          a3;
>>>>>          -b2;
>>>>>          a4;
>>>>>          .print("performed g2").
>>>>>
>>>>> -----
>>>>>
>>>>> It seems that ag2 is still performing g2 even though it has
>>>>> received a
>>>>> message from ag2 instructing it to not perform g2.
>>>>>
>>>>> Is this correct, i.e. according to the code, should ag2 be  
>>>>> performing
>>>>> g2? Or should ag2 be dropping all (potential) desires of  
>>>>> performing
>>>>> g2
>>>>> hence not performing g2?
>>>>>
>>>>> Regards,
>>>>> Adil
>>>>>
>>>>> -------------------------------------------------------------------------
>>>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>>>> Don't miss this year's exciting event. There's still time to save
>>>>> $100.
>>>>> Use priority code J8TL2D2.
>>>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>>>> _______________________________________________
>>>>> Jason-users mailing list
>>>>> Jas...@li...
>>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>>>
>>>>>
>>>> -------------------------------------------------------------------------
>>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>>> Don't miss this year's exciting event. There's still time to save
>>>> $100.
>>>> Use priority code J8TL2D2.
>>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>>> _______________________________________________
>>>> Jason-users mailing list
>>>> Jas...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>>
>>> --
>>> Jomi Fred Hubner
>>> ENS Mines Saint-Etienne
>>> 158 Cours Fauriel
>>> 42023 Saint-Etienne Cedex 02
>>> France
>>> http://www.emse.fr/~hubner
>>>
>>>
>>>
>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>> Don't miss this year's exciting event. There's still time to save  
>>> $100.
>>> Use priority code J8TL2D2.
>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>> _______________________________________________
>>> Jason-users mailing list
>>> Jas...@li...
>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>
>>>
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>> Don't miss this year's exciting event. There's still time to save  
>> $100.
>> Use priority code J8TL2D2.
>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>> _______________________________________________
>> Jason-users mailing list
>> Jas...@li...
>> https://lists.sourceforge.net/lists/listinfo/jason-users
>
> -- 
> Jomi Fred Hubner
> ENS Mines Saint-Etienne
> 158 Cours Fauriel
> 42023 Saint-Etienne Cedex 02
> France
> http://www.emse.fr/~hubner
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save  
> $100.
> Use priority code J8TL2D2.
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Jason-users mailing list
> Jas...@li...
> https://lists.sourceforge.net/lists/listinfo/jason-users
>
 | 
| 
     
      
      
      From: Jomi F. H. <hu...@em...> - 2008-04-21 12:24:15
      
     
   | 
We can also image the step (5) as
(5) ag2 receives an 'unachieve !g2' message from ag1
    -- note that it is unachieve !g2 and not !g1
In that case !g1 will be also dropped since the unachieve uses the
.drop_desire intention. .drop_desire(g2) "kills" the intention where g2
appears and no failure event is produced.
Regards,
Jomi
Adil Hussain wrote:
> Rafael, I will try those exercises.
> 
> Jomi, that is interesting.
> 
> A hypothetical question: What if
> (1) an agent ag1 delegated a goal !g1 to an agent ag2;
> (2) ag2 began executing !g1 (as delegated by ag1);
> (3) ag2 reached a stage in the plan body of !g1 where it had to execute !g2;
> (4) ag2 is in the process of executing !g2 (called from !g1);
> (5) ag2 receives an 'unachieve !g1' message from ag1.
> 
> Now, in processing the 'unachieve' message, I presume !g1 would be 
> removed from the current set of intentions. My question is, would !g2 
> (and any goals subsequently called by !g2 that are currently in the 
> stack of intentions) also be removed?
> 
> Regards,
> Adil
> 
> Jomi Fred Hubner wrote:
>> Just a small note: your agent ag2 also creates a g2 goal (in the g1  
>> plan). So it is possible that ag2 has two intentions for g2 (one from  
>> the message of ag1 and another from itself). The unachieve will "kill"  
>> only the intention create by the message from ag1. Other agents can  
>> only drop desires created from their achieve messages.
>>
>> Jomi
>>
>>
>> On Apr 19, 2008, at 1:36 PM, Rafael H Bordini wrote:
>>   
>>> Hi Adil,
>>>
>>> Thanks for your questions, they are really interesting and I'm sure
>>> useful for the other users too. The problem with this is that when an
>>> agent receives and unachieve message, it checks all it's desires (goal
>>> addition events in the set of events) and intentions (goal additions
>>> in the set of intentions or in suspended intentions) and drop those.
>>> In your example, the agent receives the unachieve message BEFORE it
>>> has even the desire to achieve g1 and g2, because the unachieve
>>> message is received while the ag2 is still processing the first
>>> message (the Mind Inspector helps for checking this kind of thing).
>>>
>>> Two nice extra exercises would be as follows. First, change your plans
>>> so that ag2 informs ag1 when it is about to start executing a plan to
>>> achieve a goal delegated by ag1. Only when ag1 receives that message
>>> it decides to tell ag1 to "forget about it" (i.e., to drop the goal).
>>> Second would be slightly more advanced. You could define a new
>>> variation of the unachieve performative which before dropping the
>>> desire, also drops the kqml plans for processing lists of goals, or
>>> indeed making the achieve/unachieve plans atomic.
>>>
>>> Cheers,
>>>
>>> Rafael
>>>
>>>
>>>
>>> On 18 Apr 2008, at 13:01, Adil Hussain wrote:
>>>
>>>     
>>>> Hi all,
>>>>
>>>> I have another general question (no rush to respond). Apologies for
>>>> bugging everyone with questions.
>>>>
>>>> I have written code for two agents to test/observe the 'unachieve'
>>>> goal
>>>> delegation, as follows:
>>>>
>>>> -----
>>>> //ag1
>>>>
>>>> !start.
>>>>
>>>> +!start
>>>>   <-    .send(ag2,achieve,[g1,g2]);
>>>>           .send(ag2,unachieve,g2).
>>>>
>>>> -----
>>>> //ag2
>>>>
>>>> b1.
>>>> b2.
>>>>
>>>> +!g1
>>>>   <-    a1;
>>>>           +b3;
>>>>           a2;
>>>>           !g2;
>>>>           .print("performed g1").
>>>>
>>>> +!g2
>>>>   <-    -b1;
>>>>           a3;
>>>>           -b2;
>>>>           a4;
>>>>           .print("performed g2").
>>>>
>>>> -----
>>>>
>>>> It seems that ag2 is still performing g2 even though it has  
>>>> received a
>>>> message from ag2 instructing it to not perform g2.
>>>>
>>>> Is this correct, i.e. according to the code, should ag2 be performing
>>>> g2? Or should ag2 be dropping all (potential) desires of performing  
>>>> g2
>>>> hence not performing g2?
>>>>
>>>> Regards,
>>>> Adil
>>>>
>>>> -------------------------------------------------------------------------
>>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>>> Don't miss this year's exciting event. There's still time to save
>>>> $100.
>>>> Use priority code J8TL2D2.
>>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>>> _______________________________________________
>>>> Jason-users mailing list
>>>> Jas...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>>
>>>>       
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>> Don't miss this year's exciting event. There's still time to save  
>>> $100.
>>> Use priority code J8TL2D2.
>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>> _______________________________________________
>>> Jason-users mailing list
>>> Jas...@li...
>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>     
>> --
>> Jomi Fred Hubner
>> ENS Mines Saint-Etienne
>> 158 Cours Fauriel
>> 42023 Saint-Etienne Cedex 02
>> France
>> http://www.emse.fr/~hubner
>>
>>
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
>> Don't miss this year's exciting event. There's still time to save $100. 
>> Use priority code J8TL2D2. 
>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>> _______________________________________________
>> Jason-users mailing list
>> Jas...@li...
>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>
>>   
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
> Don't miss this year's exciting event. There's still time to save $100. 
> Use priority code J8TL2D2. 
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Jason-users mailing list
> Jas...@li...
> https://lists.sourceforge.net/lists/listinfo/jason-users
-- 
Jomi Fred Hubner
ENS Mines Saint-Etienne
158 Cours Fauriel
42023 Saint-Etienne Cedex 02
France
http://www.emse.fr/~hubner
 | 
| 
     
      
      
      From: Rafael H B. <R.B...@du...> - 2008-04-21 12:06:49
      
     
   | 
Hi Adil,
Good question! If these are all "normal" AgentSpeak goals, the answer  
is *yes*. Because all those plans chosen to achieve subgoals would be,  
within the stack of plans forming the intention, on top of the plan  
for g1, which would be dropped (and everything on top of it too,  
necessarily). BUT... if you use !! recall that this allows the agent  
to achieve a goal in a SEPARATE intention. In that case, if you choose  
to achieve a goal in a separate intention you lose track of why you  
were trying to achieve the goal. Needless to say, although we provide  
this (!!) operator because it can be useful, this is one of the reason  
why it should be used with care, if you need to use it!
Best,
Rafael
On 21 Apr 2008, at 12:57, Adil Hussain wrote:
>
> Rafael, I will try those exercises.
>
> Jomi, that is interesting.
>
> A hypothetical question: What if
> (1) an agent ag1 delegated a goal !g1 to an agent ag2;
> (2) ag2 began executing !g1 (as delegated by ag1);
> (3) ag2 reached a stage in the plan body of !g1 where it had to  
> execute !g2;
> (4) ag2 is in the process of executing !g2 (called from !g1);
> (5) ag2 receives an 'unachieve !g1' message from ag1.
>
> Now, in processing the 'unachieve' message, I presume !g1 would be
> removed from the current set of intentions. My question is, would !g2
> (and any goals subsequently called by !g2 that are currently in the
> stack of intentions) also be removed?
>
> Regards,
> Adil
>
> Jomi Fred Hubner wrote:
>> Just a small note: your agent ag2 also creates a g2 goal (in the g1
>> plan). So it is possible that ag2 has two intentions for g2 (one from
>> the message of ag1 and another from itself). The unachieve will  
>> "kill"
>> only the intention create by the message from ag1. Other agents can
>> only drop desires created from their achieve messages.
>>
>> Jomi
>>
>>
>> On Apr 19, 2008, at 1:36 PM, Rafael H Bordini wrote:
>>
>>> Hi Adil,
>>>
>>> Thanks for your questions, they are really interesting and I'm sure
>>> useful for the other users too. The problem with this is that when  
>>> an
>>> agent receives and unachieve message, it checks all it's desires  
>>> (goal
>>> addition events in the set of events) and intentions (goal additions
>>> in the set of intentions or in suspended intentions) and drop those.
>>> In your example, the agent receives the unachieve message BEFORE it
>>> has even the desire to achieve g1 and g2, because the unachieve
>>> message is received while the ag2 is still processing the first
>>> message (the Mind Inspector helps for checking this kind of thing).
>>>
>>> Two nice extra exercises would be as follows. First, change your  
>>> plans
>>> so that ag2 informs ag1 when it is about to start executing a plan  
>>> to
>>> achieve a goal delegated by ag1. Only when ag1 receives that message
>>> it decides to tell ag1 to "forget about it" (i.e., to drop the  
>>> goal).
>>> Second would be slightly more advanced. You could define a new
>>> variation of the unachieve performative which before dropping the
>>> desire, also drops the kqml plans for processing lists of goals, or
>>> indeed making the achieve/unachieve plans atomic.
>>>
>>> Cheers,
>>>
>>> Rafael
>>>
>>>
>>>
>>> On 18 Apr 2008, at 13:01, Adil Hussain wrote:
>>>
>>>
>>>> Hi all,
>>>>
>>>> I have another general question (no rush to respond). Apologies for
>>>> bugging everyone with questions.
>>>>
>>>> I have written code for two agents to test/observe the 'unachieve'
>>>> goal
>>>> delegation, as follows:
>>>>
>>>> -----
>>>> //ag1
>>>>
>>>> !start.
>>>>
>>>> +!start
>>>>  <-    .send(ag2,achieve,[g1,g2]);
>>>>          .send(ag2,unachieve,g2).
>>>>
>>>> -----
>>>> //ag2
>>>>
>>>> b1.
>>>> b2.
>>>>
>>>> +!g1
>>>>  <-    a1;
>>>>          +b3;
>>>>          a2;
>>>>          !g2;
>>>>          .print("performed g1").
>>>>
>>>> +!g2
>>>>  <-    -b1;
>>>>          a3;
>>>>          -b2;
>>>>          a4;
>>>>          .print("performed g2").
>>>>
>>>> -----
>>>>
>>>> It seems that ag2 is still performing g2 even though it has
>>>> received a
>>>> message from ag2 instructing it to not perform g2.
>>>>
>>>> Is this correct, i.e. according to the code, should ag2 be  
>>>> performing
>>>> g2? Or should ag2 be dropping all (potential) desires of performing
>>>> g2
>>>> hence not performing g2?
>>>>
>>>> Regards,
>>>> Adil
>>>>
>>>> -------------------------------------------------------------------------
>>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>>> Don't miss this year's exciting event. There's still time to save
>>>> $100.
>>>> Use priority code J8TL2D2.
>>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>>> _______________________________________________
>>>> Jason-users mailing list
>>>> Jas...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>>
>>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>> Don't miss this year's exciting event. There's still time to save
>>> $100.
>>> Use priority code J8TL2D2.
>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>> _______________________________________________
>>> Jason-users mailing list
>>> Jas...@li...
>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>
>>
>> --
>> Jomi Fred Hubner
>> ENS Mines Saint-Etienne
>> 158 Cours Fauriel
>> 42023 Saint-Etienne Cedex 02
>> France
>> http://www.emse.fr/~hubner
>>
>>
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>> Don't miss this year's exciting event. There's still time to save  
>> $100.
>> Use priority code J8TL2D2.
>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>> _______________________________________________
>> Jason-users mailing list
>> Jas...@li...
>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>
>>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save  
> $100.
> Use priority code J8TL2D2.
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Jason-users mailing list
> Jas...@li...
> https://lists.sourceforge.net/lists/listinfo/jason-users
>
 | 
| 
     
      
      
      From: Adil H. <ah...@do...> - 2008-04-21 11:57:46
      
     
   | 
Rafael, I will try those exercises.
Jomi, that is interesting.
A hypothetical question: What if
(1) an agent ag1 delegated a goal !g1 to an agent ag2;
(2) ag2 began executing !g1 (as delegated by ag1);
(3) ag2 reached a stage in the plan body of !g1 where it had to execute !g2;
(4) ag2 is in the process of executing !g2 (called from !g1);
(5) ag2 receives an 'unachieve !g1' message from ag1.
Now, in processing the 'unachieve' message, I presume !g1 would be 
removed from the current set of intentions. My question is, would !g2 
(and any goals subsequently called by !g2 that are currently in the 
stack of intentions) also be removed?
Regards,
Adil
Jomi Fred Hubner wrote:
> Just a small note: your agent ag2 also creates a g2 goal (in the g1  
> plan). So it is possible that ag2 has two intentions for g2 (one from  
> the message of ag1 and another from itself). The unachieve will "kill"  
> only the intention create by the message from ag1. Other agents can  
> only drop desires created from their achieve messages.
>
> Jomi
>
>
> On Apr 19, 2008, at 1:36 PM, Rafael H Bordini wrote:
>   
>> Hi Adil,
>>
>> Thanks for your questions, they are really interesting and I'm sure
>> useful for the other users too. The problem with this is that when an
>> agent receives and unachieve message, it checks all it's desires (goal
>> addition events in the set of events) and intentions (goal additions
>> in the set of intentions or in suspended intentions) and drop those.
>> In your example, the agent receives the unachieve message BEFORE it
>> has even the desire to achieve g1 and g2, because the unachieve
>> message is received while the ag2 is still processing the first
>> message (the Mind Inspector helps for checking this kind of thing).
>>
>> Two nice extra exercises would be as follows. First, change your plans
>> so that ag2 informs ag1 when it is about to start executing a plan to
>> achieve a goal delegated by ag1. Only when ag1 receives that message
>> it decides to tell ag1 to "forget about it" (i.e., to drop the goal).
>> Second would be slightly more advanced. You could define a new
>> variation of the unachieve performative which before dropping the
>> desire, also drops the kqml plans for processing lists of goals, or
>> indeed making the achieve/unachieve plans atomic.
>>
>> Cheers,
>>
>> Rafael
>>
>>
>>
>> On 18 Apr 2008, at 13:01, Adil Hussain wrote:
>>
>>     
>>> Hi all,
>>>
>>> I have another general question (no rush to respond). Apologies for
>>> bugging everyone with questions.
>>>
>>> I have written code for two agents to test/observe the 'unachieve'
>>> goal
>>> delegation, as follows:
>>>
>>> -----
>>> //ag1
>>>
>>> !start.
>>>
>>> +!start
>>>   <-    .send(ag2,achieve,[g1,g2]);
>>>           .send(ag2,unachieve,g2).
>>>
>>> -----
>>> //ag2
>>>
>>> b1.
>>> b2.
>>>
>>> +!g1
>>>   <-    a1;
>>>           +b3;
>>>           a2;
>>>           !g2;
>>>           .print("performed g1").
>>>
>>> +!g2
>>>   <-    -b1;
>>>           a3;
>>>           -b2;
>>>           a4;
>>>           .print("performed g2").
>>>
>>> -----
>>>
>>> It seems that ag2 is still performing g2 even though it has  
>>> received a
>>> message from ag2 instructing it to not perform g2.
>>>
>>> Is this correct, i.e. according to the code, should ag2 be performing
>>> g2? Or should ag2 be dropping all (potential) desires of performing  
>>> g2
>>> hence not performing g2?
>>>
>>> Regards,
>>> Adil
>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>> Don't miss this year's exciting event. There's still time to save
>>> $100.
>>> Use priority code J8TL2D2.
>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>> _______________________________________________
>>> Jason-users mailing list
>>> Jas...@li...
>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>
>>>       
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>> Don't miss this year's exciting event. There's still time to save  
>> $100.
>> Use priority code J8TL2D2.
>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>> _______________________________________________
>> Jason-users mailing list
>> Jas...@li...
>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>     
>
> --
> Jomi Fred Hubner
> ENS Mines Saint-Etienne
> 158 Cours Fauriel
> 42023 Saint-Etienne Cedex 02
> France
> http://www.emse.fr/~hubner
>
>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
> Don't miss this year's exciting event. There's still time to save $100. 
> Use priority code J8TL2D2. 
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Jason-users mailing list
> Jas...@li...
> https://lists.sourceforge.net/lists/listinfo/jason-users
>
>   
 | 
| 
     
      
      
      From: Jomi F. H. <hu...@em...> - 2008-04-21 11:41:50
      
     
   | 
The version 1.1.1 of Jason was released. This version fixes a critical bug related to the "return" of values from some plans. More details at http://jason.sourceforge.net/whatsnew.txt Regards, -- Jomi Fred Hubner ENS Mines Saint-Etienne 158 Cours Fauriel 42023 Saint-Etienne Cedex 02 France http://www.emse.fr/~hubner  | 
| 
     
      
      
      From: Jomi F. H. <hu...@em...> - 2008-04-19 16:18:31
      
     
   | 
Jomi Fred Hubner a écrit :
> The unachieve will "kill"  
> only the intention create by the message from ag1. Other agents can  
> only drop desires created from their achieve messages.
Sorry, it is not like that! Indeed, in the current implementation an 
agent (the sender of unachieve) can drop a goal of the receiver even if 
the goal was created by the receiver.
To avoid this, the plan that handles unachieve msgs should be changed. 
This can be done by adding the following plan in your agent (receiver):
+!kqml_received(Sender, unachieve, Content, _)
    <- .add_nested_source(Content, Sender, CA);
       .drop_desire(CA).
Cheers,
Jomi
 | 
| 
     
      
      
      From: Adil H. <ah...@do...> - 2008-04-19 15:47:09
      
     
   | 
I see now. I thought it might have been because different execution modes/options were being set. I will do some background reading to remind myself of the concepts. Regards, Adil Rafael H Bordini wrote: > Hi Adil, > > Agent programming is intrinsically concurrent. The different > executions represent different interleavings of the executions of the > threads of each of the agents, which is determined by the operating > system schedulling. If you're not familiar with concurrency (threads > in particular), you may want to have a look at this using e.g. some > distributed systems book. > > Cheers, > > Rafael > > > On 19 Apr 2008, at 13:24, Adil Hussain wrote: > >> >> Thanks Jomi for the response. A couple of things I didn't understand: >> (1) Why are there different executions? >> (2) What do each of the four executions represent? >> >> Regards, >> Adil >> >> Jomi Fred Hubner wrote: >>> Hi Adil, >>> >>> this exercise is really tricky and requires a lot of "imagination" to >>> answer :-) >>> >>> (In Jason 1.1 the actions are not printed out, so I have updated the >>> sources at http://jason.sf.net/jBook/as-code/room.zip to print out the >>> actions.) >>> >>> we should assume that agents and the environment run asynchronously, >>> so the following executions in a 1 processor machine are possible (C >>> for claustrophobe, Pi for paranoid, E for environment): >>> >>> -- execution 1 --- >>> 1. C perceives "locked(door)" >>> 2. C does unlock >>> 3. E clear list of perceptions >>> 4. P1 perceives nothing >>> 5. P2 perceives nothing >>> ------------------- >>> >>> So it is possible that only C acts (in case it's action was executed >>> before the Ps start running). This could be the reason for the agents >>> stop acting. >>> >>> -- execution 2 --- >>> 1. C perceives "locked(door)" >>> 2. P1 perceives "locked(door)" >>> 3. P2 perceives "locked(door)" >>> 4. C does unlock >>> 5. E clear list of perceptions >>> 6. P1 perceives nothing, and thus does "lock" >>> 7. P2 perceives nothing, and thus does "lock" >>> 8. C perceives nothing (does nothing) >>> 9. E executes lock of P1 >>> 10. E executes lock of P2 >>> 11. C perceives "locked(door)" >>> .... >>> ------------------- >>> >>> In this case, in step 6, P1 perceives nothing while believing in >>> "locked(door)". The BUF (belief update function) removes thus >>> "locked(door)" from BB, that creates the event -locked(door) that >>> perform the action. >>> The same happens in step 7. >>> >>> Execution 2 is the case where both Ps react. >>> >>> -- execution 3 --- >>> 1. C perceives "locked(door)" >>> 2. P1 perceives "locked(door)" >>> 3. P2 perceives "locked(door)" >>> 4. C does unlock >>> 5. E clear list of perceptions >>> 6. P1 perceives nothing, and thus does "lock" >>> 7. P2 perceives nothing, and thus does "lock" >>> >>> 9. E executes lock of P1 >>> 10. E executes lock of P2 >>> 11. C perceives "locked(door)" >>> .... >>> ------------------- >>> >>> In this case the step 8 was removed, C perceives the environment >>> latter. But at moment 11, the environment has the door locked and that >>> correspond to the current beliefs of C. So, no event is produced. C >>> does not unlock the door, and the simulation stops. >>> >>> The following is the execution in the book: >>> >>> -- execution 4 --- >>> 1. C perceives "locked(door)" >>> 2. P1 perceives "locked(door)" >>> 3. P2 perceives "locked(door)" >>> 4. C does unlock >>> 5. E clear list of perceptions >>> 6. P1 perceives nothing, and thus does "lock" >>> 7. E executes lock of P1 >>> 8. P2 perceives "locked(door)" >>> 9. C perceives "locked(door)" >>> .... >>> ------------------- >>> >>> So, when P2 does perception (step 8), the environment has the door >>> locked, and that corresponds to its BB. No event is produced, and then >>> no reaction of P2. >>> >>> With 2 processors (or in a distributed network), the possibilities >>> increase a lot. >>> >>> Summing up, the asynchronous execution and the way events are produced >>> by BUF leads to very different executions. This however correspond to >>> the "real life". In case a more detailed control is required, the >>> execution should be synchronised. This can be done by the >>> "synchronous" execution mode (see pg 96) -- this solution is used in >>> the room example that comes with Jason. >>> >>> Regards, >>> >>> Jomi >>> >>> >>> >>> >>> On Apr 17, 2008, at 6:27 PM, Adil Hussain wrote: >>> >>>> Hi all, >>>> >>>> I am looking at exercise 3 of chapter 5 (the one about the paranoid >>>> agents) and am not sure what the answer is. Why does only paranoid1 >>>> react to the deletion of the percept 'locked(door)' caused by the >>>> claustrophobe's action? >>>> >>>> Also, related to this exercise, when the code as presented in the >>>> exercise is run in debug mode, it seems to always falter after 20 or >>>> 30 >>>> steps (sometimes earlier) such that the agents are no longer >>>> perceiving >>>> any events or performing any actions. Anyone have any idea why this >>>> is? >>>> >>>> Regards, >>>> Adil >>>> >>>> ------------------------------------------------------------------------- >>>> >>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >>>> Don't miss this year's exciting event. There's still time to save >>>> $100. >>>> Use priority code J8TL2D2. >>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >>>> >>>> _______________________________________________ >>>> Jason-users mailing list >>>> Jas...@li... >>>> https://lists.sourceforge.net/lists/listinfo/jason-users >>>> >>> >>> -- >>> Jomi Fred Hubner >>> ENS Mines Saint-Etienne >>> 158 Cours Fauriel >>> 42023 Saint-Etienne Cedex 02 >>> France >>> http://www.emse.fr/~hubner >>> >>> >>> >>> >>> ------------------------------------------------------------------------- >>> >>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >>> Don't miss this year's exciting event. There's still time to save $100. >>> Use priority code J8TL2D2. >>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >>> >>> _______________________________________________ >>> Jason-users mailing list >>> Jas...@li... >>> https://lists.sourceforge.net/lists/listinfo/jason-users >>> >>> >> >> >> ------------------------------------------------------------------------- >> >> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >> Don't miss this year's exciting event. There's still time to save $100. >> Use priority code J8TL2D2. >> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >> >> _______________________________________________ >> Jason-users mailing list >> Jas...@li... >> https://lists.sourceforge.net/lists/listinfo/jason-users >> > >  | 
| 
     
      
      
      From: Jomi F. H. <hu...@em...> - 2008-04-19 12:15:04
      
     
   | 
Just a small note: your agent ag2 also creates a g2 goal (in the g1  
plan). So it is possible that ag2 has two intentions for g2 (one from  
the message of ag1 and another from itself). The unachieve will "kill"  
only the intention create by the message from ag1. Other agents can  
only drop desires created from their achieve messages.
Jomi
On Apr 19, 2008, at 1:36 PM, Rafael H Bordini wrote:
> Hi Adil,
>
> Thanks for your questions, they are really interesting and I'm sure
> useful for the other users too. The problem with this is that when an
> agent receives and unachieve message, it checks all it's desires (goal
> addition events in the set of events) and intentions (goal additions
> in the set of intentions or in suspended intentions) and drop those.
> In your example, the agent receives the unachieve message BEFORE it
> has even the desire to achieve g1 and g2, because the unachieve
> message is received while the ag2 is still processing the first
> message (the Mind Inspector helps for checking this kind of thing).
>
> Two nice extra exercises would be as follows. First, change your plans
> so that ag2 informs ag1 when it is about to start executing a plan to
> achieve a goal delegated by ag1. Only when ag1 receives that message
> it decides to tell ag1 to "forget about it" (i.e., to drop the goal).
> Second would be slightly more advanced. You could define a new
> variation of the unachieve performative which before dropping the
> desire, also drops the kqml plans for processing lists of goals, or
> indeed making the achieve/unachieve plans atomic.
>
> Cheers,
>
> Rafael
>
>
>
> On 18 Apr 2008, at 13:01, Adil Hussain wrote:
>
>>
>> Hi all,
>>
>> I have another general question (no rush to respond). Apologies for
>> bugging everyone with questions.
>>
>> I have written code for two agents to test/observe the 'unachieve'
>> goal
>> delegation, as follows:
>>
>> -----
>> //ag1
>>
>> !start.
>>
>> +!start
>>   <-    .send(ag2,achieve,[g1,g2]);
>>           .send(ag2,unachieve,g2).
>>
>> -----
>> //ag2
>>
>> b1.
>> b2.
>>
>> +!g1
>>   <-    a1;
>>           +b3;
>>           a2;
>>           !g2;
>>           .print("performed g1").
>>
>> +!g2
>>   <-    -b1;
>>           a3;
>>           -b2;
>>           a4;
>>           .print("performed g2").
>>
>> -----
>>
>> It seems that ag2 is still performing g2 even though it has  
>> received a
>> message from ag2 instructing it to not perform g2.
>>
>> Is this correct, i.e. according to the code, should ag2 be performing
>> g2? Or should ag2 be dropping all (potential) desires of performing  
>> g2
>> hence not performing g2?
>>
>> Regards,
>> Adil
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>> Don't miss this year's exciting event. There's still time to save
>> $100.
>> Use priority code J8TL2D2.
>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>> _______________________________________________
>> Jason-users mailing list
>> Jas...@li...
>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save  
> $100.
> Use priority code J8TL2D2.
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Jason-users mailing list
> Jas...@li...
> https://lists.sourceforge.net/lists/listinfo/jason-users
--
Jomi Fred Hubner
ENS Mines Saint-Etienne
158 Cours Fauriel
42023 Saint-Etienne Cedex 02
France
http://www.emse.fr/~hubner
 | 
| 
     
      
      
      From: Rafael H B. <r.b...@du...> - 2008-04-19 11:42:49
      
     
   | 
Hi Adil, Agent programming is intrinsically concurrent. The different executions represent different interleavings of the executions of the threads of each of the agents, which is determined by the operating system schedulling. If you're not familiar with concurrency (threads in particular), you may want to have a look at this using e.g. some distributed systems book. Cheers, Rafael On 19 Apr 2008, at 13:24, Adil Hussain wrote: > > Thanks Jomi for the response. A couple of things I didn't understand: > (1) Why are there different executions? > (2) What do each of the four executions represent? > > Regards, > Adil > > Jomi Fred Hubner wrote: >> Hi Adil, >> >> this exercise is really tricky and requires a lot of "imagination" to >> answer :-) >> >> (In Jason 1.1 the actions are not printed out, so I have updated the >> sources at http://jason.sf.net/jBook/as-code/room.zip to print out >> the >> actions.) >> >> we should assume that agents and the environment run asynchronously, >> so the following executions in a 1 processor machine are possible (C >> for claustrophobe, Pi for paranoid, E for environment): >> >> -- execution 1 --- >> 1. C perceives "locked(door)" >> 2. C does unlock >> 3. E clear list of perceptions >> 4. P1 perceives nothing >> 5. P2 perceives nothing >> ------------------- >> >> So it is possible that only C acts (in case it's action was executed >> before the Ps start running). This could be the reason for the agents >> stop acting. >> >> -- execution 2 --- >> 1. C perceives "locked(door)" >> 2. P1 perceives "locked(door)" >> 3. P2 perceives "locked(door)" >> 4. C does unlock >> 5. E clear list of perceptions >> 6. P1 perceives nothing, and thus does "lock" >> 7. P2 perceives nothing, and thus does "lock" >> 8. C perceives nothing (does nothing) >> 9. E executes lock of P1 >> 10. E executes lock of P2 >> 11. C perceives "locked(door)" >> .... >> ------------------- >> >> In this case, in step 6, P1 perceives nothing while believing in >> "locked(door)". The BUF (belief update function) removes thus >> "locked(door)" from BB, that creates the event -locked(door) that >> perform the action. >> The same happens in step 7. >> >> Execution 2 is the case where both Ps react. >> >> -- execution 3 --- >> 1. C perceives "locked(door)" >> 2. P1 perceives "locked(door)" >> 3. P2 perceives "locked(door)" >> 4. C does unlock >> 5. E clear list of perceptions >> 6. P1 perceives nothing, and thus does "lock" >> 7. P2 perceives nothing, and thus does "lock" >> >> 9. E executes lock of P1 >> 10. E executes lock of P2 >> 11. C perceives "locked(door)" >> .... >> ------------------- >> >> In this case the step 8 was removed, C perceives the environment >> latter. But at moment 11, the environment has the door locked and >> that >> correspond to the current beliefs of C. So, no event is produced. C >> does not unlock the door, and the simulation stops. >> >> The following is the execution in the book: >> >> -- execution 4 --- >> 1. C perceives "locked(door)" >> 2. P1 perceives "locked(door)" >> 3. P2 perceives "locked(door)" >> 4. C does unlock >> 5. E clear list of perceptions >> 6. P1 perceives nothing, and thus does "lock" >> 7. E executes lock of P1 >> 8. P2 perceives "locked(door)" >> 9. C perceives "locked(door)" >> .... >> ------------------- >> >> So, when P2 does perception (step 8), the environment has the door >> locked, and that corresponds to its BB. No event is produced, and >> then >> no reaction of P2. >> >> With 2 processors (or in a distributed network), the possibilities >> increase a lot. >> >> Summing up, the asynchronous execution and the way events are >> produced >> by BUF leads to very different executions. This however correspond to >> the "real life". In case a more detailed control is required, the >> execution should be synchronised. This can be done by the >> "synchronous" execution mode (see pg 96) -- this solution is used in >> the room example that comes with Jason. >> >> Regards, >> >> Jomi >> >> >> >> >> On Apr 17, 2008, at 6:27 PM, Adil Hussain wrote: >> >>> Hi all, >>> >>> I am looking at exercise 3 of chapter 5 (the one about the paranoid >>> agents) and am not sure what the answer is. Why does only paranoid1 >>> react to the deletion of the percept 'locked(door)' caused by the >>> claustrophobe's action? >>> >>> Also, related to this exercise, when the code as presented in the >>> exercise is run in debug mode, it seems to always falter after 20 or >>> 30 >>> steps (sometimes earlier) such that the agents are no longer >>> perceiving >>> any events or performing any actions. Anyone have any idea why this >>> is? >>> >>> Regards, >>> Adil >>> >>> ------------------------------------------------------------------------- >>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >>> Don't miss this year's exciting event. There's still time to save >>> $100. >>> Use priority code J8TL2D2. >>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >>> _______________________________________________ >>> Jason-users mailing list >>> Jas...@li... >>> https://lists.sourceforge.net/lists/listinfo/jason-users >>> >> >> -- >> Jomi Fred Hubner >> ENS Mines Saint-Etienne >> 158 Cours Fauriel >> 42023 Saint-Etienne Cedex 02 >> France >> http://www.emse.fr/~hubner >> >> >> >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >> Don't miss this year's exciting event. There's still time to save >> $100. >> Use priority code J8TL2D2. >> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >> _______________________________________________ >> Jason-users mailing list >> Jas...@li... >> https://lists.sourceforge.net/lists/listinfo/jason-users >> >> > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users >  | 
| 
     
      
      
      From: Rafael H B. <r.b...@du...> - 2008-04-19 11:37:05
      
     
   | 
Hi Adil,
Thanks for your questions, they are really interesting and I'm sure  
useful for the other users too. The problem with this is that when an  
agent receives and unachieve message, it checks all it's desires (goal  
addition events in the set of events) and intentions (goal additions  
in the set of intentions or in suspended intentions) and drop those.  
In your example, the agent receives the unachieve message BEFORE it  
has even the desire to achieve g1 and g2, because the unachieve  
message is received while the ag2 is still processing the first  
message (the Mind Inspector helps for checking this kind of thing).
Two nice extra exercises would be as follows. First, change your plans  
so that ag2 informs ag1 when it is about to start executing a plan to  
achieve a goal delegated by ag1. Only when ag1 receives that message  
it decides to tell ag1 to "forget about it" (i.e., to drop the goal).  
Second would be slightly more advanced. You could define a new  
variation of the unachieve performative which before dropping the  
desire, also drops the kqml plans for processing lists of goals, or  
indeed making the achieve/unachieve plans atomic.
Cheers,
Rafael
On 18 Apr 2008, at 13:01, Adil Hussain wrote:
>
> Hi all,
>
> I have another general question (no rush to respond). Apologies for
> bugging everyone with questions.
>
> I have written code for two agents to test/observe the 'unachieve'  
> goal
> delegation, as follows:
>
> -----
> //ag1
>
> !start.
>
> +!start
>    <-    .send(ag2,achieve,[g1,g2]);
>            .send(ag2,unachieve,g2).
>
> -----
> //ag2
>
> b1.
> b2.
>
> +!g1
>    <-    a1;
>            +b3;
>            a2;
>            !g2;
>            .print("performed g1").
>
> +!g2
>    <-    -b1;
>            a3;
>            -b2;
>            a4;
>            .print("performed g2").
>
> -----
>
> It seems that ag2 is still performing g2 even though it has received a
> message from ag2 instructing it to not perform g2.
>
> Is this correct, i.e. according to the code, should ag2 be performing
> g2? Or should ag2 be dropping all (potential) desires of performing g2
> hence not performing g2?
>
> Regards,
> Adil
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save  
> $100.
> Use priority code J8TL2D2.
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Jason-users mailing list
> Jas...@li...
> https://lists.sourceforge.net/lists/listinfo/jason-users
>
 | 
| 
     
      
      
      From: Adil H. <ah...@do...> - 2008-04-19 11:24:23
      
     
   | 
Thanks Jomi for the response. A couple of things I didn't understand: (1) Why are there different executions? (2) What do each of the four executions represent? Regards, Adil Jomi Fred Hubner wrote: > Hi Adil, > > this exercise is really tricky and requires a lot of "imagination" to > answer :-) > > (In Jason 1.1 the actions are not printed out, so I have updated the > sources at http://jason.sf.net/jBook/as-code/room.zip to print out the > actions.) > > we should assume that agents and the environment run asynchronously, > so the following executions in a 1 processor machine are possible (C > for claustrophobe, Pi for paranoid, E for environment): > > -- execution 1 --- > 1. C perceives "locked(door)" > 2. C does unlock > 3. E clear list of perceptions > 4. P1 perceives nothing > 5. P2 perceives nothing > ------------------- > > So it is possible that only C acts (in case it's action was executed > before the Ps start running). This could be the reason for the agents > stop acting. > > -- execution 2 --- > 1. C perceives "locked(door)" > 2. P1 perceives "locked(door)" > 3. P2 perceives "locked(door)" > 4. C does unlock > 5. E clear list of perceptions > 6. P1 perceives nothing, and thus does "lock" > 7. P2 perceives nothing, and thus does "lock" > 8. C perceives nothing (does nothing) > 9. E executes lock of P1 > 10. E executes lock of P2 > 11. C perceives "locked(door)" > .... > ------------------- > > In this case, in step 6, P1 perceives nothing while believing in > "locked(door)". The BUF (belief update function) removes thus > "locked(door)" from BB, that creates the event -locked(door) that > perform the action. > The same happens in step 7. > > Execution 2 is the case where both Ps react. > > -- execution 3 --- > 1. C perceives "locked(door)" > 2. P1 perceives "locked(door)" > 3. P2 perceives "locked(door)" > 4. C does unlock > 5. E clear list of perceptions > 6. P1 perceives nothing, and thus does "lock" > 7. P2 perceives nothing, and thus does "lock" > > 9. E executes lock of P1 > 10. E executes lock of P2 > 11. C perceives "locked(door)" > .... > ------------------- > > In this case the step 8 was removed, C perceives the environment > latter. But at moment 11, the environment has the door locked and that > correspond to the current beliefs of C. So, no event is produced. C > does not unlock the door, and the simulation stops. > > The following is the execution in the book: > > -- execution 4 --- > 1. C perceives "locked(door)" > 2. P1 perceives "locked(door)" > 3. P2 perceives "locked(door)" > 4. C does unlock > 5. E clear list of perceptions > 6. P1 perceives nothing, and thus does "lock" > 7. E executes lock of P1 > 8. P2 perceives "locked(door)" > 9. C perceives "locked(door)" > .... > ------------------- > > So, when P2 does perception (step 8), the environment has the door > locked, and that corresponds to its BB. No event is produced, and then > no reaction of P2. > > With 2 processors (or in a distributed network), the possibilities > increase a lot. > > Summing up, the asynchronous execution and the way events are produced > by BUF leads to very different executions. This however correspond to > the "real life". In case a more detailed control is required, the > execution should be synchronised. This can be done by the > "synchronous" execution mode (see pg 96) -- this solution is used in > the room example that comes with Jason. > > Regards, > > Jomi > > > > > On Apr 17, 2008, at 6:27 PM, Adil Hussain wrote: > >> Hi all, >> >> I am looking at exercise 3 of chapter 5 (the one about the paranoid >> agents) and am not sure what the answer is. Why does only paranoid1 >> react to the deletion of the percept 'locked(door)' caused by the >> claustrophobe's action? >> >> Also, related to this exercise, when the code as presented in the >> exercise is run in debug mode, it seems to always falter after 20 or >> 30 >> steps (sometimes earlier) such that the agents are no longer >> perceiving >> any events or performing any actions. Anyone have any idea why this >> is? >> >> Regards, >> Adil >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >> Don't miss this year's exciting event. There's still time to save >> $100. >> Use priority code J8TL2D2. >> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >> _______________________________________________ >> Jason-users mailing list >> Jas...@li... >> https://lists.sourceforge.net/lists/listinfo/jason-users >> > > -- > Jomi Fred Hubner > ENS Mines Saint-Etienne > 158 Cours Fauriel > 42023 Saint-Etienne Cedex 02 > France > http://www.emse.fr/~hubner > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users > >  | 
| 
     
      
      
      From: Jomi F. H. <hu...@em...> - 2008-04-18 17:06:38
      
     
   | 
Hi Adil, this exercise is really tricky and requires a lot of "imagination" to answer :-) (In Jason 1.1 the actions are not printed out, so I have updated the sources at http://jason.sf.net/jBook/as-code/room.zip to print out the actions.) we should assume that agents and the environment run asynchronously, so the following executions in a 1 processor machine are possible (C for claustrophobe, Pi for paranoid, E for environment): -- execution 1 --- 1. C perceives "locked(door)" 2. C does unlock 3. E clear list of perceptions 4. P1 perceives nothing 5. P2 perceives nothing ------------------- So it is possible that only C acts (in case it's action was executed before the Ps start running). This could be the reason for the agents stop acting. -- execution 2 --- 1. C perceives "locked(door)" 2. P1 perceives "locked(door)" 3. P2 perceives "locked(door)" 4. C does unlock 5. E clear list of perceptions 6. P1 perceives nothing, and thus does "lock" 7. P2 perceives nothing, and thus does "lock" 8. C perceives nothing (does nothing) 9. E executes lock of P1 10. E executes lock of P2 11. C perceives "locked(door)" .... ------------------- In this case, in step 6, P1 perceives nothing while believing in "locked(door)". The BUF (belief update function) removes thus "locked(door)" from BB, that creates the event -locked(door) that perform the action. The same happens in step 7. Execution 2 is the case where both Ps react. -- execution 3 --- 1. C perceives "locked(door)" 2. P1 perceives "locked(door)" 3. P2 perceives "locked(door)" 4. C does unlock 5. E clear list of perceptions 6. P1 perceives nothing, and thus does "lock" 7. P2 perceives nothing, and thus does "lock" 9. E executes lock of P1 10. E executes lock of P2 11. C perceives "locked(door)" .... ------------------- In this case the step 8 was removed, C perceives the environment latter. But at moment 11, the environment has the door locked and that correspond to the current beliefs of C. So, no event is produced. C does not unlock the door, and the simulation stops. The following is the execution in the book: -- execution 4 --- 1. C perceives "locked(door)" 2. P1 perceives "locked(door)" 3. P2 perceives "locked(door)" 4. C does unlock 5. E clear list of perceptions 6. P1 perceives nothing, and thus does "lock" 7. E executes lock of P1 8. P2 perceives "locked(door)" 9. C perceives "locked(door)" .... ------------------- So, when P2 does perception (step 8), the environment has the door locked, and that corresponds to its BB. No event is produced, and then no reaction of P2. With 2 processors (or in a distributed network), the possibilities increase a lot. Summing up, the asynchronous execution and the way events are produced by BUF leads to very different executions. This however correspond to the "real life". In case a more detailed control is required, the execution should be synchronised. This can be done by the "synchronous" execution mode (see pg 96) -- this solution is used in the room example that comes with Jason. Regards, Jomi On Apr 17, 2008, at 6:27 PM, Adil Hussain wrote: > Hi all, > > I am looking at exercise 3 of chapter 5 (the one about the paranoid > agents) and am not sure what the answer is. Why does only paranoid1 > react to the deletion of the percept 'locked(door)' caused by the > claustrophobe's action? > > Also, related to this exercise, when the code as presented in the > exercise is run in debug mode, it seems to always falter after 20 or > 30 > steps (sometimes earlier) such that the agents are no longer > perceiving > any events or performing any actions. Anyone have any idea why this > is? > > Regards, > Adil > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Jason-users mailing list > Jas...@li... > https://lists.sourceforge.net/lists/listinfo/jason-users -- Jomi Fred Hubner ENS Mines Saint-Etienne 158 Cours Fauriel 42023 Saint-Etienne Cedex 02 France http://www.emse.fr/~hubner  |