1/26/05 Next attempt on the travel module. It is incomplete but I hope it will give a flavor of the directions in which we are going. Goals: 1. Make our axiomatization more modular and more general. 2. Make it more efficient. There are two ways to achieve (1): (a) Use smaller and better written modules we have two basic modules: trip.lp and participants.lp two additional modules: containers.lp and locality.lp This is work in progress. I expect the number of relevant modules to grow substantially. Typical question: Do we introduce vehicles as movable containers (in this case checking luggage in will be like packing) or do we need a separate category? People in ontologies have something to say about such questions but to learn what they know requires substantial search and reading. In my judgment this is one of the most important parts of our work. We'll have a much better understanding of the issues involved in axiomatization of common knowledge when we have 300 to 500 rules instead of 100. (b) Another way to achieve (1) is to single out general constructs which can facilitate our formalizations. For instance last time I was talking about expending action theories by defeasible triggers. Now I believe that the goal can be better achieved by introducing " defeasible sequences of actions ". Intuitively execution of such a sequence s=A1,...,An consist in attempts on consecutive execution of its components. Normally, this succeeds. If however, because of some exogenous events, Ai cannot be executed at planned step i the agent will resume the execution when it becomes possible. In a sense start(s) may be viewed as generalization of planned(A), i.e. an intention to execute A1,...,An. At this point the idea is still half baked but if you look in the file "general_axioms.lp" you'll find an axiomatization of the notion of defeasible sequences of ATOMIC actions. (The restriction should be lifted of course) File trip.lp contains definition of such a sequence, go(J). This description, together with general axioms ensures that in the absence of interruption a trip J follows its planned route. All this is closely related to the notion of intentions and also to hierarchical planning. Let me know what you think. Goal 2 - efficiency. As we expected one of the sources of inefficiency is an assignment of days (and other time units) to time steps of the domain history. The idea was to use constraint logic programming to define and reason about such assignments. Constraint lp, written in SICSTUS, is contained in file "DayAssignment.pl". The file "input-to-fds" contains the scenario information about such an assignment and definition of some queries. It is only written for domain description with one model. (I do not really anticipate serious problems of extending the definition to multiple models a la APLQIERY). To use all these things you need first call: lparse --true-negation input_to_smodels trip.lp participants.lp containers.lp locality.lp general_axioms.lp | smodels 0 | mkatoms | aplprep.py > dbase This will create a (time independent) history of the domain described in "input_to_smodels" and store it as Prolog facts in dbase. (In particular dbase contains all the occurrences of the domain actions). After that you call Sicstus as follows: sicstus -l input_to_fds Below is an example of queries: | ?- ans(at(greg,boston),1,X). X = yes ? yes | ?- ans(at(greg,rome),1,X). X = no ? yes | ?- ans(at(greg,rome),2,X). X = maybe ? yes | ?- ans(at(greg,boston),30,X). X = maybe ? yes | ?- ans(at(greg,baghdad),2,X). X = maybe ? yes A query | ?- a(L). L = [1,1,1,1,1,1,1] ? ; L = [1,1,1,1,1,2,2] ? ; L = [1,1,1,1,2,2,2] ? ; L = [1,1,1,2,2,2,2] ? ; L = [1,1,2,2,2,2,2] ? ; no will give you all the possible assignments of days to time step of the domain history of dbase. (These are the only assignments which satisfy conditions from input_to_fds.) Roughly speaking the scenario is o(embark(greg,j1),1). starts(j1,2). ends(j1,6). o(disembark(greg),6) where j1 starts in boston at day 1, goes to baghdad, and comes back to boston. trip takes at most one day. embarking and disembarking is instant. According to the first possible assignment everything happens in one day. Other assignments require two days. Since in all the assignments on the first day Greg is in Boston the answer to first two queries are YES and NO respectively. There is an assignment according to which Greg is in Boston on the first and nothing is know to happen afterwards. So the answer to the third question is 'maybe'. The answers are immediate so there is a very substantial advantage in time. This is my first program in constraint logic programming languages and it took me some time to write it. There is a number of assumption, e.g. no actions occurring inside the sequence for which the interval of time is given have assigned duration, etc. All this will be eventually removed. We of course will also need to move to other units of time, etc. Hope it gives some impression of what is going on. It may be a good idea to eventually have a teleconference to discuss these and other things. Best, Michael There are 6 files attached to this message. None is related to time.