- Jacamo-web is an interactive multi-agent system IDE that allows users to change agents and artifacts while a system is running
- This provides advantages like rapid prototyping, debugging, and learning while reducing development time
- The document demonstrates Jacamo-web's functionality by creating agents, artifacts, and organizations and modifying them on the fly
- Features include a web interface, integration with JaCaMo platforms, and an interactive read-eval-print loop for testing changes
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
Jacamo web is on the fly: an interactive multi-agent systems programming environment
1. Introduction
Jacamo-web Demonstration
Final remarks
Jacamo-web is on the fly: an interactive
MultiAgent System IDE1
Cleber Jorge Amaral1,2 and Jomi Fred Hübner1
1Federal University of Santa Catarina (UFSC)
2Federal Institute of Santa Catarina (IFSC)
EMAS 2019 - 7th International Workshop on
Engineering Multi-Agent Systems
1
Supported by Petrobras project AG-BR, IFSC and UFSC.
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
2. Introduction
Jacamo-web Demonstration
Final remarks
Interactive programming
Jacamo-web
Standard Programming: we stop to apply changes.
Interactive Programming: we change while it is running.
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
3. Introduction
Jacamo-web Demonstration
Final remarks
Interactive programming
Jacamo-web
Advantages:
Rapid prototyping, debugging and learning;
Reduced system development time [2];
Development is done Incrementally.
Applications:
Unclear problems;
Long-term running apps;
Running apps possibly performing critical missions;
Teaching.
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
4. Introduction
Jacamo-web Demonstration
Final remarks
Interactive programming
Jacamo-web
Based on JaCaMo [1]:
A Multi-Agent Oriented Programming (MAOP) platform;
Agents developed in Jason;
Shared environment programmed in CArtAgO;
Coordination of global behaviour developed in MOISE.
Provides Read-Eval-Print Loop (REPL) functions [3];
Brings a built-in Java compiler;
Provides Web-interface for: create, modify, interact with, and
destroy agents, artifacts, and organisations;
Free and open source.
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
5. Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
Live demonstration
Note: See details on: https://github.com/jacamo-lang/
jacamo-web/tree/master/examples/financial-consultants
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
6. Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
Create an artifact dynamic.Account, with a property called balance
and two operations: debit and credit:
package dynamic;
import cartago.*;
public class Account extends Artifact {
void init() {
defineObsProperty("balance", 0);
}
@OPERATION void setBalance(int newBalance) {
ObsProperty prop = getObsProperty("balance");
prop.updateValue(newBalance);
signal("tick");
}
@OPERATION void incBalance() {
ObsProperty prop = getObsProperty("balance");
prop.updateValue(prop.intValue()+1);
signal("tick");
}
}
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
7. Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
Create agent bob by command box
Note: (i) if bob.asl file does not exist, create it, else load it. (ii) to
create from another agent use .create_agent(bob). (iii) agents can
be killed opening it and clicking on kill agent
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
8. Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
Make artifact Account, create father and give credit to bob.
Note: (i) graph allow click to navigate; (ii) It shows current events
and intentions.
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
9. Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
Modify bob’s plan library to react when balance changes and to
say Hi in a loop. Edit again and change it to say Bonjour.
Note: (i) intentions that were running are not affected. (ii) initial
beliefs and goals are not loaded.
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
10. Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
Creating organisation family. bob plays husband and alice plays
wife role.
createWorkspace(family);
joinWorkspace(family,Ofa);
o::makeArtifact(family, "ora4mas.nopl.OrgBoard",
["src/org/family.xml"], OrgArtId)[wid(Ofa)];
o::focus(OrgArtId);
g::createGroup(familygroup, familygroup, GrArtId);
g::focus(GrArtId);
Joining the organisation (bob’s command)
joinWorkspace(family,Ofa);
g::lookupArtifact(familygroup, GrArtId)[wid(Ofa)];
g::focus(GrArtId)[wid(Ofa)];
g::adoptRole(husband)[wid(Ofa)];
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
12. Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
Inspect organisations:
Note: (i) Graph allows navigation; (ii) show/hide options for
groups, schemes and norms.
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
13. Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
To demonstrate a bigger system, create agent one and invoke
existing plan !launchFinancialAgents.
Note: financialagents organisation also has norms and schemes.
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
14. Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
Consult directory facilitator:
Note: agents may register or deregister using the commands:
.df_register(service) or .df_deregister(service).
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
15. Introduction
Jacamo-web Demonstration
Final remarks
Conclusion and future
Questions?
Do it by your own
Interactive programming sounds to fit MAOP well considering
open and long term running systems;
Jacamo-web is bringing useful functions in this direction;
We have to move from asl file to direct change the agent
itself, including functions to save agent state in case of crash;
To enhance artifact interface functions we must allow to
change instances directly, maybe creating an interface to
add/edit/delete operations and another for properties.
Actually java file could not be visible;
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
17. Introduction
Jacamo-web Demonstration
Final remarks
Conclusion and future
Questions?
Do it by your own
Download jacamo-web from github:
$ git clone https://github.com/jacamo-lang/jacamo-web
Compile javamo-web:
$ jacamo-web/gradle build
Run this demo:
$ jacamo-web/examples/financial-consultants/gradle run
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
18. Introduction
Jacamo-web Demonstration
Final remarks
Conclusion and future
Questions?
Do it by your own
Boissier, O., Bordini, R.H., Hübner, J.F., Ricci, A.:
Dimensions in programming multi-agent systems. The
Knowledge Engineering Review 34, e2 (2019).
https://doi.org/10.1017/S026988891800005X
Tung, S.H.S.: Interactive modular programming in Scheme.
ACM SIGPLAN Lisp Pointers V(1), 86–95 (1992).
https://doi.org/10.1145/141478.141512
Wenzel, M.: READ-EVAL-PRINT in Parallel and
Asynchronous Proof-checking. Electronic Proceedings in
Theoretical Computer Science 118, 57–71 (2013).
https://doi.org/10.4204/EPTCS.118.4,
http://arxiv.org/abs/1307.1944v1
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
21. Introduction
Jacamo-web Demonstration
Final remarks
Conclusion and future
Questions?
Do it by your own
Agents:
myPA: asks for recommendations and answer the user;
graham: uses the formula Price < (22.5 ∗ EPS ∗ BVPS);
bazin: uses the formula DY >= 0.06 and Debt/EV <= 1;
greenblatt: uses the formula
EBIT/(MarketCap + NetDebt) < 0.1.
Organisation:
financialteam Group: 1..100 assistant and 1..100 consultant,
assistant communicate with consultant.
financialtsch Scheme: mAssistant ask for opportunities,
mConsultant focus on the artifact.
Environment:
fundamentus Artifacts: placed in financialagents Workspace,
capable to parse a web-site retrieving financial data about
assets.
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID