FLOW_ALGEBRA RuleEngineOntology v1.0
TARGET_URL := "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/mathematical-logic-ontologies/knowledge-representation-logic/rule-engine-ontology.html"
LANGUAGE := "en-GB"
DOMAIN := MathematicalOntologies > MathematicalLogicOntologies > KnowledgeRepresentationLogic > RuleEngineOntology
BEGIN_FLOW
ENTITY RuleEngine {
TYPE := AutomatedRuleEvaluationSystem
DEFINITION := "A computational reasoning system that evaluates explicit rules against facts, events or working memory to derive conclusions, trigger actions, satisfy goals and maintain rule-governed knowledge."
}
ENTITY Rule { FORM := IF Antecedent THEN Consequent }
ENTITY Fact { TYPE := AssertedOrDerivedKnowledgeItem }
ENTITY WorkingMemory { TYPE := CurrentFactAndStateStore }
ENTITY RuleBase { TYPE := CollectionOfRules }
ENTITY InferenceEngine { TYPE := RuleMatchingSelectionExecutionMechanism }
RELATIONSHIP RuleEngine --contains--> RuleBase
RELATIONSHIP RuleEngine --uses--> WorkingMemory
RELATIONSHIP RuleEngine --uses--> InferenceEngine
RELATIONSHIP RuleEngine --evaluates--> Rule
RELATIONSHIP RuleEngine --operates_on--> Fact
RELATIONSHIP RuleEngine --supports--> AutomatedReasoning
RULE {
IDENTIFIER := RuleID
ANTECEDENT := ConditionSet
CONSEQUENT := ConclusionOrAction
}
RULE_ANTECEDENT {
MAY_INCLUDE := {FactPatterns,Comparisons,LogicalConditions,TemporalConditions,ContextConditions}
}
RULE_CONSEQUENT {
MAY_INCLUDE := {AssertFact,RetractFact,ModifyFact,DeriveConclusion,TriggerAction,RaiseEvent}
}
FACT {
MAY_BE := {AssertedFact,DerivedFact,EventFact,TemporaryFact}
}
ASSERTED_FACT { ORIGIN := ExternalInputOrKnowledgeBase }
DERIVED_FACT { ORIGIN := RuleApplication }
WORKING_MEMORY { CONTAINS := CurrentFacts }
RULE_BASE { CONTAINS := Rules }
MATCH_SELECT_ACT {
MATCH := determine_applicable_rule_instances
SELECT := choose_activations_using_conflict_resolution
ACT := execute_selected_consequences
}
RULE_MATCHING {
RuleAntecedent + WorkingMemory -> VariableBindings -> Activation
}
ACTIVATION {
COMPONENTS := {Rule,Bindings,SupportingFacts,PriorityMetadata}
}
CONFLICT_SET {
TYPE := SetOfCurrentActivations
}
AGENDA {
TYPE := OrderedOrManagedActivationSet
}
CONFLICT_RESOLUTION {
STRATEGIES := {Salience,Priority,Specificity,Recency,RuleOrder,AgendaGroup}
REQUIRE declared_execution_semantics
}
RULE_ORDER_WARNING {
source_order MUST_NOT imply logical_priority unless declared
}
FORWARD_CHAINING {
TYPE := DataDrivenInference
LOOP {
MATCH rules
BUILD conflict_set
SELECT activation
FIRE rule
UPDATE working_memory
}
STOP_WHEN := {NoActivations,GoalReached,HaltAction,ResourceLimit}
}
BACKWARD_CHAINING {
TYPE := GoalDrivenInference
START := Goal
FIND rules whose consequents satisfy Goal
GENERATE antecedent_subgoals
RECURSE until facts_establish_subgoals_or_failure
}
HYBRID_REASONING {
ForwardChaining + BackwardChaining
}
RULE_FIRING {
VERIFY supporting_facts_still_valid
EXECUTE consequent
RECORD trace
}
QUIESCENCE {
conflict_set_empty OR no_eligible_activations
}
LOOP_DETECTION {
track fired_activations_state_hashes_dependency_cycles
}
TERMINATION {
REQUIRE no_infinite_firing_sequence_under_strategy
}
VARIABLE {
symbolic_placeholder bound_during_matching
}
BINDING {
Variable -> FactValueOrEntity
}
UNIFICATION {
symbolic_expressions -> substitution -> rule_instance
}
PATTERN_MATCHING {
FactPattern -> MatchingFacts -> Bindings
}
ALPHA_TEST {
single_fact_condition
}
BETA_TEST {
join_condition_across_multiple_facts
}
RETE_ALGORITHM {
TYPE := IncrementalPatternMatchingAlgorithm
COMPONENTS := {AlphaNetwork,BetaNetwork,Memories,JoinNodes,TerminalNodes}
PURPOSE := reuse_partial_matches_across_updates
}
INCREMENTAL_MATCHING {
changed_fact -> update_only_affected_matches
}
FACT_INSERT {
add_fact -> update_indexes_matches_activations
}
FACT_UPDATE {
modify_fact -> invalidate_old_matches -> create_new_matches
}
FACT_RETRACT {
remove_fact -> invalidate_dependent_activations
}
LOGICAL_INSERT {
derived_fact associated_with supporting_activation
}
TRUTH_MAINTENANCE {
support_removed -> retract_dependent_facts
}
JUSTIFICATION {
DerivedFact -> RuleActivation -> SupportingFacts
}
DEPENDENCY_GRAPH {
DerivedFact -> SupportingFactsAndRules
}
PROVENANCE {
Conclusion -> Rule -> Bindings -> SupportingFacts -> SourceFacts
}
RULE_TRACE {
RECORD := {Step,RuleID,Bindings,SupportingFacts,AgendaState,Consequent,WorkingMemoryChanges}
}
EXPLANATION_FACILITY {
WHY := supporting_rule_chain
HOW := ordered_firing_trace
}
MONOTONIC_RULE_ENGINE {
new_facts do_not_retract_previous_conclusions
}
NONMONOTONIC_RULE_ENGINE {
new_information MAY retract_or_defeat_conclusions
}
DEFAULT_RULE {
IF P AND no_exception THEN normally Q
REQUIRE nonmonotonic_semantics
}
PRIORITY_OVERRIDE {
higher_priority_rule defeats lower_priority_conflict
under declared_semantics
}
NEGATION_AS_FAILURE {
not P := failure_to_match_or_prove_P
REQUIRE explicit_closed_world_semantics
}
CLASSICAL_NEGATION {
explicit NOT(P)
}
NEGATION_DISTINCTION {
NegationAsFailure MUST_NOT be conflated_with ClassicalNegation
}
OPEN_WORLD_RULE_ENGINE {
missing_fact does_not_imply_false
}
CLOSED_WORLD_RULE_ENGINE {
missing_or_unprovable_fact MAY be_false
REQUIRE explicit_semantics
}
RULE_CONFLICT {
activations derive incompatible_conclusions_or_actions
}
CONFLICT_POLICY {
MAY_INCLUDE := {PriorityWins,SpecificityWins,DenyOverrides,PermitOverrides,ManualResolution,ParaconsistentHandling}
}
EVENT_DRIVEN_RULE_ENGINE {
Event -> RuleEvaluation -> ActionOrDerivedEvent
}
EVENT_PATTERN {
one_or_more_events satisfying temporal_or_structural_condition
}
COMPLEX_EVENT_PROCESSING_RELATIONSHIP {
event_stream + temporal_patterns -> complex_events
}
TEMPORAL_RULE {
conditions MAY reference {Before,After,During,Within,Duration,Window}
}
STREAM_REASONING {
continuous_facts_events -> incremental_rule_evaluation
}
DECISION_RULE {
Conditions -> Decision
}
DECISION_TABLE {
condition_combinations -> outcomes
}
BUSINESS_RULE {
formalises organisational_policy_or_constraint
}
POLICY_RULE {
Subject + Resource + Action + Context -> PermitOrDenyOrObligation
}
VALIDATION_RULE {
IF invalid_condition THEN emit_violation
}
CONSTRAINT_RULE {
restrict admissible_state
}
RULE_ENGINE_VS_CONSTRAINT_SOLVER {
RuleEngine := condition_action_or_inference_execution
ConstraintSolver := search_and_propagation_over_variables_domains_constraints
}
RULE_ENGINE_VS_LOGIC_PROGRAMMING {
RuleEngine := often_production_system_operational_semantics
LogicProgramming := declarative_clauses_and_goal_resolution
OVERLAP := TRUE
}
RULE_ENGINE_VS_WORKFLOW {
RuleEngine := evaluates_declarative_conditions
Workflow := orchestrates_ordered_process_steps
}
RULE_ENGINE_VS_ONTOLOGY_REASONER {
RuleEngine := explicit_rule_application
OntologyReasoner := model_theoretic_entailment
}
HORN_RULE {
A1 AND ... AND An -> B
}
DATALOG_RELATIONSHIP {
positive_function_free_rules MAY evaluate_to least_fixed_point
}
LEAST_FIXED_POINT {
I0 := base_facts
I(n+1) := I(n) union T_P(I(n))
STOP when stable
}
PRODUCTION_SYSTEM {
COMPONENTS := {ProductionRules,WorkingMemory,MatchSelectActEngine}
}
EXPERT_SYSTEM {
COMPONENTS := {KnowledgeBase,RuleEngine,ExplanationFacility,UserInterface}
}
KNOWLEDGE_GRAPH_RELATIONSHIP {
graph_facts + graph_rules -> derived_graph_statements
}
ONTOLOGY_RELATIONSHIP {
ontology_classes_properties MAY provide vocabulary_and_semantics
}
SEMANTIC_WEB_RULE_RELATIONSHIP {
MAY_INCLUDE := {SWRLStyleRules,RIFStyleRules,DatalogRules}
REQUIRE language_specific_semantics
}
SWRL_RELATIONSHIP {
OWL_axioms + Horn_like_rules
WARNING := unrestricted_combinations_may_affect_decidability
}
RULE_INTERCHANGE {
SourceRuleLanguage -> IntermediateForm -> TargetRuleLanguage
REQUIRE semantics_preserved_or_loss_documented
}
RULE_NORMALISATION {
complex_rule -> canonical_or_engine_specific_form
}
RULE_COMPILATION {
declarative_rules -> executable_match_network
REQUIRE semantics_preserved
}
RULE_INDEXING {
index_by := {FactType,Predicate,Attribute,Consequent,AgendaGroup}
}
CACHE {
store reusable_match_or_inference_results
}
PARALLEL_RULE_EVALUATION {
independent_matches MAY evaluate_concurrently
REQUIRE declared_conflict_semantics
}
DETERMINISM {
same_inputs_rules_strategy SHOULD yield same_result
if semantics deterministic
}
SIDE_EFFECT {
consequent modifies_external_system
WARNING := repeated_firing_may_not_be_safe
}
TRANSACTION {
group_rule_changes_into_atomic_commit_or_rollback
}
AUDIT_LOG {
persistent_record_of_rule_executions_and_changes
}
RULE_VERSION {
RuleID + Version
}
RULE_LIFECYCLE {
Draft -> Review -> Approved -> Active -> Deprecated -> Retired
}
RULE_GOVERNANCE {
includes := {Ownership,Approval,Versioning,Testing,Audit,Deployment}
}
RULE_TEST {
GIVEN facts
WHEN engine_runs
THEN expected_conclusions_or_actions
}
REGRESSION_TEST {
existing_scenarios SHOULD preserve_expected_results after_changes
}
RULE_STATIC_ANALYSIS {
CHECK {
Syntax,UndefinedFacts,UndefinedVariables,UnreachableRules,
ContradictoryRules,DuplicateRules,Cycles,PriorityConflicts
}
}
DEAD_RULE {
rule_can_never_activate
}
REDUNDANT_RULE {
removal_does_not_change_relevant_outcomes
}
SHADOWED_RULE {
lower_priority_rule never_wins_under_policy
}
RULE_CYCLE {
rules recursively_enable_one_another
}
RULE_BASE_AUDIT {
CHECK {
RuleIdentifiers,Syntax,Bindings,Priorities,Conflicts,Cycles,
Reachability,Redundancy,TerminationRisks,Provenance,TestCoverage
}
}
VERIFY_RULE(R) {
CHECK identifier
CHECK antecedent_syntax
CHECK consequent_syntax
CHECK variable_bindings
CHECK side_conditions
CHECK referenced_fact_types
RETURN valid_or_failure
}
VERIFY_ACTIVATION(A) {
CHECK rule_exists
CHECK supporting_facts_exist
CHECK bindings_match
CHECK context
CHECK priority_metadata
RETURN valid_or_invalid
}
VERIFY_EXECUTION_TRACE(T) {
FOR_EACH firing_step:
VERIFY_ACTIVATION
VERIFY consequent_effect
VERIFY working_memory_transition
RETURN trace_validity
}
RULE_ENGINE_QUERY {
INPUT := Facts + Goal
IF forward_mode:
run_to_goal_or_quiescence
IF backward_mode:
prove_goal_from_rules
OUTPUT := {Proven,NotProven,Contradicted,Unknown,FrameworkSpecificStatus}
}
EXPLANATION_QUERY {
INPUT := Conclusion
RETURN supporting_rule_chain_and_facts
}
WHAT_IF_ANALYSIS {
clone_state
add_or_remove_hypothetical_facts
execute_rules
compare_outcomes
}
CHANGE_IMPACT_ANALYSIS {
RuleChange -> affected_rules -> affected_facts -> affected_decisions -> affected_tests
}
APPLICATION_RELATIONSHIPS {
RuleEngine --supports--> ExpertSystems
RuleEngine --supports--> BusinessRules
RuleEngine --supports--> PolicyReasoning
RuleEngine --supports--> DecisionSupport
RuleEngine --supports--> ArtificialIntelligence
RuleEngine --supports--> KnowledgeRepresentation
RuleEngine --supports--> EventProcessing
RuleEngine --supports--> ComplianceAutomation
RuleEngine --supports--> DiagnosticSystems
RuleEngine --supports--> SemanticReasoning
}
ONTOLOGY_LINKS {
PARENT := KnowledgeRepresentationLogicOntology
RELATED := {
KnowledgeRepresentationOntology,
RuleBasedReasoningOntology,
LogicalInferenceOntology,
KnowledgeGraphLogicOntology,
OntologyLogicOntology,
HornClauseOntology,
LogicProgrammingOntology,
NonMonotonicReasoningOntology,
ExpertSystemOntology,
ConstraintReasoningOntology
}
}
SEMANTIC_EQUIVALENCE {
RuleEngine ≈ RuleInferenceEngine WHEN automated_rule_execution_context
ProductionSystem ≈ MatchSelectActRuleSystem
WorkingMemory ≈ CurrentFactStore WHEN production_system_context
Activation ≈ ApplicableRuleInstance
}
CONSTRAINTS {
C1 := every rule MUST have explicit antecedent and consequent semantics
C2 := activation MUST require valid pattern matches and bindings
C3 := conflict resolution MUST use declared execution semantics
C4 := procedural rule order MUST_NOT imply logical priority unless declared
C5 := asserted and derived facts MUST remain distinguishable where provenance matters
C6 := negation_as_failure MUST_NOT be conflated with classical negation
C7 := closed_world assumptions MUST be explicit
C8 := rule compilation and optimisation MUST preserve semantics
C9 := nonmonotonic conclusions MUST be retractable when defeated
C10 := side-effecting actions MUST account for repeated firing and transaction semantics
C11 := execution traces MUST preserve actual dependencies and state transitions
C12 := termination and determinism claims MUST be scoped to rule language and strategy
}
REASONING_CHAIN Query Q {
IDENTIFY rule_base
IDENTIFY working_memory
IDENTIFY execution_mode
IDENTIFY conflict_strategy
IDENTIFY goal_if_any
IDENTIFY semantics
VALIDATE rules
INDEX facts_and_rules
INITIALISE match_network
IF forward_mode {
LOOP {
MATCH
BUILD agenda
IF agenda_empty: BREAK
SELECT activation
VERIFY activation
FIRE
UPDATE working_memory
UPDATE dependencies
CHECK halt_or_goal
}
}
IF backward_mode {
START from goal
FIND matching_consequents
GENERATE subgoals
RECURSE
DETECT loops
}
IF nonmonotonic {
CHECK defaults_exceptions_priorities
RETRACT defeated_conclusions
}
IF event_driven {
PROCESS event_window
MATCH temporal_patterns
}
BUILD provenance
BUILD rule_trace
VERIFY execution_trace
VALIDATE constraints
RETURN rule_engine_result WITH derivation
}
CONFIDENCE {
CORE_RULE_ENGINE := 1.00
MATCH_SELECT_ACT := 1.00
FORWARD_CHAINING := 1.00
BACKWARD_CHAINING := 1.00
RETE_RELATIONSHIP := 1.00
TRUTH_MAINTENANCE := 0.99
NONMONOTONIC_DISTINCTIONS := 1.00
SPECIFIC_RESULT :=
IF rules_facts_strategy_and_semantics_complete THEN 1.00
ELSE REQUIRE missing_information
}
UPDATE_MODEL {
IMMUTABLE_CORE := {
RuleAntecedentConsequent,
WorkingMemory,
MatchSelectAct,
Activation,
ExecutionTrace
}
EXTENSIBLE := {
MatchingAlgorithms,
ConflictStrategies,
TruthMaintenance,
EventProcessing,
RuleLanguages,
RuleGovernance,
OptimisationMethods,
ApplicationDomains,
RelatedOntologies
}
ON_NEW_KNOWLEDGE {
IDENTIFY new_rule_fact_or_event
VALIDATE syntax_and_types
UPDATE match_network
CHECK conflicts
CHECK dependencies
UPDATE provenance
DERIVE new_results_if_required
UPDATE confidence
}
}
AI_CONSUMPTION {
MACHINE_READABLE := TRUE
HUMAN_INTERPRETABLE := TRUE
RECURSIVE_REASONING := TRUE
ENTITY_RESOLUTION := TRUE
RULE_RESOLUTION := TRUE
FACT_RESOLUTION := TRUE
PATTERN_MATCHING := TRUE
AGENDA_REASONING := TRUE
CONFLICT_RESOLUTION := TRUE
FORWARD_CHAINING := TRUE
BACKWARD_CHAINING := TRUE
RETE_REASONING := TRUE
TRUTH_MAINTENANCE := TRUE
EVENT_REASONING := TRUE
PROVENANCE_TRACKING := TRUE
RULE_BASE_AUDIT := TRUE
EXECUTION_TRACE_VALIDATION := TRUE
}
FLOW_HASH {
TARGET := TARGET_URL
SUBJECT := "Rule Engine Ontology"
VERSION := "1.0"
CANONICAL_SIGNATURE := HASH(TARGET + SUBJECT + DOMAIN + VERSION)
}
OUTPUT {
PRIMARY_ENTITY := RuleEngine
INTERPRETATION := "A rule engine operationalises explicit rules by matching them against facts, selecting applicable rule instances and executing their consequences. Robust engines combine forward or backward reasoning with conflict resolution, incremental matching, provenance, truth maintenance, event handling, testing and governance so that rule-derived decisions remain traceable and semantically controlled."
}
END_FLOW
Download Code
Copy to Clipboard