\markboth{Fensel}{Fensel}
%%%%%% FENSEL.TEX for WISR'93, version 1.2, 4/22/93 %%%%%%
%%%%%% Updated by Jeffrey S. Poulin, May 1993         %%%%%%

\documentstyle[11pt]{article}

% Standard Spacing for WISR - do not change!!
%
% Page dimensions.
%
\oddsidemargin  0.26in % Leave enough for binding margin
\evensidemargin 0.26in %
\topmargin      -1.00in % (adjusted for printer bias)
\headheight      .00in  % (no headers)
\headsep         .75in  % (top margin + headers + skip)
\footheight     12.0pt  % ??? (seems to work ok)
\footskip       25.0pt  % ??? ( "   "  )
\textheight     9.425in % (instructions: 9 1/8" min, 9 7/16" max)
\textwidth      6.5in   %
%
% Paragraph changes.
%

\markboth{Fensel}{Fensel}
\pagestyle{myheadings}

\parindent=0pt
\parskip=10pt
%
% can make the title box even smaller
%
\def\@maketitle{\vbox to 2.6in{\hsize\textwidth
    \linewidth\hsize \vfil \centering
    {\large \@title \par}
    \vskip 2em
    {\normalsize
    \begin{tabular}[t]{c}\@author
    \end{tabular}\par}
    \vfil}
}

\begin{document}

\bibliographystyle{ieeetr}

\title{Reuse of Problem-Solving Methods in Knowledge Engineering}

\author{Dieter Fensel\\
\\
Institut fur Angewandte Informatik und Formale Beschreibungsverfahren (AIFB)\\
University of Karlsruhe, P.O. Box 6980, 76128 Karlsruhe, Germany\\
Tel: 49-721-6084754\\ 
Fax: 49-721-693717\\
E-mail: fensel@aifb.uni-karlsruhe.de\\
}
\date{}

\maketitle

\begin{abstract}
The paper proposes the combination of two kinds of software reuse in knowledge engineering. On the one hand, a lot of work has been done to develop generic problem-solving methods which can be applied to different domains and tasks. These reusable methods simplify the  process of building a knowledge-based system by providing a predefined model of the problem-solving process which guides the further acquisition of domain knowledge. One the other hand, several formal knowledge specification languages have been developed which allow the description of a model of expertise at a high but precise conceptual level. In the paper it is argued that formal languages can also be used to improve the reuse of predefined problem-solving methods.


\vspace{0.2in}
\noindent
{\bf Keywords:} Reuse, requirements specification, formal specifications, source-code libraries, prob\-lem-solving methods, knowledge engineering

\vspace{0.2in}
\noindent
{\bf Workshop Goals:} Learning and networking, discussing reuse of formal specifications and the use of formal specifications for reuse.

\vspace{0.2in}
\noindent
{\bf Working Groups:} Reuse and formal methods, Domain analysis.

\end{abstract}

\newpage

\section{Background}

During the last four years I have worked in the domain of knowledge engineering. The main part of my work was concerned with the development of the formal and operational knowledge specification language KARL \cite {Fen93} (i.e., reuse by a very-high-level language cf. \cite {Kru92}). A second line of research on reuse was the formal specification of reusable problem-solving methods in KARL. Currently, the development and description of generic and reusable problem-solving methods is an important branch of research in knowledge engineering. The description of the problem-solving behaviour of an expert system by a generic problem-solving method characterizes the so-called second generation expert systems \cite{DKS93}. My work is part of the MIKE-project ({\bf M}odel-based and {\bf I}ncremental {\bf K}nowledge {\bf E}ngineering, cf. \cite{AFL93}) at the University of Karlsruhe which aims at developing methods and tools for the process of building knowledge-based systems.

\section{Position and Comparison}

First, the rationale of reusable problem-solving methods is discussed. Second, the development of formal and operational knowledge specifi
\subsection{Reuse of Problem-Solving Methods}

