Introduction
	What is intelligence?  Although there exists no one specific definition of intelligence the general concept involves the mental capability to reason, plan, solve problems, think abstractly and learn.  Within the natural world, only humankind exhibits all the conceptual values of intelligent behavior.  The million dollar question is, can artificial,  non biological, entities posses intelligence?  In order to answer this question a new field of computer science research was born, AI, artificial intelligence.  AI research revolves around two schools of thought, computational intelligence and conventional AI.  Computational intelligence , “scruffy AI”,  involves iterative learning, pattern recognition, reasoning with uncertainties and evolutionary computation.  Genetic algorithms, neural networks and fuzzy systems are all examples of computational intelligence.  Unlike computational intelligence, conventional AI seeks to create intelligence through statistical analysis and logic reasoning and thusly garnered the nickname “logical AI”.  Both expert and knowledge based systems fall into the conventional AI category (Wikipedia 1-2).  From this point forward the acronym KBS will be used in lieu of expert or knowledge based system.  

History of KBS
	Research into KBS began in the early 1960’s beginning with the failure to develop a general problem solver.  While trying to build the general problems solver, researchers discovered that the mechanisms and algorithms needed for a system to solve any problem decreased the computational power of the system.  In order to maintain computational power, but still provide a system capable of solving human problems, research shifted to problem specific systems.  
	The first of these problem specific systems debuted in the mid 1960’s.  Known as DENDRAL, this KBS analyzed output of unknown compounds from chemical equipment and inferred possible structures.  The huge success of DENDRAL lead to the development of KBS for use in other disciplines.  MYCIN, a system never commercially used, diagnosed blood infections with the accuracy of a trained physician. DEC built R1 and XCON to configure their custom built computer systems in the early 1980’s and now state the business could not function without them.  During the mid 1980’s due to the success of early systems, KBS went mainstream as many software developers released shell programs claiming to encapsulate expert knowledge.  Although many of these shells worked well, consumers failed to realize their potential due to misuse and mismanagement of the technology.  Due to failing consumer confidence, during the late 1980’s and early 1990’s KBS use and development decline except for a few systems in large corporations (Harris-Jones 7-10).
	Today KBS technologies are everywhere.  From the Microsoft Office Paper Clip to automotive diagnostic tools, the next generation of KBS has emerged.  Whether disguised with cute interactive interfaces or more straightforward GUI’s the second generation of KBS, with greater computational power and deeper domain knowledge, stands poised to take over modern computing.

Structure of KBS
	KBS employ non-procedural knowledge for problem solving within a well defined domain.  Composed of a knowledge base, working storage, inference engine and user interface, KBS excel at diagnostics, game playing, financial planning and monitoring real time systems.  
	The knowledge base and working storage are the memory of the KBS.  A declarative representation of the expertise or knowledge, the knowledge base contains facts and rules pertaining to the domain in general.  These rules are represented using conjunctions of implications.  Such as, if Bruno is an animal and Bruno barks then Bruno is a dog.  By using the rules represented in the knowledge domain, the system asks the user questions in order to form a solution.  These problem specific answers constitute the working data.  Using the above rule, the system would first ask if Bruno is a dog, when the user answers yes, that fact becomes part of the working data.  To reach a conclusion the system then asks whether Bruno barks, if the answers is yes the system is able to infer that Bruno is a dog.  When compared to humans, knowledge bases function as long term memory and working storage as short term.
	Knowing facts and rules means nothing if the system can not apply them.  The inference engine applies rules and facts from the knowledge base and working storage and uses predicate calculus to drive the system to solutions.  Inference engines operate using either forward chaining or backward chaining.  Forward chaining, data driven reasoning, uses the knowledge base and working storage to derive a solution based on the initial data.  On the other hand backward chaining, goal driven reasoning, breaks the more complex final goal into easier to manage and prove sub-goals.  Backward chaining proved that Bruno was a dog by first proving the sub goals that Bruno was an animal and Bruno barked.  One important and useful side effect of both forward and backward chaining is that when all steps are recorded, the system can provide an explanation to its reasoning.
	If the inference engine, knowledge base and working storage work together as the mind of the KBS,  then the user interface provides perception.  Original KBS interfaces were text driven, much like early conventional systems.  With the advent of powerful GUI tools, user interfaces became graphical and menu driven.  When developing a KBS interface care must be taken to ensure not only functionality but also ease of use (Merrit 2-9).

Development of KBS
	Development of a KBS begins with the identification of the problem domain.  Consultation sessions between knowledge engineers and domain experts, people with the knowledge and expertise needed to solve problems in the domain, are held.  The knowledge engineer asks questions specific to the problem domain in an effort to garner the knowledge needed for the system to function at the expert level.  A knowledge engineer then takes the domain experts knowledge and transforms it into a declarative format.  Finally the system engineer builds the user interface, designs the knowledge base and implements the inference engine.  
	Not all KBS are built from the ground up.  Shells, programs with an inference engine, a format for programming the knowledge base and a user interface, are available and require only a domain expert and knowledge engineer to implement.  No matter the construction of the system, the goal of KBS development and design is reducing the semantic gap between the knowledge base and the natural representation of that knowledge (Merrit 3-4).          

A Simple KBS using Prolog

	  

	

Works Cited
Harris-Jones, Chris.  Knowledge Based Systems Methods: A Practitioners’ Guide.  Hertfordshire: Prentice Hall International, 1995.
Hollingum, Jack.  Expert Systems: Commercial Exploitation of Artificial Intelligence.  New York: Springer-Verlag,  1990.
Merrit, Dennis.  Building Expert Systems in Prolog.  New York: Springer-Verlag,  1989.
Wikipedia, the free encyclopedia.  2005.  Wikipedia.org.  24 Nov.  2005
	<http://en.wikipedia.org/wiki/Artifical_Intelligence>