oxirs-arq 0.2.4

Jena-style SPARQL algebra with extension points and query optimization
Documentation
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
//! # OxiRS ARQ - SPARQL Query Engine
//!
//! [![Version](https://img.shields.io/badge/version-0.2.4-blue)](https://github.com/cool-japan/oxirs/releases)
//! [![docs.rs](https://docs.rs/oxirs-arq/badge.svg)](https://docs.rs/oxirs-arq)
//!
//! **Status**: Production Release (v0.2.4)
//! **Stability**: Public APIs are stable. Production-ready with comprehensive testing.
//!
//! Advanced SPARQL 1.1/1.2 query engine with optimization, federation support, and custom functions.
//! Provides Jena ARQ-style SPARQL algebra with modern Rust performance.
//!
//! ## Features
//!
//! - **SPARQL 1.1 Query** - Complete SPARQL 1.1 query support
//! - **Query Optimization** - Cost-based optimization and join reordering
//! - **Parallel Execution** - Multi-threaded query processing
//! - **Custom Functions** - Extensible function framework
//! - **Federation Support** - Basic federated query capabilities
//! - **Result Streaming** - Memory-efficient result iteration
//!
//! ## Quick Start
//!
//! ```rust
//! use oxirs_core::query::QueryEngine;
//! use oxirs_core::RdfStore;
//!
//! # fn example() -> Result<(), Box<dyn std::error::Error>> {
//! let engine = QueryEngine::new();
//! let store = RdfStore::new()?;
//!
//! let sparql = "SELECT ?s ?p ?o WHERE { ?s ?p ?o } LIMIT 10";
//! let results = engine.query(sparql, &store)?;
//! # Ok(())
//! # }
//! ```
//!
//! ## See Also
//!
//! - [`oxirs-core`](https://docs.rs/oxirs-core) - RDF data model
//! - [`oxirs-fuseki`](https://docs.rs/oxirs-fuseki) - SPARQL HTTP server

// Core modules
pub mod adaptive_execution;
pub mod aggregates_ext;
pub mod algebra;
pub mod algebra_generation;
pub mod analytics;
pub mod bgp_optimizer;
pub mod bgp_optimizer_types;
pub mod buffer_management;
pub mod builtin;
pub mod builtin_fixed;
pub mod cache;
pub mod cache_integration;
pub mod cardinality_estimator;
pub mod cost_model;
pub mod debug_utilities;
pub mod distributed;
pub mod executor;
pub mod executor_pipeline;
pub mod expression;
pub mod expression_compiler;
pub mod extensions;
pub mod federation;
pub mod gpu_accelerated_ops;
pub mod graphql_translator;
pub mod integrated_query_planner;
pub mod interactive_query_builder;
pub mod jit_compiler;
pub mod join_algorithms;
pub mod lateral_join;
pub mod materialization;
pub mod materialized_views;
pub mod optimizer;
pub mod parallel;
pub mod path;
pub mod path_extensions;
pub mod plan_visualizer;
pub mod procedures;
pub mod production;
pub mod property_functions;
pub mod query;
pub mod query_analysis;
pub mod query_builder;
pub mod query_cache_lru;
pub mod query_plan_cache;
pub mod query_profiler;
pub mod query_rewriter;
pub mod query_validator;
pub mod result_formats;
pub mod results;
pub mod scirs_optimize_integration;
pub mod service_description;
pub mod simd_query_ops;
pub mod statistics_collector;
pub mod stats;
pub mod streaming;
pub mod string_functions_ext;
pub mod system_load_monitor;
pub mod term;
pub mod triple_functions;
pub mod update;
pub mod update_graph_management;
pub mod update_protocol;
pub mod values_support;
pub mod vector_query_optimizer;
pub mod websocket_streaming;

// Advanced modules
pub mod adaptive_index_advisor;
pub mod cost_model_calibration;
pub mod query_batch_executor;
pub mod query_execution_history;
pub mod query_fingerprinting;
pub mod query_hints;
pub mod query_optimization_advisor;
pub mod query_pagination;
pub mod query_plan_diff;
pub mod query_plan_export;
pub mod query_regression_testing;
pub mod query_result_cache;
pub mod query_templates;

// RDF-star / SPARQL-star integration
#[cfg(test)]
pub mod conformance;
pub mod execution;
pub mod rdf_star;
#[cfg(feature = "star")]
pub mod star_integration;
pub mod statistics;

