Documentation
Everything you need to run Oxid-DB: the neurosymbolic engine where logical reasoning and vector search share a single identity space.
Research preview · v0.8.5Introduction
Oxid-DB is a single-node, embedded database that fuses an ontology reasoner and an approximate-nearest-neighbour index into one engine. Instead of stitching a graph store to a vector store with glue code, every node lives in a single identity space, so the ontology can filter candidates during the search rather than after it.
These docs cover the core concepts behind the engine, the OxQL query language, and how the system behaves in production. Oxid-DB is an early research preview; each page tells you what is shipped today and what is still on the roadmap.
Start with Architecture for how the engine collapses logic and vectors into one store, then read Hybrid queries to see it in action.
Architecture
Traditional stacks keep symbols and vectors in separate systems and pay a brittle sync tax to keep them aligned. Oxid-DB collapses that into one store: a node's logical type, its properties and its embedding are all attributes of the same identity.
An EL++ ontology reasoner materialises inferred classes so IS-A is a lookup, not a runtime proof.
A built-in ANN index ranks nodes by semantic distance, over the same nodes the reasoner filters.
One node id ties logic and vectors together, so a hybrid query is a single pass, not a join.
Ontologies & reasoning
Load a standard OWL ontology and Oxid-DB compiles it into an EL++ classification. As you insert data, the reasoner assigns each node its inferred classes so that subsumption (IS-A) queries resolve against materialised types instantly.
Because inference runs at ingest, a query for ?x IS-A Beverage also returns every Beer and Lager: no explicit rules, no query-time reasoning cost.
Want the algorithm itself: EL normal form, the five completion rules, and exactly where the engine is complete? Read the reasoner deep-dive.
Vectors & embeddings
Insert text and Oxid-DB embeds it locally with a bundled ONNX model: vectors never leave your machine. Embeddings are indexed for approximate nearest-neighbour search and attached to the node's identity, so they are filterable by the very same ontology.
Bring your own vectors, or let the engine create them from plain text via FastEmbed, OpenAI, or Ollama, see how the database makes embeddings.
OxQL basics
OxQL is Oxid-DB's query language. A query binds a variable to a set of nodes with FIND, constrains it with WHERE, and bounds the result with LIMIT.
-- every OxQL query starts from a set of nodesFIND ?xWHERE ?x IS-A BeerLIMIT 10
Hybrid queries
The point of Oxid-DB is the NEAR clause: rank nodes by semantic similarity while symbolic constraints prune the candidate set in the same pass. Logic and meaning, one query, one traversal.
-- filter by the ontology, rank by the vector index,-- in one single pass over one identity spaceFIND ?xWHERE ?x IS-A PaleLagerAND ?x.abv < 5.5NEAR ?x TO "crisp, dry, noble hops"LIMIT 5
Here the ontology restricts the search to sub-5.5% pale lagers before a single vector is scored, so the ANN index only ever ranks nodes that already satisfy the logic.
Durability & ACID
Writes are ACID. A write-ahead log makes every committed transaction crash-safe, and MVCC snapshots give readers a consistent view without blocking writers.
Limitations
Oxid-DB is a research preview. It is a genuinely novel engine that is also honestly early: we would rather tell you exactly where the edges are than overclaim.
Authentication exists but is still under development and not yet fully mature, and there is no TLS yet. Do not expose the engine to an untrusted network. The engine is single-node; replication and clustering are on the roadmap, not shipped.