Capabilities at a glance
The engine core is always built; every capability below is an opt-in crate or feature that the core does not depend on, so the core stays lean. Each links the standard it implements and its usage guide.
- SPARQL query — run SPARQL 1.1 and 1.2 over your data (guide).
- SPARQL Update — insert, delete, and load data with SPARQL 1.1 Update (guide).
- RDF parsing & ingest — load and parse Turtle, N-Triples, N-Quads, and TriG, with
transparent
.gz/.bz2/.zstdecompression (guide). - Rust-native RDF objects — bind a focus term to an owned or borrowed store, traverse outgoing/incoming predicates, and convert typed literal values without handling raw triples (guide).
- RDF 1.2 triple terms — store and query triple terms per RDF 1.2 Concepts (guide).
- Custom extension functions — register your own Rust functions under IRIs and call them in SPARQL (docs/extension-functions.md).
- RDFS / OWL-RL / N3 reasoning — materialise entailments under RDFS, the OWL 2 RL profile, and Notation3 (guide). N3 is measured against the w3c/N3 community-group suite (report); the community notation3tests suite runs in an advisory lane with no published baseline yet.
- SHACL validation — validate graphs against shapes with SHACL (guide).
- Full-text search — index and search RDF literals from SPARQL (guide).
- GeoSPARQL — spatial filters and functions over geometries with OGC GeoSPARQL (guide).
- Vector & similarity search — embedding-based nearest-neighbour and structural similarity over entities (guide).
- Natural-language & GenAI retrieval — schema introspection and grounded NL→SPARQL for LLM agents (guide).
- HDT archives — load compressed HDT datasets (crate).
- RDF stream processing — continuous windowed queries with RSP-QL (guide).
- Solid access control — enforce Solid WAC and ACP authorisation (crate).
- RDF Dataset Canonicalization — deterministic, blank-node-relabelled canonical form for hashing/signing/diffing with RDFC-1.0 (guide).
A note on SPARQL Update 1.1 vs 1.2
SPARQL 1.1 Update is fully supported: INSERT DATA, DELETE DATA, DELETE/INSERT … WHERE
(with USING / WITH), LOAD, CLEAR, CREATE, DROP, COPY, MOVE, and ADD, with
request-level atomicity for ;-separated bodies.
SPARQL 1.2 Update adds no new operations over 1.1;
its substantive change is the RDF 1.2 triple-term
semantics inside INSERT DATA / DELETE DATA and DELETE/INSERT … WHERE — inserting or
deleting a reifying triple (rdf:reifies <<( s p o )>>) operates on that triple term itself and
does not automatically assert or retract the asserted triple it refers to. sparq handles this:
triple terms are stored and matched as structural object terms, so a reifying triple is added or
removed as an exact term with no coupling to its asserted counterpart. This behaviour is exercised
by the engine's write tests (crates/sparq-engine/tests/rdfstar_write.rs); it has not been checked
against a formal SPARQL 1.2 conformance suite.
Research scaffolds (no security guarantee yet)
Two capabilities are research scaffolds. They are honest models of the protocols, but they do
not yet provide the cryptographic guarantee a relying party would need. Treat any engineering
numbers as indicative, not as an audited cryptographic guarantee. The two maturity caveats below
are single-sourced verbatim (build-time {{#include}}) from their canonical guides, so they
cannot drift from the source of truth — see the
zk-query-proofs guide,
the mpc guide, and
SECURITY.md for the full scope.
Zero-knowledge query proofs —
Research-stage / experimental — NOT-yet-sound. The composition verifier's soundness is the subject of an open audit (sq-qhy4 / sq-9hrn; remediation epic sq-1s2): a passing proof is NOT a guarantee the SPARQL statement holds under an adversarial prover. Read the "Honest scope" section before relying on a guarantee — only
Simpleentailment is proved; circuit members are fixed buckets. The query fragment covers BGP scans, integer FILTER (and the integer-valuedxsd:doublefragment), and a single-prover hidden cross-credential JOIN — the JOIN restricted to credentials sharing ONE issuer-signed revocation slot (sq-cuvmj; see "Honest scope").
Federated MPC —
Maturity (read first). EARLY / RESEARCH, native-only (deliberately not in the wasm build). The Shamir layer's reconstruction is RS-consistency-checked: it detects (and, with enough redundancy, robustly corrects) actively-tampered shares and reports the exact guarantee via
BackendInfo.malicious_security— but the degree-2tequality open in the hidden-value join is not hardened atn = 2t+1(see Gotchas). The primitives run as an in-process simulation (one process plays all parties) for correctness/cost counting, AND over a REAL multi-process loopback transport (transportmodule — each party its own process over127.0.0.1; all fourQueryClasscells incl. the multi-round oblivious shuffle/sort run on the wire) for MEASURED wall-clock + bytes-on-wire. The collaborative ZK proof of correctness + issuer-attestation is not implemented: those methods returnMpcError::NotYetImplementednaming their gate. No fake crypto anywhere. See Gotchas for the full envelope.
Interfaces
- Interfaces — a CLI, a SPARQL 1.1 Protocol + Graph Store HTTP Protocol HTTP server, a WebAssembly / JavaScript build, and a Python package, plus a Kubernetes Helm deployment.