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 DepartmentReceived on Saturday, 20 September 2003 17:02:34 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:44 GMT