Syllabus
General Information
Instructor
Dr. Franz J. Kurfess, Cal Poly Computer Science Department (http://www.csc.calpoly.edu/~fkurfess/)
Office Hours
My office hours are tentatively scheduled for Tue/Thu 2:10-3:00 pm, and Wed 2:10-5:00 pm. My office is in building 14, room 218.Class Times
• Lecture: TuTh 3:10PM - 4:30PM in 14-257
• Lab: TuTh 4:40PM - 6:00PM in 14-257
Course Description
"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." [from the Cal Poly Catalog 2007-09]. 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 analyze, 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, computer-based 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
I am restructuring the contents of the course to include more recent developments in the area of Knowledge-Based Systems, in particular the use of ontologies and related methods that have become popular in connection with the Semantic Web. The slides I’m using for the lecture will be available through this Web page; see the links from the topic entries in the schedule.
To my knowledge, there are no textbooks available that cover the course topics well. The books below provide background for the main topics in the class. There is a column in the course schedule which indicates the chapters in the books that correspond to a topic discussed in class. I will also indicate other resources that provide relevant information.
Semantic Web
- Dean Allemang and James Hendler: Semantic Web for the Working Ontologist. Morgan Kaufmann, 2nd edition, 2009 [Amazon].
- P. Hitzler, M. Krötzsch, and S. Rudolph: Foundations of Semantic Web Technologies. Chapman & Hall/CRC Textbooks in Computing, 2009. ISBN-13: 978-1420090505 [Amazon].
- L. Yu: A Developer's Guide to the Semantic Web. Springer, 2011. ISBN-13: 978-3642159695 [Amazon].
Expert Systems
In the past, when the emphasis of the course was on expert systems, I have used the textbooks listed below. Some of them seem to have been updated to reflect more recent developments.- Rajendra A. Akerkar and Priti S. Sajja, Knowledge-Based Systems; Jones & Bartlett Publishers, 1st Edition, 2009 [Amazon].
- J. Giarratano and G. Riley: Expert Systems -- Principles and Programming, 4th Edition,Thomson/PWS Publishing Company, 2004 [Amazon].
- Ernest Friedman-Hill: Jess in Action, Manning Publications, 2003 [Amazon]. 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 [Amazon].
- Peter Jackson: Introduction to Expert Systems. Addison Wesley Longman, 1999. ISBN 0-201-87686-8 [Amazon].
- C. Nikolopoulos, "Expert Systems" Marcel Dekker Inc. 1997. ISBN 0 8247 9927 5 [Amazon].
Artificial Intelligence
- Artificial Intelligence: A Modern Approach (3rd ed.) by Stuart Russell and Peter Norvig. Prentice Hall, 2009. ISBN 978-0136042594 [Amazon]. This it the CPE/CSC 480 textbook, and it has some material related to the contents of this course. The structure and emphasis, however, are a bit different, concentrating more on fundamental principles. (The first and second edition of this book are also sufficient).
Protégé, Jess, and CLIPS
For some assignments, lab exercises, and the term project, we will use the Protégé ontology environment, and the CLIPS or Jess expert system shells.
Protégé (http://protege.stanford.edu/) is an ontology development environment made available by Stanford University’s Center for Biomedical Informatics Research. It is widely used in academic and real-world environments for knowledge solutions in a wide variety of domains. It is based on Java, and can be used in combination with other technologies relevant for knowledge-based systems. The Protégé Website has a nice collection of background material such as tutorials, papers and technical reports, and presentations; see http://protege.stanford.edu/doc/users.html. A Protégé tutorial intended for students in this class is at https://wiki.csc.calpoly.edu/OntologyTutorial/wiki/IntroductionToOntologiesWithProtege.
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 (although not necessarily the most recent versions). 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 the links unfortunately have become obsolete).
- CLIPS Home Page (http://www.siliconvalleyone.com/clips.htm) CLIPS on Sourceforge (http://clipsrules.sourceforge.net()
- CLIPS Tutorial (http://iweb.tntech.edu/bhuguenard/ds6530/ClipsTutorial/tableOfContents.htm) developed by Peter Robinson at the University of Hull in Great Britain
- Jess Home Page (http://herzberg.ca.sandia.gov/jess/)
- There have been several Jess tutorials available online, but their URLs don't seem to be stable. If the links below don't work, try a Google search to find a different source, or an archived copy. Jess Tutorial, Trinity College, CSCI 3344 - Artificial Intelligence, Spring 2008, (Prof. Yu Zhang) (http://www.cs.trinity.edu/~yzhang/teaching/spring2009/CSCI3344/projects/instruction/JESSTutorial.htm)
- Jess Tutorial
- Jess Tutorial (http://www.doc.gold.ac.uk/~mas01rk/Teaching/CIS341/Labs/Lab2.html) very brief intro to Jess
Grading Policy
- Project: 30%
- Assignments: 30%
- Presentation/Term Paper, Quizzes: 30%
- Participation: 10%