Knowledge engineering

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Knowledge engineering (KE) refers to all technical, scientific and social aspects involved in building, maintaining and using knowledge-based systems.


Expert systems[edit]

One of the first examples of an expert system was MYCIN, an application to perform medical diagnosis. In the MYCIN example, the domain experts were medical doctors and the knowledge represented was their expertise in diagnosis.

Expert systems were first developed in artificial intelligence laboratories as an attempt to understand complex human decision making. Based on positive results from these initial prototypes, the technology was adopted by the US business community (and later worldwide) in the 1980s. The Stanford heuristic programming projects led by Edward Feigenbaum was one of the leaders in defining and developing the first expert systems.


In the earliest days of expert systems there was little or no formal process for the creation of the software. Researchers just sat down with domain experts and started programming, often developing the required tools (e.g. inference engines) at the same time as the applications themselves. As expert systems moved from academic prototypes to deployed business systems it was realized that a methodology was required to bring predictability and control to the process of building the software. There were essentially two approaches that were attempted:

  1. Use conventional software development methodologies
  2. Develop special methodologies tuned to the requirements of building expert systems

Many of the early expert systems were developed by large consulting and system integration firms such as Andersen Consulting. These firms already had well tested conventional waterfall methodologies (e.g. Method/1 for Andersen) that they trained all their staff in and that were virtually always used to develop software for their clients. One trend in early expert systems development was to simply apply these waterfall methods to expert systems development.

Another issue with using conventional methods to develop expert systems was that due to the unprecedented nature of expert systems they were one of the first applications to adopt rapid application development methods that feature iteration and prototyping as well as or instead of detailed analysis and design. In the 1980s few conventional software methods supported this type of approach.

The final issue with using conventional methods to develop expert systems was the need for knowledge acquisition. Knowledge acquisition refers to the process of gathering expert knowledge and capturing it in the form of rules and ontologies. Knowledge acquisition has special requirements beyond the conventional specification process used to capture most business requirements.

These issues led to the second approach to knowledge engineering: development of custom methodologies specifically designed to build expert systems.[1] One of the first and most popular of such methodologies custom designed for expert systems was the Knowledge Acquisition and Documentation Structuring (KADS) methodology developed in Europe. KADS had great success in Europe and was also used in the United States.[2]

OK paradigm[edit]

Organic Knowledge Engineering[edit]

Organic Knowledge (OK) is a paradigm for OK systems engineering developed over the last two decades. Organic Knowledge (OK) system can be abstractly seen as advisory board of very different (even adversary) educators with mechanisms of cooperation that work together to suggest to the student the next game after constantly observing him.

In addition to using all the principles of SE, the organic SE adds another special layer of tools. It simulates and incorporates both the knowledge of the software engineer and the knowledge of the domain expert.

In a nutshell the organic approach is treating the problem and the solution process as a living organism (or ecology of organisms if more appropriate). The organic solution is non-algorithmic and evolving using feedback and data-to-knowledge mechanisms. It is as if the solution is like a child – in the beginning having no knowledge (except some basic mechanisms needed for evolution), and by process of feedback and Darwinian natural selection the solution gradually evolves into better and better reactions using the growing body of knowledge.[3]

OK systems implementation[edit]

The computer implementation of such a system can be described in more precise terms. Organic Knowledge (OK) systems are ICT systems incorporating human expertise. One would be tempted to describe them as Expert Systems (ES) “on steroids” transforming them into Knowledge Systems (KS). If at all, they are an ecological system of many different and sometimes contradictory experts, called organs. But in reality the OK systems are so much more in almost every aspect that it is more correct to say they are the fulfillment of the ES vision. Other spiritual ancestors of OK system are Turing’s “child programs”[4] and Minsky’s learning, evolving and non-algorithmic Society of Mind proposals.[5]

OK system is:

  • intelligent
  • evolving
  • learning
  • organized
  • distributed
  • dialectical
  • very big knowledge base

Each organ is simulating an independent expert, and includes:

  • knowledge base (data, meta-data and procedures)
  • feedback apparatus:
    • knowledge acquisition mechanism (interfaces and communication)
    • learning mechanism (inference of new knowledge and processing)
    • evolution mechanism (creating and changing organs in view of the new knowledge)
  • interfaces:
    • environment (local)
      • subjective (user)
      • objective
    • communication (network)
      • with other organs (o2o)
      • with remote servers
      • with remote users (p2p)
      • with remote resources
  • execution (proactive)

GML paradigm[edit]

General Outline[edit]

The Gestalt-Multiplex-Layering (GML) paradigm entails: gestalt – a deeper model of the expert knowledge and reasoning process; multiplicity – simultaneous use and cooperation of different and conflicting approaches; layering – use of a hierarchy of independent layers of control and processing, through which the input and intermediate results are propagated.[6][4][5][7]

The independence of each layer enables implementation of different approaches at different layers. The hierarchical layering of control and abstraction of lower by upper layers enables the cooperation and solution of contradictions arising from the use of a variety of different approaches.[3][8]

In very broad, plain terms, at each layer there is a small intelligent system controlling, generalizing and inducing the cooperation of different approaches in a larger intelligent system of the next layer.[9]


Gestalt is the skeleton, the deeper model, the concept, the meta-model of the lower layer, abstracting, generalizing, controlling and interfacing it, and mediating between the lower layer, the upper layers and the user.[10]

See also[edit]


  1. ^ Feigenbaum, Edward; McCorduk, Pamela (1983). The Fifth Generation (1st ed.). Reading, MA: Addison-Wesley. ISBN 978-0-201-11519-2. OCLC 9324691.
  2. ^ Schreiber, August Th.; Akkermans, Hans; Anjewierden, Anjo; Dehoog, Robert; Shadbolt, Nigel; Vandevelde, Walter; Wielinga, Bob (2000), Knowledge engineering and management: the CommonKADS methodology (1st ed.), Cambridge, MA: The MIT Press, ISBN 978-0-262-19300-9
  3. ^ a b Zviel-Girshin, R., and Rosenberg, N. 2015. Lego in Teaching Object Oriented Programming Course. (Hebrew),5th Conference Initiative for Advancement of Higher Education, (Israel, May 2015).
  4. ^ a b Turing, A. M. 1950. Computing Machinery and Intelligence. Mind (49), pp.433-460.
  5. ^ a b Minsky, M. 1988. The Society of Mind. New York: Simon and Schuster.
  6. ^ Zviel-Girshin, R., and Rosenberg, N. 2015. ICT for education – an OK approach. ILAIS, Israel, 61-64.
  7. ^ R. Zviel-Girshin, and N. Rosenberg, “Montessori + SE + ICT = SEET:using SE to teach SE,” in Proceedings of the IEEE/ACM 5th International Workshop on Theory-Oriented Software Engineering, TOSE 2016, 14 May 2016, pp.1-7, DOI: 10.1109/TOSE.2016.009
  8. ^ Zviel-Girshin, R. 2004. Web-based Lab-Oriented Teaching of Internet Programming Course. In L. Cantoni & C. McLoughlin (Eds.), Proceedings of EdMedia: World Conference on Educational Media and Technology 2004 (pp. 740-746). Association for the Advancement of Computing in Education (AACE).
  9. ^ Zviel-Girshin, R. 2005. Web Search as Interactive Learning Environment for Graduation Projects. Journal of Interactive Learning Research 16(1), 21-30.
  10. ^ Zviel-Girshin, R., Rosenberg, N., Kur, T., Peker, Y., and Walmsley, J.K. 2011. Maximizing the IP in Software Engineering, HVC, Haifa Verification Conference.

External links[edit]