General Information
- Course Description [from the Cal Poly
Catalog 2007-09]
"In-depth treatment of knowledge representation, utilization
and acquisition in a programming environment. Emphasis on the use
of domain-specific knowledge to obtain expert performance in
programs."
Prerequisites: CSC 480 (Artificial Intelligence)
- Goals and Objectives
The goal of the course is to understand important problems,
challenges, concepts and techniques from the field of
Knowledge-Based Systems. In order to achieve this, students learn
how to analyse, design, and implement programs and systems of
varying complexities. The core aspect of these systems is their
ability to deal with knowledge in various forms. This includes the
acquisition of knowledge from human experts, other knowledge
repositories, or via learning techniques from raw data such as
delivered by sensors or data bases.
Knowledge also has to be stored in an internal format that is suitable
for computer-based storage and processing, while still being accessible to human inspection.
Then knowledge needs to be processed, where one important activity is
the generation of new knowledge from existing pieces. Based on the
new and existing knowledge, decisions must be made for the system,
or agents involved with or served by it, to perform some actions.
For many systems, an explanation or verification of their
suggestions in a format understandable by developers, domain
experts or regular users can be important.
Textbooks
The following textbooks will be used in this course.
There is a column in the course schedule which indicates
the chapters in the books that correspond to a topic discussed in class.
Students are expected to read the respective chapters before the topic
is covered in class.
You can also check http://isbn.nu/http://isbn.nu/9780763776473 for prices of new and used copies at online bookstores like Amazon, Abebooks.com, Half.com and a few others.
For further reading, here are some more textbook suggestions:
- J. Giarratano and G. Riley, ``
Expert Systems -- Principles and Programming, 4th Edition,Thomson/PWS Publishing Company, 2004.
- Ernest Friedman-Hill, "Jess in Action"
Manning Publications, 2003. [This is the reference book for Jess, a
CLIPS-compatible, rule-based programming environment in Java.]
- A. Gonzalez and D. Dankel, ``The Engineering of Knowledge-Based
Systems''; Second Edition, Prentice Hall, 2004.
-
Introduction to Expert Systems. by Peter Jackson.
Addison Wesley Longman, 1999.
ISBN 0-201-87686-8.
- C. Nikolopoulos, "Expert Systems" Marcel Dekker Inc.
1997. ISBN 0 8247 9927 5.
- the CPE/CSC 480 textbook, Artificial
Intelligence: A Modern Approach (2nd ed.) by Stuart Russell and
Peter Norvig.
Prentice Hall, 2003. ISBN 0-13-790395-2.
(The first edition of this book is also sufficient, and the 3rd edition is now available as well).
A very nice overview of the literature is at the Web site of the American Association of Artificial Intelligence (AAAI), http://www.aaai.org/AITopics/pmwiki/pmwiki.php/AITopics/ExpertSystems. It contains links to many online articles and resources on knowledge-based systems.
CLIPS and Jess
For some assignments, lab exercises, and the term project, we will
use the CLIPS or Jess expert system shells. CLIPS is a shell
developed at NASA, and has been in use for quite a while. Jess was
inspired by CLIPS, and uses the same rule format and inference
mechanism, but it is implemented in and integrated with Java. Both
are available for download via the Web, and are installed on the
lab systems. Jess is subject to some licensing restrictions, and you may
have to use a limited evaluation version if you want to install it on your own system.
Some textbooks also contain chapters on CLIPS,
e.g. Gonzalez & Dankel,or Giarratano & Riley.
Ernest Friedman-Hill, the developer of Jess, is the author of
"Jess in Action," with an introduction to Jess
and a number of examples.
CLIPS and related material is available for download from the Web
sites below (some of links unfortunately have become obsolete).
The Jess Home
Page contains a lot of material, and also links to related
documents.
The Institute for Information
Technology of the National Research Council Canada developed
Fuzyy Logic extensions for CLIPS and Jess.
Grading Policy
The table gives an overview of the calculation of the grades. I
reserve the right, however, to change the formula used. Please note
that the project consists of several parts which will be evaluated
separately. The project will also be done in teams, and the
performance of the team as a whole will be graded unless there is a
clear disparity in the contribution of the individual team members.
Should this be the case, I may ask for additional documentation like
work sheets, email messages, or draft copies of documentation to
evaluate individual contributions.