This is an old revision of the document!


The ARD+ Knowledge Representation

Author: Grzegorz J. Nalepa and Igor Wojnicki

Version: Draft 2008Q3

ARD+ stands for Attribute Relationship Diagrams. It is aimed to be as the final ARD version for the official HeKatE project (grant).

FIXME

Introduction

The basic goal of rule design is to build a rule-based knowledge base from system specification. This process is a case of knowledge engineering (KE). In general, the KE process is different in many aspects to the classic software engineering (SE) process. The most important difference between SE and KE is that the former tries to model how the system works, while the latter tries to capture and represent what is known about the system. The KE approach assumes that information about how the system works can be inferred automatically from what is known about the system.

In real life the design process support (as a process of building the design) is much more important than just providing means to visualize and construct the design (which is a kind of knowledge snapshot about the system). Another observation can be also made: designing is in fact a knowledge-based process, where the design is often considered a structure with procedures needed to build it (it is at least often the case in the SE).

In case of rules, the design stage usually consists in writing actual rules, based on knowledge provided by an expert. The rules can be expressed in a natural language, this is often the case with informal approaches such as business rules. However, it is worth pointing out that using some kind of formalization as early as possible in the design process improves design quality significantly.

The next stage is the rule implementation. It is usually targeted at specific rule engine. Some examples of such engines are: CLIPS, Jess, and JBoss Rules (formerly Drools). The rule engine enforces a strict syntax on the rule language.

Another aspect of the design - in a very broad sense - is a rule encoding, in a machine readable format. In most cases it uses an XML-based representation. There are some well-established standards for rule markup languages:, e.g. RuleML and notably RIF (see http://www.w3.org/2005/rules).

The original ARD method was first proposed by A. Ligęza in (ali-book) and later on developed and described by G. J. Nalepa and A. Ligęza in (gjn2005:kkio), (ali-book-springer). It was a supportive, and potentially optional, design method for XTT (gjn2005:syssci:xtt). It provided simple means of attribute identification for the XTT method.

The first version of ARD was applied to simple cases only, and had no practical prototype implementation. The evolution of XTT, as well as larger complexity of systems designed with it, gave motivation for the major rework, and reformulation of ARD, which resulted in the version called ARD+. ARD+ was defined by G. J. Nalepa and I. Wojnicki in (gjn2008flairs-ardformal) and (gjn2008aaia).

Motivation

The primary motivation for this research is an apparent lack of standard prototyping method for rules, that would support the hierarchical and gradual design aspect covering the entire process. Such a method should be formalized with use of some logic-based calculus in order to allow a formal analysis. The research presented in this paper is a part of the HeKatE project, that aims at providing an integrated and hierarchical rule design and implementation method for rule-based systems. The actual rule design is carried out with a flexible rule design method called XTT (eXtended Tabular Trees) (gjn2005sysscixtt). The method introduces a structured rulebase. So one of the main requirements for the new prototyping method should be the support for XTT.

ARD+ Method

Preliminary Concepts

The ARD+ method aims at supporting the rule designer at a very general design level, where the conceptualization of the design takes place (gjn2008flairs-ardformal), (gjn2008aaia). It is a knowledge-based approach, based on some classic AI methods (norvig). ARD+ covers requirements specification stage. Its input is a general systems description in the natural language. Its output is a model capturing knowledge about relationships among attributes describing system properties. The model is subsequently used in the next design stage, where the actual logical design with rules is carried out.

The main concepts behind ARD+ are:

  • attributive logic based on the use of attributes for denoting certain properties in a system (ali-book-springer),ali2007flairs-granular).
  • functional dependency is a general relation between two or more attributes (or attribute sets), called “dependent” and “independent”; the relation is such as in order to determine the values of the dependent attributes, the values of the independent ones are needed.
  • graph notation provides simple, standard, yet expressive means for knowledge specification, and transformation.
  • visualization is the key concept in the practical design support, provided by this method.
  • gradual refinement is the main design approach, where the design is being specified in number of steps, each step being more detailed than the previous one.
  • structural transformations are formalized, with well defined syntax and semantics.
  • hierarchical model captures all of the subsequent design steps, with no semantic gaps; it holds knowledge about the system on the different abstraction levels (gjn2007iwk).
  • knowledge-based approach provides means of the declarative model specification.

Based on these concepts, a formalization of the method is put forward in the following section.

Syntax

The ARD+ method aims at capturing relations between attributes in terms of Attributive Logic (AL)~\cite{ali-book-springer,ali2007flairs-granular,gjn2008ruleapps}. It is based on the use of attributes for expressing knowledge about facts regarding world under consideration. A typical atomic formula (fact) takes the form A(o) = d, where A is an attribute, o is an object and d is the current value of A for o. More complex descriptions take usually the form of conjunctions of such atoms and are omnipresent in the AI literature.

Transformations

Refactoring

Semantics

Hierarchical Model

Rule Prototyping Algorithm

Design Tool Prototype

SPOOL

hekate/ardplus.1237457836.txt.gz · Last modified: 2019/06/27 16:00 (external edit)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0