FIPA Communicative Acts CA 2020121 1 Introduction to

  • Slides: 61
Download presentation
FIPA Communicative Acts (CA) 2020/12/1 1

FIPA Communicative Acts (CA) 2020/12/1 1

Introduction to FIPA • FIPA is an IEEE Computer Society standards organization that promotes

Introduction to FIPA • FIPA is an IEEE Computer Society standards organization that promotes agent-based technology and the interoperability of its standards with other technologies. • FIPA, the standards organization for agents and multi-agent systems was officially accepted by the IEEE as its eleventh standards committee on 8 June 2005. 2020/12/1 2

FIPA was originally formed as a Swiss based organization in 1996 to produce software

FIPA was originally formed as a Swiss based organization in 1996 to produce software standards specifications for heterogeneous and interacting agents and agent based systems. 2020/12/1 3

 Since its foundations, FIPA has played a crucial role in the development of

Since its foundations, FIPA has played a crucial role in the development of agents standards and has promoted a number of initiatives and events that contributed to the development and uptake of agent technology. 2020/12/1 4

Furthermore, many of the ideas originated and developed in FIPA are now coming into

Furthermore, many of the ideas originated and developed in FIPA are now coming into sharp focus in new generations of Web/Internet technology and related specifications. 2020/12/1 5

In March 2005, the FIPA Board of Directors presented this opportunity to the entire

In March 2005, the FIPA Board of Directors presented this opportunity to the entire FIPA membership, who unanimously voted to join the IEEE computer Society. Now, it is time to move standards for agents and agent-based systems into the wider context of software development. 2020/12/1 6

In short, agent technology needs to work and integrate with non-agent technologies. To this

In short, agent technology needs to work and integrate with non-agent technologies. To this end, the IEEE Computer Society has formally accepted FIPA to become part of its family of standards committees. 2020/12/1 7

Speech act (communicative act) Speech act theory has been influential in computer science since

Speech act (communicative act) Speech act theory has been influential in computer science since the early 1980 s, particularly in the design of artificial languages for communication between software entities ("agents"). [wikipedia] 2020/12/1 8

 The theory was used, for example, to give a semantics to Agent Communication

The theory was used, for example, to give a semantics to Agent Communication Language (ACL), an agent language developed by FIPA. The FIPA ACL speech act semantics, expressed semi-formally using epistemic modal logic, defines utterances in ACL in terms of the: certain beliefs, uncertain beliefs, desires and intentions of the speaker. 2020/12/1 9

 In principle, therefore, it enables agents using FIPA ACL to be sure that

In principle, therefore, it enables agents using FIPA ACL to be sure that other agents will understand the meaning of utterances in the same way as the speaker. However, the FIPA ACL language syntax and semantics, although now widely used in agent systems, have been heavily criticized on theoretical and practical grounds. 2020/12/1 10

Semantic Language (SL) Formalism • Components of the formalism: p, p 1, . .

Semantic Language (SL) Formalism • Components of the formalism: p, p 1, . . . are taken to be closed formulas denoting propositions, φ and ψ are formula schemas, which stand for any closed proposition, i and j are schematic variables which denote agents | = φ means that φ is valid. 2020/12/1 11

 • Modal operators: – Belief (B) • Bip: i believes (that) p (for

• Modal operators: – Belief (B) • Bip: i believes (that) p (for a proposition) holds – Uncertainty (U) • Uip: i is uncertain about p, but thinks that p is more likely than ¬p – Choice (C) • Cip: i desires that p currently holds 2020/12/1 12

 • Action expressions: – a 1 ; a 2 • sequence in which

• Action expressions: – a 1 ; a 2 • sequence in which a 2 follows a 1 – a 1 | a 2 • nondeterministic choice, in which either a 1 happens or a 2, but not both. 2020/12/1 13

Notation • A CA model will be presented as follows: <i, act (j, C)>

Notation • A CA model will be presented as follows: <i, act (j, C)> FP (Feasibility Precondition): φ1 RE (Rational Effect): φ2 • Translation of the above example: (act : sender i : receiver j : content C ) 2020/12/1 14

Underlying Semantic Model • Rational Effect (RE) – reasons for which the act is

Underlying Semantic Model • Rational Effect (RE) – reasons for which the act is selected • Feasibility Preconditions (FPs) – conditions that have to be satisfied for the act to be planned (qualifications of the act). 2020/12/1 15

Accept Proposal • Summary – The action of accepting a previously submitted proposal to

Accept Proposal • Summary – The action of accepting a previously submitted proposal to perform an action. • Content – A tuple consisting of an action expression denoting the action to be done, and a proposition giving the conditions of the agreement. 2020/12/1 16

 • Formal Model – <i, accept-proposal (j, <j, act>, φ))> • Example –

