1)  Chie Sano
    Sano@wolf.cs
    c473ch@hilbert.ms

2)  Domain : Cooking

3)  This domain is an effort to produce the recipe for a particular dish.
    Given the right ingredient, tools and time limit for the dish, Prodigy
    will return a list of procedures for the user to follow. At this stage,
    Prodigy will fail if the given amount of time is not long enough. One nice
    feature about this program in a real world problem is that it can produce a
    recipe for multiple dishs. The resulting list allows a user with no
    cooking background to just blindly follow the steps in the list and he will
    end up with finished dishs. 


4)  Approximate hours to encode the domain : 50 hours (with emacs problem).

5)  My domain uses the idea of the representation of time from the SCHEDWORLD.
 

---------------------------------------------------------------------------------

PROJECT #3

1.

(a) First of all, my planner can not guarantee the taste of the dish. In the real
    world, people has to constantly adjust the cooking environment in order to 
    make the dish with desirable taste. The planner can't react to these
    uncertainties; for example, by adjusting the fire or add more salt to the
    dish.

    The planner also assumes that the ingredient is provided in the desirable
    condition and will not check for their qualities.

    The planner doesn't hold up very well in the temporal issues either: 
    In the real world,people don't usually set up a time schedule for
    making a dish. Most people will only have a vague schedule in their
     mind ( they will say: " I would like to finish cooking before 6:00pm",
     but they won't say: "I will finish this at 6:00pm"). Therefore, once 
    the time schedule is given to the planner, the finishing time will be fixed,
    and there's no way one can speed it up or slow it down before the dish
    is done.

(b) I thought that the checking of preparation for a dish would be hard,
    because all I started  with is the goal state and the initial ingredient.
    For example, I have a INFER-READY-TO-ADD operator, its function is to check
    whether an object can be added, by adding this operator to my planner,
    it made the task very trivial.

(c) The very nice thing about Prodigy is that is allows you to check whether 
    a control rule is fired, and if not, why it failed to match.

(d) Right now if my domain uses time schedule, the Prodigy will just return
    a list of steps, but the steps are not sorted by numbers, it would be
    nice if we can add a sort-by-number feature to the Prodigy.

    








