Changes for page Overview
From version 5.1
edited by Andrea Omicini
on 10/08/2021 16:43
on 10/08/2021 16:43
Change comment:
There is no comment for this version
To version 3.1
edited by Andrea Omicini
on 10/08/2021 16:41
on 10/08/2021 16:41
Change comment:
Document converted from syntax xwiki/1.0 to syntax xwiki/2.1
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 - ReSpecTOverview1 +Overview - Content
-
... ... @@ -1,8 +1,15 @@ 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. 1 +{{include document="Main.MacroSheet"/}}{{include document="ReSpecT.MacroSheet"/}} 5 5 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 + 6 6 == The #respect() Tuple Centre Coordination Model == 7 7 8 8 A tuple centre is a tuple space enhanced with the possibility to program its behaviour in response to interactions. ... ... @@ -14,29 +14,30 @@ 14 14 Reading tuples can be 15 15 * //destructive// — #code("in"), #code("inp") remove the matching tuple — or //non-destructive// — #code("rd"), #code("rdp") simply read the matching tuple 16 16 * //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 17 - 24 +<p/> 18 18 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. 19 - 26 +<p/> 20 20 Accordingly, a tuple centre enjoys all the many features of a tuple space, which can be classified along three different dimensions: 28 + 21 21 * generative communication 22 22 * associative access 23 23 * suspensive semantics 24 - 32 +<p/> 25 25 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. 26 26 ## 27 27 //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. 28 28 ## 29 29 Finally, //suspensive semantics// promotes coordination patterns based on knowledge availability, and couples well with incomplete, partial knowledge. 30 - 38 +<p/> 31 31 Even more, while the basic tuple centre model is independent of the type of tuple, #respect() tuple centres adopt logic tuples — both tuples and tuple templates are essentially Prolog //facts// — and logic //unification// is used as the tuple-matching mechanism. 32 32 ## 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 — removed from #code("we").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)") — the one unifying with the template — removed from #code("we"). 34 34 ## 35 35 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 — thus promoting in principle forms of //reasoning about communication//. 36 - 44 +<p/> 37 37 Finally, a tuple centre is a programmable tuple space, so as to add //programmability// of the coordination medium as a new dimension of coordination. 38 38 ## 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.47 +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. 40 40 ## 41 41 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. 42 42 ... ... @@ -75,5 +75,6 @@ 75 75 In principle, this allows intelligent agents to reason about the state of collaboration activities, and to possibly affect their dynamics. 76 76 ## 77 77 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}} 78 78 {{/velocity}} 79 -{{include document="ReSpecT.MacroSheet"/}}