What is Active Knowledge Modeling?
March 12, 2009
Over the past 10-15 years, we have developed multiple platforms for model-driven applications. Flexible, emergent, human-centered Business Process Management (BPM) systems for knowledge intensive project work is a main focus, but we have also developed model-driven portals and collaboration environments, extensible information architectures, model-driven forms and other user interfaces, visualization services, access control, product design support etc. This article introduces key concepts for model-driven applications.
This blog tries to explain Active Knowledge Modeling (AKM). This approach differs from UML, Microsoft Oslo and similar frameworks in that it starts with the business knowledge of people, rather than the program and data structures of the computer. AKM requires a new way of representing knowledge as visual models, where complex, rigid, software-oriented languages are replaced by simple and agile domain concepts.
A model is a representation of some aspects of real world entities and phenomena, as interpreted by some actor(s). A model is active if it also influences the reality that it represents. Knowledge is held by people, so knowledge modelling languages should be based on human communication, sense-making and learning, rather than computer and software concepts. Active knowledge modeling is thus informed by industrial practice and design theory, psychology, sociology, anthropology, linguistics etc. Modeling languages should not be abstracted from programming languages like UML, or from formal mathematics, like ontologies. Such languages do not offer the interpretative flexibility needed for human communication.
Consequently, activation, the process whereby a model influences reality, cannot be solely based on automated execution. Instead, users must be supported in flexibly interpreting the models and acting upon them, in the situations that arise. This principle is called interactive activation. It implies partial automation, where the automation boundary may be moved by the users. The more precise and detailed a model is, the more automatic execution it supports. However, exception handling requires that the users be allowed to “open up” the model and change the default, automatic interpretation of it.
Some core concepts of active knowledge modelling are illustrated below. Models, or knowledge architectures, consist of knowledge explicitly represented in structured models, and of the mental views of the people involved in creating and using these models. Knowledge is explicitly represented as information and data structures. Data consists of symbols used for conveying information and knowledge. Data becomes information when its meaning is interpreted by some actor. We thus see data as a one-dimensional representation, a stream of symbols. Information adds a second dimension that reflects the meaning of the original data, often called meta-data. Knowledge implies a justification of the information or that the information guides action. Knowledge establishes structures and relationships between information elements, and uses them to manage dependencies. Knowledge representations must thus possess at least three dimensions: data, its meaning, and the structure, justifications, and actions that the knowledge results in. In order to support reflection on knowledge, a fourth dimension is needed. Reflection on knowledge is required for e.g. learning, knowledge management, design, innovation, collaboration, creation of
shared understanding, and other creative tasks. We refer to representations that contain four reflective dimensions as knowledge spaces. These concepts are illustrated below.
In software systems, the second dimension is typically represented as program code that defines how the data is manipulated, stored, and presented to the user. Among humans, the second dimension can be illustrated by the capability to understand a certain language, such as English. If you do not understand the language, speech becomes incomprehensible data.
Few computerized systems are really knowledge-based. Their data structures and program code are fixed. By using the system, humans can bring in the extra dimensions of interpretation and reflection needed for knowledge and even learning. However, these additional dimensions cannot be reflected back into the computerized system as updated data structures or program logic. Reflection, knowledge, and learning can thus not be shared among the people using the system. What a user can learn from the system is limited to the two dimensions that were coded into the system from the start. The knowledge space of software consists of two explicit dimensions (data, code) and two mental views possessed by different roles (programmers, users).