// Adaptive query optimization and parallel evaluation (v0.2.0 Phase 2)
pub use execution::{ParallelBgpEvaluator, PatternDependencyGraph, TripleStore};
pub use optimizer::adaptive::{
    AdaptiveJoinOrderOptimizer, AdaptiveStatsStore, JoinAlgorithm, JoinPlanNode, PatternTerm,
    PlanTimer, RuntimeStats, TriplePatternInfo,
};
pub use optimizer::materialized_view::{
    BindingRow, MaterializedView, MaterializedViewManager, RdfTerm, ViewManagerConfig,
    ViewManagerStats,
};
// Adaptive join ordering (v0.2.0 Phase 2 - join_order)
pub use optimizer::join_order::{
    AdaptiveQueryPlan, CardinalityEstimate, JoinGraphStats, JoinOrderOptimizer, PatternCost,
};
// View registry (v0.2.0 Phase 2 - view_registry)
pub use optimizer::view_registry::{algebra_hash, BindingSet, ViewDefinition, ViewRegistry};
// Parallel pipeline executor (v0.2.0 Phase 2)
pub use executor_pipeline::{BindingMap, ParallelPipelineStage, UnionParallelExecutor};
// LRU query cache (v0.2.0 Phase 2)
pub use query_cache_lru::{
    CacheEntry, CacheFingerprint, CacheManagerStats, CompiledQueryCache, LruQueryCache,
    QueryCacheManager,
};

// Advanced modules
pub mod advanced_optimizer;
pub mod explain;
pub mod timeout;
// Temporarily disabled - require scirs2-core API migration
// TODO: Complete API migration in future release when scirs2-core API stabilizes
// pub mod advanced_statistics;
// pub mod ai_shape_learning;
// pub mod distributed_consensus;
// pub mod memory_management;
// pub mod quantum_optimization;
// pub mod realtime_streaming;
// pub mod unified_optimization_framework;

