Expand description
§OxiRS Physics - Physics-Informed Digital Twin Bridge
Status: Production Release (v0.2.2)
Connects RDF knowledge graphs with SciRS2 physics simulations.
§Features
- Parameter Extraction: Extract simulation parameters from RDF graphs and SAMM Aspect Models
- Result Injection: Write simulation results back to RDF with provenance
- Physics Constraints: Validate results against conservation laws
- Digital Twin Sync: Synchronize physical asset state with digital representation
- SPARQL Integration: Build and execute SPARQL queries for entity properties
- RDF Literal Parsing: Parse typed literals with full SI unit conversion
- SAMM Bridge: Parse SAMM Aspect Model TTL and bridge to simulation types
§Architecture
[RDF Graph] ──extract──> [Simulation Params]
│
▼
[SciRS2 Simulation]
│
▼
[Simulation Results]
│
┌────────────────────┴────────────────┐
▼ ▼
[Physics Validation] [Provenance Tracking]
│ │
▼ ▼
[Result Injection] ─────────────> [RDF Graph Updated]§Examples
use oxirs_physics::simulation::SimulationOrchestrator;
use oxirs_physics::digital_twin::DigitalTwin;
// Create orchestrator
let orchestrator = SimulationOrchestrator::new();
// Extract parameters from RDF
let params = orchestrator.extract_parameters(
"urn:example:battery:001",
"thermal_simulation"
).await?;
// Run simulation
let result = orchestrator.run("thermal_simulation", params).await?;
// Inject results back to RDF
orchestrator.inject_results(&result).await?;§SPARQL / RDF Integration
use oxirs_physics::rdf::sparql_builder::{PhysicsPropertyQuery, PhysicsProperty};
use oxirs_physics::rdf::literal_parser::{parse_rdf_literal, PhysicalUnit, convert_unit};
// Build a SPARQL SELECT query
let query = PhysicsPropertyQuery::new("urn:example:motor:42")
.with_property(PhysicsProperty::Mass)
.with_property(PhysicsProperty::Temperature)
.build_select_query();
assert!(query.contains("SELECT"));
// Parse a typed RDF literal
let value = parse_rdf_literal("9.80665 m/s^2", None).expect("parse failed");
assert_eq!(value.unit, PhysicalUnit::MetersPerSecondSquared);
// Convert units
let in_g = convert_unit(&value, &PhysicalUnit::StandardGravity).expect("convert failed");
assert!((in_g.value - 1.0).abs() < 1e-5);Re-exports§
pub use error::PhysicsError;pub use error::PhysicsResult;
Modules§
- celestial_
mechanics - Celestial Mechanics
- conservation
- Conservation Laws, Physical Bounds, and Buckingham Pi Dimensional Analysis
- constraints
- Physics Constraints and Validation
- control_
systems - PID and closed-loop control system simulation.
- digital_
twin - Digital Twin Management
- error
- Error Types for Physics Module
- fem
- Finite Element Method (FEM) for Structural and Thermal Analysis
- fluid_
dynamics - Basic computational fluid dynamics calculations.
- heat_
transfer - Heat Transfer Simulation
- kinematics
- Kinematic equations for linear and rotational motion.
- material_
database - Material Property Database
- mesh_
refinement - Adaptive mesh refinement for FEM (Finite Element Method)
- modal_
analysis - Modal Analysis — Eigenfrequency Extraction
- optics
- Optical physics.
- predictive_
maintenance - Predictive Maintenance Module
- quantum_
mechanics - Basic quantum mechanics calculations.
- rdf
- RDF/SPARQL Integration for Physics Simulations
- rdf_
extraction - RDF/SPARQL Extraction for Physics Models
- samm
- SAMM Aspect Model Bridge for Physics Simulations
- simulation
- Physics Simulation Orchestration
- statistical_
mechanics - Statistical Mechanics Module
- thermal_
analysis - Thermal finite-element analysis.
- thermal_
system - Thermal analysis for physical systems: heat conduction, convection, and radiation.
- vibration_
analysis - Vibration Analysis
- wave_
propagation - Wave Propagation Simulation
Constants§
- VERSION
- Physics simulation bridge version