SlideShare a Scribd company logo
1 of 21
Download to read offline
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
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
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
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
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
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
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
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
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
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
Introduction
Jacamo-web Demonstration
Final remarks
Functionalities and demonstration
Change organisation’s structure adding new roles:
Note: (i) agent can use adoptRole("son").
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
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
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
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
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
Introduction
Jacamo-web Demonstration
Final remarks
Conclusion and future
Questions?
Do it by your own
Questions?
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
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
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
Introduction
Jacamo-web Demonstration
Final remarks
Conclusion and future
Questions?
Do it by your own
Appendix
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
Introduction
Jacamo-web Demonstration
Final remarks
Conclusion and future
Questions?
Do it by your own
Figure: Financial Agents
Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
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

More Related Content

Similar to Jacamo web is on the fly: an interactive multi-agent systems programming environment

CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...Chris Richardson
 
Functional Requirements Of System Requirements
Functional Requirements Of System RequirementsFunctional Requirements Of System Requirements
Functional Requirements Of System RequirementsLaura Arrigo
 
Bowtie: Interactive Dashboards
Bowtie: Interactive DashboardsBowtie: Interactive Dashboards
Bowtie: Interactive DashboardsJacques Kvam
 
Java applet programming concepts
Java  applet programming conceptsJava  applet programming concepts
Java applet programming conceptsVicter Paul
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Heiko Behrens
 
Automation Abstractions: Page Objects and Beyond
Automation Abstractions: Page Objects and BeyondAutomation Abstractions: Page Objects and Beyond
Automation Abstractions: Page Objects and BeyondTechWell
 
Smart Mirror Summer Report
Smart Mirror Summer ReportSmart Mirror Summer Report
Smart Mirror Summer ReportJabari Barton
 
Phone gap 12 things you should know
Phone gap 12 things you should knowPhone gap 12 things you should know
Phone gap 12 things you should knowISOCHK
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptdavejohnson
 
OSDC 2014 Test Driven Infrastructure
OSDC 2014 Test Driven InfrastructureOSDC 2014 Test Driven Infrastructure
OSDC 2014 Test Driven InfrastructureSchlomo Schapiro
 
OSDC 2014: Schlomo Schapiro - Test Driven Infrastructure
OSDC 2014: Schlomo Schapiro -  Test Driven InfrastructureOSDC 2014: Schlomo Schapiro -  Test Driven Infrastructure
OSDC 2014: Schlomo Schapiro - Test Driven InfrastructureNETWAYS
 
Creating Clean Code with AOP (WebExpo 2010)
Creating Clean Code with AOP (WebExpo 2010)Creating Clean Code with AOP (WebExpo 2010)
Creating Clean Code with AOP (WebExpo 2010)Robert Lemke
 
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docxCASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docxketurahhazelhurst
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Jonas Follesø
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterHaehnchen
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJSGregor Woiwode
 

Similar to Jacamo web is on the fly: an interactive multi-agent systems programming environment (20)

First fare 2010 lab-view overview
First fare 2010 lab-view overviewFirst fare 2010 lab-view overview
First fare 2010 lab-view overview
 
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
CommunityOneEast 09 - Dynamic Languages: the next big thing for the JVM or an...
 
Functional Requirements Of System Requirements
Functional Requirements Of System RequirementsFunctional Requirements Of System Requirements
Functional Requirements Of System Requirements
 
Wmc lab (1)
Wmc lab (1)Wmc lab (1)
Wmc lab (1)
 
Bowtie: Interactive Dashboards
Bowtie: Interactive DashboardsBowtie: Interactive Dashboards
Bowtie: Interactive Dashboards
 
Java applet programming concepts
Java  applet programming conceptsJava  applet programming concepts
Java applet programming concepts
 
Mobile optimization
Mobile optimizationMobile optimization
Mobile optimization
 
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
Plattformübergreifende App-Entwicklung (ein Vergleich) - MobileTechCon 2010
 
Automation Abstractions: Page Objects and Beyond
Automation Abstractions: Page Objects and BeyondAutomation Abstractions: Page Objects and Beyond
Automation Abstractions: Page Objects and Beyond
 
Smart Mirror Summer Report
Smart Mirror Summer ReportSmart Mirror Summer Report
Smart Mirror Summer Report
 
Phone gap 12 things you should know
Phone gap 12 things you should knowPhone gap 12 things you should know
Phone gap 12 things you should know
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScript
 
Gain more freedom when migrating from Camunda 7 to 8.pdf
Gain more freedom when migrating from Camunda 7 to 8.pdfGain more freedom when migrating from Camunda 7 to 8.pdf
Gain more freedom when migrating from Camunda 7 to 8.pdf
 
OSDC 2014 Test Driven Infrastructure
OSDC 2014 Test Driven InfrastructureOSDC 2014 Test Driven Infrastructure
OSDC 2014 Test Driven Infrastructure
 
OSDC 2014: Schlomo Schapiro - Test Driven Infrastructure
OSDC 2014: Schlomo Schapiro -  Test Driven InfrastructureOSDC 2014: Schlomo Schapiro -  Test Driven Infrastructure
OSDC 2014: Schlomo Schapiro - Test Driven Infrastructure
 
