FJK Home | CPE/CSC 481 | News | Syllabus | Schedule | Lecture Notes | Assignments | Paper | Project | Teams | Other Links |
Points | 25 |
Deadline | Thu, Jan.28, 2010 end of lab |
The goal of this assignment is to establish a knowledge base for extended families. It stores basic facts about the individuals that are part of the extended family, and some of the basic relationships between individuals in that family. It will be expanded further in the next assignment, where you will define additional relationships that allow the derivation of new knowledge from the knowledge base.
As an alternative to the family relationship domain, you can select something else with a similar structure: There should be a set of entities (similar to the persons) with relations (among each other), and at least some of the relations can be defined based on others. The individuals should have some properties, and need to be uniquely identifiable. If you choose to do that, please let me know in advance, and also adapt the description below accordingly.
In particular, you should:
Your task is to define templates for the following properties and relationships:
You may add other properties that you find relevant or interesting (e.g. weight, hair color, eye color, odd habits, ...). If you are not comfortable using your own family as an example, you can use other families for which such information is available (royalty usually has a wealth of information), or cartoon characters (the Simpsons are a good example of a reasonably large family; many other cartoon families are too small to be interesting). You can also add other relationships such as fiance, friend, business partner, etc., but it is probably better to keep it simple for now. Your family should span at least 20 individuals over four or more generations; if necessary, you can add fictitious individuals. Each individual must have at least one relationship, and on average each individual must have at least two instantiated properties.
Your program must be able to perform the following tasks:
You can earn extra credit points by incorporating these aspects:
The emphasis here is not on an elegant way of interacting with the user, but the basic interaction with the knowledge base. You can use sequences of simple questions, numbered options to choose from, or other ways of exchanging information with the user.
This assignment concentrates on two aspects of the CLIPS/Jess environment: The definition and use of facts, and basic interactions with the user. You can look at other simple CLIPS programs to get started with the interaction aspects. One of them is the animal guessing game, which uses a separate file ANIMAL.DAT to store information about the animals. Other examples are a wine advisor, and an implementation of the sticks game. These examples also come with the CLIPS package.
Especially for testing purposes, the batch command can be very helpful. Instead of having to enter information "manually", you can store the respective commands and inputs in a file. If you invoke CLIPS from the command line, you can also read a file directly with clips -f file-name. To capture the results of the test runs, you can use copy and paste, the redirection operator in a shell, or the dribble-on file-name / dribble-off commands in CLIPS.
This assignment must be submitted electronically via Blackboard's assignment submission feature. Details will be discussed in class.
You must submit the following items:
I will use the following grading guidelines:
FJK Home | CPE/CSC 481 | News | Syllabus | Schedule | Lecture Notes | Assignments | Paper | Project | Teams | Other Links |
Franz J. Kurfess |