Skip to content

Back to the catalog

github.comrepo

Semantica

Semantica is an open-source Python pipeline (pip install semantica) that ingests enterprise data and builds a queryable Context Graph and knowledge graph with deterministic (LLM-optional) reasoning, ontology management (OWL/SHACL/SKOS), and W3C PROV-O provenance for full decision auditability. It ships modules for ingestion (Databricks, Snowflake, SAP, Kafka, Git, etc.), NER/relation/event extraction, conflict detection and deduplication, Rete/Datalog/SPARQL reasoning, bi-temporal graph queries, polyglot graph storage (RDF stores and LPGs like Neo4j/Neptune), and integrations with Agno, CrewAI, LangChain, and MCP.

TL;DR Open-source deterministic knowledge-graph/context-graph framework giving LLM agents structured memory, ontology governance, and W3C PROV-O decision provenance.
Document

What it claims

Semantica positions itself as the deterministic "semantic/context layer" beneath an existing LLM/vector/agent stack, not a replacement for any of them. Two things the summary doesn't surface are central to the pitch: (1) decisions are first-class graph nodes, not log lines, and (2) the explainability on offer is explicitly system-level, not foundation-model-level — Semantica explains the context fed in, the decision produced, its provenance and the execution trail, but treats the LLM's internals as opaque. If you were hoping for insight into why the model itself produced a token, this is not that.

How to use it

The API shape for the decision-intelligence core (the part the summary names but doesn't show):

from semantica.context import ContextGraph
graph = ContextGraph(advanced_analytics=True)
decision_id = graph.record_decision(
    category="vendor_selection",
    scenario="Choose cloud provider for HIPAA workload",
    reasoning="AWS offers BAA, mature HIPAA tooling, and existing team expertise",
    outcome="selected_aws",
    confidence=0.93,
)
graph.trace_decision_chain(decision_id)   # full causal ancestry
graph.find_similar_decisions("cloud vendor", max_results=5)
graph.analyze_decision_impact(decision_id)
graph.check_decision_rules({"category": "vendor_selection"})

Causal edges take relationship_type restricted to CAUSED, INFLUENCED, or PRECEDENT_FOR. Exports go through graph.to_kg_dict(), the adapter that emits the {"entities", "relationships"} shape the RDF/temporal APIs expect.

The install story changed materially: core dropped from 44 to 22 dependencies, moving torch, spaCy, sentence-transformers, matplotlib, faiss-cpu, python-docx etc. into granular extras.

pip install semantica          # lightweight core, 22 deps
pip install "semantica[all]"   # old fully-bundled behaviour

Everything is also exposed via CLI (semantica doctor, command groups from ingest through mcp), a REST server on port 8000, and an MCP server (python -m semantica.mcp_server). Enterprise connectors (Databricks, Snowflake, SAP) each need their own extra, e.g. semantica[db-databricks].

Limits

The page is unusually candid, and these are the checks the summary omits entirely:

  • ReteEngine's alpha-node condition matcher is "intentionally simple" in this release. The docs twice warn you to validate match_patterns() output against your real rule set before wiring it into a production compliance gate. For an AML/compliance use case this is the load-bearing caveat.
  • Breaking changes this release: Entity.confidence is now Optional[float] (was float = 1.0); PolicyEngine.check_compliance now raises ProcessingError instead of returning False for rules it cannot evaluate; the crewai extra was removed (install crewai>=0.80.0 separately) to close unpatched chromadb/json-repair CVEs; the dev extra is gone.
  • Python 3.10+ required (3.8/3.9 dropped, 3.14 not yet supported).
  • Performance claims are thin: benchmarks cite a 118,000-node graph but the dedup/candidate-generation figures are "historical measurements recorded in CHANGELOG.md rather than an automated test assertion." Run pytest tests/vector_store/test_performance_benchmarks.py on your own data.
  • Some ingestors (DuckDB, Elasticsearch, Google Drive, HuggingFace, MongoDB, Pandas) ship but aren't re-exported from the top-level namespace — import them by full path.

The release also claims 40+ correctness-bug fixes (in-memory vector-ID reuse corrupting live vectors, FAISS/Qdrant/Milvus gaps, CLI commands calling nonexistent APIs), which is itself a signal about the maturity of the version you'd be adopting.

Organisations named here

  • Anthropic
  • Google
  • Spark Capital
  • Databricks
  • Snowflake
  • SAP
  • W3C
  • OpenAI
  • CrewAI
  • LangChain
  • Neo4j
  • RDF4J

Technologies named here

  • Semantica
  • Claude
  • Agno
  • Gemini
  • CrewAI
  • LangChain
  • MCP server
  • Databricks
  • Snowflake
  • SAP
  • Neo4j
  • FalkorDB
  • Apache AGE
  • AWS Neptune
  • Oxigraph
  • Blazegraph
  • Apache Jena
  • Eclipse RDF4J
  • Kafka
  • Kinesis
  • RabbitMQ
  • Pulsar
  • DuckDB
  • Elasticsearch
  • Google Drive
  • Hugging Face
  • MongoDB
  • pandas
  • FAISS
  • Qdrant
  • Weaviate
  • Milvus
  • Pinecone
  • pgvector
  • Datalog
  • OWL
  • Python
  • RDF
  • RDF4J
  • SAP OData
  • SHACL
  • SKOS
  • SPARQL

Techniques named here

  • Context Graph
  • Decision Intelligence
  • Deterministic Reasoning
  • Rete network reasoning
  • Recursive Datalog querying
  • Bi-temporal facts
  • Point-in-time graph snapshots
  • Entity-aware chunking
  • Relation-aware chunking
  • Graph-based chunking
  • Hierarchical chunking
  • Hybrid search with RRF fusion
  • Conflict detection and resolution
  • Entity resolution / deduplication
  • W3C PROV-O provenance tracking
  • Ontology generation and SHACL validation