

Julie Roomy: jroomy@wolf
Rob Spiger: spiger@wolf

KITE-BUILDING

1)

a)
  Prodigy's major weakness is it's use of predicate logic.  Things can only
be expressed as true or false.  This makes describing specific things 
like the inverse of playing twenty questions.  

The way these factors and others related specifically to our 
  domain was the following:

We wanted to be exact about cutting fabric shapes but lacked the ability
  to describe the shapes we wished to describe.

We wanted to add things that were "rules of thumb" (i.e. like it's not good
  practice to notch the center of a stick, or things should generally be
  lashed after being notched.)  But Prodigy lacked the finesse to allow
  anything that wasn't always true or always false.  You can't give it a 
  goal to do and then tell it it's okay if it couldn't do it.

We wanted to make it optimize the use of sticks to build kites.  For example,
  it would have been nice to give the ratio of stick sizes for frames and
  have Prodigy build the biggest kite possible for the given sticks.  But this
  was not possible to encode in Prodigy because Prodigy is a linear planner
  and it can only work one thing at once.  Something like making two sticks
  as big as possible at once is not something Prodigy seemed easily capable of.

It would be nice, if set trace nX actually worked.


b)
  To be honest, everything took a lot longer than we expected.  This
was partially because of the system, but also due to prodigy crashing
during debugging (using analyze).  Debugging was horribly slow.

c)
  The analyze facility of Prodigy was particularly useful.  As was the
ability to add search-control rules.  Sc-rules, would have been a lot
more useful if the manual had explained them better, or given more 
examples.

d) 
  Make Prodigy more interpretive, so that we could just change and 
reload a single operator, sc-rule, or function.