• Formal Model – <i, accept-proposal (j, <j, act>, φ))> • Example – Agent i informs j that it accepts an offer from j to stream a given multimedia title to channel 19 when the customer is ready. – (accept-proposal : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : in-reply-to bid 089 : content "((action (agent-identifier : name j) (stream-content movie 1234 19)) (B (agent-identifier : name j) (ready customer 78)))" : language fipa-sl act φ ) 2020/12/1 17

Agree • Summary – The action of agreeing to perform some action, possibly in

Agree • Summary – The action of agreeing to perform some action, possibly in the future. • Content – A tuple, consisting of an action expression denoting the action to be done, and a proposition giving the conditions of the agreement. 2020/12/1 18

 • Formal Model – <j, agree (i, <j, act>, φ))> • Example –

• Formal Model – <j, agree (i, <j, act>, φ))> • Example – Agent i requests j to deliver a box to a certain location; j answers that it agrees to the request but it has low priority. – (agree : sender (agent-identifier : name j) : receiver (set (agent-identifier : name i)) : content "((action (agent-identifier : name j) (deliver box 017 (loc 12 19))) (priority order 567 low))" : in-reply-to order 567 : protocol fipa-request : language fipa-sl act φ ) 2020/12/1 19

Cancel • Summary – The action of one agent informing another agent that the

Cancel • Summary – The action of one agent informing another agent that the first agent no longer has the intention that the second agent perform some action. • Content – An action expression denoting the action that is no longer intended. 2020/12/1 20

 • Formal Model – • <i, cancel (j, act)> Example – Agent i

• Formal Model – • <i, cancel (j, act)> Example – Agent i asks j to cancel a previous request-whenever act by quoting the action. – (cancel : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name i) (request-whenever : sender (agent-identifier : name i) : receiver (set(agent-identifier : name j)) : content 2 "((action (agent-identifier : name j) (inform-ref … : langage fipa-sl act …) 2020/12/1 21

Call for Proposal • Summary – The action of calling for proposals to perform

Call for Proposal • Summary – The action of calling for proposals to perform a given action. • Content – A tuple containing an action expression denoting the action to be done, and a referential expression defining a single-parameter proposition which gives the preconditions on the action. 2020/12/1 22

 • Formal Model – <i, cfp (j, <j, act>, Ref x φ(x))> •

• Formal Model – <i, cfp (j, <j, act>, Ref x φ(x))> • Example – Agent i asks j to submit its proposal to sell 50 boxes of plums to i. – (cfp : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name j) (sell plum 50)) (any ? x (and (= (price plum) ? x) (< ? x 10))))" : ontology fruit-market : language fipa-sl act Ref x φ(x) ) 2020/12/1 23

? x denotes the value referred to by the reference X 2020/12/1 24

? x denotes the value referred to by the reference X 2020/12/1 24

Confirm • Summary – The sender informs the receiver that a given proposition is

Confirm • Summary – The sender informs the receiver that a given proposition is true, where the receiver is known to be uncertain about the proposition. • Content – A proposition. 2020/12/1 25

 • Formal Model – <i, confirm (j, φ)> • Examples – Agent i

• Formal Model – <i, confirm (j, φ)> • Examples – Agent i confirms to agent j that it is, in fact, true that it is shining today. – (confirm : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "weather (today, shining)" : language Prolog ) 2020/12/1 φ 26

Disconfirm • Summary – The sender informs the receiver that a given proposition is

