Most of today's applications have in one way or the other some representation of Knowledge incorporated. However those are completely baked into the application code. There is no explicit notion of knowledge and as such no urge for reusing or enhancing (learning) knowledge.

In the coming wave of Knowledge Powered Applications (KPA) however here is conscious effort to externalize, reuse and continuously enhance knowledge. 

The differentiation between traditional and Knowledge Powered Applications starts at design level. The architect starts with a notion of modular knowledge components in mind and reflects that throughout entire design.

A good example is the portfolio management and optimization application that we worked on few years ago. That application was composed from three chained Knowledge Models:


        Explorative Model -> Analytic Model -> Selective Model


  • Explorative Model was designed to produce all possible reallocation options for the users' set of assets and liabilities, while taking the regulatory constraints and institutional guidelines into account.
    A Monte Carlo like logic along with a rule engine was used in this Knowledge model.
  • Analytic Model was designed to objectively analyze the options and generate a set of Pros/Cons for each. In this specific case our Knowledge Model is also able to take real-time market data into consideration.
  • Selective Model was designed to create a multidimensional decision model on the fly. Then it calculates and assigns weighting to each dimension of decision space according to user profile and preferences and finally picks the best option using an optimization algorithm.


On the implementation side a shared EAV taxonomy was utilized to exchange facts as [Entity, Attribute, Value].  For inferences a rule engine, a neural net and a proprietary dynamic tree were used to meet the aggressive performance requirements.

These Knowledge Models were linked to feed each other and collectively created the most sophisticated and powerful solution in their respective market.


As you might have noted each model is independent and could be reused, replaced and improved without impacting any other area of the application. This is how a true KPA should be designed.

Knowledge vs. Information

What is Information and what is Knowledge? There are many different views on that.

Let me first start with an example:

Think of your reaction if you were just told that:

- Your WBC is 20,000

- My DTI is 0

- Or the girl you just met online is 1.3 Fathom


Well, these facts by themselves will not mean much if you can't put them in context.


You wouldn't be able to make any sense of it, even if I were to tell you that for example WBC stands for "White Blood Count".
But (hopefully) your physician would react to this piece of "information" and send you immediately for further tests.


Now, the situation would have changed if you "knew" that the "average" WBC is 7000.

Although this could be considered another piece of information, it will give you enough context to decide on a reaction.


In the second scenario it should be enough to know DTI stands for "Debt To Income". In this case you would be able to infer a ratio and conclude that my financials seems to be in a good shape.


And in the last example in addition to knowing Fathom is a unit for height, you will need to the conversion ratio to a familiar unit to conclude anything.


Now, what makes any of these Information vs. Knowledge?


Here is my answer to that:


Knowledge is ability to make information actionable.  Another way to put it: Knowledge is a collection of Information along with a process (cognition) that allows to make decisions, answer questions or solve problems. The key is that Knowledge is tied to information processing.  Accordingly:

"3 x 3 = 9" is information

while ability to do multiplication is knowledge.

Now the question is can I externalize or outsource that ability?

The answer is clearly yes. That is what you do on daily basis when using financial advisors, Physicians or lawyers. The same can be at system level by applying knowledge models for specific use cases. 

Think of a calculator and its embedded Knowledge Model …


In most cases when designing a model, knowledge is not readily available in a consumable format. As such a Knowledge Acquisition (KA) process has to be performed.

This should be considered as the most important step in a Knowledge Modeling project. Models that are not properly constructed and generalized will lack reusability, due to some underlying assumptions or lack accuracy due to excessive bias to certain cases; a phenomenon referred to as over-fitting.


The Knowledge Acquisition is performed in two ways:


  • Direct method:

    By engaging subject matter experts; a practice that is also referred to as elicitation. In this case a knowledge engineer will work with the expert(s) to capture and properly structure the knowledge. This happens through interviews, questionnaires, role play, observation of tasks performed or Teachback.

Direct Knowledge Acquisition approach has two major challenges:

- Experts don't always know all that they know and use
- Tacit knowledge is typically very hard to articulate and describe


  • Indirect method:

This method relies on data analysis, case study, simulation and resulting inferences and machine learning techniques.



Sometimes also a combination is used to cover corner cases.
Either way, generalization should happen before the model is codified. 



Knowledge Models can be categorized into following seven groups:


  • Diagnostic models
    Use case: I have these symptoms. What is the problem? 
  • Explorative models
    Use case: Ok, I know the problem. What are my options?
  • Selective models
    Use case: Now I know my options. Which one is the best?
  • Analytic models
    Use case: How  suitable is this option for my objective?
  • Instructive models
    Use case: How can I achieve that?
  • Constructive models
    Use case: I need a <…> with these specifications <…>.
  • Hybrid models
    Use case: Diagnostic -> Explorative -> Selective -> Analytic -> Constructive


For more details see my Introduction to Knowledge Modeling paper.


I am being frequently asked about KCM applications.  The answer is ultimately Knowledge Models will be used for any complex task including “design” and “planning”. However today there are four main category of KCM applications:


  • Monitoring and Detection

    In these applications, Knowledge Models provide capabilities to monitor and detect malicious activities, abnormalities, patterns or trends and trigger actions as a result. The actions can cover a variety of scenarios ranging from email & SMS notification to automated case handling (see automation section below).Think of network intrusion or credit card fraud detection systems as the obvious applications in this category. However, besides applications that have Monitoring and Detection as their primary usage, this functionality can be added to many other type of applications to provide accumulative benefits on top of the main purpose.Think of a traditional CRM system that can be augmented with a Knowledge Model to monitor shaping trends in pipeline, revenue or customer service calls; or an Accounting or HR system that can be enhanced to detect policy violations.
  • Adaptation and RecommendationKnowledge Models are actively utilized in profiling and adapting to environments, users and customers’ needs, habits and interests. This allows for higher quality of self-service and effective personalization in variety of applications ranging from targeted advertising and product recommendation to blog and news websites.Good examples of this utilization are companies such as NetFlix and Match.com that at some point decided to emphasize their focus on sophisticated Knowledge Models for recommendation. And, who are ever since improving these Knowledge Models by a dedicated team.
  • Formalization and AutomationMany businesses, operational and system processes are fully or partially automated using some kind of software. In this category, Knowledge Models dictate and coordinate execution of a series of human and system activities as a controlled sequence within a methodical, organized framework.As example, think of dealing with a fraud alert, that results in a sequence of regulatory required actions such as: SEC reporting, account suspension, client notification, investigation, and so on.
  • Decision SupportIn this category, Knowledge Models empower applications to provide decision-making support to their users. This could be as simple as context sensitive help or as complex as credit risk prediction in financial applications or automatic contouring in volumetric medical imaging.This category is by far the largest and includes areas such as Predictive analytics, guided Self-service and Diagnostic systems. 


Many existing applications can be modernized using Knowledge Model extensions to elevate their value-proposition. In an ongoing basis, those extensions can be incrementally improved and augmented with other model types.


Defining Knowledge Modeling


Lets start this blog by defining what KCM is and what it is not!


Knowledge Capture and Modeling, or in short KCM is a prescriptive approach (and not a technology or standard) to construct and codify knowledge to be reused by human, intelligent agents or applications. 

It encourages to proactively construct, synthesis, reuse and exchange knowledge models and provides a methodology for doing so.