Grounded
The agent traverses your definitions, so an answer names the same entity your finance system does, and knows whether “counterparty” and “account holder” are the same thing or deliberately are not.
You are here
The graph engineering lifecycle
Design, configure, engineer, iterate and automate graph model production: the whole lifecycle, without writing bespoke ingest code for each project.
Context for AI
graph.build turns your source systems into a governed knowledge graph of entities, relationships and the definitions behind them, then serves it to your models as structured context with provenance attached. Your agents stop guessing what a customer is, because somebody wrote it down.
Input
Class
Literal
IRI Config
http://graph.build/ontology/
Publish
supply-chain.ontology
Name supply-chain
Access Private
Latest 2026-08-13 11:19
Version v14
publish to inform or restrict
the creation of other models
Customers and partners
What it does
Model the domain, map the sources to it, write the result. Nothing in that chain is proprietary: the ontology comes out as OWL and RDFS, the mapping is a file you keep, the output is RDF or node and edge CSV, and the target is any database that speaks SPARQL, Gremlin or openCypher. Everything below is the product, not an illustration of it.
01 · model
Entities, relationships, constraints and the vocabulary the business already uses, as RDF or as a labelled property graph, in the same editor. The analyst edits it directly by dragging source fields onto the model; nobody opens a ticket. There is a code view for the people who want one, and it round-trips.
The consequence: one answer to “what is a customer”, and it is version-controlled.
Supplier 4,214 nodes
legalName string · required
dunsNumber string · unique
supplies → Part
operates → Site
tier enum · 1–3
validates · 0 constraint violations
02 · transform
Point a Transformer at SQL, a REST API, a Kafka stream or a pile of CSV, JSON, XML, XLSX and ODS files, and it produces graph data shaped by the model. What comes out is subject, predicate, object: open standard triples you could read yourself. Over a hundred built-in functions cover the usual reshaping, and you can add your own for the cases that are only yours.
The consequence: because the ontology exists first, Studio can warn you as you build that a mapping does not conform to it, or refuse it outright. Records that fail on the way through go to a dead letter queue rather than disappearing.
n-triples
8 emitted, validated against supply-chain.ontology
all passed
unmapped: 0 · quarantined rows keep their reason
03 · write
The transformation writes straight into your graph database. Writers emit its native load in insert or update mode, so the run that produces the data is the run that lands it, with no hand-off in between. Change data capture is the addition on top: point it at any Debezium-compatible source and the graph keeps itself in step. If you would rather not load at all, take the same output as files, RDF or node and edge CSV.
The consequence: the graph is a system of record your teams query, not a snapshot someone refreshes.
AI context
Retrieval over documents returns passages that resemble the question. Retrieval over a modelled graph returns the entities themselves, the relationships between them, and where each one came from. The difference is whether an answer can be checked.
The agent traverses your definitions, so an answer names the same entity your finance system does, and knows whether “counterparty” and “account holder” are the same thing or deliberately are not.
Every node carries the source and the run that produced it. “Where did that come from” has an answer you can hand to an auditor.
Change data capture keeps the graph in step with the systems underneath, so retrieval is not reading last quarter.
MCP on the Studio Node: an assistant reads the published ontology, read-only, with no source credentials handed to the model
Vendor independence
Most teams pick a graph database before they know what they are modelling, and the model ends up shaped by that choice, particularly with property graphs, where nothing is standardised and the shape becomes commercially sticky. graph.build keeps the model in the platform and treats the database as an output. Switching vendor is a configuration change and a re-run, which also means you can benchmark two of them on your own model before committing to either.
one model · four targets
supply-chain.model · v14
Same model, four generated loads. Changing target is a configuration change and a re-run.
Deploy it for real
Every component ships as a Docker container. On-premise or in your cloud, your network, your keys. No data leaves your VPC.
Every component is a container. Run the whole platform on a laptop before you run it anywhere else.
Transformers and Writers scale horizontally; add processors for a bigger load rather than a bigger box.
On-premise, or your own tenancy on AWS, Azure or Google Cloud. Sources, model and database stay inside your perimeter.
Kafka in, CDC through, scheduled or event-driven. It joins the platform you have rather than replacing it.
What you get out
The builder is drag and drop, and what it produces is not trapped inside it. Press Generate and the model becomes an ontology in OWL and RDFS, or node and edge definitions if you are building a property graph. Read it, put it in version control, hand it to a team that has never heard of us.
2 classes · 5 predicates · published v14
One model, two standard outputs, which is why the work survives a change of database and a change of us.
Any database that supports SPARQL, Gremlin or openCypher, in both insert and update mode. That covers Amazon Neptune, Neo4j, Stardog, Memgraph, GraphDB, RDFox, Virtuoso, AllegroGraph and a couple of dozen more. RDF* is supported. The current list is on the compatibility page.
Yes, and this is the point of the platform. The model lives in graph.build, so moving it is a configuration change and a re-run. This holds for property graphs as well as RDF, which is where teams usually find themselves stuck. A property graph model is not standardised, so its shape tends to bind you to the vendor you built it in.
Neo4j's tooling is excellent and it is built around Neo4j's database. graph.build is vendor-agnostic by default: the same model writes to any of the supported databases, and you can benchmark several on your own data before choosing one.
No. One click opens the model in code and you can edit it there, then flick back. The platform is designed so that no coding is required, not so that coding is forbidden.
Yes. You work on the region you care about rather than the whole graph. One person holds edit control at a time and hands it over explicitly, while everyone else has the model open read-only. The platform has run some very large and complex models; we are happy to share benchmarks against a use case like yours.
SQL databases, REST APIs, Kafka streams, and CSV, JSON, XML, XLSX and ODS files. Remote data can also be virtualised into the model rather than copied into it.
Change data capture from any Debezium-compatible source, including SQL databases, MongoDB and Cassandra, applied as inserts, updates or deletes, with provenance carried through.
Every component is a Docker container, deployed on-premise or in your own cloud tenancy. Your data does not leave your infrastructure.
It queries your graph database directly, in whichever dialect that database speaks, under the access control you already run there. Separately, Studio publishes a read-only MCP server so an assistant can read the ontology itself: the classes, the properties and the relationships between them. That is the part most teams are missing, because it is what tells a model what your data means.
No, and you should keep it. Vector search finds passages that resemble a question; graph retrieval returns the entities, how they relate, and where each came from. They answer different questions and the strong systems run both. What a vector index cannot give you is a definition.
Compatibility
These are compatibility targets, not customers. Any database that speaks SPARQL, Gremlin or openCypher is supported as standard, in both insert and update mode, and graph.build generates the schema and the native load for each one from the same model.
Amazon Neptune
Neo4j
Memgraph
GraphDB
Stardog
RDFox
Datagraphs
JanusGraph