Disconfirm • Summary – The sender informs the receiver that a given proposition is false, where the receiver is known to believe, or believe it likely that, the proposition is true. • Content – A proposition. 2020/12/1 27

 • Formal Model – <i, disconfirm (j, φ)> • Example – Agent i,

• Formal Model – <i, disconfirm (j, φ)> • Example – Agent i, believing that agent j thinks that a shark is a mammal and attempts to change j’s belief. – (disconfirm : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((mammal shark))" : language fipa-sl ) 2020/12/1 φ 28

Failure • Summary – The action of telling another agent that an action was

Failure • Summary – The action of telling another agent that an action was attempted but the attempt failed. • Content – A tuple, consisting of an action expression and a proposition giving the reason for the failure. 2020/12/1 29

 • Formal Model – <i, failure (j, a, φ)> • Example – Agent

• Formal Model – <i, failure (j, a, φ)> • Example – Agent i informs j that it has failed to open a file. – (failure : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name i) (open "foo. txt")) (error-message "No such file: foo. txt"))" : language fipa-sl a φ ) 2020/12/1 30

Inform • Summary – The sender informs the receiver that a given proposition is

Inform • Summary – The sender informs the receiver that a given proposition is true. • Content – A proposition. 2020/12/1 31

 • Formal Model – <i, inform (j, φ )> • Examples – Agent

• Formal Model – <i, inform (j, φ )> • Examples – Agent i informs agent j that (it is true that) it is raining today. – (inform : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "weather (today, raining)" : language Prolog ) 2020/12/1 φ 32

Inform If • Summary – A macro action for the agent of the action

Inform If • Summary – A macro action for the agent of the action to inform the recipient whether or not a proposition is true. • Content – A proposition. 2020/12/1 33

 • Formal Model – • <j, inform-if (i, φ)> Examples – Agent i

• Formal Model – • <j, inform-if (i, φ)> Examples – Agent i requests j to inform it whether Lannion is in Normandy. – (request : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name j) (inform-if : sender (agent-identifier : name j) : receiver (set (agent-identifier : name i)) : content "in( lannion, normandy)" : language Prolog)) )" : language fipa-sl ) 2020/12/1 φ 34

Inform Ref • Summary – A macro action for sender to inform the receiver

Inform Ref • Summary – A macro action for sender to inform the receiver the object which corresponds to a reference, for example, a name. • Content – An object description (a referential expression). 2020/12/1 35

 • Formal Model – • <j, inform-ref (i, Ref x δ(x))> Example –

• Formal Model – • <j, inform-ref (i, Ref x δ(x))> Example – Agent i requests j to tell it the current Prime Minister of the United Kingdom. – (request : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name j) (inform-ref : sender (agent-identifier : name j) : receiver (set (agent-identifier : name i)) : content "((iota ? x (UKPrime. Minister ? x)))" : ontology world-politics : language fipa-sl)))" : reply-with query 0 : language fipa-sl Ref x δ(x) ) 2020/12/1 36

iota (ιninth Greek character) • When using the definite descriptor in a formal logical

iota (ιninth Greek character) • When using the definite descriptor in a formal logical context, it is common to denote it by the symbol iota: ψ(ιx(φx)) ≔ ∃x(∀y(φy ↔ y = x) ∧ ψx) Ref: Wikipedia 2020/12/1 37

Not Understood • Summary – The sender of the act (for example, i) informs

Not Understood • Summary – The sender of the act (for example, i) informs the receiver (for example, j) that it perceived that j performed some action, but that i did not understand what j just did. A particular common case is that i tells j that i did not understand the message that j has just sent to i. • Content – A tuple consisting of an action or event, for example, a communicative act, and an explanatory reason. 2020/12/1 38

 • Formal Model – • <i, not-understood(j, a, φ)> Examples – Agent i

• Formal Model – • <i, not-understood(j, a, φ)> Examples – Agent i did not understand a query-if message because it did not recognize the ontology. – (not-understood : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name j) a (query-if : sender (agent-identifier : name j) : receiver (set (agent-identifier : name i)) : content "<fipa-ccl content expression>" : ontology www : language fipa-ccl)) (unknown (ontology "www")))" : language fipa-sl) 2020/12/1 φ 39

