CPE 481
Knowledge-Based Systems
Winter 2004
CPE 481Knowledge-Based SystemsWinter 2004
Assignment 1: Family Knowledge Base
Points |
25 |
Deadline |
Jan. 22 |
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.
Below you find a partial listing for a CLIPS knowledge base
on family relationships. Your task is to define templates
for the following properties and relationships:
- gender (male, female)
- age (in years)
- height (in inches, feet, or centimeters)
- mother, father;
- brother, sister;
- husband, wife.
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 others 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 fictional individuals.
Each individual must have at least one relationship,
and on average each individual must have at least two
instantiated properties.
Your program should be able to perform the following tasks:
- add additional members of the family
- specify their basic properties, and their basic relationships
with other members of the family
- answer queries about an individual's properties
(e.g. "What is John's age?")
- list all the properties of an individual
(e.g. "What do we know about John's mother?")
- identify individuals that have certain properties
(e.g. "Who is older than twenty and taller than six feet?")
- answer queries about individuals that are in a particular relationship
with an individual (e.g. "Who are John's brothers?")
- list the relationships of individuals
(e.g. "What are John's relationships in the family?")
You must submit the following items:
- A diagram of the family tree you are using.
- A file containing the knowledge base (facts) for the family tree.
This file should specify the templates as well as the
specific facts about the family.
- A file with at least one test run for each of the requested tasks.
- A README file with instructions for using your program.
I will use the following grading guidelines:
- 5 points for the tree diagram
- 5 points for the correct formulation of the templates,
and the family facts
- 7 points for the test runs
- 3 points for the README file and documentation of the source code