Expand description
§OxiRS SHACL - RDF Validation Engine
Status: Production Release (v0.3.1) Stability: Public APIs are stable. Production-ready with comprehensive testing.
SHACL (Shapes Constraint Language) validation engine for RDF data. Provides comprehensive constraint validation with SHACL Core and SHACL-SPARQL support.
§Features
- SHACL Core - Complete SHACL Core constraint validation (27/27 W3C constraint types)
- SHACL-SPARQL - SPARQL-based constraints (experimental)
- SHACL-AF - Advanced Features (SPARQL targets, ASK validators, target types)
- Property Paths - Full property path evaluation including inverse, sequence, alternative, zero-or-more, one-or-more, zero-or-one operators
- Logical Constraints -
sh:and,sh:or,sh:not,sh:xone - Validation Reports - W3C-compliant violation reports with metadata
- Performance - Optimized validation engine with caching, parallelism, and incremental modes
§Companion Documentation
In addition to this rustdoc reference, two companion documents live at the crate root:
COOKBOOK.md— task-oriented patterns (cardinality, string, datatype, qualified value, target chains, SHACL-AF SPARQL constraints) with Turtle examples and Rust API snippets.SPEC_MAPPING.md— exhaustive table mapping every SHACL Core / SHACL-AF construct to the Rust symbol that implements it.
§See Also
oxirs-core- RDF data modeloxirs-arq- SPARQL query engine
§Basic Usage
use oxirs_shacl::{ValidationConfig, ValidationStrategy};
use oxirs_core::{Store, model::*};
// Create a validation configuration
let config = ValidationConfig::default()
.with_strategy(ValidationStrategy::Optimized)
.with_inference_enabled(true);
// Validation is typically performed using ValidationEngine
// See examples/ directory for complete working examples
§Crate Layout
constraints— every SHACL Core constraint component (MinCountConstraint,PatternConstraint,NodeKindConstraint, and so on).paths— property path evaluation and traversal.shapes— shape parsing, factories, and shape-level validation.targets— target selectors (sh:targetClass,sh:targetSubjectsOf, …).validation— the validation engine and reporting pipeline.sparql_af— SHACL Advanced Features built on SPARQL.report— W3C validation report generation in multiple formats.optimization— query rewriting and execution-plan optimisation.cache— validation result and parallel-validation caches.
§Advanced Features
For detailed examples and advanced usage patterns, including:
- Custom constraint components
- Parallel and incremental validation
- Enterprise security and compliance features
- Federated validation
- Production deployment patterns
Please refer to the individual module documentation and the examples directory in the repository.
Re-exports§
pub use crate::optimization::integration::ValidationStrategy;pub use advanced_features::AdvancedTarget;pub use advanced_features::AdvancedTargetSelector;pub use advanced_features::ConditionalConstraint;pub use advanced_features::ConditionalEvaluator;pub use advanced_features::ConditionalResult;pub use advanced_features::FunctionInvocation;pub use advanced_features::FunctionParameter;pub use advanced_features::FunctionRegistry;pub use advanced_features::FunctionResult;pub use advanced_features::InferenceStrategy;pub use advanced_features::InferredShape;pub use advanced_features::ParameterType;pub use advanced_features::ReturnType;pub use advanced_features::RuleEngine;pub use advanced_features::RuleEngineStats;pub use advanced_features::RuleExecutionResult;pub use advanced_features::ShaclFunction;pub use advanced_features::ShaclRule;pub use advanced_features::ShapeInferenceConfig;pub use advanced_features::ShapeInferenceEngine;pub use advanced_features::ShapeRegistry;pub use analytics::ValidationAnalytics;pub use cache::CacheStats;pub use cache::CachedValidationResult;pub use cache::ParallelConstraintConfig;pub use cache::ParallelConstraintOutcome;pub use cache::ParallelConstraintValidator;pub use cache::ParallelValidationStats;pub use cache::ParallelValidationSummary;pub use cache::TripleKey;pub use cache::ValidationCache;pub use cache::ValidationCacheKey;pub use constraints::AdvancedSparqlConstraint;pub use constraints::AlwaysViolatingEvaluator;pub use constraints::Constraint;pub use constraints::ConstraintContext;pub use constraints::ConstraintEvaluationResult;pub use constraints::ExpressionConstraintComponent;pub use constraints::ExpressionConstraintResult;pub use constraints::ExpressionContext;pub use constraints::ExpressionEvaluator;pub use constraints::FailingEvaluator;pub use constraints::MockSparqlEvaluator;pub use constraints::NodeKindConstraint;pub use constraints::PathResolver;pub use constraints::PropertyConstraint;pub use constraints::ShaclExpression;pub use constraints::ShaclValue;pub use constraints::SparqlConstraintResult;pub use constraints::SparqlConstraintSeverity;pub use constraints::SparqlEvaluator;pub use custom_components::ComponentMetadata;pub use custom_components::CustomConstraint;pub use custom_components::CustomConstraintRegistry;pub use custom_components::EmailValidationComponent;pub use custom_components::RangeConstraintComponent;pub use custom_components::RegexConstraintComponent;pub use incremental::Changeset;pub use incremental::GraphChange;pub use incremental::IncrementalConfig;pub use incremental::IncrementalStats;pub use incremental::IncrementalValidator;pub use optimization::NegationOptimizer;pub use optimization::OptimizationConfig;pub use optimization::OptimizationResult;pub use optimization::OptimizationStrategy;pub use optimization::ValidationOptimizationEngine;pub use report::ReportFormat;pub use report::ReportGenerator;pub use report::ReportMetadata;pub use report::ValidationReport;pub use report::ValidationSummary;pub use scirs_graph_integration::BasicMetrics;pub use scirs_graph_integration::ConnectivityAnalysis;pub use scirs_graph_integration::GraphValidationConfig;pub use scirs_graph_integration::GraphValidationResult;pub use scirs_graph_integration::SciRS2GraphValidator;pub use security::SecureSparqlExecutor;pub use security::SecurityConfig;pub use security::SecurityPolicy;pub use shapes::format_literal_for_sparql;pub use shapes::format_term_for_sparql;pub use shapes::ShapeCacheStats;pub use shapes::ShapeFactory;pub use shapes::ShapeParser;pub use shapes::ShapeParsingConfig;pub use shapes::ShapeParsingContext;pub use shapes::ShapeParsingStats;pub use shapes::ShapeValidationReport;pub use shapes::ShapeValidator;pub use shapes::SingleShapeValidationReport;pub use targets::Target;pub use targets::TargetCacheStats;pub use targets::TargetOptimizationConfig;pub use targets::TargetSelectionStats;pub use targets::TargetSelector;pub use testing::ShapeTestSuite;pub use testing::TestAssertions;pub use testing::TestCase;pub use testing::TestExpectation;pub use testing::TestResult;pub use testing::TestStatus;pub use testing::TestSuiteResult;pub use testing::TestSummary;pub use validation::ValidationEngine;pub use validation::ValidationViolation;pub use visual_editor::ColorScheme;pub use visual_editor::ExportFormat;pub use visual_editor::LayoutDirection;pub use visual_editor::ShapeVisualizer;pub use visual_editor::VisualizerConfig;pub use sparql_af::ask_validator::FailingAskExecutor;pub use sparql_af::ask_validator::MockAskExecutor;pub use sparql_af::ask_validator::SparqlAskExecutor;pub use sparql_af::ask_validator::SparqlAskResult;pub use sparql_af::ask_validator::SparqlAskValidator;pub use sparql_af::ask_validator::SparqlAskValidatorBuilder;pub use sparql_af::ask_validator::SparqlAskViolation;pub use sparql_af::sparql_target::ParameterBinding;pub use sparql_af::sparql_target::SparqlAfTarget;pub use sparql_af::sparql_target::SparqlAfTargetResult;pub use sparql_af::sparql_target::SparqlTargetEvaluator;pub use sparql_af::sparql_target::SparqlTargetMock;pub use sparql_af::target_type::SparqlTargetParameter;pub use sparql_af::target_type::SparqlTargetType;pub use sparql_af::target_type::SparqlTargetTypeInstance;pub use sparql_af::target_type::SparqlTargetTypeRegistry;pub use sparql_af::PrefixMap;pub use sparql_af::SubstitutionContext;pub use designer::ConstraintSpec;pub use designer::DesignIssue;pub use designer::DesignStep;pub use designer::DesignWizard;pub use designer::Domain;pub use designer::PropertyDesign;pub use designer::PropertyHint;pub use designer::RecommendationEngine;pub use designer::ShapeDesign;pub use designer::ShapeDesigner;pub use designer::ShapeInferenceEngine as DesignerInferenceEngine;pub use iri_resolver::IriResolver;pub use validator::ValidationStats;pub use validator::Validator;pub use validator::ValidatorBuilder;pub use builders::*;pub use federated_validation::*;pub use iri_resolver::*;pub use paths::*;pub use shape_import::*;pub use shape_inheritance::*;pub use sparql::*;pub use w3c_test_suite::*;
Modules§
- advanced_
features - SHACL Advanced Features (SHACL-AF)
- analytics
- Advanced Analytics Module
- builders
- Enhanced Builder Pattern APIs for fluent SHACL validation, shape loading, and configuration
- cache
- Caching subsystem for SHACL validation
- constraint_
inheritance - constraint_
parameter - SHACL sh:parameter / parameterized constraint components.
- constraints
- SHACL constraint implementation modules
- custom_
components - Custom SHACL Constraint Components
- datatype_
checker - SHACL
sh:datatypeconstraint checker. - designer
- Interactive Shape Designer
- entailment_
regime - federated_
validation - SHACL Federated Validation Engine
- focus_
node_ selector - incremental
- Incremental SHACL Validation
- integration
- Cross-module integration capabilities for OxiRS SHACL
- iri_
resolver - IRI Resolution and Validation Module
- lsp
- Language Server Protocol (LSP) implementation for SHACL shapes.
- message_
formatter - node_
constraint - SHACL
sh:nodeconstraint component. - node_
expr_ builtins - Built-in functions for SHACL node expressions.
- node_
expr_ evaluator - Evaluator for SHACL node expressions.
- node_
expr_ types - Type definitions for SHACL node expressions (SHACL-AF
sh:values). - node_
expression_ evaluator - SHACL Node Expression evaluator.
- node_
expressions - SHACL Node Expressions (SHACL-AF
sh:values) – module facade - optimization
- SHACL Validation Performance Optimization
- path_
executor - paths
- SHACL property path evaluation.
- property_
path_ checker - report
- SHACL validation report implementation
- schema_
import - JSON Schema to SHACL Converter
- scirs_
graph_ integration - SciRS2 Graph Algorithm Integration for SHACL Validation
- security
- SHACL Security Module
- severity_
handler - shaclc_
parser - SHACL Compact Syntax (SHACLC) Parser
- shape_
graph_ loader - shape_
import - Shape Import and External Reference System
- shape_
inheritance - Shape Inheritance and Composition Module
- shape_
map - W3C ShapeMap Validation
- shape_
matcher - Pattern-based SHACL shape matching.
- shape_
versioning - Shape versioning and evolution management for SHACL shapes
- shapes
- SHACL shape parsing and representation module
- sparql
- SPARQL-based constraint validation with enhanced function library
- sparql_
af - SHACL Advanced Features — SPARQL-based Targets and Validators
- sparql_
constraint_ validator - SHACL SPARQL-based constraint validation (sh:SPARQLConstraintComponent).
- target_
selector - SHACL target declaration evaluation.
- targets
- SHACL target selection module
- templates
- Shape Template Library
- testing
- SHACL Shape Testing Framework
- validation
- SHACL validation engine implementation
- validator
- SHACL Validator implementation
- visual_
editor - Visual Shape Editor Support
- vocabulary
- SHACL vocabulary terms and constants
- w3c_
test_ suite - W3C SHACL Test Suite Integration
- w3c_
test_ suite_ enhanced - Enhanced W3C SHACL Test Suite Integration with Real RDF Parsing and Parallel Execution
Macros§
- shape
- Macro for creating shapes with a fluent syntax
Structs§
- Constraint
Component Id - SHACL constraint component identifier.
- Shape
- SHACL shape representation.
- ShapeId
- SHACL shape identifier.
- Shape
Metadata - Shape metadata for tracking additional information
- Validation
Config - Validation configuration shared by all entry points into the engine.
Enums§
- Severity
- Violation severity levels (SHACL Core §2.1.4
sh:severity). - Shacl
Error - Core error type for SHACL operations.
- Shape
Type - SHACL shape type.
Constants§
- VERSION
- OxiRS SHACL version
Statics§
- SHACL_
NS - SHACL namespace IRI
- SHACL_
VOCAB - SHACL vocabulary terms
Functions§
- init
- Initialize OxiRS SHACL with default configuration
Type Aliases§
- Result
- Result type alias for SHACL operations