Superset philosophy SutraDB is a superset of W3C standards — both in data model (RDF-star ⊃ RDF 1.2) and query language (SPARQL + VECTOR_SIMILAR ⊃ SPARQL 1.1). Any valid standard query or dataset works unchanged. Extensions add what the standards can't express.

Standards We Follow

StandardStatusNotes
RDF 1.1 / RDF-star Superset Full RDF-star support (triples in any position). All RDF 1.2 data is valid. Details →
SPARQL 1.1 Superset Standard queries work as-is. Extensions: VECTOR_SIMILAR, VECTOR_SCORE. Details →
SPARQL Protocol Implemented HTTP GET/POST to /sparql endpoint. JSON results format.
N-Triples Implemented Full N-Triples parsing for bulk data import via POST /triples.
OWL 2 Planned Opt-in query-time reasoning layer. Will not modify stored data. Details →
Turtle / N-Quads Planned Parser planned for data ingestion. Considering Oxigraph's oxttl crate.
SPARQL Graph Store Protocol Planned PUT/POST/DELETE for named graph management.

ACID Compliance

SutraDB targets full ACID compliance:

PropertyStatusImplementation
Atomicity Yes Triple insertions are atomic — a triple is either fully inserted into all three indexes (SPO/POS/OSP) or not at all. Vector insertions atomically create both the triple and the HNSW entry.
Consistency Yes Dimension mismatches are hard errors. Duplicate triples are rejected. All three indexes are always consistent with each other.
Isolation Yes Mutex-based serialization in server mode. Single-writer guarantee ensures no dirty reads. Sled's persistent store provides snapshot isolation.
Durability Partial In-memory store is volatile (by design — serverless mode). Sled-backed persistent store (.sdb files) provides full durability with WAL. Planned: crash recovery for HNSW indexes.

Deployment Modes

Serverless (Default)

Like SQLite. Open a .sdb file directly from your application. No daemon, no port, no configuration. Single-process access.

sutra query "SELECT * WHERE { ?s ?p ?o }" --data my.sdb

Server Mode

Like PostgreSQL. Start a SPARQL HTTP endpoint for multi-client access, remote queries, and REST API operations.

sutra serve --port 3030 --data my.sdb

What We Deliberately Skip

TechnologyStatusRationale
SQL Never Wrong model for graph data. Use PostgreSQL.
MongoDB Query Language Never Wrong model for graph data. Use MongoDB.
GraphQL Never Application-layer concern. Build a GraphQL wrapper over SPARQL if needed.
Cypher Planned Translation layer over SPARQL, not a native engine. For Neo4j migration convenience.
RDFS Inference Never Too implicit. OWL reasoning (opt-in, explicit) covers the useful subset.

File Format

SutraDB uses the .sdb file extension. This is deliberately not a standard RDF serialization format — it's a binary storage format containing:

The .sdb extension signals that this file contains a superset of RDF — standard triples plus native vector indexes that no RDF serialization format can represent.