SlideShare a Scribd company logo
1 of 30
Download to read offline
Programming the Interaction Space
Effectively with ReSpecTX
Giovanni Ciatto Stefano Mariani† Andrea Omicini
stefano.mariani@unimore.it†
, {andrea.omicini, giovanni.ciatto}@unibo.it
Department of Science and Methods of Engineering, Universit`a di Modena e Reggio Emilia †
Department of Computer Science and Engineering, Universit`a di Bologna
School of Electrical Engineering
Belgrade, October 12th 2017
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 1 / 30
Outline
1 Premises
2 Background
3 ReSpecTX: eXtended ReSpecT
Modularity, Composability
Toolchain
4 Conclusion & Ongoing Work
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 2 / 30
Premises
Outline
1 Premises
2 Background
3 ReSpecTX: eXtended ReSpecT
Modularity, Composability
Toolchain
4 Conclusion & Ongoing Work
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 3 / 30
Premises
Context
Both industry and academia developing methods to govern the interaction
space [Wegner, 1997]
communication protocols in industry
MQTT vs. CoAP → IoT landscape
FIPA1
protocols → multi-agent systems (MAS)
REST vs. SOAP → micro-services
coordination models and languages in academia
[Omicini and Viroli, 2011]
control driven → Reo [Arbab, 2004]
data driven → Linda [Gelernter, 1985]
hybrid → ReSpecT [Omicini, 2007]
1
http://www.fipa.org/
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 4 / 30
Premises
Motivation
Coordination languages mostly are
core calculus
proof-of-concept frameworks
domain-specific languages for rapid prototyping / simulation
⇒ no toolchain, basically
 no Integrated Development Environment (IDE)
 no debugging
 no static-checking
 no code-completion
Agent-oriented Programming (AOP) frameworks, instead, are more
mature
Jade has many administration, monitoring, and debugging tools
[Bellifemine et al., 2007]
Jason has an IDE and a monitoring / debugging tool
[Bordini et al., 2007]
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 5 / 30
Premises
Goal
Close the gap between maturity of AOP languages and coordination
frameworks
Focus on supporting development process
We present the ReSpecTX language and toolchain
 ReSpecTX builds upon ReSpecT [Omicini, 2007]
+ modularity
+ Eclipse IDE plugin
 static-checking
 auto-completion
 code generation
+ imperative-style syntactic sugar
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 6 / 30
Background
Outline
1 Premises
2 Background
3 ReSpecTX: eXtended ReSpecT
Modularity, Composability
Toolchain
4 Conclusion  Ongoing Work
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 7 / 30
Background
The TuCSoN Coordination Infrastructure
TuCSoN [Omicini and Zambonelli, 1999] is a model and
infrastructure providing coordination as a service
[Viroli and Omicini, 2006] to a MAS in the spirit of the archetypal
Linda model
Tuples are stored in tuple centres [Omicini and Denti, 2001]
⇒ tuple spaces enhanced with a program specifying how the tuple space
must react to coordination-related events
Tuple centres’ programs are expressed in the ReSpecT language
[Omicini, 2007]
 TuCSoN is fully integrated with Jade and Jason
[Mariani and Omicini, 2016]
 TuCSoN comes equipped with a few tools for monitoring, debugging,
manual testing, and inspection of the interaction space
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 8 / 30
Background
The ReSpecT Coordination Language I
ReSpecT [Omicini, 2007] is a Prolog-based language for programming
tuple centres
A ReSpecT program is a set of specification tuples (or, reactions)
first-order logic tuples of the form reaction( E , G , R )
E = triggering event = coordination primitive
G = (set of) guard predicate(s) = conditions on tuple centre state or
triggering event
R = reaction body = Prolog computations + ReSpecT primitives
Each reaction is executed
sequentially one at a time, no overlapping
atomically either succeed or fail as a whole
transactionally a failed reaction causes no effects at all (rollback)
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 9 / 30
Background
The ReSpecT Coordination Language II
Example: infinite tuples
r e a c t i o n ( in ( i n f (T) ) , invocation ,
( no ( i n f (T) ) ,
out ( i n f (T) ) )
) .
in(inf(T)) = triggering event
invocation = guard (true before the operation is served)
( no(inf(T)), out(inf(T)) ) = reaction body
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 10 / 30
ReSpecTX: eXtended ReSpecT
Outline
1 Premises
2 Background
3 ReSpecTX: eXtended ReSpecT
Modularity, Composability
Toolchain
4 Conclusion  Ongoing Work
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 11 / 30
ReSpecTX: eXtended ReSpecT
Highlights
modularity ReSpecTX programs can be split in modules imported in a
root specification file
⇒ code reuse
⇒ code libraries
toolchain Eclipse IDE plugin
 syntax highlighting
 static error checking
 code auto-completion
 code generation (plain ReSpecT is the “bytecode”)
