- From: Yuzhong Qu <yzqu@seu.edu.cn>
- Date: Thu, 2 Oct 2003 18:21:00 +0800
- To: "Drew McDermott" <drew.mcdermott@yale.edu>
- Cc: <www-ws@w3.org>
[Drew McDermott wrote:] > 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? So far so good. But the modal operator "i_know" may complicate the formalism, while it brings more powerful expressiveness. In this case, in addition to " pn = pn(^ @)", the another effect may be the recording of the successful query event. > > -- > -- Drew McDermott > Yale Computer Science Department > Yuzhong Qu Dept.Computer Science and Engineering Southest University, Nanjing, China
Received on Thursday, 2 October 2003 06:20:09 UTC