// Re-export commonly used types
pub use aggregates_ext::{
    Accumulator, AggregateFactory, AggregateMetadata, AggregateOptimization, AggregateRegistry,
    MemoryUsage,
};
pub use algebra::{
    Aggregate, Algebra, BinaryOperator, Binding, Expression, GroupCondition, Iri, Literal,
    OrderCondition, Solution, Term, TriplePattern, UnaryOperator, Variable,
};
pub use debug_utilities::{
    DebugBreakpoint, DebugConfig, DebugReport, ExecutionState as DebugExecutionState, JoinType,
    Operation, QueryDebugger, RewriteStep, TraceEntry, VariableBinding, VisualizationFormat,
};
pub use executor::{Dataset, ExecutionContext, InMemoryDataset, ParallelConfig, QueryExecutor};
pub use graphql_translator::{
    GraphQLDirective, GraphQLDocument, GraphQLField, GraphQLFragment, GraphQLOperation,
    GraphQLOperationType, GraphQLSelection, GraphQLTranslator, GraphQLValue,
    GraphQLVariableDefinition, SchemaMapping, TranslationError, TranslationResult,
    TranslationStats, TranslatorConfig,
};
pub use jit_compiler::{
    CompiledQuery, CompilerStats, ExecutionPlan, ExecutionStats, FilterType, JitCompilerConfig,
    JitJoinStrategy, PatternType, PlanOperation, QueryJitCompiler, QueryMetadata, Specialization,
    SpecializationType,
};
pub use path_extensions::{
    BidirectionalPathSearch, CacheStats, CachedPathEvaluator, CostBasedPathOptimizer, PathAnalyzer,
    PathCache, PathComplexity, PathEvaluationStrategy, PathOptimizationConfig,
    PathOptimizationHint, PathStatistics, ReachabilityIndex, StrategyCostEstimate,
};
pub use procedures::{
    Procedure, ProcedureArgs, ProcedureContext, ProcedureFactory, ProcedureRegistry,
    ProcedureResult,
};
pub use property_functions::{
    PropFuncArg, PropertyFunction, PropertyFunctionContext, PropertyFunctionRegistry,
    PropertyFunctionResult,
};
pub use query_builder::{AskBuilder, ConstructBuilder, DescribeBuilder, SelectBuilder};
pub use query_plan_cache::{
    CacheStats as QueryPlanCacheStats, CachedPlan, CachingConfig, QueryPlanCache, QuerySignature,
    StatisticsSnapshot,
};
pub use query_profiler::{AverageStats, QueryPhase, QueryProfiler, QueryStats};
pub use query_validator::{
    QueryValidator, ValidationConfig, ValidationResult, ValidationStatistics, ValidationWarning,
    ValidationWarningType,
};
pub use result_formats::{
    BinaryResultSerializer, CustomFormatSerializer, FormatConverter, FormatRegistry,
    StreamingResultIterator, XmlResultSerializer,
};
pub use results::{QueryResult, ResultFormat, ResultSerializer};
pub use scirs_optimize_integration::{
    OptimizationResult, PerformanceAnalysis, QueryInfo, QueryOptimizationConfig,
    SciRS2QueryOptimizer,
};
pub use service_description::{
    create_default_service_description, AggregateInfo, DatasetDescription, ExtensionFunction,
    Feature, LanguageExtension, NamedGraphDescription, ParameterInfo, ProcedureInfo,
    PropertyFunctionInfo, ServiceDescription, ServiceDescriptionBuilder,
    ServiceDescriptionRegistry, ServiceLimitations,
};
pub use string_functions_ext::{
    StrAfterFunction, StrBeforeFunction, StrDtFunction, StrLangDirFunction, StrLangFunction,
};
pub use triple_functions::{
    IsTripleFunction, ObjectFunction, PredicateFunction, SubjectFunction, TripleFunction,
};
pub use values_support::{
    IndexedValues, JoinStrategy, OptimizedValues, ValuesBuilder, ValuesClause,
    ValuesExecutionStrategy, ValuesExecutor, ValuesJoinOptimizer, ValuesOptimizer,
    ValuesStatistics,
};
// Temporarily disabled - require scirs2-core beta.4 APIs
/*
pub use memory_management::{
    MemoryConfig, MemoryManagedContext, MemoryPerformanceReport, MemoryStats, MemoryLeakReport,
    ProcessedSolution, MemoryPressureStrategy,
};
pub use quantum_optimization::{
    QuantumOptimizationConfig, QuantumJoinOptimizer, QuantumCardinalityEstimator,
    HybridQuantumOptimizer, QuantumOptimizationStats, HybridOptimizationStats,
    QuantumOptimizationStrategy, QuantumQueryState,
};
pub use realtime_streaming::{
    StreamingSparqlProcessor, StreamingConfig, StreamingTriple, WindowedResult,
    SignalPipelineConfig, StreamingStatistics, DetectedPattern, AnomalyIndicator,
    PatternType, AnomalyType, WatermarkStrategy,
};
pub use ai_shape_learning::{
    AIShapeLearner, ShapeLearningConfig, LearnedShape, PropertyConstraint,
    ValidationResult, ValidationViolation, ShapeLearningStatistics,
    RdfDataBatch, ValidationStrategy, PatternConstraint,
};
pub use distributed_consensus::{
    DistributedConsensusCoordinator, ConsensusConfig, ConsensusValue, ConsensusResult,
    ConsensusState, ConsensusStatistics, ConsensusAlgorithm, ByzantineConfig,
};
*/

pub use lateral_join::{
    LateralCostEstimate, LateralJoin, LateralJoinConfig, LateralJoinError, LateralJoinExecutor,
    LateralJoinStats, LateralOptimizer, LateralOptimizerConfig, LateralParser, LateralStrategy,
    LateralSubquery, LateralValidationResult, LateralValidator, LateralValue, OrderSpec,
    SolutionMapping,
};

