CPE/CSC 481-W11 Knowledge-Based Systems Project Checklist


Overview


The purpose of this checklist is to make sure that your selected topic is suitable for this class. Based on my experience with past projects, I have identified some aspects that may lead to problems later on.

Project Topic


Your topic must fit within a course on Knowledge-Based systems. While I am flexible with the definition of AI and KBS, and would not rule out somewhat "exotic" topics, it is often helpful to explicitly identify how the project is related to the topic of this course.

KB Aspects


Which of the following AI topics are relevant for your project:
  • Knowledge Acquisition and Data Mining
  • Knowledge Representation
  • Reasoning
  • Explanation
  • Visualization and Presentation of Knowledge
  • Natural Language
  • Expert System or KB Implementation Aspects
  • Philosophical Aspects of Knowledge
  • Usability of Knowledge
  • AI and Ethics

Scope


You need to define the scope of your project in such a way that it is realistic to solve it with a small team, and in about 10 weeks. It is acceptable to use existing tools and systems, but you need to acknowledge that in your documentation.
  • Can you define a "safe" subset of requirements that your team is pretty much guaranteed to achieve?
  • Are there team members with expertise in the use of tools, environments, libraries, etc. that you're considering?
  • Will the implementation or testing of your system require significant computational resources or long training times? Genetic algorithms and evolutionary programming can be problematic here.

Domain Expertise


For some projects, the challenge may lie not so much in the programming parts, but in the capturing and encoding of the domain knowledge.
  • Are there team members who have the required domain knowledge? If not, do you know where and how to find it? Experts, books, Web pages, or reference systems can be used to acquire domain knowledge, but it may be rather cumbersome.
  • What knowledge representation method will you use?
  • Will it be necessary to update the knowledge base of your system on a continuous basis?

Implementation Tools and Methods


Some topics may benefit from the use of existing environments to avoid the overhead of implementing the user interface, user interaction, graphics, and sometimes basic mechanisms like the rules of a game. The CLIPS and JESS environments mentioned in the syllabus are obvious candidates, but you're free to select others; especially OWL and RDF may be good alternatives. In some cases, the selection and evaluation of an environment in order to determine its suitability for a domain, task, or approach can constitute a significant portion of the project work.

Environments


Did you consider using an existing research environment for your project? If so, you should be prepared for unexpected problems, like missing features, lack of documentation, changes between versions, or outright bugs. Of course you can encounter all of the above in commercial environments as well ...

Implementation Languages


The choice of implementation language is up to your team, but ideally all team members should be able to write programs in that language. If you're using a domain-specific or customized language, schedule some time to get familiar with it.

System Evaluation


I expect you to establish system requirements early on, and the system you deliver at the end of the quarter will be evaluated against these requirements. Accompanying the requirements should be evaluation criteria that can be used to measure or judge how well your system performs. You will need to specify these requirements and evaluation criteria in one of the milestones, but it is important to make sure early on that the essential aspects of your system can be reasonably described this way. This may be difficult, for example, if you're working on a system that uses KB technology to paint pictures, or to compose music since the judgment of the results may depend on very subjective criteria.