Changes for page Overview

From version 3.1
edited by Andrea Omicini
on 10/08/2021 16:41
Change comment: Document converted from syntax xwiki/1.0 to syntax xwiki/2.1
To version 6.1
edited by Andrea Omicini
on 10/08/2021 16:44
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -Overview
1 +ReSpecT Overview
Content
... ... @@ -1,50 +1,42 @@
1 -{{include document="Main.MacroSheet"/}}{{include document="ReSpecT.MacroSheet"/}}
1 +{{include document="Main.MacroSheet"/}}{{velocity}}
2 +* #respect() (**Re**action **Spec**ification **T**uples) is a logic-based language for the coordination of complex software systems.
3 +* #respect() promotes a coordination model providing tuple centres as programmable, general-purpose coordination media.
4 +* the behaviour of #respect() tuple centres is programmed through the #respect() first-order logic language.
2 2  
3 -{{velocity filter="none"}}
4 -{{html clean="false" wiki="true"}}
5 -= #respect() Overview =
6 -
7 -#respect() (**Re**action **Spec**ification **T**uples) is a logic-based language for the coordination of complex software systems.
8 -##
9 -#respect() promotes a coordination model providing tuple centres as programmable, general-purpose coordination media.
10 -##
11 -The behaviour of #respect() tuple centres is programmed through the #respect() first-order logic language.
12 -
13 13  == The #respect() Tuple Centre Coordination Model ==
14 14  
15 15  A tuple centre is a tuple space enhanced with the possibility to program its behaviour in response to interactions.
16 16  ##
17 -First of all, coordinated entities (//#respect() agents//, henceforth, or simply //agents//) can operate on a #respect() tuple centre in the same way as on a standard Linda tuple space: by exchanging //tuples// — which are ordered collection of knowledge chunks — through a simple set of coordination primitive.
10 +First of all, coordinated entities (//#respect() agents//, henceforth, or simply //agents//) can operate on a #respect() tuple centre in the same way as on a standard Linda tuple space: by exchanging //tuples// — which are ordered collection of knowledge chunksthrough a simple set of coordination primitive.
18 18  ##
19 19  So, an agent can write a tuple in a tuple centre with an #code("out") primitive; or read a tuple from a tuple centre with primitives such as #code("in"), #code("rd"), #code("inp"), #code("rdp") specifying a tuple template - that is, an identifier for a set of tuples, according to some tuple matching mechanism.
20 20  ##
21 21  Reading tuples can be
22 -* //destructive// — #code("in"), #code("inp") remove the matching tuple — or //non-destructive// — #code("rd"), #code("rdp") simply read the matching tuple
23 -* //suspensive// — #code("in"), #code("rd") wait until a matching tuple is found — or //non-suspensive// — #code("inp"), #code("rdp") immediately return either the matching tuple or a failure result
24 -<p/>
15 +* //destructive// #code("in"), #code("inp") remove the matching tuple &mdash; or //non-destructive// &mdash; #code("rd"), #code("rdp") simply read the matching tuple
16 +* //suspensive// #code("in"), #code("rd") wait until a matching tuple is found &mdash; or //non-suspensive// &mdash; #code("inp"), #code("rdp") immediately return either the matching tuple or a failure result
17 +
25 25  but is anyway always //non-deterministic//: when more than one tuple in a tuple centre are found that match a tuple template, one is non-deterministically chosen among them and returned.
26 -<p/>
27 -Accordingly, a tuple centre enjoys all the many features of a tuple space, which can be classified along three different dimensions:
28 28  
20 +Accordingly, a tuple centre enjoys all the many features of a tuple space, which can be classified along three different dimensions:
29 29  * generative communication
30 30  * associative access
31 31  * suspensive semantics
32 -<p/>
24 +
33 33  The main features of //generative communication// (where information generated has an independent life with respect to the generator) are the forms of uncoupling (space, time, name) based on mediated interaction: sender and receiver do not need to know each other, to coexist in the same space or at the same time in order to communicate (to exchange a tuple, in particular), and more generally, to interact.
34 34  ##
35 35  //Associative access// (access based on structure and content of information exchanged, rather than on location, or on name) based on tuple matching promotes synchronisation based on tuple structure and content: thus, coordination is data-driven, and allows for knowledge-based coordination patterns.
36 36  ##
37 37  Finally, //suspensive semantics// promotes coordination patterns based on knowledge availability, and couples well with incomplete, partial knowledge.
38 -<p/>
30 +
39 39  Even more, while the basic tuple centre model is independent of the type of tuple, #respect() tuple centres adopt logic tuples &mdash; both tuples and tuple templates are essentially Prolog //facts// &mdash; and logic //unification// is used as the tuple-matching mechanism.
40 40  ##
41 -So, for instance, an agent #code("ag1") performing operation #code("we ? in(activity(ag1,CaseID))") on tuple centre #code("we") containing tuples #code("activity(ag1,c16)") and #code("activity(ag2,c22)") will be returned tuple #code("activity(ag1,c16)") &mdash; the one unifying with the template &mdash; removed from #code("we").
33 +So, for instance, an agent #code("ag1") performing operation #code("we ? in(activity(ag1,CaseID))") on tuple centre #code("we") containing tuples #code("activity(ag1,c16)") and #code("activity(ag2,c22)") will be returned tuple #code("activity(ag1,c16)")the one unifying with the template &mdash; removed from #code("we").
42 42  ##
43 43  Since the overall content of a tuple centre is a multiset of logic facts, it has a twofold interpretation as either a collection of messages, or a (logic) //theory of communication// among agents &mdash; thus promoting in principle forms of //reasoning about communication//.
44 -<p/>
36 +
45 45  Finally, a tuple centre is a programmable tuple space, so as to add //programmability// of the coordination medium as a new dimension of coordination.
46 46  ##
47 -While the behaviour of a tuple space in response to interaction events is fixed &mdash; so, the effects of coordination primitives is fixed &mdash;, the behaviour of a tuple centre can be tailored to the system needs by defining a set of specification tuples, or reactions, which determine how a tuple centre should react to incoming / outgoing events.
39 +While the behaviour of a tuple space in response to interaction events is fixed so, the effects of coordination primitives is fixed , the behaviour of a tuple centre can be tailored to the system needs by defining a set of specification tuples, or reactions, which determine how a tuple centre should react to incoming / outgoing events.
48 48  ##
49 49  While the basic tuple centre model is not bound to any specific language to define reactions, #respect() tuple centres are obviously programmed through the #respect() logic-based specification language.
50 50  
... ... @@ -83,6 +83,5 @@
83 83  In principle, this allows intelligent agents to reason about the state of collaboration activities, and to possibly affect their dynamics.
84 84  ##
85 85  Furthermore, the twofold interpretation (either declarative or procedural) of #respect() specification tuples allows knowledge and control to be represented uniformly (as Prolog-like facts) and encapsulated within the same coordination artefact.
86 -
87 -{{/html}}
88 88  {{/velocity}}
79 +{{include document="ReSpecT.MacroSheet"/}}

2P |  TuCSoN