SOCS-SI demo storyboard
Contacts:
Marco Alberti, Ph. D. Student
Federico Chesani, Ph. D. Student
Paolo Torroni, Ph. D.
This page illustrates a storyboard of the SOCS-SI demo to be presented at AAMAS 2004. The examples are based on the "first price sealed bid" auction, whose protocol definition is presented later in this page.
We are going to present two different scenarios: in the first scenario the protocol is satisfied, and the SOCS-SI tool communicates the successful verification of the interaction (screenshots 1-4). In the second scenario, instead, the auctioneer forgets to notify some bidders that they have lost. When the auction terminates, the SOCS-SI detects this violation of the protocol (screenshots 5-6).
Here we present the auction protocol in terms of the Social Integrity Constraints that should be satisfied in order for the protocol to be fulfilled
IC1:
H(tell(B,A,bid(Item,Quote),AuctionId),TBid)
--->
E(tell(A,B,openauction(Item,TEnd,TDeadline),AuctionId),TOpen)
/\ TOpen < TBid
/\ TBid <= TEnd
/\ TEnd < TDeadline.
It asserts that if a bidder B has placed a bid at time TBid, an auctioneer A is expected to have opened the auction at a previous time TOpen.
IC2:
H(tell(A,B,openauction(Item,TEnd,TDeadline),AuctionId),TOpen)
/\ H(tell(B,A,bid(Item,Quote),AuctionId),TBid)
/\ TOpen < TBid
/\ TOpen <= TEnd
/\ TEnd < TDeadline
--->
E(tell(A,B,answer(win,Item,Quote),AuctionId),TWin)
/\ TWin <= TDeadline/\ TEnd < TWin
\/
E(tell(A,B,answer(lose,Item,Quote),AuctionId),TLose)
/\ TLose <= TDeadline
/\ TEnd < TLose.
For each bidder B that placed a bid at the time TBid, the auctioneer A should notify B that it has either won or lost.
IC3:
H(tell(A,B,answer(win,Item,Quote),AuctionId),TWin)
--->
EN(tell(A,B,answer(lose,Item,Quote),AuctionId),TLose)
/\ TLose > TWin.
IC4:
H(tell(A,B,answer(lose,Item,Quote),AuctionId),TLose)
--->
EN(tell(A,B,answer(win,Item,Quote),AuctionId),TWin)
/\ TWin > TLose.
If auctioneer A has notified bidder B that it has won the auction, A is expected not to notify B of having lost the auction afterwards, and vice-versa.
In the first scenario, the auctioneer f opens an auction for getting a taxi at the lowest price available. Three taxis, taxi1, taxi2 and taxi3, place a bid. The auctioneer f chooses the cheapest bid, and communicates to the other agents that they have lost the auction. The exchanged messages are the following:
tell( auction1, f, taxi1, openauction, [taxiToStation,10,20], 5).
tell( auction1, f, taxi2, openauction, [taxiToStation,10,20], 5).
tell( auction1, f, taxi3, openauction, [taxiToStation,10,20], 5).
tell( auction1, taxi1, f, bid, [taxiToStation,3], 7).
tell( auction1, taxi2, f, bid, [taxiToStation,5], 8).
tell( auction1, taxi3, f, bid, [taxiToStation,7], 9).
tell( auction1, f, taxi1, answer, [win, taxiToStation,3], 12).
tell( auction1, f, taxi2, answer, [lose,taxiToStation,5], 13).
tell( auction1, f, taxi3, answer, [lose,taxiToStation,7], 14).
The second scenario is quite similar to the first one, with the difference that the auctioneer f communicates to taxi1 that it has won the auction, but it does not tell the others that they have lost:
tell( auction1, f, taxi1, openauction, [taxiToStation,10,20], 5).
tell( auction1, f, taxi2, openauction, [taxiToStation,10,20], 5).
tell( auction1, f, taxi3, openauction, [taxiToStation,10,20], 5).
tell( auction1, taxi1, f, bid, [taxiToStation,3], 7).
tell( auction1, taxi2, f, bid, [taxiToStation,5], 8).
tell( auction1, taxi3, f, bid, [taxiToStation,7], 9).
tell( auction1, f, taxi1, answer, [win, taxiToStation,3], 12).
This work is partially funded by the Information Society Technologies programme of the European Commission under the IST-2001-32530 project.