Privacy is declared once, in the model. It then applies everywhere the data is viewed: in Explore, in the AI assistant, and in any tool built on the graph.
As long as a contract, an amount or customer data stayed locked in its original tool, it was known to a small number of people. By reconciling silos into a single graph, this accidental protection disappears — and connecting information that never used to cross paths can even surface sensitive data that wasn't sensitive individually.
Security is therefore not an option you switch on tool by tool. It's embedded in the very structure of the data.
Before feeding the graph, a master schema is defined: what types of elements exist, what links connect them, what attributes they carry. It's at this level, and nowhere else, that confidentiality is set: the "Contract" type is confidential, the "amount" attribute even more so, the "Customer" type stays accessible to all.
No need to tag every contract one by one: once a type is classified, all its instances inherit the rule.
A contract created today and one created in six months follow the same rule, with no manual action.
Data already present inherits the default level of its type, exactly like new data.
Every user starts at the lowest level: only non-sensitive information is visible to them. Each context's administrators then widen their rights according to their actual legitimacy.
The same user can therefore have broad access on the project they lead and restricted access on one where they only provide support. Access granted for a one-off need never turns into permanent, blanket access.
When a graph is shared to another context, each user keeps their own level: the same graph appears detailed to some, anonymized to others.
Right before sending the response, the system compares each piece of data's confidentiality level to the user's access level in their context. Every user literally receives their own version of the graph, including when they ask the question in natural language to the AI assistant.
If an attribute is too sensitive, only that attribute is masked. If it's a whole node or link type, the element isn't removed but anonymized as "******".
Rather than making data disappear, the system preserves the topology: even filtered, the graph stays coherent and navigable.
Adding a confidentiality level doesn't require a rebuild: you enrich the existing hierarchy.
Model, rights and filtering are three separate building blocks: for an audit, presenting the ontology and the assignment rules is enough.
A type not classified in the ontology gets no protection beyond the default level. We support business, compliance and technical teams through this work, then through the periodic review of rights.
Insight on knowledge graphs, straight to your inbox.