1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//! ROGRAG (Robustly Optimized GraphRAG) module - Reasoning on Graphs for RAG
//!
//! This module implements a sophisticated query processing system that combines
//! structured reasoning with graph-based retrieval for enhanced accuracy and robustness.
//!
//! # Architecture
//!
//! ROGRAG introduces three primary retrieval strategies:
//!
//! 1. **Logic Form Retrieval** - Parses queries into structured logic forms for precise graph traversal
//! 2. **Fuzzy Matching** - Provides semantic similarity-based fallback when logic forms fail
//! 3. **Query Decomposition** - Breaks complex queries into manageable subqueries
//!
//! # Key Components
//!
//! - [`decomposer`] - Query decomposition using semantic/syntactic/hybrid strategies
//! - [`fuzzy_matcher`] - Semantic similarity matching for entities and content chunks
//! - [`intent_classifier`] - Query intent detection with refusal capabilities
//! - [`logic_form`] - Structured query representation and execution
//! - [`processor`] - Main ROGRAG processing pipeline orchestration
//! - [`validator`] - Query validation and quality assessment
//! - [`quality_metrics`] - Performance and quality tracking
//! - [`streaming`] - Streaming response generation
//!
//! # Usage Example
//!
//! ```rust,ignore
//! use graphrag_core::rograg::{RogragProcessor, RogragConfig};
//!
//! // Initialize the ROGRAG processor
//! let processor = RogragProcessor::new(RogragConfig::default())?;
//!
//! // Process a query
//! let result = processor.process_query(
//! "How are Entity A and Entity B related?",
//! &knowledge_graph
//! ).await?;
//! ```
//!
//! # Quality Assurance
//!
//! The ROGRAG module includes built-in validation, quality metrics, and intent
//! classification to ensure reliable operation and prevent inappropriate responses.
// Re-export main types with specific naming to avoid conflicts
pub use *;
pub use *;
pub use *;
pub use *;
pub use *;
pub use ;
pub use *;
pub use ;
use crateResult;
/// Initialize the ROGRAG subsystem.
///
/// This function initializes all ROGRAG components and performs any necessary
/// startup configuration. Currently this is a no-op but serves as a future
/// extension point for:
///
/// - Loading pre-compiled pattern databases
/// - Initializing statistical models
/// - Warming up caches
/// - Validating system configuration
///
/// # Returns
///
/// Returns `Ok(())` on successful initialization, or an error if any subsystem
/// fails to initialize properly.
///
/// # Example
///
/// ```rust,ignore
/// use graphrag_core::rograg::initialize_rograg;
///
/// // Initialize before using ROGRAG features
/// initialize_rograg()?;
/// ```