What SutraDB follows, extends, and deliberately skips.
| Standard | Status | Notes |
|---|---|---|
| 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. |
SutraDB targets full ACID compliance:
| Property | Status | Implementation |
|---|---|---|
| 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. |
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
Like PostgreSQL. Start a SPARQL HTTP endpoint for multi-client access, remote queries, and REST API operations.
sutra serve --port 3030 --data my.sdb
| Technology | Status | Rationale |
|---|---|---|
| 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. |
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.