Skip to main content

Crate oxirs_shacl

Crate oxirs_shacl 

Source
Expand description

§OxiRS SHACL - RDF Validation Engine

Version docs.rs

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

§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:datatype constraint 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:node constraint 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§

ConstraintComponentId
SHACL constraint component identifier.
Shape
SHACL shape representation.
ShapeId
SHACL shape identifier.
ShapeMetadata
Shape metadata for tracking additional information
ValidationConfig
Validation configuration shared by all entry points into the engine.

Enums§

Severity
Violation severity levels (SHACL Core §2.1.4 sh:severity).
ShaclError
Core error type for SHACL operations.
ShapeType
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