

Write facts.
JSON records through the SDKs, or RDF. The write gets a commit number.
Records become linked facts. SHACL rules check writes, and a write that breaks one is refused. A read can name a commit and get the same rows again.
In reject mode, a write that breaks a rule returns 400. Nothing from it is stored.






Queries over HTTP and the SPARQL 1.1 Protocol. YASGUI, Protégé and RDFLib connect.
A rejection lists the rule, the record and the path.
Writes get a commit number. Pin a read with as_of_commit_seq.


Set entailment on a query: none, subclass, rdfs or owl. Inferred facts are computed when you ask. Nothing extra is stored.
Standard tools for RDF and SPARQL work with your graph.
SPARQL 1.1SELECT and ASK over HTTP. CONSTRUCT and DESCRIBE as Turtle or N-Triples.
INSERT DATASPARQL Update for new facts. A retry with the same Idempotency-Key is safe.
SHACLShapes published in off, warn or reject mode. A dry run checks a write first.
OWLEntailment per query: none, subclass, rdfs or owl.
commit-atFind the commit that was current on a date.
compareCompare what the graph says at two points in time.


JSON records through the SDKs, or RDF. The write gets a commit number.


Published SHACL shapes check the write. A refused write stores nothing.


Pin a read to a commit. The same query returns the same rows.
No. The SDKs take JSON records and return JSON. SPARQL and OWL are there when you need them.
SPARQL 1.1 queries and the SPARQL 1.1 Protocol. SPARQL Update supports INSERT DATA.
HTTP 400 with the violations: the rule, the record, the path and a message.
Yes. A commit with dry_run=true returns the SHACL result and stores nothing.