syntax ReSpecTX adds convenient syntactic sugar to ReSpecT
special guard predicates testing presence/absence of
tuples without side effects
imperative style syntax
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 12 / 30
ReSpecTX: eXtended ReSpecT Modularity, Composability
Outline
1 Premises
2 Background
3 ReSpecTX: eXtended ReSpecT
Modularity, Composability
Toolchain
4 Conclusion  Ongoing Work
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 13 / 30
ReSpecTX: eXtended ReSpecT Modularity, Composability
Modularity ⇒ Re-usability, and Composability
A module definition contains an arbitrary number of:
include QualifiedName , which imports reactions defined in the
referenced module
Prolog facts and rules
ReSpecTX reactions
A specification does the same, but is also translated by the
ReSpecTX compiler in a plain ReSpecT program (directly executable
by TuCSoN)
Reactions can be decorated with a @ ReactionName tag
⇒ referenceable by meta-coordination primitives (primitives with a
ReSpecTX specification tuple as argument)
Tagged reactions can be further decorated with keyword virtual
⇒ inactive until the meta-coordination primitive activates them
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 14 / 30
ReSpecTX: eXtended ReSpecT Modularity, Composability
Example: Scheduling Periodic Activities I
The module outputs the A tuple once every P milliseconds ⇒ the activity
represented by a reaction with out(A) as triggering event gets executed
periodically
 the module can be imported and reused at will
 tagged, virtual reaction exploited
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 15 / 30
ReSpecTX: eXtended ReSpecT Modularity, Composability
Example: Scheduling Periodic Activities II
1 module rsp . timing . P e r i o d i c {
2 r e a c t i o n out s t a r t P (P, A) : completion {
3 c u r r e n t t i m e (Now)
4 out context (P, 0 , Now, A) ,
5 out t i c k (A)
6 }
7 r e a c t i o n out t i c k ( A c t i v i t y ) : endo , ? context (P, , , A) {
8 c u r r e n t t i m e (Now) ,
9 NextTick i s Now + P,
10 o u t s @ n e x t t i c k ( NextTick , A)
11 }
12 @ n e x t t i c k (T, A)
13 v i r t u a l r e a c t i o n time (T) : ?? context ( , Tick , , A) , ?? t i c k (A) {
14 NextTick i s Tick + 1 ,
15 c u r r e n t t i m e (Now) ,
16 out context (P, NextTick , Now, A) ,
17 out A,
18 out t i c k (A)
19 }
20 }
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 16 / 30
ReSpecTX: eXtended ReSpecT Modularity, Composability
Example: Change Tuple Centre Nature I
The module forces the tuple centre to behave like a set, instead of a
multi-set, for tuples matching the set(Tuple) template
set(Tuple) tuples are stored as set(Tuple, M) where M is their
multiplicity
Whenever a tuple set(Tuple) is emitted (consumed) the
corresponding M is automatically increased (decreased)
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 17 / 30
ReSpecTX: eXtended ReSpecT Modularity, Composability
Example: Change Tuple Centre Nature II
1 module rsp . lang . SetBehaviour {
2 put one ( Tuple ) :−
3 i f nop s e t ( Tuple , ) then out s e t ( Tuple , 1)
4 e l s e i f inp s e t ( Tuple , M) then (
5 NextM i s M + 1 ,
6 out s e t ( Tuple , NextM) ,
7 i f (NextM  1) then inp s e t ( Tuple )
8 ) e l s e f a i l .
9 r e a c t i o n out s e t ( Tuple ) : completion , exo { put one ( Tuple ) }
10 remove one ( Tuple ) :−
11 i f inp s e t ( Tuple , M) then (
12 i f (M  0) then (
13 NextM i s M − 1 ,
14 out s e t ( Tuple , NextM) ,
15 i n a l l s e t ( Tuple ) r e t u r n s ,
16 i f (NextM  0) then out s e t ( Tuple )
17 )
18 ) .
19 r e a c t i o n inp s e t ( Tuple ) : completion , exo { remove one ( Tuple ) }
20 }
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 18 / 30
ReSpecTX: eXtended ReSpecT Modularity, Composability
Example: Do Both :) I
The module implements the “decay” mechanism often found in
nature-inspired coordination models [Omicini and Viroli, 2011] by
reusing and composing the previous modules
 startP(P, decay(TT)) tuple triggers periodic emission tuple
decay(TT)
 then, reaction @decay starts triggering in loop, creating the decay
effect
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 19 / 30
ReSpecTX: eXtended ReSpecT Modularity, Composability
Example: Do Both :) II
1 module rsp . lang . Decay {
2 i n c l u d e rsp . lang . Concentration
3 i n c l u d e rsp . timing . P e r i o d i c
4
5 decay one ( Something ) :−
6 i f ( Something = s e t ( Tuple ) ) then (
7 remove one ( Tuple )
8 ) e l s e (
9 inp Something
10 ) .
11 @decay
12 r e a c t i o n out decay ( Something ) {
13 inp decay ( Something ) ,
14 decay one ( Something )
15 }
16
17 % Remember that s t a r t P (P, decay (TT) ) t u p l e
18 % t r i g g e r s p e r i o d i c e m i s s i o n of decay (TT)
19 }
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 20 / 30
ReSpecTX: eXtended ReSpecT Modularity, Composability
Example: Do Both :) III
ReSpecTX standard librarya provides other modules to build increasingly
complex coordination patterns, such as gossiping in a mobile network,
stigmergic coordination, and others [Fernandez-Marquez et al., 2012]
a
http://bitbucket.org/gciatto/respectx-standard-library
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 21 / 30
ReSpecTX: eXtended ReSpecT Toolchain
Outline
1 Premises
2 Background
3 ReSpecTX: eXtended ReSpecT
Modularity, Composability
Toolchain
4 Conclusion  Ongoing Work
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 22 / 30
ReSpecTX: eXtended ReSpecT Toolchain
Toolchain: Static-checking, Code Completion, Code
Generation I
Eclipse IDE plugin2 implemented in the Xtext framework3 (as
ReSpecTX itself)
Handy features common in mainstream programming languages
syntax coloring
code completion
automatic generation of ReSpecT code
static-checking
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 23 / 30
ReSpecTX: eXtended ReSpecT Toolchain
Toolchain: Static-checking, Code Completion, Code
Generation II
The static checker detects
duplicate reactions in a module (recursively), i.e. reactions having same
E and G
inconsistent temporal constraints
bad-written URLs or TCP port numbers (i.e. reserved ones);
singleton variables, that is, variables appearing only once in a reaction
contradictory ReSpecT guards
invocation, completion endo, exo
intra, inter success, failure
from agent, from tc to agent, to agent
?X, !Y if X = Y, ground(X) before(T1), after(T2) if T1 = T2
2
Already publicly available as open source code at
http://bitbucket.org/gciatto/respectx
3
http://eclipse.org/Xtext/
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 24 / 30
Conclusion  Ongoing Work
Outline
1 Premises
2 Background
3 ReSpecTX: eXtended ReSpecT
Modularity, Composability
Toolchain
4 Conclusion  Ongoing Work
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 25 / 30
Conclusion  Ongoing Work
Conclusion  Ongoing Work
ReSpecTX is a first step in closing the gap between coordination
languages and mainstream programming languages
 modularity
 static error checking
 automatic code generation