pub use adaptive_index_advisor::{
    AccessPattern, AdvisorConfig, AdvisorStatistics, AnalysisSummary, IndexAdvisor,
    IndexAnalysisReport, IndexConfiguration, IndexRecommendation, IndexType, IndexUsageStats,
    PatternComponent, QueryPattern, RecommendationPriority,
};
pub use cost_model_calibration::{
    CalibrationConfig, CalibrationExport, CalibrationReport, CalibratorStatistics,
    CostModelCalibrator, CostModelParameters, ExecutionSample, OperationCalibrationExport,
    OperationCalibrationStats, OperationSummary, OperationType,
};
pub use federation::{
    EndpointCapabilities, EndpointCriteria, EndpointDiscovery, EndpointHealth, FederatedSubquery,
    FederationConfig, FederationExecutor, FederationStats, LoadBalancingStrategy,
};
pub use gpu_accelerated_ops::{DeviceSelection, GpuConfig, GpuOperationStats, GpuQueryEngine};
pub use interactive_query_builder::{
    helpers as query_helpers, InteractiveQueryBuilder, PatternBuilder, QueryType,
};
pub use materialization::{
    MaterializationAnalysis, MaterializationConfig, MaterializationSelector, MaterializationStats,
    MaterializationStrategy, MaterializedResults, ResultIterator, VariableStats,
};
pub use production::{
    // Core production types
    AuditEventType,
    // Beta.2 enhancements
    BaselineTrackerConfig,
    CostEstimatorConfig,
    CostEstimatorStatistics,
    CostRecommendation,
    ErrorSeverity,
    GlobalStatistics,
    HealthStatus,
    MemoryStats,
    PerformanceBaselineTracker,
    PerformanceTrend,
    PrioritizedQuery,
    PrioritySchedulerConfig,
    PrioritySchedulerStats,
    QueryAuditEvent,
    QueryAuditTrail,
    QueryCancellationToken,
    QueryCircuitBreaker,
    QueryCostEstimate,
    QueryCostEstimator,
    QueryEngineHealth,
    QueryErrorContext,
    QueryFeatures,
    QueryMemoryTracker,
    QueryPriority,
    QueryPriorityScheduler,
    QueryRateLimiter,
    QueryResourceQuota,
    QuerySession,
    QuerySessionManager,
    QueryStatistics,
    QueryTimeoutManager,
    QueryTimeoutState,
    RegressionReport,
    RegressionSeverity,
    SparqlPerformanceMonitor,
    SparqlProductionError,
    TimeoutAction,
    TimeoutCheckResult,
};
pub use query_execution_history::{
    ExecutionMetrics, ExecutionRecord, ExecutionStatus, FormDistribution, HistoryAnalysis,
    HistoryConfig, HistoryStatistics, PeriodStatistics, QueryExecutionHistory, QueryFormType,
    QueryGroupStats, SlowQueryEntry,
};
pub use query_fingerprinting::{
    FingerprintConfig, FingerprintingStatistics, HashAlgorithm, ParameterSlot, ParameterType,
    QueryFeatures as FingerprintQueryFeatures, QueryFingerprint, QueryFingerprinter,
    QueryForm as FingerprintQueryForm,
};
pub use query_hints::{
    CacheHint, CardinalityHint, FilterHint, FilterPushdownDirective, HintApplicationResult,
    HintParser, HintParserStats, HintValidationWarning, HintValidator, IndexDirective, IndexHint,
    JoinAlgorithmHint, JoinBuildSide, JoinHint, JoinOrderHint, JoinOrderStrategy,
    MaterializationHint, MaterializationStrategy as HintMaterializationStrategy, MemoryHint,
    ParallelismHint, QueryHints, QueryHintsBuilder, WarningSeverity,
};
pub use query_plan_export::{
    CostEstimate, ExecutionStats as PlanExecutionStats, ExportConfig, ExportError, ExportFormat,
    ExporterStats, OperatorType, PlanNode, QueryPlanExporter,
};
pub use query_regression_testing::{
    ExecutionResult as RegressionExecutionResult, ExecutionStatistics as RegressionExecutionStats,
    GoldenQuery, QueryRegressionAnalysis, RegressionConfig,
    RegressionReport as QueryRegressionReport, RegressionStatus, RegressionTestSuite,
    RegressionTestSuiteBuilder, ReportComparison, ReportSummary, SuiteExport, SuiteStatistics,
};
pub use query_result_cache::{
    CacheConfig as ResultCacheConfig, CacheStatistics as ResultCacheStatistics, QueryResultCache,
    QueryResultCacheBuilder,
};
// Cache invalidation system (v0.2.0 Phase 1.1)
pub use cache::{
    CacheCoordinator, CacheLevel, DependencyGraph, InvalidationConfig, InvalidationEngine,
    InvalidationStatistics, InvalidationStrategy, RdfUpdateListener,
};
pub use simd_query_ops::{
    ComparisonOp, JoinStats, SimdAggregations, SimdConfig, SimdFilterEvaluator, SimdHashJoin,
    SimdStringOps, SimdTripleMatcher, TripleCandidate,
};
pub use websocket_streaming::{
    ConnectionStats, ManagerStats, WebSocketConfig, WebSocketManager, WebSocketMessage,
    WebSocketSession,
};

