There is no precise definition for knowledge-based software, but in general it refers to any software that makes use of some kind of knowledge representation and reasoning to perform its tasks. This could include everything from simple rule-based expert systems to more complex artificial intelligence applications.