Regulatory environments are catching up to AI faster than most teams expect. Whether it's GDPR's right to explanation, the EU AI Act's transparency requirements, or internal audit requests, production AI systems increasingly need to answer a simple but hard question: why did you do that?
The Audit Gap
Most AI systems log inputs and outputs, but not the reasoning path between them. When something goes wrong, or when a regulator or customer asks, teams are left reconstructing intent from LLM outputs and scattered logs. This is expensive, error-prone, and sometimes impossible.
Semantica's approach is different: track decisions as structured data from the moment they are made. Not as log lines, but as first-class graph nodes with full provenance, confidence scores, and causal links to the entities and rules that drove them.
The Reasoning Engine
Semantica ships four reasoning engines that can run alongside your LLM calls. Each engine produces an explainable inference path: a chain of steps you can serialize, log, and present to an auditor.
- Forward Chaining: IF/THEN rule execution over the context graph.
- Rete Network: high-throughput pattern matching for complex rule sets.
- Datalog: recursive, declarative queries over facts and rules.
- SPARQL Reasoning: graph queries over RDF-structured knowledge.
from semantica import ReasoningEngine, ContextGraph
graph = ContextGraph()
engine = ReasoningEngine(graph)
# Add a domain rule
engine.add_rule(
name="high_risk_escalation",
condition=lambda ctx: ctx.get("risk_score", 0) > 0.8 and ctx.get("tier") == "enterprise",
action="escalate_to_senior_review",
explanation="Risk score above threshold for enterprise customers triggers senior review",
)
# Run inference — get back a full explanation trace
result = engine.infer(context={
"risk_score": 0.91,
"tier": "enterprise",
"account_id": "acc_4892",
})
print(result.outcome) # "escalate_to_senior_review"
print(result.rule_fired) # "high_risk_escalation"
print(result.explanation) # human-readable reasoning trace
print(result.confidence) # 0.91
print(result.entities_used) # ["acc_4892", ...]W3C PROV-O Compliance
Every decision recorded in Semantica is compatible with the W3C PROV-O provenance ontology. This means you can export decision lineage in a standard format that legal, compliance, and external auditors can process with off-the-shelf tooling.
Putting It Together
The combination of structured decision tracking, explainable reasoning engines, and W3C PROV-O export gives compliance-conscious teams a solid foundation. When the auditor asks 'show me all decisions made on account X between these dates', you can answer in minutes rather than days.