Next steps to further improve ReSpecTX maturity include
development of a rich standard library of ready-to-use composable
coordination mechanisms
distribution of ReSpecTX as ready-to-install Eclipse IDE plugin
improve static checker
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 26 / 30
Outline
1 Premises
2 Background
3 ReSpecTX: eXtended ReSpecT
Modularity, Composability
Toolchain
4 Conclusion  Ongoing Work
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 27 / 30
References
References I
Arbab, F. (2004).
Reo: A channel-based coordination model for component composition.
Bellifemine, F. L., Caire, G., and Greenwood, D. (2007).
Developing Multi-Agent Systems with JADE.
Wiley.
Bordini, R. H., H¨ubner, J. F., and Wooldridge, M. J. (2007).
Programming Multi-Agent Systems in AgentSpeak using Jason.
John Wiley  Sons, Ltd.
Fernandez-Marquez, J., Marzo Serugendo, G., Montagna, S., Viroli, M., and Arcos, J.
(2012).
Description and composition of bio-inspired design patterns: a complete overview.
Gelernter, D. (1985).
Generative communication in Linda.
Mariani, S. and Omicini, A. (2016).
Multi-paradigm coordination for MAS: Integrating heterogeneous coordination approaches
in MAS technologies.
CEUR Workshop Proceedings, 1664:91–99.
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 28 / 30
References
References II
Omicini, A. (2007).
Formal ReSpecT in the AA perspective.
Omicini, A. and Denti, E. (2001).
From tuple spaces to tuple centres.
Omicini, A. and Viroli, M. (2011).
Coordination models and languages: From parallel computing to self-organisation.
Omicini, A. and Zambonelli, F. (1999).
Coordination for Internet application development.
Viroli, M. and Omicini, A. (2006).
Coordination as a service.
Fundamenta Informaticae, 73(4):507–534.
Special Issue: Best papers of FOCLASA 2002.
Wegner, P. (1997).
Why interaction is more powerful than algorithms.
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 29 / 30
Programming the Interaction Space
Effectively with ReSpecTX
Giovanni Ciatto Stefano Mariani† Andrea Omicini
stefano.mariani@unimore.it†
, {andrea.omicini, giovanni.ciatto}@unibo.it
Department of Science and Methods of Engineering, Universit`a di Modena e Reggio Emilia †
Department of Computer Science and Engineering, Universit`a di Bologna
School of Electrical Engineering
Belgrade, October 12th 2017
Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 30 / 30

More Related Content

What's hot

Lesson 28: Integration by Subsitution
Lesson 28: Integration by SubsitutionLesson 28: Integration by Subsitution
Lesson 28: Integration by SubsitutionMatthew Leingang
 
Hamilton-Jacobi approach for second order traffic flow models
Hamilton-Jacobi approach for second order traffic flow modelsHamilton-Jacobi approach for second order traffic flow models
Hamilton-Jacobi approach for second order traffic flow modelsGuillaume Costeseque
 
Comparing estimation algorithms for block clustering models
Comparing estimation algorithms for block clustering modelsComparing estimation algorithms for block clustering models
Comparing estimation algorithms for block clustering modelsBigMC
 
Micro to macro passage in traffic models including multi-anticipation effect
Micro to macro passage in traffic models including multi-anticipation effectMicro to macro passage in traffic models including multi-anticipation effect
Micro to macro passage in traffic models including multi-anticipation effectGuillaume Costeseque
 
A review on structure learning in GNN
A review on structure learning in GNNA review on structure learning in GNN
A review on structure learning in GNNtuxette
 
Integration material
Integration material Integration material
Integration material Surya Swaroop
 
Parallel communicating flip pushdown automata systems
Parallel communicating flip pushdown automata systemsParallel communicating flip pushdown automata systems
Parallel communicating flip pushdown automata systemsiaemedu
 
Parallel communicating flip pushdown automata systems communicating by stacks
Parallel communicating flip pushdown automata systems communicating by stacksParallel communicating flip pushdown automata systems communicating by stacks
Parallel communicating flip pushdown automata systems communicating by stacksIAEME Publication
 
Conditional neural processes
Conditional neural processesConditional neural processes
Conditional neural processesKazuki Fujikawa
 
The multilayer perceptron
The multilayer perceptronThe multilayer perceptron
The multilayer perceptronESCOM
 

What's hot (14)

Lesson 28: Integration by Subsitution
Lesson 28: Integration by SubsitutionLesson 28: Integration by Subsitution
Lesson 28: Integration by Subsitution
 
Hamilton-Jacobi approach for second order traffic flow models
Hamilton-Jacobi approach for second order traffic flow modelsHamilton-Jacobi approach for second order traffic flow models
Hamilton-Jacobi approach for second order traffic flow models
 
Program on Quasi-Monte Carlo and High-Dimensional Sampling Methods for Applie...
Program on Quasi-Monte Carlo and High-Dimensional Sampling Methods for Applie...Program on Quasi-Monte Carlo and High-Dimensional Sampling Methods for Applie...
Program on Quasi-Monte Carlo and High-Dimensional Sampling Methods for Applie...
 
Comparing estimation algorithms for block clustering models
Comparing estimation algorithms for block clustering modelsComparing estimation algorithms for block clustering models
Comparing estimation algorithms for block clustering models
 
Micro to macro passage in traffic models including multi-anticipation effect
Micro to macro passage in traffic models including multi-anticipation effectMicro to macro passage in traffic models including multi-anticipation effect
Micro to macro passage in traffic models including multi-anticipation effect
 
A review on structure learning in GNN
A review on structure learning in GNNA review on structure learning in GNN
A review on structure learning in GNN
 
Integration material
Integration material Integration material
Integration material
 
Parallel communicating flip pushdown automata systems
Parallel communicating flip pushdown automata systemsParallel communicating flip pushdown automata systems
Parallel communicating flip pushdown automata systems
 
Parallel communicating flip pushdown automata systems communicating by stacks
Parallel communicating flip pushdown automata systems communicating by stacksParallel communicating flip pushdown automata systems communicating by stacks
Parallel communicating flip pushdown automata systems communicating by stacks
 
Conditional neural processes
Conditional neural processesConditional neural processes
Conditional neural processes
 
QMC Program: Trends and Advances in Monte Carlo Sampling Algorithms Workshop,...
QMC Program: Trends and Advances in Monte Carlo Sampling Algorithms Workshop,...QMC Program: Trends and Advances in Monte Carlo Sampling Algorithms Workshop,...
QMC Program: Trends and Advances in Monte Carlo Sampling Algorithms Workshop,...
 
Mgm
MgmMgm
Mgm
 
The multilayer perceptron
The multilayer perceptronThe multilayer perceptron
The multilayer perceptron
 
QMC Program: Trends and Advances in Monte Carlo Sampling Algorithms Workshop,...
QMC Program: Trends and Advances in Monte Carlo Sampling Algorithms Workshop,...QMC Program: Trends and Advances in Monte Carlo Sampling Algorithms Workshop,...
QMC Program: Trends and Advances in Monte Carlo Sampling Algorithms Workshop,...
 