During the last decade, several problem-solving methods have been discovered in the domain of experts systems. \cite{Cla85} analysed several expert systems for diagnosis and remodelled the so-called problem-solving method heuristic classification, which was implicitly used by all of these expert systems without being explicitly represented. In spite of various differences all systems have three steps in common: a data-abstraction, i.e., concrete values are mapped on intervals; a heuristic match from abstract problem descriptions to abstract solutions; the hierarchical refinement of these solutions until a final solution has been found.\\
Thus, Clancey describes a problem-solving method without referring to implementational details of the used knowledge representation formalism of the different systems or to the domain specific knowledge they used. The description of a problem-solving method independently from its implementation and from an application domain are the essential necessities for its reuse. In \cite{BWS87} a whole set of different problem-solving methods is described at this level. These problem-solving methods are described by defining: the single steps called knowledge sources or inference actions; the structural dependencies of these single steps by a so-called inference structure; and the control flow, i.e. the sequence of these single steps. Such a problem-solving method is often called interpretation model because it can be used as an guideline for the knowledge acquisition process. Once selected, the method can guide the elicitation and interpretation of the experts domain knowledge required for solving the specific task.
A more operational point of view on reuse is taken by theroblem-solving methods.\\
To overcome these shortcomings of application generators, \cite{Mus92} proposes a library of reusable mechanisms or generic tasks. These methods have a finer grain size than conventional expert system shells. A complete problem-solving process must be modelled by several mechanisms. These approaches are analogous to the {\em source-code library} idea in software engineering. The main characteristics of these approaches is that currently these mechanisms are only described by code and by informal descriptions of the code. Therefore, there is little support for the selection, specialization, and integration of these mechanisms. The lack of descriptions that abstract from implementational details, but do not lead to imprecise natural-language descriptions, makes it difficult to compare such mechanisms, and to provide a precise description of their problem-solving capability. Mathemaows developers to address such components through their names. Currently, there exist neither exhaustive libraries of reusable mec

\subsection{Reuse by Formal Specification Languages}

A further line of software reuse is the development of specific formal or operational knowledge specification languages. Very high-level languages (VHLL) are executable like high-level languages but they aim to increase the level of abstraction. "The primary concern in VHLLs is not efficiency in program execution but rather efficiency in implementing and modifying programs" \cite{Kru92}. In VHLLs, the automatic code-generation is similar to that of application generators. Yet, the VHLLs are application-independent general-purpose languages of higher complexity (e.g., they use first-order logic). Languages like (ML)$^2$ \cite{HaB92}, KARL, or MoMo \cite{VVW93} use the KADS-I model of expertise (cf. \cite{WSB92}) as conceptual model for their language constructs. In Europe the KADS-I model of expertise is widely accepted as the appropriate conceptual framework for the specification of knowledge-based systems. The languages differ in whether they aim more at formalization or operationalization of a model of ex

\subsection{Reuse of Problem-Solving Methods by Formal Methods}

Currently, reuse by problem-solving methods and reuse by Very-high-level languages converges. KADS-I proposed a set of standardized elementary inference actions. \cite {Abe93}  formally describes this set of elementary inference actions in (ML)$^2$. The granularity of these reusable blocks is less or equal to the above mentioned problem-solving mechanisms. A second example is the specification of several problem-solving methods in KARL like the board-game method, chronological backtracking, cover-and-differenciate, propose-and-exchange, etc. \\
These formal descriptions of reusable components have the following advantages compared to pure informal descriptions by natural language and graphics: Natural-language documents have an ambiguous and vague semantics; there is a high cognitive distance between the specification and the implementation, i.e. the specification is not an appropriate means for defining the behaviour of the implementation; as the specification is not executable, there is little support in evaluating it; and as the specification is informal, there is no support in verifying its correctness and completeness by formal methods. \\
Secondly, formal descriptions of reusable componentResearch which aims at improving the usability of the mechanism library and the formal specification languages approach by their combination will have to address two main topics:\\
{\em Study of the formal semantics of the languages:} The selection and modification of problem-solving methods or mechanisms can be supported by formal reasoning based on the semantical properties of the specifications of the methods or mechanisms in these languages. It requires further research to decide which of the several declarative semantics for formal specification languages is best suited for that purpose. (ML)$^2$ and KARL both use dynamic logic for specifying procedural knowledge but differ significantly in their way of integrating this with the specification of static knowledge. A further possibility is exemplified by the language DESIRE \cite{LPT92} which employs partial temporal logic as semantics.\\
{\em Study of the formal properties of the problem-solving methods:} The formal specification of a problem-solving method is the precondition for formally supporting its reuse. The complexity of the search process for appropriate problem-solving methods according to a given formal description of a task (cf. \cite{AWS93}) can be significantly reduced by deriving pre- and postconditions from these for



\nocite{*}
\bibliography{fensel}

\section{Biography}

Since 1989 Dieter Fensel is working as a scientist at the University of Karlsruhe. He holds a Diploma in computer science from the Technical University of Berlin and a Diploma in social science from the Free University of Berlin. He received his Ph.D. in economic science from the University of Karlsruhe in 1993. His thesis was concerned with the development of the Knowledge Acquisition and Representation Language KARL. He developed the modelling primitives and the formal (i.e., declarative) semantics of KARL. Currently, he is working {\em on reuse of formal specifications and use of formal specifications for reuse.} Further activities are concerned with the development and application of machine learning algorithms.
\end{document}


