backend.conformance_checking.declarative_constraints

Contains functionality for declarative conformance checking.

This module defines the DeclerativeConstraints class which uses PM4Py to discover declarative profiles from event logs and checks conformance based on the discovered declarative profiles.

Attributes

Classes

DeclarativeConstraints

Represents the declarative constraints of an event log.

Module Contents

type backend.conformance_checking.declarative_constraints.DeclareModelType = Dict[str, Dict[Any, Dict[str, int]]]
type backend.conformance_checking.declarative_constraints.TableType = Dict[str, List[str] | List[List[str]]]
type backend.conformance_checking.declarative_constraints.GraphType = Dict[str, List[Dict[str, str]]]
type backend.conformance_checking.declarative_constraints.ReturnGraphType = Dict[str, List[TableType] | List[GraphType]]
class backend.conformance_checking.declarative_constraints.DeclarativeConstraints(log: pandas.DataFrame, min_support_ratio: float | None = 0.3, min_confidence_ratio: float | None = 0.75, fitness_score: float | None = 1.0, case_id_col: str | None = None, activity_col: str | None = None, timestamp_col: str | None = None)

Represents the declarative constraints of an event log.

Attributes :

log: The main event log. min_support_ratio: The minimum support ratio for discovering rules. min_confidence_ratio: The minimum confidence ratio for discovering rules.

log
min_support_ratio = 0.3
min_confidence_ratio = 0.75
fitness_score = 1.0
declare_model: DeclareModelType | None = None
case_id_col: str | None = None
activity_col: str | None = None
timestamp_col: str | None = None
valid_rules = ['existance', 'absence', 'exactly_one', 'init', 'responded_existence', 'coexistence',...
conf_results_memory: Dict[str, None]
run_model(log: pandas.DataFrame | None = None, min_support_ratio: float | None = None, min_confidence_ratio: float | None = None, fitness_score: float | None = None) None

Runs the declarative model on the event log.

It stores the result in memory.

Parameters:
  • log – The event log to use.

  • min_support_ratio – The minimum support ratio for discovering rules.

  • min_confidence_ratio – The minimum confidence ratio for discovering rules.

  • fitness_score – The fitness score threshold for conformance checking.

rule_specific_violation_summary(declare_model: DeclareModelType | None = None, log: pandas.DataFrame | None = None, rule_name: str | None = None, fitness_score: float | None = None, verbose: bool = False) ReturnGraphType

Summarizes number of violations for a declarative rule.

This function does not access memory variable, so it runs the rule from scratch even if results are pre-computed and stored.

Parameters:
  • declare_model – The Declare model. If None, uses the default model.

  • log – The event log. If None, uses the default log.

  • rule_name – Name of the rule to check.

  • verbose – Whether to print details for debugging.

  • fitness_score – The fitness score threshold for conformance checking.

Returns:

Summary with graph and table information of rule violations.

Raises:

ValueError – If an unsupported rule name is provided.

get_declarative_conformance_diagnostics(rule_name: str, run_from_scratch: bool | None = False) ReturnGraphType

Gets conformance diagnostics for a specific declarative rule.

Check for results stored in memory and runs conformance checking of any rule only if results previously not stored in memory.

Parameters:
  • rule_name – The name of the declarative rule to analyze.

  • run_from_scratch – If True, re-evaluates the rule even if results stored.

Returns:

Cached or newly generated rule violation summary.

Raises:

ValueError – If the rule name is not supported.

declarative_conformance_for_existence() ReturnGraphType

Gets results for the existence rule.

Returns:

For existance rule.

Return type:

Dict

declarative_conformance_for_absence() ReturnGraphType

Gets results for the absence rule.

Returns:

For absence rule.

Return type:

Dict

declarative_conformance_for_exactly_one() ReturnGraphType

Gets results for the exactly_one rule.

Returns:

For exactly_one rule.

Return type:

Dict

declarative_conformance_for_init() ReturnGraphType

Gets results for the init rule.

Returns:

For init rule.

Return type:

Dict

declarative_conformance_for_responded_existence() ReturnGraphType

Gets results for the responded existence rule.

Returns:

For responded existence rule.

Return type:

Dict

declarative_conformance_for_coexistence() ReturnGraphType

Gets results for the coexistence rule.

Returns:

For coexistence rule.

Return type:

Dict

declarative_conformance_for_response() ReturnGraphType

Gets results for the response rule.

Returns:

For response rule.

Return type:

Dict

declarative_conformance_for_precedence() ReturnGraphType

Gets results for the precedence rule.

Returns:

For precedence rule.

Return type:

Dict

declarative_conformance_for_succession() ReturnGraphType

Gets results for the succession rule.

Returns:

For succession rule.

Return type:

Dict

declarative_conformance_for_altprecedence() ReturnGraphType

Gets results for the altprecedence rule.

Returns:

For altprecedence rule.

Return type:

Dict

declarative_conformance_for_altsuccession() ReturnGraphType

Gets results for the altsuccession rule.

Returns:

For altsuccession rule.

Return type:

Dict

declarative_conformance_for_chainresponse() ReturnGraphType

Gets results for the chainresponse rule.

Returns:

For chainresponse rule.

Return type:

Dict

declarative_conformance_for_chainprecedence() ReturnGraphType

Gets results for the chainprecedence rule.

Returns:

For chainprecedence rule.

Return type:

Dict

declarative_conformance_for_chainsuccession() ReturnGraphType

Gets results for the chainsuccession rule.

Returns:

For chainsuccession rule.

Return type:

Dict

declarative_conformance_for_noncoexistence() ReturnGraphType

Gets results for the noncoexistence rule.

Returns:

For noncoexistence rule.

Return type:

Dict

declarative_conformance_for_nonsuccession() ReturnGraphType

Gets results for the nonsuccession rule.

Returns:

For nonsuccession rule.

Return type:

Dict

declarative_conformance_for_nonchainsuccession() ReturnGraphType

Gets results for the nonchainsuccession rule.

Returns:

For nonchainsuccession rule.

Return type:

Dict

run_all_rules(list_of_rules: List[str] | None = None, run_from_scratch: bool | None = False) Any

Runs conformance checking for all rules.

It stores results in memory. Useful for poling when all rules need to be pre-computed in the background.

Parameters:
  • list_of_rules – List of rule names to check. If None, runs for all valid rules.

  • run_from_scratch – If True, re-evaluates all rules even if results stored.

Returns:

Dictionary of all violations.

update_model_and_run_all_rules(log: pandas.DataFrame | None = None, min_support_ratio: float | None = None, min_confidence_ratio: float | None = None, fitness_score: float | None = 1.0, list_of_rules: List[str] | None = None, run_from_scratch: bool | None = False) Any

Updates the model and runs all rules.

Parameters:
  • log – The event log to use.

  • min_support_ratio – The minimum support ratio for discovering rules.

  • min_confidence_ratio – The minimum confidence ratio for discovering rules.

  • list_of_rules – List of rule names to check. If None, runs for all valid rules.

  • run_from_scratch – If True, re-evaluates all rules even if results stored.

  • fitness_score – The fitness score threshold for conformance checking.

Returns:

Dictionary of all violations.