4.15 Generic problems to be solved for developing a knowledge-based system   Generic problems of knowledge-based system development

Several problems must be solved in order to develop and implement a knowledge-based supervisory system; from abstract level knowledge engineering point of view the problems can be roughly classified as follows:
 

  • knowledge representation: specification of knowledge representation formalism appropriate for the considered tasks,
  • inference mechanism: specification of knowledge processing tools appropriate for the problems to be solved,
  • inference control mechanism: definition of constraints, controls strategy and heuristics allowing for efficient inference control, and in particular avoiding the so-called combinatorial explosion problem,
  • knowledge acquisition: solving the problem how, where and who will acquire and elaborate the knowledge necessary for building the knowledge base,
  • interface design: man-machine communication and interface design and development, including the inference explanation capabilities and solution justification,
  • verification and validation: theoretical verification of knowledge consistency, completeness and correctness as well as practical validation on test-cases,
  • modification, adaptation and learning: permanent improvement of quality of the developed system together with its adaptation to changing environment and incorporating learning capabilities.

  • All the above problems constitute multiple-solution issues to be considered by a knowledge engineer when attempting at knowledge based system design and development. It should be underlined, that selected solutions may be of crucial importance for system efficiency, quality, reliability and safety.

    Inference methods in knowledge based systems

    Some selected, most frequently used methods include the ones of logical inference. The following is a list of most typical ones way of inference and knowledge processing mechanism:
     

  • generalisation/abstraction,
  • specialisation/substitution,
  • pattern matching, situation recognition, state assessment,
  • deduction (rule based systems),
  • abduction (the method of Sherlock Holmes),
  • induction (generation of general knowledge, learning),
  • consistency-based reasoning,
  • search methods for trees and graphs,
  • search methods for AND/OR graphs and games,
  • parametrical learning methods (NN),
  • fuzzy inference methods,
  • inductive learning algorithms,
  • learning control algorithms (reinforcement learning),
  • case-based reasoning, reasoning by analogy.

  • Although the list is not a complete one, it indicates that a variety of techniques can be applied for knowledge processing in intelligent systems.

    Knowledge representation - critical evaluation of logic-based approaches

    In this section we present argumentation that any kind of knowledge representation language is nothing but another syntax, or ''syntactic sugar'' over logic, and as such could be avoided be replacement by logical knowledge base. On the other hand we argue that there is necessity for diversity of knowledge representation formalism, incorporating extra-logical features, as spatial and temporal composition, structural displaying, hierarchical presentation, etc.

    First let us briefly comment on existing knowledge representation techniques and show that practically all of them are just based on logic, sometimes with syntactic addition termed sometimes to be ''syntactic sugar''. Classical books on AI list usually the following knowledge representation schemes:
     

  • object-attribute-value items, i.e. O-A-V facts,
  • logic, mostly understood as first-order predicate calculus,
  • production rules, or more precisely rule-based systems,
  • frames, sometimes termed ''semantic.....''; objects (in object oriented programming may be also considered as kinds of frames and vice versa),
  • semantic graphs in various forms, where nodes represents objects and links relations among them,
  • scenarios, especially for dynamic systems

  • Some most popular and useful in supervision systems techniques were recapitulated in this Chapter. Note that obviously various mixtures of the methods are also possible.

    Let us briefly review the above methods in context of logic.

    The object-attribute-value facts are just another syntax of logic. Note that a fact like a(c)=v, denoting the fact that the value of attribute a for object c is equal to v can be presented in logic as an atomic formula equal(a(c),v), or holds(fact(a(c),v)), etc. Moreover, using logic one can easily encode three-, four-, and n--ary relations, as between(two,one,three) or four_in_order(1,2,3,4) which is not necessarily so easy in the O-A-V formalism. Further, logic provides a way of representing lists, and thus dealing with sets and sequences becomes possible; a list [a,b,c,d] is a shorthand for .(a,.(b,.(c,.(d)))), where ./2 is a binary functional symbol selected for crating lists (as in LISP-like languages) and infix notation is applied.

    With respect to rules, let us consider the basic rules of the where  is the precondition and  is conclusion; from logical point of view such a rule can be represented as implication , which, when applied (e.g. with modus ponens inference principle) produces effect equivalent to application of the corresponding production rule.

    Coming to frames one should take a look at the structure of this construct. Frequently, it consists of specification of certain object description with facets and slots and an operational part answering the questions like if-needed, if-added, if-modified, etc. The first part is usually as a record-like structure, forming some hierarchy, and providing certain values characterising the described object. This can be perfectly represented with an arbitrarily complex term structure, following the pattern:
     

    struct(
    facet(
    attribute_1
    element_1
    value_1),
     
    facte(
    attribute_2
    element_2
    value_2),
     
     
    facet(
    attribute_k
    element_k
    value_k)
    )
           

     
    or similar one; if necessary, lists can be easily modelled as well. The procedural part can be mostly modelled either by specifying an inferential component with reasoning rules specifying the consequences of certain actions (if possible) or must be added as external set of subroutines modifying the logical structure; note that this can be done also in first-order logic, but this time the specification will be expressed in meta-language, referring to the object of basic structure as elements of manipulation.

    Finally, modelling graphs, can also be carried out within logic. Consider a general graph composed of nodes and labelled arcs. Any component is of the form:

    which is the basic connection of the graph. Obviously, it can be modelled as an atomic formula relation_ij(node_i,node_j), or, even more generally as holds(relation_ij,node_i,node_j). The whole graph can be modelled as a set (logically: conjunction) of such statements; further, some auxiliary descriptors can be added as additional parameters..

    To complete the picture let us mention some specific features of logic, hardly encountered in other formalisms. Logic has clearly defined syntax and semantics. An important thing is that logic is not only knowledge representation formalism, but it is also a tool for knowledge processing; automated deduction provides the framework for problem solving. Further, deduction rules posses the property of producing valid output, i.e. only correct output is generated. And last but not least, it is not difficult to provide a deduction system which is complete, i.e. if a formula (solution, hypothesis, etc.) follows from the axioms, then it (or its generalised form) can be deduced from the axioms within the system; in simple words, if the solution exists, it can be found.

    The question is: if the picture of logic so positive, should we, and - if so - why, consider another knowledge representation formalism? In other words why - if - logic is not sufficient for knowledge representation, what are the shortcomings and how to improve the situation, i.e. what additional features should the knowledge representation mechanism posses?

    The answer to this question is, as usual, complex and somewhat subjective. But in supervisory knowledge-based system, especially ones involving human operator, man-machine co-operation and expert co-operation, the answer to these question comprises a crucial factors for design and implementation of useful, user friendly systems.

    Below, a list of features considered to be drawbacks of classical logic is presented:

  • Difficult, sometimes ambiguous syntax, hardly acceptable by human process operators. This follows from the fact that we were taught to fink functionally, i.e. in term: the result of this is that, but not relationally, i.e. this relation holds for these objects. we were all mostly taught maths, not logic.
  • People often think basing on physical intuition; a common phenomenon likely to use in reasoning is causality. Logic, itself allows for specification of causal dependencies, but does not provide any mechanism for intuitive representation and dealing with causality; the order (positions) of arguments in predicates is not enough to do that.
  • People often specify and use hierarchical dependencies for representing knowledge. Again, logic is ''flat'', it does not support dealing with hierarchy in a simple, natural way.
  • Logical formulae have, flat monotonous structure, all elements are equally important; people like to present information in a structural form which helps to perceive and comprehend the represented knowledge.
  • Logic has no display form: visual representation is important to people, most of the information (above 80\%) comes through eyes in the form of images. Spatial presentation makes easier and more readable knowledge representation. Furthermore, spatial relations may directly model certain important relationship, e.g. in graphs, the distance between nodes may model the real distance between towns. Spatially displayed information helps to quickly perceive and analyse certain global features, e.g. existence of connections, area, shape, etc. Tabular displays help arrange and order knowledge.
  • Logic is inflexible, and thus hard to specify specific aspects of knowledge, such as uncertainty, vagueness, fuzziness, strength, etc.
  • Logic is far from everyday tools, too general, while for specific tasks we need more specific tools (graphs, pictures, colours, etc.),
  • Classical logic does not cover directly default and nonmonotonic inference, and thus modelling these issues is practically difficult.
  • It is difficult to control the deduction strategies; combinatorial explosion easily occurs, and the way of knowledge presentation (syntax) does not help here. Sometimes, answers to simple questions are very hard to find.
  • Logic does not support calculation in a simple and direct way; this however is often the basic necessity.
  • Logic does not support directly qualitative inference, very important while dealing with imprecise information and reasoning at higher abstract levels.
  • Finally, logic is strict, and if inconsistency occurs, it turns out to be useless (an error); in the meantime, certain types of inconsistencies are part of everyday' practice and human easily handle them.
  • The above points summarise only some most crucial lacks of classical logic. Many of the points are touched or solved by modern types of extended or modified logic, such as fuzzy logic, multivalued logics, nonmonotonic logics, etc.

    Some graphical tools for supporting knowledge representation include:

  • flow charts, flow diagram, flow graphs, etc., covering symbolic representation of signal flow and transformation over the system,
  • functional schemes, including realistic graphical representation of system components (technological flow diagrams),
  • state transition graphs,
  • decision trees, binary trees,
  • decision tables,
  • relational (attribute-value) tables,
  • graphical representation of process variables, etc.
  • It should be noted that for more complex systems only appropriate combination of knowledge representation techniques best fitting the characteristics of the system to be supervised and the current specific requirements can provide satisfactory results. Further, graphical user interface with components of intelligent knowledge processing constitutes nowadays a compulsory component of any knowledge based system.