Propagate • Summary – The sender intends that the receiver treat the embedded message

Propagate • Summary – The sender intends that the receiver treat the embedded message as sent directly to the receiver, and wants the receiver to identify the agents denoted by the given descriptor and send the received propagate message to them. • Content – A tuple of a descriptor, that is, a referential expression, denoting 1) an agent or agents to be forwarded the propagate message, 2) an embedded ACL communicative act, that is, an ACL message, performed by the sender to the receiver of the propagate message and 3) a constraint condition for propagation, for example, a timeout. 2020/12/1 40

 • Formal Model – • <i, propagate (j, Ref x δ(x), <i, cact>,

• Formal Model – • <i, propagate (j, Ref x δ(x), <i, cact>, φ)> Example – Agent i requests agent j and its federating other brokerage agents to do brokering server. – Ref x δ(x) (propagate : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((any ? x (registered (agent-description : name ? x : services (set (service-description : name agent-brokerage)))) (action (agent-identifier : name i) (proxy : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content … )) cact (< (hop-count) 5))“ : ontology brokerage-agent-ontology φ …) 2020/12/1 41

Propose • Summary – The action of submitting a proposal to perform a certain

Propose • Summary – The action of submitting a proposal to perform a certain action, given certain preconditions. • Content – A tuple containing an action description, representing the action that the sender is proposing to perform, and a proposition representing the preconditions on the performance of the action. 2020/12/1 42

 • Formal Model – <i, propose (j, <i, act>, φ)> • Example –

• Formal Model – <i, propose (j, <i, act>, φ)> • Example – Agent i proposes to j to sell 50 boxes of plums for $5 – (propose : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action i (sell plum 50)) act φ (= (any ? x (and (= (price plum) ? x) (< ? x 10))) 5)" : ontology fruit-market : in-reply-to proposal 2 : language fipa-sl ) 2020/12/1 43

Proxy • Summary – The sender wants the receiver to select target agents denoted

Proxy • Summary – The sender wants the receiver to select target agents denoted by a given description and to send an embedded message to them. • Content – A tuple of a descriptor, that is, a referential expression, that denotes 1) the target agents, 2) an ACL communicative act, that is, an ACL message, to be performed to the agents, and 3) a constraint condition for performing the embedded communicative act, for example, the maximum number of agents to be forwarded, etc. 2020/12/1 44

 • Formal Model – • <i, proxy (j, Ref x δ(x), <j, cact>,

• Formal Model – • <i, proxy (j, Ref x δ(x), <j, cact>, φ)> Example – Agent i requests agent j to do recruiting and request a server. – Ref x δ(x) (proxy : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((all ? x (registered(agent-description : name ? x : services (set (service-description : name video-on-demand))))) (action (agent-identifier : name j) (request … : ontology vod-server-ontology : language FIPA-SL true)“ cact φ : ontology brokerage-agent : protocol fipa-recruiting …) 2020/12/1 45

Query If • Summary – The action of asking another agent whether or not

Query If • Summary – The action of asking another agent whether or not a given proposition is true. • Content – A proposition. 2020/12/1 46

 • Formal Model – <i, query-if (j, φ)> • Example – Agent i

• Formal Model – <i, query-if (j, φ)> • Example – Agent i asks agent j if j is registered with domain server d 1. – (query-if : sender (agent-identifier : name i) : receiver (set (agent-identitfier : name j)) : content "((registered (server d 1) (agent j)))" : reply-with r 09 … ) 2020/12/1 φ 47

Query Ref • Summary – The action of asking another agent for the object

Query Ref • Summary – The action of asking another agent for the object referred to by a referential expression. • Content – A descriptor (a referential expression). 2020/12/1 48

 • Formal Model – <i, query-ref (j, Ref x δ(x))> • Example –

• Formal Model – <i, query-ref (j, Ref x δ(x))> • Example – Agent i asks agent j for its available services. – (query-ref : sender (agent-identinfier : name i) : receiver (set (agent-identifier : name j)) : content "((all ? x (available-service j ? x)))" … ) 2020/12/1 Ref x δ(x) 49

Refuse • Summary – The action of refusing to perform a given action, and

Refuse • Summary – The action of refusing to perform a given action, and explaining the reason for the refusal. • Content – A tuple, consisting of an action expression and a proposition giving the reason for the refusal. 2020/12/1 50

 • Formal Model – <i, refuse (j, <i, act>, φ)> • Example –

• Formal Model – <i, refuse (j, <i, act>, φ)> • Example – Agent i refuses to j reserve a ticket for j, since there are insufficient funds in j’s account. – (refuse : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name i) (reserve-ticket LHR MUC 27 -sept-97)) (insufficient-funds ac 12345))" : language fipa-sl act φ ) 2020/12/1 51

Reject Proposal • Summary – The action of rejecting a proposal to perform some

Reject Proposal • Summary – The action of rejecting a proposal to perform some action during a negotiation. • Content – A tuple consisting of an action description and a proposition which formed the original proposal being rejected, and a further proposition which denotes the reason for the rejection. 2020/12/1 52

 • Formal Model – <i, reject-proposal (j, <j, act>, φ, ψ)> • Example

• Formal Model – <i, reject-proposal (j, <j, act>, φ, ψ)> • Example – Agent i informs j that it rejects an offer from j to sell. – (reject-proposal : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name j) (sell plum 50)) (cost 200) (price-too-high 50))" : in-reply-to proposal 13 act φ ψ ) 2020/12/1 53

