K  n  o  w  L  a  n  g
Framework for Knowledge Representation and Reasoning for Self-Adaptive Systems

U s e r    G u i d e

Running KnowLang
Knowledge Model
Self-Adaptive Behavior
Contact Info
Multi-tier Knowledge Specification Model

KnowLang imposes a multi-tier knowledge specification model. By applying this model, we build a Knowledge Base (KB) structured in three main tiers:

  • Knowledge Corpuses - used to specify KR structures.
  • KB Operators - provide access to Knowledge Corpuses via special classes of ASK and TELL Operators where ASK Operators are dedicated to knowledge querying and retrieval and TELL Operators allow for knowledge update.
  • Inference Primitives - algorithms for reasoning and knowledge inference needed by the KnowLang Reasoner. The first version of KnowLang does not support the Inference Primitives.

KnowLang Multi-tier Knowledge Specification Model
Specifying Knowledge

When we specify knowledge with KnowLang, we build a KB with a variety of knowledge structures such as ontologies, facts, rules and constraints where we need to specify the ontologies first in order to provide the vocabulary" for the other knowledge structures.

A KnowLang ontology is specified over concept trees, object trees, relations and predicates. Each concept is specified with special properties and functionality and is hierarchically linked to other concepts through PARENTS and CHILDREN relationships. For reasoning purposes every concept specified with KnowLang has an intrinsic STATE attribute that may be associated with a set of possible state values the concept instances may be in.

The concept instances are considered as objects and are structured in object trees - a conceptualization of how objects existing in the world of interest are related to each other. The relationships in an object tree are based on the principle that objects have properties, where the value of a property is another object, which in turn also has properties. Moreover, concepts and objects might be connected via relations. Relations are binary and may have probability distribution attribute (e.g., over time, over situations, over concepts' properties, etc.). Probability distribution is provided to support probabilistic reasoning and by specifying relations with probability distributions we actually specify Bayesian networks connecting the concepts and objects of an ontology.

KnowLang Specification Sample

Specifying (modeling) knowledge with KnowLang requires a few phases:

  • Initial knowledge gathering - involves domain experts to determine the basic notions, relations and functions (operations) of the domain of interest.
  • Behavior definition - identifies situations and behavior policies as "control data" helping to identify important self-adaptive scenarios.
  • Knowledge structuring - encapsulates domain entities, situations and behavior into KnowLang structures like concepts, objects, relations, facts, and rules.

User Guide Curator - Emil Vassev
Last modified on January 28, 2014