Assignment
Develop a usable knowledge based system in Jess.
Domain
The domain is up to you. You have to find one or more human experts on
the domain. In addition you can use other sources: existing protocols,
price lists, handbooks, etc. Choose a domain that gives you easy
access to an expert, who is willing to cooperate and who has the time
to do so. You can not be your own expert in this assignment.
Task
The task is one of the standard tasks from the KB lectures. You must
show how your solution relates to the theory of Stefik.
- classification
- diagnosis
- configuration
- planning
- monitoring
- ...
Make a system that differs from a straightforward rule-based
classification system. For example, use Fuzzy Logic
in a clever way, or make the system interactive, or have it
deal with an extremely complex domain.
It is very important that you use REAL-WORLD information. This must be
from a human expert, or from reliable facts that you can find `out
there'. Do not try to interpret a `book' without the help of a human
expert! The point is that all decisions by the system must be
grounded in practice, and reflected in your domain analysis and
requirement specification documents. This also makes the system
testable.
Project Proposal
Before beginning on the project, you must hand in a project proposal. We can then help you make a good choice.
In the project proposal, you put down:
- the main idea of the system
- the task
- the domain
- the context of use and the types of users
- the names of the experts, and other sources
- a feasibility estimation
- the `added value' of your system, in comparison with existing solutions, and
- a rough first planning and task assigment to the team members.
Development Activities
Developing a knowledge based system
involves the following 5 activities (Stefik, Ch 3). Each of these must
result in a written report (a milestone). These reports must be handed
in. In case you have good reasons, you may use a different development
model (e.g. analyse-design-implement-test). In that case you must
indivate how your model relates to the KS model.
- Problem Identification
- Conceptualisation
- Formalisation
- Implementation
- Evaluation
Planning, process management
Je are not only judged by the product (the system and the
documentation) but also on the process. The following aspects are
important here: cooperation, task assignment, planning, risk
assessment and risk aversion, deadlines, communication, consistency of
reports and code. At the end of the project you must hand in a
project management report that contains an evaluation of those
aspects. It is obligatory to have a comparison of the origibal
planning, with the time you actually spent. What went wrong? How would
you do it differently next time? To monitor the time spent in the
project you may use a logbook, or a 'progress form' that you fill in
each week.
NB
Use standards if useful. Write the report for a collegue, i.e. somebody with the same technical knowledeg as you have.
The documents can be handed in as attachements by email, to
ksprac, or else on paper.
The code can be handed in as zip-file, including the Jess and batch files. Also hand in log-files nad data as an appendix.
References
Examples of previous years
- mortgage advice
- configuration of a PC
- diagnosis of schizofrenia
- assist a player of Magic
- advice in selecting a videogame, a computer or in choosing a professional training
- classify paintings according to the art school
NB There are roughly two kinds of systems:
- analytic systems: they analyse a description and infer
properties. e.g. classification, diagnosis
- synthetic systems: they
construct a description on the basis of data and
preferences. e.g. configuration, planning
In practice, analytic systems are easier to design and
implement.