Skip to main content

Crate shifty_engine

Crate shifty_engine 

Source
Expand description

Validation + SHACL-AF inference execution (Layers 3, 6, 7).

Layer 3 lives here: the naive denotational evaluator that is the conformance oracle — relational path evaluation (path), value-type checks (value), and shape/schema satisfaction ([validate]). The rule/fixpoint inference engine (Layer 6) and compiled executors (Layer 7) come later; every execution mode must agree with this oracle.

Re-exports§

pub use enumerate::EnumOptions;
pub use enumerate::FixpointResult;
pub use enumerate::RepairSolution;
pub use enumerate::candidates;
pub use enumerate::enumerate_repair;
pub use enumerate::repair_to_fixpoint;
pub use gate::RepairOutcome;
pub use gate::apply;
pub use gate::gate;
pub use infer::InferenceOutcome;
pub use infer::infer;
pub use infer::infer_graphs;
pub use infer::infer_with_context;
pub use report::ValidationReport;
pub use report::ValidationResult;
pub use report::report_to_graph;
pub use report::validate_report;
pub use report::validate_report_graphs;
pub use report::validate_report_graphs_with_mode;
pub use report::validate_report_graphs_with_mode_and_options;
pub use report::validate_report_with_options;
pub use synthesize::synthesize;
pub use synthesize::synthesize_focus;
pub use validate::NonStratifiable;
pub use validate::Reason;
pub use validate::ValidationGraphMode;
pub use validate::ValidationOptions;
pub use validate::ValidationOutcome;
pub use validate::Violation;
pub use validate::focus_nodes;
pub use validate::validate;
pub use validate::validate_graphs;
pub use validate::validate_graphs_with_mode;
pub use validate::validate_graphs_with_mode_and_options;
pub use validate::validate_plan;
pub use validate::validate_plan_graphs;
pub use validate::validate_plan_graphs_with_mode;
pub use validate::validate_plan_graphs_with_mode_and_options;
pub use validate::validate_plan_with_context;
pub use validate::validate_plan_with_context_and_options;
pub use validate::validate_plan_with_options;
pub use validate::validate_with_context;
pub use validate::validate_with_context_and_options;
pub use validate::validate_with_options;
pub use witness::BlockReason;
pub use witness::FocusSat;
pub use witness::FocusWitness;
pub use witness::PathSupport;
pub use witness::RelKind;
pub use witness::SatTrace;
pub use witness::Witness;
pub use witness::satisfy_shape;
pub use witness::shape_id_for_iri;
pub use witness::witness_node;
pub use witness::witness_shape;
pub use witness::witness_violations;

Modules§

enumerate
The enumeration reference driver (docs/07-repair-drivers.md §4) and the candidates helper (docs/06-repair.md §3.3).
frozen
Immutable dictionary-encoded RDF dataset built at the inference→validation boundary. Implements spareval::QueryableDataset so Oxigraph’s prepared SPARQL evaluator can execute queries against it without a mutable Store.
gate
The re-validation gate (docs/06-repair.md §8).
infer
SHACL-AF rule inference (Layer 6) — least-fixpoint forward chaining.
path
Relational evaluation of the path algebra ⟦π⟧^G (doc 00 §2, Table 1).
profile
Opt-in execution telemetry (doc §269). Collected via a thread-local so no validation API signatures change. Enable with enable(), consume with take().
report
W3C sh:ValidationReport generation (component-granular, RDF-driven).
synthesize
Synthesis: FocusWitnessRepairTree (docs/06-repair.md §6).
validate
Reference shape satisfaction G, v ⊨ φ and schema validation G ⊨ S (doc 00 §3–§4, Table 2). This is the conformance oracle: the optimized engines in later layers must agree with it.
value
Evaluation of value types test(τ) and the term ordering used by sh:lessThan, ranges, etc. Naive reference semantics.
witness
The witnessing evaluator (docs/06-repair.md §5) — the structured, lossless sibling of explain. For a focus node that fails a statement it returns a Witness: the failed sub-DAG of φ, pruned to exactly what did not hold, with the structural gap at each node. Its dual, SatTrace, records why a shape currently holds, so a Not(φ) failure can be repaired by breaking φ. The two are mutually recursive through Not.