Changes for page Overview
From version 7.1
edited by Andrea Omicini
on 10/08/2021 16:45
on 10/08/2021 16:45
Change comment:
There is no comment for this version
To version 6.1
edited by Andrea Omicini
on 10/08/2021 16:44
on 10/08/2021 16:44
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -7,13 +7,13 @@ 7 7 8 8 A tuple centre is a tuple space enhanced with the possibility to program its behaviour in response to interactions. 9 9 ## 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 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 chunks—through a simple set of coordination primitive. 11 11 ## 12 12 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. 13 13 ## 14 14 Reading tuples can be 15 -* //destructive// — #code("in"), #code("inp") remove the matching tuple –or //non-destructive//–#code("rd"), #code("rdp") simply read the matching tuple16 -* //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 result15 +* //destructive// — #code("in"), #code("inp") remove the matching tuple — or //non-destructive// — #code("rd"), #code("rdp") simply read the matching tuple 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 17 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 19 ... ... @@ -28,11 +28,11 @@ 28 28 ## 29 29 Finally, //suspensive semantics// promotes coordination patterns based on knowledge availability, and couples well with incomplete, partial knowledge. 30 30 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.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").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"). 34 34 ## 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//.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 36 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 ## ... ... @@ -45,9 +45,11 @@ 45 45 The original #respect() is a logic-based language for the specification of the behaviour of tuple centre. 46 46 ## 47 47 As a behaviour specification language, #respect(): 48 + 49 + 48 48 * enables the definition of computations within a tuple centre, called reactions, and 49 49 * makes it possible to associate reactions to events occurring in a tuple centre. 50 - 52 +<p/> 51 51 So, #respect() has both a declarative and a procedural part. 52 52 ## 53 53 As a specification language, it allows events to be declaratively associated to reactions by means of specific logic tuples, called specification tuples, whose form is #code("reaction(E,R)"). ... ... @@ -59,7 +59,7 @@ 59 59 A reaction as a whole succeeds if all its reaction goals succeed, and fails otherwise. 60 60 ## 61 61 Each reaction is executed sequentially with a transactional semantics: so, a failed reaction has no effect on the state of a logic tuple centre. 62 - 64 +<p/> 63 63 All the reactions triggered by an event are executed before serving any other event: so, agents perceive the result of serving the event and executing all the associated reactions altogether as a single transition of the tuple centre state. 64 64 ## 65 65 As a result, the effect of a coordination primitive on a logic tuple centre can be made as complex as needed by the coordination requirements of a system. ... ... @@ -67,7 +67,7 @@ 67 67 Generally speaking, since #respect() has been shown to be Turing-equivalent, any computable coordination law could be in principle encapsulated into a #respect() tuple centre. 68 68 ## 69 69 This is why #respect() can be assumed as a general-purpose core language for coordination: a language that could then be used to represent and enact policies and rules for coordination systems of any sort. 70 - 72 +<p/> 71 71 Adopting the declarative interpretation of logic tuples, a #respect() tuple centre has then a twofold nature a //theory of communication// (the set of the ordinary tuples) and a //theory of coordination// (the set of the specification tuples). 72 72 ## 73 73 In principle, this allows intelligent agents to reason about the state of collaboration activities, and to possibly affect their dynamics.