Проблема контроля достоверности данных информационных систем на основе бизнес-правил
Достоверность является одним из важнейших свойств данных, обрабатываемых информационными системами (ИС) любого назначения. Достоверность данных обеспечивается за счет контроля соответствия данных семантическим ограничениям, выделенным в предметной области ИС. Такого рода ограничения называются бизнес-правилами (БП) и представляют собой определяющие или ограничивающие утверждения, относящиеся к конкретному аспекту работы ИС и фиксирующие закономерности в данных. Примеры БП: «количество студентов на курсе не может быть больше суммы количества бесплатных и платных мест», «размер выданной заработной платы должен равняться сумме оклада, надбавки за стаж и премии» [3, 6].
Бизнес-правило контроля достоверности данных в общем случае имеет следующий вид:
b = ⟨id, P(x1, …, xn), a⟩,
где b – бизнес-правило; id – идентификатор БП; P – предикат, определяющий, выполняется ли условие БП; x1…xn – данные, используемые бизнес-правилом; a – реакция на нарушение БП.
Подсистема контроля достоверности данных (КДД) должна хранить бизнес-правила и проверять данные на соответствие им. В процессе эксплуатации ИС бизнес-правила могут изменяться и корректироваться. [1] Это может быть связано с изменениями в законодательстве, расширением сферы деятельности организации, изменениями в предметной области, модификацией бизнес-процессов и так далее. Соответственно, подсистема КДД должна позволять добавлять новые БП, изменять и удалять уже существующие БП в процессе функционирования системы, не нарушая её работы. [5]
Множество всех бизнес-правил ИС образует бизнес-логику:
где B – бизнес-логика; bi – i-е бизнес-правило; n – количество бизнес-правил.
Множество бизнес-правил ИС может быть разделено на подмножества-наборы согласно различным принципам:
fl:B → Sl;
где fl – l-я функция, согласно некоторому принципу разбивающая B на наборы; B – бизнес-логика; Sl – множество наборов бизнес-правил, получившихся в результате разбиения B; – j-й набор бизнес-правил; k – количество получившихся наборов БП.
Зачастую бизнес-правила также имеют версии. Версией бизнес-правила является правило, связанное с другим, уже существующим, условием выбора между ними, и определяющее достоверность тех же данных. То есть выбор между тем, какое правило должно использоваться в некоторой ситуации, зависит от некоего условия, например для проверки некоторых данных могут использоваться разные версии правила, в зависимости от текущей даты. Таким образом, ИС имеет дело с версионными наборами БП [4].
Несмотря на значительные успехи в области создания систем, поддерживающих БП, не решена проблема единого представления бизнес-правил для автоматизации разработки программных средств контроля достоверности данных. Необходимо обеспечивать единое непротиворечивое представление версионных наборов БП достоверности данных, а также обеспечивать ведение и анализ БП в процессе функционирования информационной системы безотносительно архитектуры ИС.
Для представления бизнес-правил в качестве базовой предложена онтологическая модель, позволяющая описывать произвольные БП различных предметных областей и проводить анализ правил. Из семейства дескрипционных логик (ДЛ) – базового математического формализма онтологической модели – для решения поставленной задачи выбрана дескрипционная логика SROIQ(D) [7, 8].
Онтологическое модельное представление набора бизнес-правил контроля достоверности данных
Бизнес-правило контроля достоверности данных в сокращённой форме может состоять из идентификатора и условий достоверности. Таким образом, набор бизнес-правил контроля достоверности данных представляет собой набор помеченных идентификаторами условий корректности некоторых данных.
Онтология O – это
O = {NC, NR, NI, TBox, RBox, ABox},
где NC – множество концептов онтологии; NR – множество ролей онтологии; N – множество индивидов онтологии; TBox – набор утверждений о концептах онтологии; RBox – набор утверждений о ролях онтологии; ABox – набор утверждений об индивидах онтологии [8, 9].
Для онтологии представления версионного набора бизнес-правил контроля достоверности данных эти компоненты имеют следующий вид:
NC = {{NC,domain}, {NC,br}, {NC,nom}, {NC,reaction}};
NR = {{NR,domain}, {NR,prop}, {NR,reaction}};
NI = { };
TBox = {{AXC,domain,inclusion}, {AXC,domain,eq}, {AXC,br,eq}, {AXC,reaction,inclusion}, {AXC,br,reaction,inclusion}, {AXC,ver,link,eq}};
RBox = {{AXR,inclusion}, {AXR,eq}, {CHR,ref}, {CHR,asy}, {CHR,dis}, {CHR,trans}};
ABox = { },
где NC,domain – понятия предметной области, задействованные в правилах; NC,br – бизнес-правила в виде правильных вариантов концепта, к которому относится правило; NC,nom – концепты-номиналы; NC,reaction – концепты, относящиеся к возможной реакции на нарушение БП; NR,domain – отношения между понятиями предметной области, задействованными в правилах; NR,prop – свойства концептов; NR,reaction – роли, относящиеся к возможной реакции на нарушение БП; AXC,domain,inclusion – аксиомы включения концептов-понятий предметной области; AXC,domain,eq – аксиомы эквивалентности концептов-понятий предметной области; AXC,br,eq – аксиомы эквивалентности концептов-БП; AXC,reaction,inclusion – аксиомы включения концептов, относящихся к возможной реакции на нарушение БП; AXC,br,reaction,inclusion – аксиомы включения концептов, определяющие реакцию на нарушение конкретного БП; AXC,ver,link,eq – аксиомы эквивалентности концептов, определяющие связи между версиями БП и условия выбора между ними; AXR,inclusion – аксиомы включения ролей; AXR,eq – аксиомы эквивалентности ролей; CHR,ref – характеристики рефлексивности ролей; CHR,asy – характеристики асимметричности ролей; CHR,dis – характеристики дизъюнктности ролей; CHR,trans – характеристики транзитивности ролей.
Пример 1. Набор бизнес-правил, определяющих достоверность данных отчёта, представляющего собой таблицу.
1. В ячейке (5; 6) должно быть значение 7.
2. Значение в ячейке (1; 2) должно быть меньше, чем в ячейке (2; 2).
3. Значение в ячейке (1; 2) должно быть меньше или равно, чем значение в ячейке (2; 2), и больше, чем значение в ячейке (3; 2). Это версия правила 2, и она должна использоваться, если отчёт, которому принадлежат ячейки, относится ко второму полугодию, в противном случае должно использоваться основное правило.
В случае нарушения первого правила должна быть произведена запись в лог-файл, для остальных БП – реакция по умолчанию.
Пример 2. Сигнатура онтологии набора бизнес-правил из примера 1.
NR = {номер_строки, номер_столбца, содержит_значение, меньше_чем, меньше_чем_или_равно, больше_чем, номер_полугодия, выполняет_действие)};
NI = { };
ABox пуст;
RBox пуст;
TBox содержит следующие аксиомы:
Ячейка5,6 ≡ Ячейка ∩ $номер_строки.{5} ∩ $номер_столбца.{6}
(БП1)
Ячейка1,2 ≡ Ячейка ∩ $номер_строки.{1} ∩ $номер_столбца.{2}
Ячейка2,2 ≡ Ячейка ∩ $номер_строки.{2} ∩ $номер_столбца.{2}
(БП2)
Ячейка3,2 ≡ Ячейка ∩ $номер_строки.{3} ∩ $номер_столбца.{2}
(БП3)
Выдача_сообщения ⊆ Реакция_на_ошибку
Запись_в_лог ⊆ Реакция_на_ошибку
Выполнение_скрипта ⊆ Реакция_на_ошибку
Помеченные БП1, БП2 и БП3 аксиомы, собственно, и являются бизнес-правилами КДД – они описывают условия, при соблюдении которых соответствующие данные считаются корректными. Фактически эти аксиомы являются определениями семантически правильных классов. [2] Индекс r используется, чтобы отметить такие правильные классы (концепты). Например, концепт – ячейка, имеющая индексы (1; 2) в таблице, для которой вдобавок выполняется соответствующее БП достоверности данных.
Методика построения онтологии набора бизнес-правил
Наиболее развёрнуто бизнес-правило КДД можно представить как контекстно-свободную формальную грамматику, с помощью формы Бэкуса – Наура.
БП ::= Условие_достоверности(Логическая_операция Условие_достоверности)*
Условие_достоверности ::= Логическое_выражение | Пусто
Логическое_выражение ::= Выражение (Логическая_операция | Операция_отношения) Выражение
Выражение ::= Константа | Переменная_концепт | Выражение Операция Выражение
Пусто ::=
Логическая_операция ::= AND|OR|NOT|XOR
Операция_отношения ::= >|<|>=|<=|==|!=
Арифметическая_операция ::= + | – | * | /
Объектная_операция ::= иметь_значение | быть_частью | иметь_частью
Операция ::= Логическая_операция | Операция_отношения | Арифметическая_операция | Объектная_операция
Проводя соответствие с представлением наборов БП в виде онтологии, получаем следующий результат. Множество {NC,nom} содержит константы из выражений в бизнес-правилах. Множество {NC,domain} содержит переменные-концепты – задействованные в БП понятия предметной области. Множество {NC,br} содержит концепты-БП. Множество {NR,domain} содержит операции отношения, арифметические и объектные операции, представленные с помощью ролей.
Множество {NC,reaction} содержит концепты, относящиеся к возможной реакции на нарушение БП. В данной работе предлагается, что реакция на нарушение БП не произвольно описывается разработчиком правил, а выбирается из конечного числа доступных вариантов. Состав {NC,reaction} будет оставаться постоянным, поскольку зависит не столько от набора БП, сколько от возможностей ПС. Аналогично множество {NR,reaction} содержит роли, относящиеся к возможной реакции на нарушение БП. Для этого достаточно одной роли выполняет_действие.
Несмотря на то, что процесс создания каждой онтологии индивидуален и зависит от предметной области и назначения онтологии, предлагается следующая методика построения онтологии набора БП, представленная на рисунке.
Согласно предлагаемой методике, сначала происходит заполнение множеств концептов и ролей на основе описания бизнес-правил. Затем с использованием выделенных концептов и ролей создаётся описание составных концептов, иерархия концептов и ролей, добавляются, при необходимости, характеристики ролей, создаются описания концептов-БП, определяются связи между версиями бизнес-правил.
Основные принципы создания аксиом определения концептов
Основные способы определения составного концепта – с помощью конъюнкции уже имеющихся в онтологии концептов, а также с помощью ограничения значения свойства (роли). Таким образом, предлагаются следующие варианты определения составных концептов:
1) новый концепт определяется как конъюнкция существующих концептов,
Cnew ≡ C1 ∩…∩ Cn,
где Cnew – новый концепт; C1...Cn – уже существующие концепты, n ≥ 2. Этот вариант наиболее подходит для отображения в онтологию структуры ООП-классов, то есть, для отображения наследования классов;
Методика построения онтологии набора бизнес-правил
2) новый концепт определяется как конъюнкция существующих концептов и ограничений значения свойства (роли),
Cnew ≡ C1 ∩…∩ Cn ∩ ∃r1.filler1 ∩…∩ ∃rm.fillerm,
где Cnew – новый концепт; C1...Cn – уже существующие концепты; r1…rm – существующие роли; filler1…fillerm – заполнители ролей из объединения NC и NI, n ≥ 1, m ≥ 1. Это наиболее универсальный способ определения составного концепта;
3) новый концепт определяется как конъюнкция ограничений,
Cnew ≡ ∃r1.filler1 ∩…∩ ∃rm.fillerm,
где Cnew – новый концепт; r1…rm – существующие роли; filler1…fillerm – заполнители ролей из объединения NC и NI, m ≥ 2. Этот способ в самостоятельном виде подходит для исключительных случаев, когда важно наличие и значение свойства, а не класс объекта.
Уже имеющийся в онтологии атомарный либо составной концепт должен выбираться разработчиком таким образом, чтобы отражать сущность предмета описания. Если выбирается более одного концепта, то они должны быть совместимы, то есть их конъюнкция не должна заведомо давать пустое множество.
Для ограничения значения свойства (роли) необходимо выбрать роль и заполнитель роли. Этот выбор должен совершаться согласно следующим правилам.
1. Выбор роли ограничивается предыдущим выбором концепта (концептов). Выбрать можно только роль, имеющую доменом выбранный концепт (или хотя бы один из выбранных концептов). Соответственно, если концепт не выбирался, то есть новый концепт описывается только с помощью ограничений, то данное условие снимается. То есть если выбраны концепты C1...Cn, то
Mrole = {ri ∈ NR | ri(C1, D) ∨ ri(C2, D) ∨ … ∨ ∨ ri(Cn, D)},
где Mrole – множество доступных для выбора ролей; ri – i-я роль из NR; NR – множество ролей онтологии; D – заполнитель роли.
2. Выбор заполнителя роли ограничивается предыдущим выбором роли. Выбрать можно только заполнитель (концепт или экземпляр) из диапазона значений роли. То есть если выбрана роль r, то
Mfiller = {filleri ∈ NC ∪ NI | r(C, filleri)},
где Mfiller – множество доступных для выбора заполнителей роли; filleri – i-й заполнитель роли из объединения NC и NI; NC – множество концептов онтологии; NI – множество индивидов онтологии; C – концепт из домена роли.
Пример процесса построения сигнатуры онтологии на основе БП согласно обозначенным принципам
Набор БП содержит единственное правило «Значение ячейки строки 25 столбца 1 больше значения ячейки строки 26 столбца 1 либо равно ему». В случае нарушения этого правила должна быть произведена запись в лог-файл. Это БП может быть представлено в следующем виде:
БП ::= (((Ячейка номер_строки 25) номер_столбца 1) содержит_значение Значение1) >= (((Ячейка номер_строки 26) номер_столбца 1) содержит_значение Значение2)
Согласно описанным ранее соответствиям:
NC,nom = {{1}, {25}, {26}};
NC,domain = {Ячейка, T};
NC,reaction = {Реакция_на_ошибку, Выдача_сообщения, Запись_в_лог, Выполнение_скрипта};
NR,domain = {номер_строки, номер_столбца, содержит_значение, больше_чем_или_равно};
NR,reaction = {выполняет_действие}.
Добавляя в NC составные концепты, получаем следующую сигнатуру:
NR = {номер_строки,номер_столбца, содержит_значение, больше_чем_или_равно, выполняет_действие};
NI = { };
ABox пуст;
RBox пуст;
TBox содержит следующие аксиомы:
Ячейка25,1 ≡ Ячейка ∩ $номер_строки.{25} ∩ $номер_столбца.{1}
Ячейка26,1 ≡ Ячейка ∩ $номер_строки.{26} ∩$номер_столбца.{1}
Выдача_сообщения ⊆ Реакция_на_ошибку
Запись_в_лог ⊆ Реакция_на_ошибку
Выполнение_скрипта ⊆ Реакция_на_ошибку
Заключение
Как видно из представленной информации, наборы бизнес-правил контроля достоверности данных могут быть представлены в виде онтологии на основе дескрипционной логики. Такое представление позволяет обеспечивать единое непротиворечивое представление версионных наборов БП достоверности данных, а также обеспечивать ведение и анализ БП в процессе функционирования информационной системы. Предлагаемая методика построения онтологии набора бизнес-правил позволяет создавать онтологическое представление БП контроля достоверности данных для широкого класса предметных областей.
Рецензенты:
Макарычев П.П., д.т.н., профессор, зав. кафедрой «Математическое обеспечение и применение ЭВМ», Пензенский государственный университет, г. Пенза;
Андреев В.Г., д.т.н., профессор, зав. кафедрой ЕНТД, Кузнецкий институт информационных и управленческих технологий, г. Кузнецк.
Библиографическая ссылка
Шибанов С.В., Фишбейн А.И. МЕТОДИКА ПОСТРОЕНИЯ ОНТОЛОГИИ НАБОРА БИЗНЕС-ПРАВИЛ КОНТРОЛЯ ДОСТОВЕРНОСТИ ДАННЫХ // Фундаментальные исследования. – 2015. – № 5-3. – С. 564-570;URL: https://fundamental-research.ru/ru/article/view?id=38301 (дата обращения: 17.08.2024).