Creating Clean Code with AOP (WebExpo 2010)
Creating Clean Code with AOP (WebExpo 2010)Creating Clean Code with AOP (WebExpo 2010)
Creating Clean Code with AOP (WebExpo 2010)
 
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docxCASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
CASE STUDY InternetExcel Exercises, page 434, textRecord your.docx
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJS
 

More from Cleber Jorge Amaral

Test Driven Development for Agents - Tutorial
Test Driven Development for Agents - TutorialTest Driven Development for Agents - Tutorial
Test Driven Development for Agents - TutorialCleber Jorge Amaral
 
Interactive and collaborative programming of intereoperable agents using jaca...
Interactive and collaborative programming of intereoperable agents using jaca...Interactive and collaborative programming of intereoperable agents using jaca...
Interactive and collaborative programming of intereoperable agents using jaca...Cleber Jorge Amaral
 
Towards Jacamo-rest: A Resource-Oriented Abstraction for Managing Multi-Agent...
Towards Jacamo-rest: A Resource-Oriented Abstraction for Managing Multi-Agent...Towards Jacamo-rest: A Resource-Oriented Abstraction for Managing Multi-Agent...
Towards Jacamo-rest: A Resource-Oriented Abstraction for Managing Multi-Agent...Cleber Jorge Amaral
 
AI for Multi-Agent Programming Contest 2020
AI for Multi-Agent Programming Contest 2020AI for Multi-Agent Programming Contest 2020
AI for Multi-Agent Programming Contest 2020Cleber Jorge Amaral
 
CS&IS meeting-jacamo-web for collaborative and interactive programming
CS&IS meeting-jacamo-web for collaborative and interactive programmingCS&IS meeting-jacamo-web for collaborative and interactive programming
CS&IS meeting-jacamo-web for collaborative and interactive programmingCleber Jorge Amaral
 
Catching-up web technologies - an endless story
Catching-up web technologies - an endless storyCatching-up web technologies - an endless story
Catching-up web technologies - an endless storyCleber Jorge Amaral
 
Doctoral Proposal - From goals to organisations: automated organisation gener...
Doctoral Proposal - From goals to organisations: automated organisation gener...Doctoral Proposal - From goals to organisations: automated organisation gener...
Doctoral Proposal - From goals to organisations: automated organisation gener...Cleber Jorge Amaral
 

More from Cleber Jorge Amaral (8)

Test Driven Development for Agents - Tutorial
Test Driven Development for Agents - TutorialTest Driven Development for Agents - Tutorial
Test Driven Development for Agents - Tutorial
 
Interactive and collaborative programming of intereoperable agents using jaca...
Interactive and collaborative programming of intereoperable agents using jaca...Interactive and collaborative programming of intereoperable agents using jaca...
Interactive and collaborative programming of intereoperable agents using jaca...
 
Jason code testing framework
Jason code testing frameworkJason code testing framework
Jason code testing framework
 
Towards Jacamo-rest: A Resource-Oriented Abstraction for Managing Multi-Agent...
Towards Jacamo-rest: A Resource-Oriented Abstraction for Managing Multi-Agent...Towards Jacamo-rest: A Resource-Oriented Abstraction for Managing Multi-Agent...
Towards Jacamo-rest: A Resource-Oriented Abstraction for Managing Multi-Agent...
 
AI for Multi-Agent Programming Contest 2020
AI for Multi-Agent Programming Contest 2020AI for Multi-Agent Programming Contest 2020
AI for Multi-Agent Programming Contest 2020
 
CS&IS meeting-jacamo-web for collaborative and interactive programming
CS&IS meeting-jacamo-web for collaborative and interactive programmingCS&IS meeting-jacamo-web for collaborative and interactive programming
CS&IS meeting-jacamo-web for collaborative and interactive programming
 
Catching-up web technologies - an endless story
Catching-up web technologies - an endless storyCatching-up web technologies - an endless story
Catching-up web technologies - an endless story
 
Doctoral Proposal - From goals to organisations: automated organisation gener...
Doctoral Proposal - From goals to organisations: automated organisation gener...Doctoral Proposal - From goals to organisations: automated organisation gener...
Doctoral Proposal - From goals to organisations: automated organisation gener...
 

Recently uploaded

%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 

Recently uploaded (20)

%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%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
  • 11. Introduction Jacamo-web Demonstration Final remarks Functionalities and demonstration Change organisation’s structure adding new roles: Note: (i) agent can use adoptRole("son"). 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
  • 16. Introduction Jacamo-web Demonstration Final remarks Conclusion and future Questions? Do it by your own Questions? 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
  • 19. Introduction Jacamo-web Demonstration Final remarks Conclusion and future Questions? Do it by your own Appendix Amaral C.J. and Hübner, J.F. Jacamo-web is on the fly: an interactive MultiAgent System ID
  • 20. Introduction Jacamo-web Demonstration Final remarks Conclusion and future Questions? Do it by your own Figure: Financial Agents 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