considered porting the entire framework to the LeJOS JVM, it seems more reasonable to extend the *Jason* framework to be able to communicate with Lego robots.

To be able to distinguish between the agent in *Jason* and the physical lego agent, I write ${A_{\textsf{Jason}}}$ to specify that I am talking about the *Jason* part of agent $A$, and similarly ${A_{\textsf{Lego}}}$ when I am refering to the Lego agent of $A$.

Jason
=====

Instead of changing the general structure of the *Jason* reasoning cycle the idea is to extend parts of it, allowing *Jason* agents to send intentions to the Lego agent and receive percepts.

The general control loop for a practical reasoning agent, which is somewhat analogous to the *Jason* reasoning cycle[@Bordini+2007], is seen in figure \[fig:control\_loop\]. While the reasoning cycle is a bit more detailed, the similarities are obvious and it is straightforward to map the steps in the control loop to steps in the reasoning cycle.

![The general control loop for a BDI practical reasoning agent[@Bordini+2007].[]{data-label="fig:control_loop"}](generalcontrolloop.pdf)

The control loop continuously perceives the environment, updates beliefs, decides what intention to achieve and looks for a plan to achieve it. The plan is then executed until it is empty, has 