Request • Summary – The sender requests the receiver to perform some action. –

Request • Summary – The sender requests the receiver to perform some action. – One important class of uses of the request act is to request the receiver to perform another communicative act. • Content – An action expression. 2020/12/1 54

 • Formal Model – <i, request (j, a )> • Examples – Agent

• Formal Model – <i, request (j, a )> • Examples – Agent i requests j to open a file. – (request : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "open "db. txt" for input" : language vb ) 2020/12/1 a 55

Request When • Summary – The sender wants the receiver to perform some action

Request When • Summary – The sender wants the receiver to perform some action when some given proposition becomes true. • Content – A tuple of an action description and a proposition. 2020/12/1 56

 • Formal Model – • <i, request-when (j, <j, act>, φ)> Examples –

• Formal Model – • <i, request-when (j, <j, act>, φ)> Examples – Agent i tells agent j to notify it as soon as an alarm occurs. – (request-when : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name j) act (inform : sender (agent-identifier : name j) : receiver (set (agent-identifier : name i)) : content "((alarm "something alarming!")) (Done( alarm )))" φ … ) 2020/12/1 57

Request Whenever • Summary – The sender wants the receiver to perform some action

Request Whenever • Summary – The sender wants the receiver to perform some action as some proposition becomes true and thereafter each time the proposition becomes true again. • Content – A tuple of an action description and a proposition. 2020/12/1 58

 • Formal Model – • <i, request-whenever (j, <j, act>, φ)> Examples –

• Formal Model – • <i, request-whenever (j, <j, act>, φ)> Examples – – Agent i tells agent j to notify it whenever the price of widgets rises from less than 50 to more than 50. – (request-whenever : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) : content "((action (agent-identifier : name j) (inform-ref : sender (agent-identifier : name j) : receiver (set (agent-identifier : name i)) : content "((iota ? x (= (price widget) ? x)))")) (> (price widget) 50))" … ) 2020/12/1 act φ 59

Subscribe • Summary – The act of requesting a persistent intention to notify the

Subscribe • Summary – The act of requesting a persistent intention to notify the sender of the value of a reference, and to notify again whenever the object identified by the reference (its value) changes. • Content – A descriptor (a referential expression). 2020/12/1 60

 • Formal Model – <i, subscribe (j, Ref x δ(x))> • Examples –

• Formal Model – <i, subscribe (j, Ref x δ(x))> • Examples – Agent i wishes to be updated on the exchange rate of Francs to Dollars and makes a subscription agreement with j. – (subscribe : sender (agent-identifier : name i) : receiver (set (agent-identifier : name j)) Ref x δ(x) : content "((iota ? x (= ? x (xch-rate FFR USD))))” ) 2020/12/1 61