About | Services | Publications | Contacts
Русский | English

Rule Visual Modeling Language


Specification 2.2015

Rule Visual Modeling Language (RVML) is a language for visual modeling of logical rules; it is more expressive in describing the causal dependencies and can be considered as an UML profile, in particular RVML provides:

  • to use separate graphical primitives displaying all elements of rules, these elements based on "Class" element of UML;
  • to assign subjective probabilities for facts and rules;
  • to indicate more clearly the type of actions performed (add, delete, stop);
  • to display logical operators under rule conditions ("or" and "not").

Description of RVML elements in Backus-Nauer notation:

<RVML> = {<Fact>}, {<Template>}, {<Rule>}, {<Relationship>} <Rule> = (<Condition>{<Condition>}), <Core>, (<Action>{<Action>}) <Condition> = <C_Element> <Action> = <A_Element> {<A_Element>} <C_Element> = (<C_Operator>, <Fact>{<Fact>}) | (<C_Operator>, <C_Element>) <A_Element> = <A_Operator>, (<Fact>{<Fact>}) <A_Operator> = Add | Delete | Modify | Stop <C_Operator> = AND | OR | NOT <Fact> = <Name>, <CF>, <F_Slot> {<F_Slot>} <F_Slot> = <Name>, <Constraint>, <Value> <Core> = <Name>, <CF>, <P> <Name> = <String> <Value> = <Number> |(<Symbol> {<Symbol>}) | <Set> <Constraint> = > | < | = | >= | <= | <> <CF> = [0,1]. (the certainty factor) <P> = [1,100]. (the priority of the rule) <_Template> = <Name>, <T_Slot> {<T_Slot>} <T_Slot> = <Name>, <DataType>, [<Constraint>, <Default_Value>] <DataType> = String | Symbol | Number <Default_Value> = <Value> <String> = <Symbol>{<Symbol>} <Relationship> = <Element>, <Connection>, <Element> <Connection> = <Kind>, <Name> <Kind> = <Association>|<Realization> <Element> = <Condition> | <Action> | <Template> | <C_Operator>

RVML basic elements

Element Picture Application example
Template RVML Template RVML Template - example
Fact RVML Fact RVML Fact - example
Condition RVML Condition RVML Condition - example
Rule Node («Core») RVML Rule Node RVML Rule Node - example
Relationship between elements (modification of a fact) RVML Relationship
Adding a Fact Adding Fact
Deleting a Fact Deleting Fact


Let's consider an example of the use of RVML.

Example 1: Rule for determining risk of fire. It is known that at high temperature, wind and lack of precipitation, there is a high risk of fires. As a result of conceptualization the following basic concepts are defined: temerature, precipitation, wind and weather conditions. The relationship between concepts can be represented as a generalized rule or rule template:

RVML grule

In turn, specific rules can be built on the basis of this template, for example:

IF «temerature is +35» (with certainty 1) and «lack of precipitation» (with certainty 1) and «south wind» (with certainty 0.9) THEN «weather is dry and fire risky» (with certainty 0.9).
The following RVML model meets this rule:

RVML rule

;********************* Templates ****************************** (deftemplate Temperature ;<Template description> (slot S-Value) (slot F-Value) (slot cf (default "1")) ) (deftemplate Precipitation ;Description for Precipitation (slot Amount (default 0)) (slot Type) (slot cf (default "1")) ) (deftemplate Wind ;Description of the thunderstorm (slot Speed (default 0)) (slot Direction) (slot cf (default "1")) ) (deftemplate Weather-conditions ;Description of the weather conditions (slot Type) (slot Fire-Risk) (slot cf (default "1")) ) ;************************* Rules ****************************** (defrule Rule-1 "Description of the rule: Generalized-rule-G001 1" (Temperature ;Тemperature (S-Value "+35") (cf "1") ) (Precipitation ;Precipitation (Amount 0) (Type "NO") (cf "1") ) (Wind ;Wind (Speed 1) (Direction "SOUTH") (cf "0.9") ) => (assert (Weather-conditions ;Weather conditions (Type "DRY") (Fire-Risk "HIGH") (cf "0.9") )) )

RSS.The Knowledge Core News:

PKBD 4.2018.0201
PKBD 4.2016.1028
PKBD 3.2015.1015