



			Welcome to DATE-WORLD!!!!

		aka Your Worst Eubanks Nightmare Comes To Life!




Brought to you by : 

Phil Hutchinson, hutch@wolf
Sam Park, sampark@wolf
Rebecca Smit, rebeccas@wolf


Real-World Problem


Dating is represented here by a dater, a victim, and a (short) list of
requirements that must be fulfilled before the victim will accept a date.
These requirements can include : compliments on specific traits, 
gift(s), or common-interests.  Of course, before you can ask someone
for a date, you must be talking to them, which can be accomplished
by calling them on the phone or meeting them someplace.  But if you
are going to have to give them something, you'd better not try
to do it over the phone.   

Aspects We Were Unable to Model in Prodigy

The dater is somewhat psychic in figuring out what the other person
wants.  We would have liked to have the victim be willing to accept
any one of a class of objects (price range of flowers and chocolate;
price range of books and CDs, price range of jewelry, etc., to reflect
whether the victim is the girl-next-door, the cute-guy-at-work or
Marla Maples).  This would have made our branching factor mildly insane, 
so we decided not to do that.  We may yet change our minds.

We thought about making the date-acceptance probabalistic, with methods
to increase the odds of acceptance.  We decided that the time to implement
this exceeded the desirability of actually doing so.  Similarly with
representing time.  Besides, time in a dating situation is really
subjective -- if the dater really wants a date with the victim, time
to get said date is frequently a non-issue.


Domain Tweaks that fixed "hard" problems :

The original date-world, available in a late form in Soap-Opera-World,
had a radically different representation of what it takes to get a date.
It operated on the idea that people who like you will go out with you;
people who don't like you, won't, unless they have additional incentive;
your behavior can modify others opinion of you.

The current Date-World represents the victim as an individual with
requirements which must be fulfilled, minimum standards which must
be met, before they will accept a date.  These are listed in a generic
mechanism : 
		 	compliment
(musthave victim	interest	object)
			personality
			gift 

This simplified things substantially, but presented us with a four-way
branch that showed up for every object the victim required.  After
many attempts at fixing this with search control rules, Sam pointed
out that we could represent the objects as types of objects.

Having heard about the problems others had had with non-static
typing, we created a flat hierarchy, in which everything is an object,
but may additionally be a  gift-ob, compliment-ob, personality-ob,
interest-ob.  This took care of the problem.  

Prior to this change, several search control rules (the stay-put,
and the opp-sex preference, and of course, the don't apply to self)
all had a major impact on time to solution, particularly when you
took a working problem and just started adding extra people to it.
Or extra objects.

For the next phase of the project, we will be attempting to solve
the location problem.  In addition to continuing work on the sc-rules
to fix this, we will also be contemplating a representational change
of location to differentiate between places solely for acquiring things,
places for meeting people, etc.  This is already partially in existence,
in the form of (home person).

Domain Hack : We wiped out the conversing predicate temporarily, without
slapping in location requirements.  The result is :  you can now
FLEX over the phone.  This is mildly silly, although I can see some
guys trying it.  We'll get that fixed for the final phase.  This was
done in the process of making (aretalking p1 p2) reflexive.


Complexity Issues

We had some interesting problems with branching factor that we solved
with a combination of techniques.  

1)	We wrote many sc-rules, which are documented in the sc-rules file.

2)  	We wrote problems with very few people and objects in them.

3)  	We kept the locations to a bare minimum.  Phil has
	pretty much solved the location blow-up here with sc-rules, by
	getting the victim to stay put and forcing the dater to do
	all the moving around -- which is as it should be.

Prodigy Whine/Bitch/Moan/Complain

Useful features :

	Advise is the closes thing prodigy has to a useful feature.

One modification/addition to Prodigy : 

	A Better Manual.  Clean Code.  A Prodigy Guru type to
	answer questions.  To not have to use the system...

