Knowledge-based Systems


This is a module that contains both the theory and practice of building knowledge-based systems. The aim of this module is to prepare students so that they can design and build knowledge-based systems to solve real-world problems. The module starts with motivations, background and history of knowledge-based system development. The main content has five parts: rule-based programming language, uncertainty management, knowledge-based systems design, development and life cycle, efficiency in rule-based language and knowledge-based systems design examples.


40 students in 10 teams



Algebraic Equation Solver

The objective of this project is to simplify and solve algebraic equations of any level of complexity of primitive operations and display them and their solutions in a easily readable format.


KBMP (Knowledge-Based Module Planner)

The Knowledge Based Module Planner (KBMP) aims to intelligently assist Computer Science undergraduates with module planning. KBMP gathers information from the student such as their background, focus area(s) and completed modules, and uses these information with its internal database to interactively guides the user in generating a module plan semester by semester.



SoC Module Planner

As a SoC student, we, like many of ours peers, face issues in module planning. Which modules are offered in a particular semester, my choice of specialization, exchange programs, setbacks. All these challenges complicate our planning process in university. There are existing tools intended to circumvent these problems. However, they are limited in scope or too generic for our purposes. Our project aims to introduce ease in module planning by implementing an all-in-one system. Just follow the on screen instructions and the system will do the rest for you.


CLIPS Plays Poker

CLIPS is a programming language specifically developed to design expert systems capable of making decisions in a manner similar to human experts. CLIPS is the focus of CS4244 Knowledge Based Systems. We are going to make a robot capable of playing Texas Holdem Poker using CLIPS. We choose to make a robot to play Poker because it is one of the few games currently popular that does not allow the player to know the entire state of the game at any time (and incidentally also encourages deception to take advantage of this). An expert system would be best suited for this kind of a situation. We will also be providing a GUI for a human player to rank themselves against the robot.


NUS Module Planner for SoC Students

For Computer Science students, planning modules can be a problematic task due to the flexibility of their curriculum. Deciding which modules to take which are both of interest to the student while still fulfilling degree requirements can be very time consuming. With our system, students only need to worry about what modules they are interested in and not bother with cumbersome details such as course requirements, prerequisites, and timetable clashes.We hope this system will be helpful to students in alleviating the undue stress of module planning.



Reading has always been an inseparable part of people’s daily life. For some people, however, picking the right book to read is always a headache. In order to solve that problem, we designed a book recommendation system called Nextbook. Nextbook is a rule-based expert system implemented with CLIPS. It will simply ask you a few questions and, based your answer, provide a book list that is likely to interest you. Moreover, Nextbook will also provide other readers’ reviews on the selected books for your reference.


Dating Go Where

For many of us, finding a place to go for a date might be a tedious task, whether for your first date or that weekend date. Thus, this project helps the user by providing dating place recommendations according to user input. We collect user information by asking multiple choice questions, and the information collected would then be applied to the rulebased system. With predefined rules, the system would be able to give suggestions on the best matching places to have a date. Additionally, after collecting information we allow the user to input keywords so that the system can narrow the results down to recommendations that fits the user the most. The whole process would be done on a Python (with PyCLIPS module) server.


Laptop Recommendation System

Need a new laptop? Want to get some suggestions before going to stores? Confused with the technical terms like i5 processor, DDR4 memory or discrete graphics cards? Here is our solution: a portable computer recommendation system! This software focuses on the customer’s experience with computers, and recommends computers mostly based on what tasks are expected to be performed on it. We hope that our system will help people find the portable computers best suited for them!


Food Plus

Have you ever got headaches as thinking of what to eat today? You walk in a food court; you make several rounds walking before randomly picking something for your lunch. Or simply, you are a guy who loves to sample numerous cuisines. However, there are some flavors that you cannot eat and are scared of picking them accidently. With the purpose of curing your headache, Food Plus will help to choose your food with your preferences by asking simply questions, without you to go through each of the dishes and trying to imagine their taste.



The world is full of magnificent places and we are spoilt for choice when trying to choose a destination to visit. Our project aims to make the decision process easier by asking the user some questions and recommending a destination based on the answers given. Mostly, we are targeting travellers looking for the perfect destination to create new memories.