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



Язык визуального моделирования правил
Rule Visual Modeling Language

Personal Knowledge Base Designer

Спецификация 2.2015

Rule Visual Modeling Language (RVML) - Язык визуального моделирования правил предназначен для моделирования и описания логических правил, обладает большей выразительностью при описании причинно-следственных зависимостей по сравнению с UML, в частности RVML позволяет:

  • использовать отдельные графические примитивы для отображения всех элементов продукций (а не стереотипы или типизированные классы как в UML);
  • присваивать отдельным фактам субъективные вероятности в виде коэффициентов уверенности;
  • более наглядно отображать тип выполняемых действий (добавление, удаление, остановка);
  • отображать логические операторы в условиях правил («или» и «не»).

Описание элементов RVML в нотации Бэкуса-Науэра:

<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

Элемент Изображение элемента Пример применения
Шаблон Шаблон на RVML Шаблон на RVML - пример применения
Факт Факт на RVML Факт на RVML - пример применения
Условие Условие на RVML Условие на RVML - пример применения
Узловой элемент правила («Ядро») Узловой элемент правила («Ядро») на RVML Узловой элемент правила («Ядро») на RVML - пример применения
Связь между элементами (модификация факта) Связь между элементами на RVML
Добавление факта Добавление факта на RVML
Удаление факта Удаление факта на RVML

Примеры применения

Рассмотрим пример применения нотации RVML на примере описания простейших правил.
Пример 1: Правило для определения пожароопасной погоды. Известно, что при высокой температуре, ветре и отсутствии осадков высокий риск пожаров. В результате концептуализации выделяются следующие основные понятия: температура, осадки, ветер и погодные условия. Зависимость между понятиями может быть представлена в виде обобщенного правила или шаблона правил:

Пример обобщенного правила

В свою очередь, на основе данного шаблона могут быть построены конкретные правила, например:

ЕСЛИ «температура +35» (с уверенностью 1) и «осадков нет» (с уверенностью 1) и «ветер южный» (с уверенностью 0.9) ТО «погода сухая и пожароопасная» (с уверенностью 0.9).
Данному правилу соответствует следующая RVML модель:


Пример правила

Данной графической модели буде соответствовать следующий код на CLIPS:

;********************* 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 Новости: