 The justification for knowledge representation is that conventional procedural code is not the best formalism to use to solve complex problems.Knowledge representation makes complex software easier to define and maintain than procedural code and can be used in expert systems.For example, talking to experts in terms of business rules rather than code lessens the semantic gap between users and developers and makes development of complex systems more practical.