- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Sat, 20 Sep 2003 17:02:31 -0400 (EDT)
- To: www-ws@w3.org
I'll answer my own question....
We also need to strengthen the process description to make it clear
that the Ashcroft service didn't change the person's phone number and
then send you the new number.
All we need is the pseudo-connective (when p e), used by the
AI-planning community to mean "If p is true before the action, effect
e is imposed after." I'll make up a nice infix notation: p |-> e.
Then we revise the ':effect' filed as shown here:
(define_process call_ashcrofts_friendly_db
:inputs (ssn: US_Social_Security_number)
:outputs (pn: US_phone_number)
:definition
(send dest <= ashcrofts_pn_port
message <= ssn
response => pn)
:effect (forall (p: Person pn: US_phone_number)
person_has_SSN(p, ssn(v @))
& person_has_phone(p, pn)
|->
pn = pn(^ @)
& i_know(person_has_phone(p, pn(^ @)))))
Is that elegant or what?
--
-- Drew McDermott
Yale Computer Science Department
Received on Saturday, 20 September 2003 17:02:34 UTC