oxirs_shacl_ai/advanced_pattern_mining/
patterns.rs1use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5
6use super::types::*;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct AdvancedPattern {
11 pub items: Vec<PatternItem>,
13
14 pub support_count: usize,
16
17 pub support_ratio: f64,
19
20 pub confidence: f64,
22
23 pub lift: f64,
25
26 pub conviction: f64,
28
29 pub quality_score: f64,
31
32 pub pattern_type: PatternType,
34
35 pub temporal_info: Option<TemporalPatternInfo>,
37
38 pub hierarchy_level: usize,
40
41 pub suggested_constraints: Vec<SuggestedConstraint>,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize)]
47pub struct PatternItem {
48 pub item_type: PatternItemType,
50
51 pub identifier: String,
53
54 pub role: ItemRole,
56
57 pub frequency: f64,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize)]
63pub struct TemporalPatternInfo {
64 pub frequency: f64,
66
67 pub seasonality: Vec<SeasonalityComponent>,
69
70 pub trend: TrendDirection,
72
73 pub stability_score: f64,
75}
76
77#[derive(Debug, Clone, Serialize, Deserialize)]
79pub struct SeasonalityComponent {
80 pub period: usize,
82
83 pub amplitude: f64,
85
86 pub phase: f64,
88}
89
90#[derive(Debug, Clone, Serialize, Deserialize)]
92pub struct SuggestedConstraint {
93 pub constraint_type: ConstraintType,
95
96 pub path: String,
98
99 pub parameters: HashMap<String, String>,
101
102 pub confidence: f64,
104
105 pub coverage: f64,
107
108 pub severity: oxirs_shacl::Severity,
110}