Re: Why event calculus might be the right model

Jean-Jacques Dubray wrote:

>So using some of the standard pi-calc notation would the example look
>like this?
>
>For the buyer, the process is:
>ChangePo = _changePo.ChangePO
>Purchase(po, changePo, cancelPo,invoice)
>=_po.((ChangePo + _cancelPo.0).invoice)+invoice.0
>
>(assuming all messages don't need a response).
>
After changePO you would want to return back o the point where you can 
send another change, cancel or receive an invoice. So you would write 
that loop as :

Purchase = _po.Manage
Manage = (_changePo.Manage + _cancelPo.0 + invoice.0 + timeout.Problem)

(The pi-c notation would be a bit more verbose but essentially boils 
down to the same thing)

>I am trying to express that when a PO is sent, it can be followed by any
>number of changePo (for a certain duration?) or by a cancelPO, if the
>cancelPO happens the process stops right there, otherwise, an invoice is
>sent. How do we express that changePO or cancelPO may not happen at all?
>Is it like I did above with the +invoice? 
>
In the example above you reach a state where you can send a changePO, 
cancelPO or receive invoice or just not receive anything. If you send a 
changePO you return back to the same state (you would use reflextion to 
avoid recursion). Either sending cancelPO or receiving an invoice would 
end the process. When a timeout occurs you start some other process 
(just to make the example for interesting ;-) ).

>How would you add business logic like if PO accepted then (ChangePO +
>_cancelPO) can happen? Maybe it is not part of the notation.
>  
>
Purchase = _po.Response
Response = accepted.Manage + rejected.0 + timeout.0
Managed = as above

arkin

>Jean-Jacques 
>  
>

Received on Friday, 20 June 2003 13:42:30 UTC