doc

advertisement
COMP 4200 - Expert Systems
Assignment 1B – Practical Part
Dating Agency “We-Harmony”
Summer is gone, Winter days are coming and people start to feel cold and lonely. This is the
right time for a new business, an online Dating Agency: We-Harmony.
You will develop a rule-based system to be used by the online Dating Agency. The core system
consists of a client fact base, and a rule or set of rules specifying heuristic matching constraints.
The system will run in an interactive mode, with input from the client/user. The user will be
asked queries to set up a profile, and then the system will suggest the best possible matching
partners.
Dating Agency Programming Guideline
Based on our favourite template, the person template, you develop a database storing
information about singles seeking suitable company. You use 12 features to describe clients of
the Dating Agency. These features include:

nick-name (for privacy reasons, we keep the real name in a separate database)

age

gender (restricted set of possible values here)

hair (hair-colour, restricted to the values: blond, brown, black, and red)

eyes (eye-colour, restricted to the values: brown, black, blue and green)

occupation (choose set of possible values)

hobbies (choose set of possible values)

personality type (e.g. relaxed, calm, boring, hyper, ...)

income (use quantified qualitative values, like 1=student, 2=poor, 3=getting by, 4=doing
okay, 5=rich, 6=really rich and 10=Bill Gates)

3 more – your choice
Choose suitable types and constraints for the slots.
Tip: You can add slots to the template to describe other features or to store information related
to the matching and partner-finding process, for example a “matching-score”.
The features will also be used to set up a client-profile. You collect information about the client’s
features in an input-dialog with the client. You do not have to ask all features in this dialogue,
and you can also allow the client not to answer questions. Specify in your solution what value
you use for unknown features (default).
In addition, you ask the client about his/her preferences for features of a partner. You allow the
client to specify some criteria for his/her partner choice, e.g. gender, hair-colour, hobby. The
client has also the option to answer “I don’t care”, if s/he does not want to specify a constraint.
Tip: When testing your program, you can read this input from a file.
Define one or more rules, which take into account the user’s preferences and in addition specify
heuristics to match partners (e.g. you may want to match a poor person with a rich one, or a
calm person with a hyper person etc.). User preferences should have a higher priority than the
heuristics in the matching process.
Hand-In
You will hand in your complete, documented CLIPS-code, with added documentation explaining
your rules and reasoning briefly (separate document). Describe any additions or modifications
you made in your solution compared to the task description above.
The CLIPS-code contains at least the following constructs.
Template
Use a person-template as described above.
[4]
Facts
Create people, a factlist with 20 or more persons.
[2]
Warming Up Rules
Write a Simple-Search rule first, for finding women with blonde hair, and men who are at least
really rich. For each match, print the nick-name, and the requested attribute value(s).
[2]
Write a Gender rule for finding possible partners of the opposite sex. Generate a printout of all
found possible couples.
[2]
Client Input
You write one rule, the Client-Input rule, which collects the client data.
[6]
If you also used input from a file, please add this rule as alternative File-Input rule. [1 Bonus]
Matching Heuristics
[2]
For the Match-Making process, you define first a set of matching-criteria or constraints (on
paper), in order to describe who fits with whom. For example, you can use the basic criterion
that only a male and a female client match. Please describe these Matching-Heuristics
explicitly in your added documentation - the actual implementation as CLIPS rule(s) can be
different since several heuristic constraints can be integrated into one Matching-Rule.
Matching-Rule
[10]
Write a complex Matching-Rule integrating:

definite constraints, e.g. that only a partner of the gender specified by the client
matches (e.g. if a client has preference for a female partner, the system should not
suggest a male partner – unless the client stated in the Input-Dialog “I don’t care”).

other client preferences, i.e. test the compatibility of potential partners with the client’s
desired attributes (e.g. select for a man, who likes “Blondes”, preferably but not
necessarily exclusively women with blonde hair).

heuristic rules, like a rule about income relations (e.g. women match better with men
who have a higher income than they do, or, alternatively, possible partners should have
the same income).
Output
[6]
The output consists of suggestions of matching partners with the best matches first, and a
“justification” for the suggestion through printing out the fulfilled matching criteria.
Tip: Use the matching score calculated for each possible partner and rank matches accordingly.
Please send a zipped folder with your CLIPS code plus a short documentation by e-mail to the
instructor.
Due Date: 18 October 2007, 10:00 am
Download