Semantic Optimizer
Semantic Optimization makes your complex data workloads more efficient, which in turn improves overall system performance and scalability.
Users can express their problems in a way that is logically clear to them, regardless of the shape of the graph or the distribution of the data and spend more time solving the business problem and less time worrying about how to write the most performant query. Think of the Semantic Optimizer as an “algorithm designer”.
In a navigational graph system, this algorithm design falls to the query author, or to a human expert helping the author. And often it falls back to the vendor, who may even rewrite the query in the graph database’s internal implementation language.
In RAI’s relational knowledge graph system, the semantic optimizer takes input Rel queries and rewrites them to get the same results but with less intermediate data or fewer calculations. These rewrites exploit the graph’s schema, knowledge, and ontology to generate an optimal Rel program. The rewrites are mathematically provably equivalent to the original queries, and thus will return the same results. This provable equivalence is dependent on having an entirely deterministic query language, such as Rel, operating against a relational data model.