// RDF-star / SPARQL-star exports (when feature is enabled)
#[cfg(feature = "star")]
pub use star_integration::{
    pattern_matching, sparql_star_functions, star_statistics::SparqlStarStatistics,
    SparqlStarExecutor,
};

// Common Result type for the crate
pub use explain::{
    ExplainFormat, IndexType as ExplainIndexType, PlanNode as ExplainPlanNode, QueryExplainer,
    QueryExplainerBuilder, QueryPlan as QueryExplainPlan,
};
pub use rdf_star::{
    bind_pattern, instantiate_quoted_triple, sparql_star_builtins, AnnotatedTriple, Annotation,
    QuotedTriple, RdfStarStore, StarBinding, StarObject, StarOperator, StarPattern, StarPredicate,
    StarSubject,
};

pub type Result<T> = anyhow::Result<T>;

// Graph analytics exports (v0.3.0)
pub use analytics::{
    is_dag, is_reachable, BetweennessCentrality, ConnectedComponents, DegreeCentrality, EdgeWeight,
    GraphStats, GraphStatsSummary, LouvainCommunities, NodeId, PageRank, RdfGraphAdapter,
    ShortestPaths,
};

// SPARQL 1.1 UPDATE Graph Management Operations (v0.3.0)
pub use update_graph_management::{
    GraphManagementDataset, GraphManagementExecutor, GraphManagementOp, GraphManagementResult,
    GraphManagementTarget, Triple as GraphManagementTriple,
};

// Runtime statistics collector (v0.2.0 enhancement)
pub use stats::{PatternStats, QueryExecutionStats, RuntimeStatsCollector};

// SPARQL 1.1 Update Protocol — standalone parser and in-memory executor (v0.2.0 enhancement)
pub use update_protocol::{
    ArqError as UpdateArqError, ClearType, DropType, ParseError as UpdateParseError,
    PatternTerm as UpdatePatternTerm, SparqlUpdate, SparqlUpdateParser, Triple as UpdateTriple,
    TriplePattern as UpdateTriplePattern, UpdateExecutor as SparqlUpdateExecutor,
    UpdateResult as SparqlUpdateResult,
};

// Optimizer passes (v0.2.0 enhancement)
pub use optimizer::{
    ConstantFoldingPass, OptimizationPass, OptimizationPipeline, PipelineResult,
    RedundantJoinEliminationPass, UnusedVariableEliminationPass,
};

// Subgraph isomorphism / pattern matching (v1.1.0 round 5)
pub mod subgraph_matcher;

// SPARQL 1.1 aggregate function executor (v1.1.0 round 6)
pub mod aggregate_executor;

// SPARQL-style window functions: ROW_NUMBER, RANK, DENSE_RANK, NTILE, LAG, LEAD (v1.1.0 round 7)
pub mod window_function;

// SPARQL 1.1 VALUES clause (inline data) (v1.1.0 round 9)
pub mod values_clause;

// SPARQL 1.1 SERVICE clause for federated queries (v1.1.0 round 10)
pub mod service_clause;

// SPARQL subquery (SELECT within SELECT) support (v1.1.0 round 11)
pub mod subquery;

// Cost-based join reordering for SPARQL query optimization (v1.1.0 round 12)
pub mod join_optimizer;

// SPARQL 1.1 expression/filter evaluator (v1.1.0 round 13)
pub mod expression_evaluator;

// SPARQL 1.1 GROUP BY clause evaluator (v1.1.0 round 11)
pub mod group_by_evaluator;

// SPARQL 1.1 OPTIONAL clause evaluator (left outer join) (v1.1.0 round 12)
pub mod optional_evaluator;

// SPARQL CONSTRUCT query builder — template instantiation, blank nodes, deduplication (v1.1.0 round 13)
pub mod construct_builder;

// SPARQL MINUS pattern evaluation (set-difference algebra) (v1.1.0 round 14)
pub mod minus_evaluator;

// SPARQL EXISTS and NOT EXISTS graph pattern evaluation (v1.1.0 round 15)
pub mod exists_evaluator;

// SPARQL 1.1 property path expression parser and evaluator (v1.1.0 round 16)
pub mod path_expression;