
  Produced by:    Jimmy Chang
  E-mail address: jimchang@wolf.cs.washington.edu
  Domain:         Dairy production


     This domain should solve the problem of determining if there are
  enough resources to make certain milk-products.  It propagates information
  about the quantity of certain milk-products that are involved in the
  production of the goal product.  For example to make x quarts of cheese
  requires n*x gallons of skim milk and m*x amount of enzymes.  I found
  myself going into huge traces which means I was not able to complete even
  small problems.

     It took me about 24hrs. to encode this.

  My domain is definitely unique.  It seems to use Prodigy in a way not
 used before.  That is propagating information from one operator to another.
 
 However, I did use the binding-list function that is used in the sched-world.
 But, I did not use the concept of time.


1. (a) I was very discouraged that I was unable to produce inference about
      ingredients that were not included in the initial state.  This is a
      major bug in my domain.  In otherwords, all the ingredients that are
      required to make a particular dairy product must be included in the
      initial state or else prodigy would simply fail to subgoal on unbound
      variables.
       A major difficulty is that often real-world problems deal with
      continuous properties such as time, flow, movement, and quantities.
      However, by nature Prodigy's description language is based on processing
      discrete forms of information.  This requires simplifying assumptions
      such as the division of events into discrete periods of time.
      

   (b) At first I was wondering whether I should follow a scheduling type
      of domain such as the schdworld domain, but instead I decided to
      attempt a spacial rather that a temporal model.  I noticed that
      many classmates were using a temporal model, I tried to be different.
       I was happy to realize that by using functions, I was able to
      deal with quantities and then propagating information through Prodigy
      by subgoaling.

   (c) What I found particularly useful was the ability to use functions as
      literals or generators in my domain.

   (d) I would like Prodigy to be somehow less dependent on the order
      of preconditions in operators.

