Posted on

NUS Computing Review: CS4244 Knowledge Based Systems

This is the one of those modules that I took without knowing what to expect. It was one of area primaries for the focus are of Artificially Intelligence (AI) so I thought it would be good to know what it is about. It turns out that this module dramatically expanded my knowledge of AI as well as writing programs in general.

The module is mainly focused on expert systems and more specifically rule-based expert systems. In terms of the theoretical content, it has three main parts, knowledge representation, tool (clips rule-based programming language), and knowledge management. Now this may sound very confusing so let me explain the overall idea a bit. Basically in expert systems, you use knowledge to solve domain-specific problems, like airport control, medical diagnosis or floor planning. You can acquire knowledge by querying database, consulting experts (human experts) or searching for information from everywhere, anything that helps you solve the problem, this is called knowledge acquisition which is part of knowledge management. Then you also need to represent this knowledge in some form that can be used in the expert program, this problem is solved by knowledge representation, which is mainly about how to transform knowledge into facts, rules or frame-like structures (like OOP) and store them in the knowledge base. With the knowledge base, the rules and the problem at hand, we can use tools like clips, which has an inference engine to solve the problem by firing the rules opportunistically with minimum control logic.

In this module, you mainly learn about the features and characteristics of expert systems and how to write programs in clips, which is not only a feature-complete rule-based programming language, but also a functional language at the same time (like lisp). Definitely unlike any other languages in the sense that the entire flow is controlled by the built-in inference engine instead of the programmer, and the programmer’s job is just writing the rules that waits to be fired when conditions are met. For the project in this module, our team developed a knowledge-based module planner, the featured image of this post (at the beginning) shows the screenshot of the software planning exact modules that I have taken.

In terms of practical use of the module, it is quite debatable. Knowledge-based systems used to be a hot topic but the interest decreased drastically following the second AI winter. Nowadays people are more interested in hot topics like machine learning, neural network or tensor flow, but knowledge-based systems are still being used in specialized areas, and it may prove to be useful again in the future.

I would not delve too deep into the content or assessment of this module as I am aware of a change of teaching staff for this module in the next iteration, but I hope you have some idea of what this module is all about and the topics to expect in general.

Head over to our Shop for more module content!