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.

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:

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.

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

NB There are roughly two kinds of systems:
  1. analytic systems: they analyse a description and infer properties. e.g. classification, diagnosis
  2. 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.