Definition.    KnowledgeUnit

Let M be a symbolic model and S a subset of atoms in M.  A KnowledgeUnit is a subset of S , which can be used for building a mental model of the program behavior for the user.

For example, we may have an output tape which contains an if-command with a condition, true-clauses and else-clauses. The KnowledgeUnit is then a proposition built from the if-command for understanding the functionality of the corresponding command in the Symbolic language. It is characterized in every case by the corresponding condition, but the user can consider this KnowledgeUnit in multiple ways:

  • In a situation dependent case the user tries to get a value true or false for it.
  • In higher-order logic the user tries to prove the command correct or incorrect.
  • In evaluating usability of the command the user tries to evaluate whether the command is good enough to be used in upcoming software versions.

Each clause of the simulation output can be considered both as a proposition whether it will become executed or not, or as a proof to verify whether its output is correct or not. In building knowledge-based systems it is essential to assume that knowledge is something that can be identified, modeled, and explicitly represented (Aamodt et al., 1995).  In computational semiotics Gudwin (2006) defines KnowledgeUnit to contain selectively collected data and information. In our approach the grammar including its semantic is the starting point. It is then changed into a model element. Knowledge units are, as shown in FIGURE, collections of model elements with relations between them.


Knowledge type is a class describing a knowledge unit according to the classification. It can be either fundamental, propositional, or argumentative knowledge (Gudwin, 2006).

  • Class Server is a KnowledgeUnit, into which user knowledge is accumulated in reading code.
  • The relevant methods are KnowledgeUnits.