Ingenieur Vol. 74 Ingenieur Vol 72, April-June 2018 - Page 72

INGENIEUR Expert System Shell Inference Engine User Knowledge Base Developer Figure 1: The structure of an expert system (P. Jackson, 1998) obtaining knowledge from a human expert and coding it into a form that a computer may apply to similar problems (Negnevitsky, 2005). Software Architecture There are many expert system shells available in the market such as Exsys Developer, KEE, VP- Expert, KnowledgePro, Kappa-PC and others. Once the database of the system has been developed, it is followed by system development. Generally, the structure of the knowledge-based system consists of users, user interface, process information, database, knowledge base, inference engine and output. The inference engine is an important part of an expert system which is based on rules. The inference engine scans and checks the condition given in the rules depending on the chaining process defined in the reasoning. The reasoning process is classified into two parts namely; backward or forward chaining. Rules are scanned until one is found where constraint values match the user input. The scanning resumes and the results are deduced. The final results are reported to the user. The process continues until the final selection is made. Figure 1 shows the fundamental structure of an expert system. When a user enters the required information through the user interface, the inference engine is invoked. Then, the inference engine will try to search for the information from the knowledge base. In the knowledge base system, the knowledge base and database work together. The inference engine will process the data 6 70 VOL 2018 VOL 74 55 APRIL-JUNE JUNE 2013 from the user interface based on the reasoning process defined in the reasoning database. Then, the inference engine will try to match the information with the data from the knowledge base. If the condition part of a rule in the knowledge base matches with the information given by the user, the conclusion of that rule is set as a result. According to Figure 2, backward chaining is a type of reasoning by asking the inference engine whether a certain fact can be established. The objective is to find a rule whose conclusion matches this question, or goal. Backward chaining is often called goal-driven reasoning. Establishing the truth of a premise can also sometimes call for further rule application (Rupnawar et al., 2016). In backward chaining, or goal-driven reasoning, the inference engine tries to verify a fact (reach a goal) by finding rules that can prove the fact and then attempting to verify their premises. The premises in turn become new facts to be verified by other rules, and so on. Several points should be made about backward chaining in general: ● ● The backward chainer requires a predefined goal. ● ● Goals are written in the Goal Editor. ● ● The backward chaining process is continually trying to satisfy the goal. ● ● Multiple pattern rules cannot be used with the backward chainer. There are three po XH\\[BX\Z[[\΂8‘^[[ H^[[\[BX\Z[\Y\\\][X]B\وH[\܈H[Y\وؚX܂Z\[ܙ\H[]\ٞHH[