Knowledge Based System
Knowledge Based System
I would like to express my deepest appreciation to all those who provided me the possibility
to complete this Assignment. A special gratitude I give to our Lecturer, Mr.Chandima,
whose contribution in stimulating suggestions and encouragement, helped me to coordinate
my Assignment to achieve the goals.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 1
Table of Content
Contents
Table of Content ........................................................................................................................ 2
1.1 What are the knowledge base components (data, rules and structures) related to the
above motor car faulty diagnosis system. .............................................................................. 8
Interface ............................................................................................................................. 9
Rules ................................................................................................................................ 10
1.2 Describe how such computer systems perform inferencing. How to use Forward &
Backward chaining inferencing mechanisms for the knowledge management. Describe
related to the above motor car faulty diagnosis system. ...................................................... 14
Forward-chaining ............................................................................................................. 14
Backward-chaining .......................................................................................................... 15
1.3 Do you agree that computers with artificial intelligence technologies (expert systems in
fault diagnosis) exhibit intelligence? Explain the reasons. Do you think that someday
humans can be replaced with AI based systems. Why or why not?..................................... 17
1.4 What are the major benefits of Expert Systems compared to manual systems in a fault
diagnosis system. .................................................................................................................. 22
TASK 02 .................................................................................................................................. 25
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 2
2.1. Follow the rules for the following situations (what do you conclude for each one?): .. 28
Conclusions:..................................................................................................................... 28
2.2 Encode the knowledge into a graphical diagram (inference network). Write a Prolog
program. Use if- then (else) statements in your implementation. ........................................ 31
2.3 Design a simple user interface to enter the facts and rules for the above system .......... 36
TASK 03 .................................................................................................................................. 37
3.1 Represent the above facts and rules in First Order Logic expressions. Write a prolog
program or other third-generation language program and knowledge base to execute this
knowledge ............................................................................................................................ 38
3.2Validate the user inputs and provide error messages for invalid inputs.......................... 42
Error signal....................................................................................................................... 46
3.4Test the above system using well designed test cases and provide all the test documents.
.............................................................................................................................................. 50
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 3
Test case: 03 ..................................................................................................................... 55
3.5 Prepare a user document to illustrate how to work with your implemented system. ..... 59
Grant Chart............................................................................................................................... 63
November ................................................................................................................................. 63
Task 1 ....................................................................................................................................... 63
Task 2 ....................................................................................................................................... 63
Task 3 ....................................................................................................................................... 63
References ................................................................................................................................ 64
List of figure
Figure 1 The Architecture of Knowledge-based systems. (saimohang, 2018) .......................... 7
Figure 2 knowledge based system (techtarget.com,2018 .......................................................... 8
Figure 3 The user interface of Motor car diagnosing system. (author developed, 2018) .......... 9
Figure 4 The architecture of Inference engine of KBS. (Igcseict.info, 2018) ......................... 10
Figure 5 The rules of the Motor car diagnosing system in propositional logic. (author
developed, 2018) ...................................................................................................................... 12
Figure 6Facts in the Motor car diagnosing system. ( author developed, 2018) ....................... 13
Figure 7 The Concept of Forward chaining. (Tutorialspoint.com, 2018) ................................ 15
Figure 8 The Concept of Backward chaining. (Tutorialspoint.com, 2018) ............................. 16
Figure 9 Inference Network of above example. (Hopgood, 2005) .......................................... 32
Figure 10 The Inference network for the created rules of this case study. (author developed,
2018) ........................................................................................................................................ 34
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 4
Figure 11 The Prolog program of above case study. (author developed, 2018) ...................... 35
Figure 12The Simple user interface of the above system. (author developed, 2018) .............. 36
Figure 13 Example of First order logic expression. (author developed, 2018) ....................... 39
Figure 14 First order logic expression of the given case scenario (author developed, 2018).. 41
Figure 15 The warning message for that without select values of Vehicle specification
analyzer. (author developed,2018) ........................................................................................... 43
Figure 16 The warning message for that invalid selections of Vehicle specification analyzer.
(author developed, 2018) ......................................................................................................... 44
Figure 17 Hierarchy of Java Exception Classes. (Ansari, 2018) ............................................. 46
Figure 18 (Ansari, 2018) .......................................................................................................... 48
Figure 19 17 NullPointerException error handling in the Knowledge Based System. (author
developed, 2018) ...................................................................................................................... 48
Figure 20 The Warning message of the NullPointerException that delivered by the system.
(author developed, 2018) ......................................................................................................... 49
Figure 21 Pop upped information of the above test case (author developed, 2018) ................ 52
Figure 22 Pop upped information of the test case 02 (author developed,2018) ...................... 54
Figure 23 Pop upped information of the test case 03. (author developed,2018) ..................... 56
Figure 24Clear all the information according to the test case 03. (author developed,2018) ... 58
Figure 25 The user interface of the Vehicle specification analyser (author developed,2018) 60
Figure 26 The pop up information that regard to the selections (author developed,2018) ...... 61
List of Tables
Table 1 Rules of the Motor car diagnosing system. (author developed, 2018) ....................... 11
Table 2 some facts that in predicate logic and the way it read out (author developed,2018) .. 12
Table 3Test Case 1 - Analyze specification of Jets (author developed,2018) ......................... 51
Table 4Test Case 2 - Analyze specification of Electric Car. (author developed , 2018) ......... 53
Table 5 Test Case 4 – Clear function of Vehicle specification analyzer. (author
developed,2018) ....................................................................................................................... 57
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 5
LO1 - Understand knowledge-based systems
Knowledge-Based Systems are computer systems which focuses on systems that use
knowledge-based techniques as generates and utilizes knowledge from different sources, data
and information to support human decision-making, learning and action. These systems are
assist in solving issues, specifically complex ones, by utilizing artificial intelligence concepts
which capable of cooperating with human users and the quality of that support given and the
manner of its performance are important matters. The majority of these systems are used in
problem solving procedures and to support human learning, decision making and actions that
based on the knowledge residing in them, and can understand the context of the data that is
being processed.
The knowledge-based systems broadly consist of a user interface engine and knowledge base.
The user interface engine perform as the search engine, and the knowledge base perform as
the knowledge repository. The learning is a vital factor in knowledge-based systems and
simulation of that learning helps in the advancement of the systems.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 6
Figure 1 The Architecture of Knowledge-based systems. (saimohang, 2018)
The limitations of knowledge-based systems are the abstract nature of the concerned
knowledge, acquiring and manipulating large volumes of information or data, and the
limitations of cognitive and other scientific techniques. (Journals.elsevier.com, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 7
1.1 What are the knowledge base components (data, rules and structures) related to the
above motor car faulty diagnosis system.
Conventionally, the knowledge-based systems contain three components as a human-
computer interface, an inference engine program and a knowledge base in accord to the
architecture of KBS as mentioned formerly.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 8
Interface
Generally the user interfaces in software based applications which used to interact or perform
with the end users. In KBS, the user interfaces are stands for same perseverance as stated.
The user interface is where the user formulates queries, which the knowledge-based system
uses to implore further information from the user and clarify to the user of the reasoning
process in order to get solutions for their issues. Apart from that, the user interfaces may
contain series of questions, imageries and many more.
According to the given study case, author used user interfaces to enquire series of questions
in order to get user inputs to diagnose the fault in the car. Therefore, The Motor car fault
diagnosing system perform series of questions when a car comes with a fault and at the end
of that diagnosis session, an expert solution will be given by the system.
Figure 3 The user interface of Motor car diagnosing system. (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 9
Inference Engine
The inference engine is a most significant and indispensable component which exist in
knowledge based systems. This system usually set up to simulate the reasoning, or the
problem-solving capability, that the human expert would use to reach out to a conclusion.
This simulates the evaluation process of relating the facts and rules in the knowledge base to
reach out the answers to a series of questions given by the operator. The following this model
concept, an expert system will receive propositions, or answers to a certain line of questions,
and then try to use its inference engine to process the facts into rules. Then, it will compare
the propositions to the facts and rules that registered in its knowledge base.
Rules
One of the most standard approaches to knowledge representation is to use creation rules,
sometimes called IF-THEN rules. They can take various forms as
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 10
Some of the benefits of IF-THEN rules are that they are modular, each defining a relatively
small and, at least in principle, independent piece of knowledge. New rules may be added and
old ones deleted usually independently of other rules.
The global knowledge base contains facts and rules relating for instance of symptoms to
infections, and the local database will contain particular observations about the patient being
examined. A typical rule in Mycin is as follows,
(Users.ecs.soton.ac.uk, 2018)
In accord to given case scenario of motor car diagnosing system, these are the rules.
Computer Does the engine turn when you engage the ignition?
User No.
If you engage the ignition then engine will turn off
Computer When you put the lights on do they go dim?
User Yes
If you put lights on then they go dim
Computer When you turn the ignition is there a clicking sound?
User Yes.
If you turn on the ignition then there is a clicking sound
Table 1 Rules of the Motor car diagnosing system. (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 11
Figure 5 The rules of the Motor car diagnosing system in propositional logic. (author developed, 2018)
The knowledge base is usually made up of factual knowledge, and sometimes even heuristic
knowledge. Factual knowledge consists of information that is commonly shared, found in
textbooks or journals, or agreed upon by humans knowledgeable in a specific field or task.
Instead of heuristic knowledge, it is an experiential knowledge of performance which is the
knowledge behind an educated guess.
Table 2 some facts that in predicate logic and the way it read out (author developed,2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 12
The rules are using facts to reach out to get a conclusion. The propositional logic facts either
can be true or false. According to the given scenario, the facts that identified are,
Figure 6Facts in the Motor car diagnosing system. ( author developed, 2018)
Therefore, the final conclusion of the Motor car diagnosing system is,
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 13
1.2 Describe how such computer systems perform inferencing. How to use Forward &
Backward chaining inferencing mechanisms for the knowledge management. Describe
related to the above motor car faulty diagnosis system.
The term of “Inference” refers as an assumption or conclusion that is realistically and
logically made, based on the given facts or rules. An inference is based off of facts, therefore
the reasoning for the conclusion is often logical. An expert system can give intelligent
answers to sufficient knowledge about the field which using inferencing. As mentioned
above, inference engine of the expert system makes conclusion which is based on the rules
and facts that stored in knowledge base and user inputs. Therefore, inferencing is performed
by inference engine as control program to decide the direction of the search in expert
systems.
Forward-chaining
Deriving new facts from what you know in order to solve problems or make decisions. The
following is a simple example.
b. Rice is food
Forward chaining is a type of logic known as inference, the process of taking valid statements
to produce new valid statements. Many systems of logic only understand true or false. Fuzzy
logic is a term for logic that can handle the grey areas in-between. It is common for forward
chaining to be based on that fuzzy logic. The following is an example.
b. Rice is food
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 14
The below image shows, how the forward chaining perform in inference engine when
working on conclusion, result or effect,
According to that given car diagnosing system, author identified rules and facts of that certain
task. In here, the client asked three questions from the system and if the answers are three
yeses respectively then the conclusion is made up as the issue of the car is jammed motor.
If the X problem happens when lights are dim while it switched on, engine offs on start,
click sound comes on start – then X is jammed motor problem.
First of all, the inference engine will search the first rule since it contests the facts. The first
rule consists facts such as lights are dim while it switched on, engine offs on start, click
sound come on start. These three facts are contest if (antecedent) the user inputs are three
yesses. Since the match is found, then (consequence) the goal is achieved, which is starter
motor jammed is the problem that found in the car. Therefore, second rule will not be
checked since the goal is achieved.
Backward-chaining
Backward chaining is an inference method widely used in artificial intelligence, automated
theorem provers and proof assistants. Backward chaining methodology can be described as
working back from a goal. Many programming languages support backward chaining within
their inference engines.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 15
Backward chaining is a goal driven method of deriving a particular goal from a given
knowledge base and set of inference rules. Inference rules are applied by matching the goal of
the search to the consequents of the relations stored in the knowledge base
The below image shows, how the backward chaining perform in inference engine when
In that car diagnosing system, as mentioned author identified rules and facts of that certain
task as the client asked three questions from the system and if the answers are three yeses
respectively then the conclusion is made up as the issue of the car is jammed motor.
If the X problem happens when lights are dim while it switched on, engine offs on start,
click sound comes on start – then X is jammed motor problem.
In here, the first rule will be searched first since the part which is consequent matches the
goal which is jammed motor. Still it is uncertain that the jammed motor is the real problem
ever since the facts that have not been searched yet. Next the if (antecedent) will be searched
facts such as when lights are dim while switched on, engine offs on start, click sound comes
on start are added to the goal list. Once more the rule base is searched, although in this time
also first rule is been selected since the consequence matches the new goals that were lately
added. Now the goal is achieved. Therefore, the second rule will not be checked as its
consequent doesn’t match the goal.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 16
1.3 Do you agree that computers with artificial intelligence technologies (expert systems
in fault diagnosis) exhibit intelligence? Explain the reasons. Do you think that someday
humans can be replaced with AI based systems. Why or why not?
Modern technology has empowered the human life with intelligent. Since the machines have
in progress to show some intelligent, the world has been a better place ever than before.
Artificial intelligent diagnosing systems act like human to give expert decisions in certain
fields. AI is invading almost every field such as medical, science, agriculture, space
technologies, sociology etc. The diagnosing systems which are powered by artificial
intelligence, produce the high quality outputs in lower costs.
In order to experts are to be believed, Artificial Intelligence (AI) has the potential to
transform the world. But those some of experts don’t agree on, what kind of effect that
transformation will lead on the average person. Some of them believe that humans will be
much better off in the involvements of advanced AI systems, while others think it will lead to
human inevitable downfall.
The Artificial intelligence is a software which built to learn or problem solve processes
typically performed in the human brain. Digital assistants like Amazon’s Alexa and Apple’s
SIRI, along with Tesla’s Autopilot, are all powered by AI. Some forms of AI can even create
visual art or write songs.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 17
There’s little question that arise about AI which has the potential to be revolutionary.
Automation could transform the way of people work by replacing humans with machines and
software. Further developments in the area of autonomous vehicles are poised to make
driving a thing of the past. Artificially intelligent shopping assistants could even change the
way of people shop in conventionally. Humans have always controlled these aspects of own
lives, therefore it makes sense to be a bit wary of letting an artificial systems to take over.
In turf of Games provide a useful window into the increasing sophistication of AI. AI plays
crucial role in strategic games such as chess, poker, tic-tac-toe, etc., where the machine can
think of large number of possibilities that based on heuristic knowledge. Case in point,
developers such as Google’s DeepMind and Elon Musk’s OpenAI have been using games to
teach AI systems how to learn. So far, these systems have bested the world’s greatest players
of the ancient strategy game Go, and even more complex games like Super Smash Bros and
DOTA 2. With the capable of more AI research, softwares that can play infinitely complex
games like StarCraft.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 18
Handwriting Recognition − the handwriting recognition software reads the text
written on paper by a pen or on screen by a stylus. It can recognize the shapes of the
letters and convert it into editable text.
Intelligent Robots − Robots are able to perform the tasks given by a human. They
have sensors to detect physical data from the real world such as light, heat,
temperature, movement, sound, bump, and pressure. They have efficient processors,
multiple sensors and huge memory, to exhibit intelligence. In addition, they are
capable of learning from their mistakes and they can adapt to the new environment.
(Garbhe, 2018)
On the surface, these victories may sound incremental and insignificant in AI which can play
Go but can’t navigate an autonomous vehicle, after all. But on a deeper level, these AI
developments are indicative of the more sophisticated AI systems of the future. Through
these games, vision systems, speech and handwriting recognition systems, intelligent robots,
etc, AI become capable of complex decision-making that could one day translate into real-
world tasks.
The above sorts of AI systems are basically based on logic and they have the ability to
provide accurate decisions more rapidly. Sometimes those AI machines barely make mistakes
and they are more reliable than humans. Therefore, there are few testing methods which
available to test whether AIs have intelligent or not.
John Searle imagines himself instead of machine as non-Chinese person sitting inside the
room isolated from another Chinese person who is outside the room who tries to
communicate. He is provided a list of Chinese characters and an instruction book explaining
in detail the rules according to which strings of characters may be formed, but without giving
the meaning of the characters. Which means he has a book with an English version of the
computer program, along with sufficient paper, pencils, erasers, and filing cabinets.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 19
This test can firmly ensure that diagnosing systems have intelligence. The user enters
symptoms as facts or rules as goals to the system in order to identify the issue or get an expert
solution. When the given data are processed, the user may not have the knowledge about
system whether it is operated by human or AI. The diagnosing system will search the
knowledge base and find an accurate expert solution to that issue. (Bansal, 2018)
Turing Test
In artificial intelligence, the Turing test was developed by Alan Turing one of the Computer
scientist in 1950. He proposed that “Turing test is used to determine whether or not machine
can think intelligently like human being”.
Imagine a game of three players having two humans and one computer, an interrogator as
human is isolated from other two players. The interrogator job is to try and figure out which
one is human and which one is computer by asking questions from both of them. To make the
things harder computer is trying to make the interrogator guess wrongly. In other words,
computer would try to identical from human as much as possible.
This case scenario which simply says, there is a man, system and interrogator who are
separated in different rooms. The integrator can only communicate with the man and AI
through a terminal with specific set of rules. After the interrogation, if the interrogator could
not find the differences the system is considered as an intelligent one. (Rouse, 2018)
Nowadays, most of researchers and other people frequently discussed topic is that someday
Humans can be replaced with AI based systems over and over. In this case, the straight
answer from author, is NO. Most of them have been made science fiction novels, movies and
games based on this intense topic. Astoundingly, most of people have misled to a complete
wrong idea about AI technology. Also, a seed of fear is seeded inside the hearts of people that
the AI is invading the world and the end of humanity. Still, many people considered AI is
supposed as threat to humanity, instead of seeing it as an opportunity to empower the
humanity.
The reasons are quite simple according to author. The first of all, the folks who create AIs,
must keep control of AI under humans. Since, the rapid improvement of technology of AI
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 20
will also improve its capabilities and learn to be controlled. Therefore, the programmers of
AIs will consider more on keeping eye on them under control.
The artificial intelligence based systems are built and controlled while fed from the
knowledge of humans. The logics should be programmed to carry out any tasks which should
perform according to that programmed logic. Lack of innovative thinking is another erratic
feature that effect on AI powered machine's functionalities. In here, the ability to think
forward and take accurate decisions is something that set apart humans from machine which
led in under developments. The AI systems cannot sort out any predictions about the outcome
of any event like humans do.
When the issues are occurring on certain task of humans, AI-powered machines are never
thought to act as a possibility plan B. The lack of natural presence sorts them vulnerable to
sudden, unplanned changes. Programming these logic to machines is a crisis which is a
massive challenge to transform common and timely sense and naturalness. In alteration,
humans are known to be the very basis of naturalness. They respond to crisis effectively
while owing to previous lessons that learnt and it help us to tackle in new situations
accordingly.
The AI powered machine cannot have any emotions is another fact. The magnificence of
being a human is that able to act feeling fully. There are some emotions that cannot be sensed
by machines with sensors. The AIs cannot replace humanity without having real emotions.
In this case study, author provide facts that can consider the visibility of intelligence that
exhibits in AI and AI powered machines can be similar to intelligence of humans. But, AI
powered machines cannot think like human or take decisions which is based on humanity,
emotions or feelings. Therefore, humans cannot be replaced with AI based systems.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 21
1.4 What are the major benefits of Expert Systems compared to manual systems in a
fault diagnosis system.
The fault diagnosis in technical systems has received a lot of theoretical and practical
considerations over the last years. Diagnosis is a complex reasoning activity, which is
currently one of the domains where Artificial Intelligence techniques have been effectively
applied, as these techniques use association rules, reasoning and decision making processes
as would the human brain in solving the diagnostic problems.
The variety of fault detection and diagnosis techniques have been developed for the
diagnostic problem solving procedure. These techniques include model based approaches,
knowledge based approaches, qualitative simulation based approaches, classical multivariate
statistical techniques and neural network based approaches.
Expert systems initiate as broad application in fault diagnosis field from their initial stages.
Because, an expert system simulates human reasoning about a problem domain and performs
reasoning over the representations of human knowledge and solves that problems using
heuristic knowledge rather than perfectly formulated relationships, in forms that reflect more
accurately the nature of most human knowledge.
Expert systems are computer applications that combine computer equipment, software, and
specialized information to impersonate expert human reasoning and advice. As a branch of
artificial intelligence, the expert systems provide accurate-precise advice and explanation to
their users. While artificial intelligence is a broad field which covering many aspects of
computer-generated thoughts and expert systems are more narrowly focused. Typically, the
expert systems function best with specific activities or problems and a discrete database of
digitized facts, rules, cases, and models. Expert systems are used widely in commercial and
industrial settings, including medicine, finance, manufacturing, and sales.
(Referenceforbusiness.com, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 22
The expert systems encapsulate rare expert knowledge and render it archival. This is a benefit
when losing the expert would be a substantial loss to the organization. Therefore, distributing
the expert knowledge which enhances the employee productivity by contributing necessary
assistance to sort out the best accurate decision. Improvements in reliability and quality
frequently seems alike when the expert systems allocate expert advice, opinion, and
explanation on demand. Expert systems have the capabilities of managing extremely complex
tasks and activities as well as an enormously rich knowledge database structure and content.
As such, they are well suited to the model human activities and problems. Expert systems can
reduce the production idle time and, as a result, increase output and quality of that products.
In addition, expert systems facilitate the transfer feature of expertise to remote locations using
digital communications. In specific situations, constant use of an expert system may be
economical and more reliable than the services of a human expert.
Some benefits of the expert system are direct. The Loma Engineering reduced its staff
requirements from five engineers to a 1.5 equivalent by using an expert system to customize
the machine specifications. The other benefits are less direct and may include improved
managerial functions. For instance, the Federal Aviation Administration uses the Smart Flow
Traffic Management System to enhance the coordinate air traffic activities. The American
Stock Exchange also placed expert systems to monitoring insider trading. Most of hospitals
use expert systems to interpret patient data through an extensive database of drug knowledge
in order to classify harmful drug associations and other complications. The New England
hospital system, doctors don't even have to be at the computer to get the results of certain
tests of patients, if the system determines a problem as new data is analyzed, then it can
automatically send a message to the doctor's pager. In manufacturing, expert systems are
common and effective as well. The expert systems can track production variables, tabulate
statistics, and identify the processes that don't match the expected outlines, signaling the
potential problems. Furthermore, integrated expert systems can immediately inform the
applicable person to correct that problem in order to continue manufacturing process.
development expenses such as training and maintenance. Expenses for the software
development itself range from the low thousands of dollars for a precise simple system to
millions for a major enterprise. For large enterprises and complex activities, necessarily
powerful computer hardware must be available, and frequently programming must be done to
integrate the new expert system with existing information systems and the process controls.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 23
Moreover, depending on the application, the knowledge database must be updated frequently
to maintain the relevance and timeliness. Increased expenses may also seems with the
credentials and employment of a human expert or a series of experts. Preserving an expert
involves the potentially expensive task of relocating expertise to a digital format. While it
depending on the expert's ability to perceive and digitally represent knowledge, this
procedure may be prolonged. Even after such efforts, some expert systems fail to recover
their expenses because of poor design or inadequate knowledge modeling. Such expert
systems suffer from the systematic integration of preexisting human preferences and lack of
knowledge of its programming.
Using a kind of standard computer program for developing an expert application is one way
to reduce the expenses of achieving an expert system. The expert shell make straightforward
the expert system by providing preprogrammed modules and a ready to use inference engine
structure. Number of companies provide these expert shells that support business and
industrial operations, including those accompanied in Internet environments.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 24
TASK 02
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 25
Consider the decision-making situation defined by the following rules:
Propositions
A - goToCollege
B – attendLectures
C – learnSomething
D – missLessons
E – studyHard
F – passExams
G – beKnowledgable
H – completeAssignments
I – willGraduate
J – itProfessional
K – hardworking
L – earnMoreMoney
M – goOnaTrip
N – beHappy
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 26
Knowledge representations
AND = ^
OR =
NOT =
THEN IF =
A^B C
If I go to college and not attend lectures, then I will miss the lessons.
A^ B D
If I attend lectures and study hard then I will pass the exams.
B^E F
C G
D H
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 27
F I
J^K L
L M
IM N
2.1. Follow the rules for the following situations (what do you conclude for each one?):
Conclusions:
I go to college and attend lectures
A^B C
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 28
I am an IT professional and hardworking
J^K L
Forward chaining is the logical process of inferring unknown truths from known data and
moving forward using determined conditions and rules to find a solution. As a data-driven
and bottom-up form of logic, forward chaining starts from known conditions and rules, then
progresses towards a logical conclusion using if-then statements. It applies these conditions
and rules to the problem until there are no further applicable situations or until a set limit is
reached. Forward chaining searches for any available conclusions and can create an infinite
number of possible conclusions. (Rouse, 2018)
A^B D H
If I go to college and attend lectures, then I will learn something. If I learn something then I
will be knowledgeable.
A^B C G
If I attend lectures and study hard, then I will pass the exams. If I pass the exams, then I will
graduate. If I graduate, then I will be happy.
B^E F I N
If I am an IT Professional and hardworking, then I will earn more money. If I earn more
money, then I will go on a trip. If I go on a trip, then I will be happy.
J^K L M N
If I pass the exams, then I will graduate. If I graduate or go on a trip, then I will be happy.
F IM N
Backward chaining is the logical process of inferring unknown truths from known conclusions by
moving backward from a solution to determine the initial conditions and rules. Backward chaining is
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 29
often applied in artificial intelligence (AI) and may be used along with its counterpart, forward
chaining. In AI, backward chaining is used to find the conditions and rules by which a logical result or
conclusion was reached. (Rouse, 2018)
To be graduate…
To be graduate (I), first pass exam (F) needs to be true, to pass exam attend lectures (B) and
study hard (E) should be true.
B^E F I
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 30
2.2 Encode the knowledge into a graphical diagram (inference network). Write a Prolog
program. Use if- then (else) statements in your implementation.
Network representations have been used in information retrieval since at least the early
1960’s. Networks have been used to support diverse retrieval functions, including browsing,
document clustering, spreading activation search, support for multiple search strategies and
representation of user knowledge.
One of the most straightforward means of representing knowledge in a KBS is as rules. The
simplest type of rule is called a production rule and takes the form:
Rule r1
Part of the attraction of using production rules is that they can often be written in a form that
closely resembles natural language, as opposed to a computer language. The use of
capitalization indicates that Person is a variable that can be replaced by a constant value, such
as joe_bloggs or mary_smith. A fact in this KBS might be:
/* fact f1 */
Rules like the one above are a useful way of expressing many types of knowledge, where
there is a reasonable level of certainty. This is not always the case, and in this example
uncertainty may arise from three distinct sources:
Uncertain evidence
Uncertain link between evidence and conclusion
Vague rule (what is a “large” salary anyway?).
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 31
The first two sources of uncertainty can be handled by Bayesian updating, or variants of it,
and the third source of uncertainty can be handled by fuzzy logic. Both techniques are
reviewed below. One or more given facts may satisfy the condition of a rule, resulting in the
generation of a new fact, known as a derived fact. For instance, by applying Rule r1 to Fact
f1 can derive:
/* fact f2 */
The derived fact may satisfy, or partially satisfy, another rule, such as:
Rule r2
This, in turn, may lead to the generation of a new derived fact about a person having
professional contentment. Rules r1 and r2 are interdependent, since the conclusion of one can
satisfy the condition of the other. The interdependencies amongst the rules define a network,
as shown in Figure 8, known as an inference network.
It is the profession of the inference engine to traverse the inference network to reach a
conclusion. Two important types of inference engines can be distinguished: forward-chaining
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 32
and backward-chaining, also known as data-driven and goal-driven, respectively. A
knowledge-based system working in data-driven mode takes the available information and
generates as many derived facts as it can. The output is therefore unpredictable. This may
have either the advantage of leading to unexpected, novel, or innovative solutions to a
problem or the disadvantage of wasting time generating irrelevant information.
(Hopgood, 2005)
M: goOnaTrip N: beHappy
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 33
Figure 10 The Inference network for the created rules of this case study. (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 34
Prolog program for above case study,
Figure 11 The Prolog program of above case study. (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 35
2.3 Design a simple user interface to enter the facts and rules for the above system
Figure 12The Simple user interface of the above system. (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 36
TASK 03
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 37
3.1 Represent the above facts and rules in First Order Logic expressions. Write a
prolog program or other third-generation language program and knowledge base to
execute this knowledge
A sentence in first-order logic is written in the form P(x), where P is the predicate and x is the
subject, represented as a variable. Complete sentences are logically combined and
manipulated according to the same rules as those used in Boolean algebra.
First-order logic can be useful in the creation of computer programs. It is also of interest to
researchers in artificial intelligence (AI). There are more powerful forms of logic, but first-
order logic is adequate for most everyday reasoning. The Incompleteness Theorem, proven in
1930, demonstrates that first-order logic is in general undecidable. That means there exist
statements in this logic form that, under certain conditions, cannot be proven either true or
false.( Rouse, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 38
Figure 13 Example of First order logic expression. (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 39
First order logic expressions of the given case study,
Facts (isA)
isA(car,vehicle).
isA(electricCar,car).
isA(hybrid,car).
isA(aqua,hybrid).
isA(boat,vehicle).
isA(sailBoat,boat).
isA(airplane,vehicle).
isA(jet,airplane).
isA(leaf,electricCar).
Rules (hasprop)
hasprop(vehicle,run,fuel).
hasprop(electricCar,run,notFuel).
hasprop(electricCar,run,electricCharge).
hasprop(leaf,emission,zero).
hasprop(car,travel,land).
hasprop(car,move,wheel).
hasprop(hybrid,run,fuel).
hasprop(hybrid,run,electricCharge).
hasprop(aqua,emission,low).
hasprop(sailBoat,run,windPower).
hasprop(boat,move,notWheel).
hasprop(airplane,move,wheel).
hasprop(airplane,move,air).
hasprop(jet,speed,veryFast).
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 40
Figure 14 First order logic expression of the given case scenario (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 41
3.2Validate the user inputs and provide error messages for invalid inputs.
Computer system validation is the process of verifying that a computer system meets a set of
defined system requirements. The system validation is a set of actions that used to check the
defiance of any element as a system element, a system, a manuscript, a service, a task, a
system requirement, etc. with its purpose and functions. Validation of computer systems
ensure accuracy, reliability, consistent intended performance, and the ability to determine
invalid or altered records is a critical requirement of electronic based record compliance.
When the validation process is applied to the system that completely integrated, it is
frequently titled final validation. It is important to remember that while the system validation
is separate from verification, where the activities are complementary and intended to be
performed in coincidence.
The purpose of validation, as a generic action, is to establish the compliance of any activity
output as compared to inputs of the activity. It is used to provide information and evidence
that the transformation of inputs produced the expected and right result. Validation is based
on tangible evidence likewise it is based on information whose veracity can be demonstrated
by factual results obtained from techniques or methods such as inspection, measurement, test,
analysis, calculation, etc. Thus, to validate a system consists of demonstrating that it satisfies
its system requirements and eventually the stakeholder’s requirements depending on
contractual practices. From a comprehensive standpoint, the purpose of validating a system is
to acquire confidence in the system’s ability to achieve its intended mission, or use, under
specific operational conditions. (Sebokwiki.org, 2018)
In accordance to the given case study, author implemented a software solution while used
some validations to validate the implemented system fields which it satisfies its system
requirements and acquire the confidence in the system’s capability in its specific functional
circumstances.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 42
The following figure shows the main interface of the implemented software solution. This
interface mainly consist with three combo boxes which facilitate user to select the values, and
there are two buttons which provide submit function and clear fields functions, respectively.
Also there is series of labels which used to display the details according to that selected
values of combo boxes. In here, when user trying to submit without selecting details, the user
will be given a pop up warning message as “The selected values are not found in this context!
Please select values for Submit…” according to the applied validations.
Figure 15 The warning message for that without select values of Vehicle specification analyzer. (author
developed,2018)
The next validation of this software solution is Invalid selections!. After selecting all the
details of three combo boxes and press the submit button to get information in accord to
selected selections. According to figure 15, user has selected “Car” as vehicle type and “Sail”
as energy type of the vehicle, then press submit button, the system will pop up a warning
message as “Invalid Selections! Car isn’t a type of Boat”. The “Sail” isn’t a type of energy in
“Car” vehicle which moves using energy types of fuel, electric and hybrid.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 43
Figure 16 The warning message for that invalid selections of Vehicle specification analyzer. (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 44
3.3 Identify and implement opportunities for error handlings.
Exceptions are a mechanism for reporting and handling error, unexpected or exceptional
conditions that can occur during the execution of an object’s methods. When such a condition
occurs, the code that detects the error or condition “throws” an exception. The client of the
code that threw the exception may “catch” the exception and handle it, or propagate the
exception to its client.
Exceptions provide a way to change the program’s execution path, for times when
unexpected behaviour occurs. A good exception should contain sufficient information to
identify the place where the error occurred, the kind of error that occurred, and any data that
may have contributed to, or identifies, the error condition.
The Java programming language supports two types of exceptions and an error signal. The
exceptions are “checked” and “unchecked”. Error signals belong to a special subclass of
exception that behaves like an unchecked exception, but requires a slightly different handler.
They are,
Checked exception
A checked exception is an exception that the client is required to either handle the exception
or explicitly propagate it by declaring the propagated exception in the API of the client code.
In Java, checked exceptions are extensions of java.lang.Exception, IOException,
SQLException etc. If the developer forgets to handle a checked exception, the compiler will
notify him that he must handle or propagate the exception.
Unchecked exception
An unchecked exception is an exception that the client may choose to handle, but often will
not. Unchecked exceptions that are not handled are automatically and silently propagated. It
is not necessary to declare the unchecked exception in the API of the client code. This “silent
propagation” of the exception, results in simpler, but much less robust code. Unchecked
exceptions are implemented by extending java.lang.RuntimeException, ArithmeticException,
NullPointerException, ArrayIndexOutOfBoundsException etc. The compiler will not notify
the developer if he or she forgets to handle an unchecked exception.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 45
Error signal
An error signal behaves very much like an unchecked exception. The compiler does not
report unhandled error signals. The may be caught, but will not be caught by generic
exception handlers that catch java.lang.RuntimeException or java.lang.Exception. Since they
derive from java.lang.Error, they are on a different branch. An error signal is nearly identical
in behaviour to the unchecked exceptions, except that this type of exception extends from a
different base class than either checked or unchecked exceptions, and thus requires a different
“catch” clause to handle them. Errors may be handled or propagated by clients, but they are
expected to propagate them. Handling an error signal is rare. As with unchecked exceptions,
errors are propagated automatically without the need to declare that the error may be thrown.
In Java, error signals are implemented by extending java.lang.Error, OutOfMemoryError,
VirtualMachineError, AssertionError etc. The compiler will not notify the developer if he or
she forgets to handle an error signal.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 46
There are some common scenarios where exceptions may occur. They are as follows:
int vara=50/0;//ArithmeticException
If developers have null value in any variable, performing any operation by the variable occurs
a NullPointerException.
String strng=null;
System.out.println(strng.length());//NullPointerException
The wrong formatting of any value, may occur NumberFormatException. A string variable
that have characters, converting this variable into digit will occur NumberFormatException.
String strng="abc";
int i=Integer.parseInt(strng);//NumberFormatException
array[10]=50; //ArrayIndexOutOfBoundsException
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 47
The basic structure of try – catch syntax
According to the above mentioned case study, author used effective exception handling
procedures to handle exceptions and errors in the given software solution of KBS. First of all,
author analysed and identified which exception or error would be thrown from the source
code. Therefore, to handle those exceptions must applied the suitable exception handling
techniques and exception types.
Figure 19 17 NullPointerException error handling in the Knowledge Based System. (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 48
when submitting selected values. To handle this null value exception, author applied try catch
block as an error handling method according to catch threw exception.
The above noticed figures have “e.getMessage();” method that author used to not show the
error message in the stack trace. If error was handled by using suitable exception handling
procedures, the error does not need to show in stack trace. Therefore, when user is trying to
submit without selecting valid details, following warning message will be delivered by the
system.
Ability to provide all required documents readily by FDA, other regulatory agencies
and your customers.
Maximize the value of the computer system and the employees that use it.
Reduce labour cost by enhancing employee efficiency and effectiveness
Effective project management are scheduled on time and budget
Save money and time by discovering defects at early stage.
Reduces risk, legal liability, not regulatory, is often the most important reason to
perform validation.
Promotes continual process improvement.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 49
3.4Test the above system using well designed test cases and provide all the test
documents.
A test case is a set of conditions or variables under which a tester will determine whether the
system under test satisfies requirements or perform properly. The purpose of this bring
together the structural designed prototype was to test the feasibility and performance of the
selected design. It is critical that all system and subsystem interfaces be tested as well as
system performance at this initial stage.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 50
Test case: 01
Dependencies
No. Text Step Input Details Expected Result Actual Result Status
(Pass/Fail)
01 Select Jets Select Jet from the System should pop up the Pass
specifications vehicle type drop pop up the information
down list information “Jet “Jet fly on the
fly on the air” as air”
travel type
02 Select Jets Select Jet from the System should pop up the Pass
specifications vehicle type drop pop up the information
down list information “Jet “Jet travel very
travel very fast” as fast ”
travel speed
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 51
In according to step 01 and 02, pop up the information “Jet fly on the air” as travel type and
“Jet travel very fast” as travel speed, respectively when selecting Jet from the vehicle type
and pressing Submit button.
Figure 21 Pop upped information of the above test case (author developed, 2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 52
Test case: 02
Table 4Test Case 2 - Analyze specification of Electric Car. (author developed , 2018)
Dependencies
No. Text Step Input Details Expected Result Actual Result Status
(Pass/Fail)
01 Select Electric Select Car from System should pop up the Pass
Car the vehicle type pop up the information
specifications drop down list, information “Zero “Zero
select electric emission” as emission”
from the energy emission type
type drop down
list and select leaf
from the model
drop down list
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 53
In here step 01, pop up the information “Zero emission” as emission type when select Car
from the vehicle type, select electric from the energy type and select leaf from the model,
then press Submit button.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 54
Test case: 03
Dependencies
No. Text Step Input Details Expected Result Actual Result Status
(Pass/Fail)
01 Select Boat Select Boat from System should pop up the Pass
specifications the vehicle type pop up the information
drop down list and information “Travel on
select Sail from “Travel on water” water”
the energy type as travel type
drop down list
02 Select Boat Select Boat from System should pop up the Pass
specifications the vehicle type pop up the information
drop down list and information “Wind power”
select Sail from “Wind power” as
the energy type energy type
drop down list
Here step 01 and step 02, pop up the information “Travel on water” as travel type” as travel
type and “Wind power” as energy type, respectively when selecting Boat from the vehicle
type and select sail from the energy type, then press Submit button.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 55
Figure 23 Pop upped information of the test case 03. (author developed,2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 56
Test case: 04
Dependencies
No. Text Step Input Details Expected Result Actual Result Status
(Pass/Fail)
01 Select any Press Clear button System should Cleared the Pass
specifications clear the information on
on drop down information on every label
lists label fields and fields and reset
reset default default values
values on drop on drop down
down lists. lists.
Table 5 Test Case 4 – Clear function of Vehicle specification analyzer. (author developed,2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 57
In accord to step 01, reset default values on drop down lists and clear all the information on
every label fields, respectively when press Clear button.
Figure 24Clear all the information according to the test case 03. (author developed,2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 58
3.5 Prepare a user document to illustrate how to work with your implemented system.
User Documentation
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 59
System Overview
The Vehicle specification analyser of Knowledge based system is an application that utilizes
an intuitive user interface that makes select information fast and efficient. This program
provides a graphical user interface that allows a user to select information and checkout its
condition and display the condition’s result on it.
Getting Started
Figure 25 The user interface of the Vehicle specification analyser (author developed,2018)
At first of all, user must run this Vehicle specification analyser program using the execution
file, then this user interface will appear. This program hasn’t use any database for data store
and there are no privileges for users. Therefore, any user can use this program at any time.
This interface mainly consist of three combo boxes, a series of labels and two button which is
capable of performing the main function of the system that is to check vehicle specifications.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 60
Fundamentally, users have to select one of information from each drop down list in according
to the desires of users and press submit button to get the information that regard to the
selections. When press clear button, reset default values on each drop down list and clear all
the information on every label fields, respectively.
For instance, if user select Car as the vehicle type then energy type and model drop down lists
will be enabled and user must select values from those drop down lists respectively. After
selections, user should press submit button to get the result. The identified result will pop up
on label fields which state on following figure.
Figure 26 The pop up information that regard to the selections (author developed,2018)
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 61
Conclusion and Recommendation
After getting used to object oriented programming, get hands onto Artificial Intelligence
section is quite good experience. The discussions about artificial intelligence made more
interest in the module. To author, it was a new experience. Before coming to the KBS, author
had some expectations about the subject and author was thrilled as about to go through
challenging and thrilling pace for next three months with KBS module. The basics of AI and
Prolog programming somewhat kept challenged and interested more than any other modules,
because Prolog programming was completely different while comparing other third-
generation languages.
The case solutions are successfully designed and developed to fulfilling the necessary
requirements, as identified in the each given scenario, such as the system is user friendly,
some field level validation are performing efficiently while using Java in Netbeans platform.
The Motor car diagnosing system and Knowledge based system of task 2 programmed using
Prolog in Swipl which involves facts, rules and properties to support processing of structural
information efficiently. Although, in task 3, author implemented Vehicle specification
analyser software solution while using third-generation language as Java in Netbeans
platform to achieve requirements of that case studies.
While performing this module, author faced up some sort of limitations as lack of error
handling procedures, some user interfaces are not well attractive and lack of knowledge in
some case areas. However, author managed to complete these case scenarios successfully
with academic support. In order to manage those limitations, author suggest future
recommends as follow, study more Knowledge based system concepts and apply those in test
programs for better improvements in this module knowledge. Also, provide much more error
handling procedures which precise for the source code. Furthermore, designed more user
friendly interfaces with field level validation that perform efficiently which based on user
requirements.
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 62
Grant Chart
November
Task 1
Task 2
Task 3
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 63
References
- Hopgood, A. (2005) The State of Artificial Intelligence. Advances in Computers,
[Online] 65(S0065-2458), pp.8-10. Available at:
https://www.researchgate.net/publication/222407426_The_State_of_Artificial_Intelli
gence. [Accessed 1 November 2018].
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 64
- Garbhe, S. (2018) What is Artificial Intelligence (AI) – Becoming Human: Artificial
Intelligence Magazine. [Online] Becoming Human: Artificial Intelligence Magazine.
Available at: https://becominghuman.ai/what-is-artificial-intelligence-ai-
4bde325e5462. [Accessed 2 November 2018].
- Quality Edge. (2018) Why computer system validation is very important?. [Online]
Available at: http://qedge.sarjen.com/computer-system-validation-important/.
[Accessed 5 November 2018].
J.A.M.Weerawardhana ([email protected])
Knowledge Based System
HND in Computing & System Development Page 65