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¶
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.