Similar to Programming the Interaction Space Effectively with ReSpecTX

An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...Joe Andelija
 
MEX Vocabulary - A Lightweight Interchange Format for Machine Learning Experi...
MEX Vocabulary - A Lightweight Interchange Format for Machine Learning Experi...MEX Vocabulary - A Lightweight Interchange Format for Machine Learning Experi...
MEX Vocabulary - A Lightweight Interchange Format for Machine Learning Experi...Universität Leipzig
 
Fractional Derivatives of Some Fractional Functions and Their Applications
Fractional Derivatives of Some Fractional Functions and Their ApplicationsFractional Derivatives of Some Fractional Functions and Their Applications
Fractional Derivatives of Some Fractional Functions and Their ApplicationsAssociate Professor in VSB Coimbatore
 
FScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingFScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingRoberto Casadei
 
IRJET- An Efficient Reverse Converter for the Three Non-Coprime Moduli Set {4...
IRJET- An Efficient Reverse Converter for the Three Non-Coprime Moduli Set {4...IRJET- An Efficient Reverse Converter for the Three Non-Coprime Moduli Set {4...
IRJET- An Efficient Reverse Converter for the Three Non-Coprime Moduli Set {4...IRJET Journal
 
Developing R Graphical User Interfaces
Developing R Graphical User InterfacesDeveloping R Graphical User Interfaces
Developing R Graphical User InterfacesSetia Pramana
 
Tuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated SystemsTuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated SystemsRoberto Casadei
 
Cari2020 Parallel Hybridization for SAT: An Efficient Combination of Search S...
Cari2020 Parallel Hybridization for SAT: An Efficient Combination of Search S...Cari2020 Parallel Hybridization for SAT: An Efficient Combination of Search S...
Cari2020 Parallel Hybridization for SAT: An Efficient Combination of Search S...Mokhtar SELLAMI
 
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015Codemotion
 
Reinforcement Learning in Configurable Environments
Reinforcement Learning in Configurable EnvironmentsReinforcement Learning in Configurable Environments
Reinforcement Learning in Configurable EnvironmentsEmanuele Ghelfi
 
Deep Learning, Scala, and Spark
Deep Learning, Scala, and SparkDeep Learning, Scala, and Spark
Deep Learning, Scala, and SparkOswald Campesato
 
Seed rl paper review
Seed rl paper reviewSeed rl paper review
Seed rl paper reviewKyoungman Lee
 
A mathematical model for integrating product of two functions
A mathematical model for integrating product of two functionsA mathematical model for integrating product of two functions
A mathematical model for integrating product of two functionsAlexander Decker
 
Machine Learning
Machine LearningMachine Learning
Machine Learningbutest
 
introtorandrstudio.ppt
introtorandrstudio.pptintrotorandrstudio.ppt
introtorandrstudio.pptMalkaParveen3
 
Coordination in Situated Systems: Engineering MAS Environment in TuCSoN
Coordination in Situated Systems: Engineering MAS Environment in TuCSoNCoordination in Situated Systems: Engineering MAS Environment in TuCSoN
Coordination in Situated Systems: Engineering MAS Environment in TuCSoNAndrea Omicini
 

Similar to Programming the Interaction Space Effectively with ReSpecTX (20)

An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
An Exact Exponential Branch-And-Merge Algorithm For The Single Machine Total ...
 
MEX Vocabulary - A Lightweight Interchange Format for Machine Learning Experi...
MEX Vocabulary - A Lightweight Interchange Format for Machine Learning Experi...MEX Vocabulary - A Lightweight Interchange Format for Machine Learning Experi...
MEX Vocabulary - A Lightweight Interchange Format for Machine Learning Experi...
 
MVC meets Monad
MVC meets MonadMVC meets Monad
MVC meets Monad
 
Link Discovery Tutorial Part I: Efficiency
Link Discovery Tutorial Part I: EfficiencyLink Discovery Tutorial Part I: Efficiency
Link Discovery Tutorial Part I: Efficiency
 
2019 Fall Series: Postdoc Seminars - Special Guest Lecture, Attacking the Cur...
2019 Fall Series: Postdoc Seminars - Special Guest Lecture, Attacking the Cur...2019 Fall Series: Postdoc Seminars - Special Guest Lecture, Attacking the Cur...
2019 Fall Series: Postdoc Seminars - Special Guest Lecture, Attacking the Cur...
 
Fractional Derivatives of Some Fractional Functions and Their Applications
Fractional Derivatives of Some Fractional Functions and Their ApplicationsFractional Derivatives of Some Fractional Functions and Their Applications
Fractional Derivatives of Some Fractional Functions and Their Applications
 
FScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems ProgrammingFScaFi: A Core Calculus for Collective Adaptive Systems Programming
FScaFi: A Core Calculus for Collective Adaptive Systems Programming
 
IRJET- An Efficient Reverse Converter for the Three Non-Coprime Moduli Set {4...
IRJET- An Efficient Reverse Converter for the Three Non-Coprime Moduli Set {4...IRJET- An Efficient Reverse Converter for the Three Non-Coprime Moduli Set {4...
IRJET- An Efficient Reverse Converter for the Three Non-Coprime Moduli Set {4...
 
Developing R Graphical User Interfaces
Developing R Graphical User InterfacesDeveloping R Graphical User Interfaces
Developing R Graphical User Interfaces
 
Tuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated SystemsTuple-Based Coordination in Large-Scale Situated Systems
Tuple-Based Coordination in Large-Scale Situated Systems
 
Cari2020 Parallel Hybridization for SAT: An Efficient Combination of Search S...
Cari2020 Parallel Hybridization for SAT: An Efficient Combination of Search S...Cari2020 Parallel Hybridization for SAT: An Efficient Combination of Search S...
Cari2020 Parallel Hybridization for SAT: An Efficient Combination of Search S...
 
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
 
Reinforcement Learning in Configurable Environments
Reinforcement Learning in Configurable EnvironmentsReinforcement Learning in Configurable Environments
Reinforcement Learning in Configurable Environments
 
Deep Learning, Scala, and Spark
Deep Learning, Scala, and SparkDeep Learning, Scala, and Spark
Deep Learning, Scala, and Spark
 
Seed rl paper review
Seed rl paper reviewSeed rl paper review
Seed rl paper review
 
A mathematical model for integrating product of two functions
A mathematical model for integrating product of two functionsA mathematical model for integrating product of two functions
A mathematical model for integrating product of two functions
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
 
introtorandrstudio.ppt
introtorandrstudio.pptintrotorandrstudio.ppt
introtorandrstudio.ppt
 
Coordination in Situated Systems: Engineering MAS Environment in TuCSoN
Coordination in Situated Systems: Engineering MAS Environment in TuCSoNCoordination in Situated Systems: Engineering MAS Environment in TuCSoN
Coordination in Situated Systems: Engineering MAS Environment in TuCSoN
 
Wcre12c.ppt
Wcre12c.pptWcre12c.ppt
Wcre12c.ppt
 

More from Stefano Mariani

Coordination of Complex Socio-technical Systems: Challenges and Opportunities
Coordination of Complex Socio-technical Systems: Challenges and OpportunitiesCoordination of Complex Socio-technical Systems: Challenges and Opportunities
Coordination of Complex Socio-technical Systems: Challenges and OpportunitiesStefano Mariani
 
Twenty Years of Coordination Technologies: State-of-the-Art and Perspectives
Twenty Years of Coordination Technologies: State-of-the-Art and PerspectivesTwenty Years of Coordination Technologies: State-of-the-Art and Perspectives
Twenty Years of Coordination Technologies: State-of-the-Art and PerspectivesStefano Mariani
 
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...Stefano Mariani
 
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...Stefano Mariani
 
Coordination Issues in Complex Socio-technical Systems: Self-organisation of ...
Coordination Issues in Complex Socio-technical Systems: Self-organisation of ...Coordination Issues in Complex Socio-technical Systems: Self-organisation of ...
Coordination Issues in Complex Socio-technical Systems: Self-organisation of ...Stefano Mariani
 
Advanced Coordination Techniques: Experiments with TuCSoN and ReSpecT
Advanced Coordination Techniques: Experiments with TuCSoN and ReSpecTAdvanced Coordination Techniques: Experiments with TuCSoN and ReSpecT
Advanced Coordination Techniques: Experiments with TuCSoN and ReSpecTStefano Mariani
 
Self-organisation of Knowledge in MoK
Self-organisation of Knowledge in MoKSelf-organisation of Knowledge in MoK
Self-organisation of Knowledge in MoKStefano Mariani
 
Stochastic Coordination in CAS: Expressiveness & Predictability
Stochastic Coordination in CAS: Expressiveness & PredictabilityStochastic Coordination in CAS: Expressiveness & Predictability
Stochastic Coordination in CAS: Expressiveness & PredictabilityStefano Mariani
 
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive EnvironmentsMolecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive EnvironmentsStefano Mariani
 
On the “Local-to-Global” Issue in Self-Organisation: Chemical Reactions with ...
On the “Local-to-Global” Issue in Self-Organisation: Chemical Reactions with ...On the “Local-to-Global” Issue in Self-Organisation: Chemical Reactions with ...
On the “Local-to-Global” Issue in Self-Organisation: Chemical Reactions with ...Stefano Mariani
 
Models of Autonomy and Coordination: Integrating Subjective & Objective Appro...
Models of Autonomy and Coordination: Integrating Subjective & Objective Appro...Models of Autonomy and Coordination: Integrating Subjective & Objective Appro...
Models of Autonomy and Coordination: Integrating Subjective & Objective Appro...Stefano Mariani
 
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive EnvironmentsMolecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive EnvironmentsStefano Mariani
 
Parameter Engineering vs. Parameter Tuning: the Case of Biochemical Coordinat...
Parameter Engineering vs. Parameter Tuning: the Case of Biochemical Coordinat...Parameter Engineering vs. Parameter Tuning: the Case of Biochemical Coordinat...
Parameter Engineering vs. Parameter Tuning: the Case of Biochemical Coordinat...Stefano Mariani
 
Event-driven Programming for Situated MAS with ReSpecT Tuple Centres
Event-driven Programming for Situated MAS with ReSpecT Tuple CentresEvent-driven Programming for Situated MAS with ReSpecT Tuple Centres
Event-driven Programming for Situated MAS with ReSpecT Tuple CentresStefano Mariani
 
Promoting Space-Aware Coordination: ReSpecT as a Spatial Computing Virtual Ma...
Promoting Space-Aware Coordination: ReSpecT as a Spatial Computing Virtual Ma...Promoting Space-Aware Coordination: ReSpecT as a Spatial Computing Virtual Ma...
Promoting Space-Aware Coordination: ReSpecT as a Spatial Computing Virtual Ma...Stefano Mariani
 
Probabilistic Modular Embedding for Stochastic Coordinated Systems
Probabilistic Modular Embedding for Stochastic Coordinated SystemsProbabilistic Modular Embedding for Stochastic Coordinated Systems
Probabilistic Modular Embedding for Stochastic Coordinated SystemsStefano Mariani
 
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive EnvironmentsMolecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive EnvironmentsStefano Mariani
 
MoK: Stigmergy Meets Chemistry to Exploit Social Actions for Coordination Pur...
MoK: Stigmergy Meets Chemistry to Exploit Social Actions for Coordination Pur...MoK: Stigmergy Meets Chemistry to Exploit Social Actions for Coordination Pur...
MoK: Stigmergy Meets Chemistry to Exploit Social Actions for Coordination Pur...Stefano Mariani
 
Molecules Of Knowledge: Self-Organisation In Knowledge-Intensive Environments
Molecules Of Knowledge: Self-Organisation In Knowledge-Intensive EnvironmentsMolecules Of Knowledge: Self-Organisation In Knowledge-Intensive Environments
Molecules Of Knowledge: Self-Organisation In Knowledge-Intensive EnvironmentsStefano Mariani
 
Self-Organising News Management: The Molecules Of Knowledge Approach
Self-Organising News Management: The Molecules Of Knowledge ApproachSelf-Organising News Management: The Molecules Of Knowledge Approach
Self-Organising News Management: The Molecules Of Knowledge ApproachStefano Mariani
 

More from Stefano Mariani (20)

Coordination of Complex Socio-technical Systems: Challenges and Opportunities
Coordination of Complex Socio-technical Systems: Challenges and OpportunitiesCoordination of Complex Socio-technical Systems: Challenges and Opportunities
Coordination of Complex Socio-technical Systems: Challenges and Opportunities
 
Twenty Years of Coordination Technologies: State-of-the-Art and Perspectives
Twenty Years of Coordination Technologies: State-of-the-Art and PerspectivesTwenty Years of Coordination Technologies: State-of-the-Art and Perspectives
Twenty Years of Coordination Technologies: State-of-the-Art and Perspectives
 
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
 
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
The Speaking Objects Vision: Argumentation for Coordinating Distributed Syste...
 
Coordination Issues in Complex Socio-technical Systems: Self-organisation of ...
Coordination Issues in Complex Socio-technical Systems: Self-organisation of ...Coordination Issues in Complex Socio-technical Systems: Self-organisation of ...
Coordination Issues in Complex Socio-technical Systems: Self-organisation of ...
 
Advanced Coordination Techniques: Experiments with TuCSoN and ReSpecT
Advanced Coordination Techniques: Experiments with TuCSoN and ReSpecTAdvanced Coordination Techniques: Experiments with TuCSoN and ReSpecT
Advanced Coordination Techniques: Experiments with TuCSoN and ReSpecT
 
Self-organisation of Knowledge in MoK
Self-organisation of Knowledge in MoKSelf-organisation of Knowledge in MoK
Self-organisation of Knowledge in MoK
 
Stochastic Coordination in CAS: Expressiveness & Predictability
Stochastic Coordination in CAS: Expressiveness & PredictabilityStochastic Coordination in CAS: Expressiveness & Predictability
Stochastic Coordination in CAS: Expressiveness & Predictability
 
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive EnvironmentsMolecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
 
On the “Local-to-Global” Issue in Self-Organisation: Chemical Reactions with ...
On the “Local-to-Global” Issue in Self-Organisation: Chemical Reactions with ...On the “Local-to-Global” Issue in Self-Organisation: Chemical Reactions with ...
On the “Local-to-Global” Issue in Self-Organisation: Chemical Reactions with ...
 
Models of Autonomy and Coordination: Integrating Subjective & Objective Appro...
Models of Autonomy and Coordination: Integrating Subjective & Objective Appro...Models of Autonomy and Coordination: Integrating Subjective & Objective Appro...
Models of Autonomy and Coordination: Integrating Subjective & Objective Appro...
 
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive EnvironmentsMolecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
 
Parameter Engineering vs. Parameter Tuning: the Case of Biochemical Coordinat...
Parameter Engineering vs. Parameter Tuning: the Case of Biochemical Coordinat...Parameter Engineering vs. Parameter Tuning: the Case of Biochemical Coordinat...
Parameter Engineering vs. Parameter Tuning: the Case of Biochemical Coordinat...
 
Event-driven Programming for Situated MAS with ReSpecT Tuple Centres
Event-driven Programming for Situated MAS with ReSpecT Tuple CentresEvent-driven Programming for Situated MAS with ReSpecT Tuple Centres
Event-driven Programming for Situated MAS with ReSpecT Tuple Centres
 
Promoting Space-Aware Coordination: ReSpecT as a Spatial Computing Virtual Ma...
Promoting Space-Aware Coordination: ReSpecT as a Spatial Computing Virtual Ma...Promoting Space-Aware Coordination: ReSpecT as a Spatial Computing Virtual Ma...
Promoting Space-Aware Coordination: ReSpecT as a Spatial Computing Virtual Ma...
 
Probabilistic Modular Embedding for Stochastic Coordinated Systems
Probabilistic Modular Embedding for Stochastic Coordinated SystemsProbabilistic Modular Embedding for Stochastic Coordinated Systems
Probabilistic Modular Embedding for Stochastic Coordinated Systems
 
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive EnvironmentsMolecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
Molecules of Knowledge: Self-Organisation in Knowledge-Intensive Environments
 
MoK: Stigmergy Meets Chemistry to Exploit Social Actions for Coordination Pur...
MoK: Stigmergy Meets Chemistry to Exploit Social Actions for Coordination Pur...MoK: Stigmergy Meets Chemistry to Exploit Social Actions for Coordination Pur...
MoK: Stigmergy Meets Chemistry to Exploit Social Actions for Coordination Pur...
 
Molecules Of Knowledge: Self-Organisation In Knowledge-Intensive Environments
Molecules Of Knowledge: Self-Organisation In Knowledge-Intensive EnvironmentsMolecules Of Knowledge: Self-Organisation In Knowledge-Intensive Environments
Molecules Of Knowledge: Self-Organisation In Knowledge-Intensive Environments
 
Self-Organising News Management: The Molecules Of Knowledge Approach
Self-Organising News Management: The Molecules Of Knowledge ApproachSelf-Organising News Management: The Molecules Of Knowledge Approach
Self-Organising News Management: The Molecules Of Knowledge Approach
 

Recently uploaded

Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Recently uploaded (20)

Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Programming the Interaction Space Effectively with ReSpecTX

  • 1. Programming the Interaction Space Effectively with ReSpecTX Giovanni Ciatto Stefano Mariani† Andrea Omicini stefano.mariani@unimore.it† , {andrea.omicini, giovanni.ciatto}@unibo.it Department of Science and Methods of Engineering, Universit`a di Modena e Reggio Emilia † Department of Computer Science and Engineering, Universit`a di Bologna School of Electrical Engineering Belgrade, October 12th 2017 Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 1 / 30
  • 2. Outline 1 Premises 2 Background 3 ReSpecTX: eXtended ReSpecT Modularity, Composability Toolchain 4 Conclusion & Ongoing Work Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 2 / 30
  • 3. Premises Outline 1 Premises 2 Background 3 ReSpecTX: eXtended ReSpecT Modularity, Composability Toolchain 4 Conclusion & Ongoing Work Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 3 / 30
  • 4. Premises Context Both industry and academia developing methods to govern the interaction space [Wegner, 1997] communication protocols in industry MQTT vs. CoAP → IoT landscape FIPA1 protocols → multi-agent systems (MAS) REST vs. SOAP → micro-services coordination models and languages in academia [Omicini and Viroli, 2011] control driven → Reo [Arbab, 2004] data driven → Linda [Gelernter, 1985] hybrid → ReSpecT [Omicini, 2007] 1 http://www.fipa.org/ Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 4 / 30
  • 5. Premises Motivation Coordination languages mostly are core calculus proof-of-concept frameworks domain-specific languages for rapid prototyping / simulation ⇒ no toolchain, basically no Integrated Development Environment (IDE) no debugging no static-checking no code-completion Agent-oriented Programming (AOP) frameworks, instead, are more mature Jade has many administration, monitoring, and debugging tools [Bellifemine et al., 2007] Jason has an IDE and a monitoring / debugging tool [Bordini et al., 2007] Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 5 / 30
  • 6. Premises Goal Close the gap between maturity of AOP languages and coordination frameworks Focus on supporting development process We present the ReSpecTX language and toolchain ReSpecTX builds upon ReSpecT [Omicini, 2007] + modularity + Eclipse IDE plugin static-checking auto-completion code generation + imperative-style syntactic sugar Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 6 / 30
  • 7. Background Outline 1 Premises 2 Background 3 ReSpecTX: eXtended ReSpecT Modularity, Composability Toolchain 4 Conclusion Ongoing Work Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 7 / 30
  • 8. Background The TuCSoN Coordination Infrastructure TuCSoN [Omicini and Zambonelli, 1999] is a model and infrastructure providing coordination as a service [Viroli and Omicini, 2006] to a MAS in the spirit of the archetypal Linda model Tuples are stored in tuple centres [Omicini and Denti, 2001] ⇒ tuple spaces enhanced with a program specifying how the tuple space must react to coordination-related events Tuple centres’ programs are expressed in the ReSpecT language [Omicini, 2007] TuCSoN is fully integrated with Jade and Jason [Mariani and Omicini, 2016] TuCSoN comes equipped with a few tools for monitoring, debugging, manual testing, and inspection of the interaction space Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 8 / 30
  • 9. Background The ReSpecT Coordination Language I ReSpecT [Omicini, 2007] is a Prolog-based language for programming tuple centres A ReSpecT program is a set of specification tuples (or, reactions) first-order logic tuples of the form reaction( E , G , R ) E = triggering event = coordination primitive G = (set of) guard predicate(s) = conditions on tuple centre state or triggering event R = reaction body = Prolog computations + ReSpecT primitives Each reaction is executed sequentially one at a time, no overlapping atomically either succeed or fail as a whole transactionally a failed reaction causes no effects at all (rollback) Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 9 / 30
  • 10. Background The ReSpecT Coordination Language II Example: infinite tuples r e a c t i o n ( in ( i n f (T) ) , invocation , ( no ( i n f (T) ) , out ( i n f (T) ) ) ) . in(inf(T)) = triggering event invocation = guard (true before the operation is served) ( no(inf(T)), out(inf(T)) ) = reaction body Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 10 / 30
  • 11. ReSpecTX: eXtended ReSpecT Outline 1 Premises 2 Background 3 ReSpecTX: eXtended ReSpecT Modularity, Composability Toolchain 4 Conclusion Ongoing Work Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 11 / 30
  • 12. ReSpecTX: eXtended ReSpecT Highlights modularity ReSpecTX programs can be split in modules imported in a root specification file ⇒ code reuse ⇒ code libraries toolchain Eclipse IDE plugin syntax highlighting static error checking code auto-completion code generation (plain ReSpecT is the “bytecode”) syntax ReSpecTX adds convenient syntactic sugar to ReSpecT special guard predicates testing presence/absence of tuples without side effects imperative style syntax Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 12 / 30
  • 13. ReSpecTX: eXtended ReSpecT Modularity, Composability Outline 1 Premises 2 Background 3 ReSpecTX: eXtended ReSpecT Modularity, Composability Toolchain 4 Conclusion Ongoing Work Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 13 / 30
  • 14. ReSpecTX: eXtended ReSpecT Modularity, Composability Modularity ⇒ Re-usability, and Composability A module definition contains an arbitrary number of: include QualifiedName , which imports reactions defined in the referenced module Prolog facts and rules ReSpecTX reactions A specification does the same, but is also translated by the ReSpecTX compiler in a plain ReSpecT program (directly executable by TuCSoN) Reactions can be decorated with a @ ReactionName tag ⇒ referenceable by meta-coordination primitives (primitives with a ReSpecTX specification tuple as argument) Tagged reactions can be further decorated with keyword virtual ⇒ inactive until the meta-coordination primitive activates them Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 14 / 30
  • 15. ReSpecTX: eXtended ReSpecT Modularity, Composability Example: Scheduling Periodic Activities I The module outputs the A tuple once every P milliseconds ⇒ the activity represented by a reaction with out(A) as triggering event gets executed periodically the module can be imported and reused at will tagged, virtual reaction exploited Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 15 / 30
  • 16. ReSpecTX: eXtended ReSpecT Modularity, Composability Example: Scheduling Periodic Activities II 1 module rsp . timing . P e r i o d i c { 2 r e a c t i o n out s t a r t P (P, A) : completion { 3 c u r r e n t t i m e (Now) 4 out context (P, 0 , Now, A) , 5 out t i c k (A) 6 } 7 r e a c t i o n out t i c k ( A c t i v i t y ) : endo , ? context (P, , , A) { 8 c u r r e n t t i m e (Now) , 9 NextTick i s Now + P, 10 o u t s @ n e x t t i c k ( NextTick , A) 11 } 12 @ n e x t t i c k (T, A) 13 v i r t u a l r e a c t i o n time (T) : ?? context ( , Tick , , A) , ?? t i c k (A) { 14 NextTick i s Tick + 1 , 15 c u r r e n t t i m e (Now) , 16 out context (P, NextTick , Now, A) , 17 out A, 18 out t i c k (A) 19 } 20 } Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 16 / 30
  • 17. ReSpecTX: eXtended ReSpecT Modularity, Composability Example: Change Tuple Centre Nature I The module forces the tuple centre to behave like a set, instead of a multi-set, for tuples matching the set(Tuple) template set(Tuple) tuples are stored as set(Tuple, M) where M is their multiplicity Whenever a tuple set(Tuple) is emitted (consumed) the corresponding M is automatically increased (decreased) Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 17 / 30
  • 18. ReSpecTX: eXtended ReSpecT Modularity, Composability Example: Change Tuple Centre Nature II 1 module rsp . lang . SetBehaviour { 2 put one ( Tuple ) :− 3 i f nop s e t ( Tuple , ) then out s e t ( Tuple , 1) 4 e l s e i f inp s e t ( Tuple , M) then ( 5 NextM i s M + 1 , 6 out s e t ( Tuple , NextM) , 7 i f (NextM 1) then inp s e t ( Tuple ) 8 ) e l s e f a i l . 9 r e a c t i o n out s e t ( Tuple ) : completion , exo { put one ( Tuple ) } 10 remove one ( Tuple ) :− 11 i f inp s e t ( Tuple , M) then ( 12 i f (M 0) then ( 13 NextM i s M − 1 , 14 out s e t ( Tuple , NextM) , 15 i n a l l s e t ( Tuple ) r e t u r n s , 16 i f (NextM 0) then out s e t ( Tuple ) 17 ) 18 ) . 19 r e a c t i o n inp s e t ( Tuple ) : completion , exo { remove one ( Tuple ) } 20 } Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 18 / 30
  • 19. ReSpecTX: eXtended ReSpecT Modularity, Composability Example: Do Both :) I The module implements the “decay” mechanism often found in nature-inspired coordination models [Omicini and Viroli, 2011] by reusing and composing the previous modules startP(P, decay(TT)) tuple triggers periodic emission tuple decay(TT) then, reaction @decay starts triggering in loop, creating the decay effect Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 19 / 30
  • 20. ReSpecTX: eXtended ReSpecT Modularity, Composability Example: Do Both :) II 1 module rsp . lang . Decay { 2 i n c l u d e rsp . lang . Concentration 3 i n c l u d e rsp . timing . P e r i o d i c 4 5 decay one ( Something ) :− 6 i f ( Something = s e t ( Tuple ) ) then ( 7 remove one ( Tuple ) 8 ) e l s e ( 9 inp Something 10 ) . 11 @decay 12 r e a c t i o n out decay ( Something ) { 13 inp decay ( Something ) , 14 decay one ( Something ) 15 } 16 17 % Remember that s t a r t P (P, decay (TT) ) t u p l e 18 % t r i g g e r s p e r i o d i c e m i s s i o n of decay (TT) 19 } Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 20 / 30
  • 21. ReSpecTX: eXtended ReSpecT Modularity, Composability Example: Do Both :) III ReSpecTX standard librarya provides other modules to build increasingly complex coordination patterns, such as gossiping in a mobile network, stigmergic coordination, and others [Fernandez-Marquez et al., 2012] a http://bitbucket.org/gciatto/respectx-standard-library Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 21 / 30
  • 22. ReSpecTX: eXtended ReSpecT Toolchain Outline 1 Premises 2 Background 3 ReSpecTX: eXtended ReSpecT Modularity, Composability Toolchain 4 Conclusion Ongoing Work Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 22 / 30
  • 23. ReSpecTX: eXtended ReSpecT Toolchain Toolchain: Static-checking, Code Completion, Code Generation I Eclipse IDE plugin2 implemented in the Xtext framework3 (as ReSpecTX itself) Handy features common in mainstream programming languages syntax coloring code completion automatic generation of ReSpecT code static-checking Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 23 / 30
  • 24. ReSpecTX: eXtended ReSpecT Toolchain Toolchain: Static-checking, Code Completion, Code Generation II The static checker detects duplicate reactions in a module (recursively), i.e. reactions having same E and G inconsistent temporal constraints bad-written URLs or TCP port numbers (i.e. reserved ones); singleton variables, that is, variables appearing only once in a reaction contradictory ReSpecT guards invocation, completion endo, exo intra, inter success, failure from agent, from tc to agent, to agent ?X, !Y if X = Y, ground(X) before(T1), after(T2) if T1 = T2 2 Already publicly available as open source code at http://bitbucket.org/gciatto/respectx 3 http://eclipse.org/Xtext/ Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 24 / 30
  • 25. Conclusion Ongoing Work Outline 1 Premises 2 Background 3 ReSpecTX: eXtended ReSpecT Modularity, Composability Toolchain 4 Conclusion Ongoing Work Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 25 / 30
  • 26. Conclusion Ongoing Work Conclusion Ongoing Work ReSpecTX is a first step in closing the gap between coordination languages and mainstream programming languages modularity static error checking automatic code generation Next steps to further improve ReSpecTX maturity include development of a rich standard library of ready-to-use composable coordination mechanisms distribution of ReSpecTX as ready-to-install Eclipse IDE plugin improve static checker Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 26 / 30
  • 27. Outline 1 Premises 2 Background 3 ReSpecTX: eXtended ReSpecT Modularity, Composability Toolchain 4 Conclusion Ongoing Work Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 27 / 30
  • 28. References References I Arbab, F. (2004). Reo: A channel-based coordination model for component composition. Bellifemine, F. L., Caire, G., and Greenwood, D. (2007). Developing Multi-Agent Systems with JADE. Wiley. Bordini, R. H., H¨ubner, J. F., and Wooldridge, M. J. (2007). Programming Multi-Agent Systems in AgentSpeak using Jason. John Wiley Sons, Ltd. Fernandez-Marquez, J., Marzo Serugendo, G., Montagna, S., Viroli, M., and Arcos, J. (2012). Description and composition of bio-inspired design patterns: a complete overview. Gelernter, D. (1985). Generative communication in Linda. Mariani, S. and Omicini, A. (2016). Multi-paradigm coordination for MAS: Integrating heterogeneous coordination approaches in MAS technologies. CEUR Workshop Proceedings, 1664:91–99. Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 28 / 30
  • 29. References References II Omicini, A. (2007). Formal ReSpecT in the AA perspective. Omicini, A. and Denti, E. (2001). From tuple spaces to tuple centres. Omicini, A. and Viroli, M. (2011). Coordination models and languages: From parallel computing to self-organisation. Omicini, A. and Zambonelli, F. (1999). Coordination for Internet application development. Viroli, M. and Omicini, A. (2006). Coordination as a service. Fundamenta Informaticae, 73(4):507–534. Special Issue: Best papers of FOCLASA 2002. Wegner, P. (1997). Why interaction is more powerful than algorithms. Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 29 / 30
  • 30. Programming the Interaction Space Effectively with ReSpecTX Giovanni Ciatto Stefano Mariani† Andrea Omicini stefano.mariani@unimore.it† , {andrea.omicini, giovanni.ciatto}@unibo.it Department of Science and Methods of Engineering, Universit`a di Modena e Reggio Emilia † Department of Computer Science and Engineering, Universit`a di Bologna School of Electrical Engineering Belgrade, October 12th 2017 Mariani et. al. (DISMI, DISI) ReSpecTX Belgrade, 12/10/2017 30 / 30