Files
semantica/README.md
T
Mohd Kaif 0dfdf66f82 docs(readme): remove dividers, rebrand to semantica-agi org (#612)
Remove all horizontal rule dividers for a cleaner premium look.
Replace all Hawksight-AI references with semantica-agi org URLs and update footer attribution from Hawksight AI to Semantica.
2026-06-11 21:14:12 +05:30

45 KiB
Raw Blame History

Semantica

The Context & Accountability Layer for AI Systems

Auditable  ·  Governed  ·  Explainable  ·  Production-Ready

PyPI Total Downloads Python 3.8+ License: MIT CI Discord Docs

Website  ·  Docs  ·  Discord  ·  Twitter/X  ·  YouTube  ·  PyPI  ·  Changelog

Most AI agents act without a trail.

They store embeddings, not meaning. They make decisions that cannot be audited, recall context that cannot be explained, and produce outputs that cannot be traced back to a source. Regulators, auditors, and enterprise risk teams are asking the same question: can you prove what your AI did and why?

Semantica is the Context and Accountability Layer that sits alongside your LLM and vector store — adding structured intelligence, causal reasoning, and a full audit trail to every decision your agents make.

Core capabilities:

  • Context Graphs — structured, queryable graph of everything your agent knows, decides, and reasons about
  • Decision Intelligence — every decision is a first-class object: traceable, searchable by precedent, causally linked
  • AI Governance — policy enforcement, SHACL constraints, conflict detection, and compliance rule checks built in
  • Full Auditability — W3C PROV-O provenance on every fact; audit trail exportable to JSON, CSV, or RDF
  • Reasoning Engines — forward chaining, Rete network, Datalog, SPARQL — explainable paths, not black boxes
  • Drop-in Integrations — Agno native, 12-tool MCP server, 50+ CLI commands, 109 REST endpoints, plugins for 8 editors

Quick Start  ·  Why Semantica  ·  Architecture  ·  Context Graphs  ·  Decision Intelligence  ·  Module Showcase  ·  CLI  ·  Integrations  ·  Performance  ·  Install

See It in Action

Semantica Knowledge Explorer — live graph, decisions, entity resolution, ontology hub

Semantica — Full Platform Walkthrough on YouTube

Watch the full platform walkthrough →

Knowledge Explorer · Context Graphs · Reasoning Engine · Decision Intelligence · Ontology Hub

Quick Start

pip install semantica
from semantica.context import ContextGraph

graph = ContextGraph(advanced_analytics=True)

# Every agent decision becomes a queryable, auditable knowledge node
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,
)

# Ask "why did this happen?" and get a real, structured answer
chain     = graph.trace_decision_chain(decision_id)      # full causal ancestry
similar   = graph.find_similar_decisions("cloud vendor", max_results=5)  # precedents
impact    = graph.analyze_decision_impact(decision_id)   # downstream influence map
compliant = graph.check_decision_rules({"category": "vendor_selection"})  # policy check

If Semantica solves a real problem for you, a star helps others find it.

Star on GitHub  ·  Join Discord

Why Semantica

Vector DB + RAG Plain LLM Memory Semantica
Recall method Embedding similarity Token window Graph traversal + semantic search
Decision history Not stored Not stored First-class queryable objects
Provenance None None W3C PROV-O, source-linked
Reasoning None Black box Forward chain, Rete, Datalog, SPARQL
Conflict detection Silent overwrite Silent overwrite Detected, flagged, resolved
Time travel No No Point-in-time graph snapshots
Compliance export None None PROV-O, SHACL, OWL, RDF
Policy enforcement None None Built-in rule engine + SHACL
Entity resolution No No Blocking + semantic deduplication
Multi-agent context Separate per agent Separate per agent Single shared intelligence layer

Semantica does not replace your LLM or your vector store — it adds the structured intelligence and accountability layer they cannot provide.

Context Graphs

A Context Graph is the structured memory layer that traditional RAG is missing. Instead of flat embeddings that answer "what is similar?", a Context Graph answers "what is connected, why, and how?"

Every entity, relationship, decision, and fact is a first-class node — queryable by graph traversal and neighbor expansion. Entities link to source documents. Decisions link to evidence and consequences. Facts carry full provenance. Conflicts are detected, not silently overwritten.

from semantica.context import ContextGraph, AgentContext
from semantica.vector_store import VectorStore

graph = ContextGraph(advanced_analytics=True)

# Add nodes and typed edges
graph.add_node("acme_corp",    "Organization", name="Acme Corp", industry="SaaS")
graph.add_node("alice_chen",   "Person",       name="Alice Chen", role="CTO")
graph.add_node("contract_001", "Contract",     value=2_400_000, currency="USD")

graph.add_edge("alice_chen", "acme_corp",    edge_type="works_for", since="2019-03-01")
graph.add_edge("acme_corp",  "contract_001", edge_type="party_to",  signed="2024-01-15")

# Graph traversal — hop through the graph from any node
neighbors = graph.get_neighbors("acme_corp", hops=2)

# Point-in-time snapshot — the graph as it existed on a past date
snapshot  = graph.state_at("2024-01-01")

# AgentContext — high-level API for agent memory workflows
vs  = VectorStore(backend="faiss")
ctx = AgentContext(vector_store=vs, knowledge_graph=graph)
ctx.store("Alice approved the Acme renewal in Q1 2024", conversation_id="conv_001")
retrieved = ctx.retrieve("who approved the Acme contract?")

Why graph over embeddings:

  • Traversal finds connections embeddings miss — a person 3 hops from a contract
  • Every node carries provenance — you can always ask "where did this come from?"
  • Conflicts are detected and flagged before they corrupt your knowledge base
  • Point-in-time snapshots let you replay history without reprocessing

Decision Intelligence

Decision Intelligence turns every AI choice from an ephemeral inference into a permanent, auditable, queryable record. It answers "what did your AI decide, why, and what happened next?" — the question regulators and enterprise risk teams ask with increasing frequency.

In Semantica, a decision is not a log line. It is a first-class graph node with a full lifecycle:

record_decision()          → stored as a graph node with full structured context
add_causal_relationship()  → linked to upstream causes and downstream effects
find_similar_decisions()   → semantic precedent search across all past decisions
trace_decision_chain()     → full causal ancestry back to root causes
analyze_decision_impact()  → downstream influence map — everything this decision affected
check_decision_rules()     → policy compliance gate against configurable rule sets
export / audit trail       → W3C PROV-O, CSV, or JSON for regulator submission
from semantica.context import ContextGraph

graph = ContextGraph(advanced_analytics=True)

# Record decisions with full structured context
app_id = graph.record_decision(
    category="credit_application",
    scenario="Personal loan — $85k income, 31% DTI, 3yr employment",
    reasoning="Income meets threshold; employment stable; no adverse credit events",
    outcome="proceed_to_underwriting",
    confidence=0.88,
    metadata={"applicant_id": "A-7291"},
)
uw_id = graph.record_decision(
    category="loan_underwriting",
    scenario="Underwriting review for A-7291",
    reasoning="DTI within policy; clean 36-month credit history",
    outcome="approved",
    confidence=0.94,
)
rate_id = graph.record_decision(
    category="interest_rate",
    scenario="Rate assignment for approved loan A-7291",
    outcome="rate_set_8.9pct",
    confidence=0.99,
)

# Build the auditable causal chain
graph.add_causal_relationship(app_id, uw_id,   relationship_type="triggers")
graph.add_causal_relationship(uw_id,  rate_id, relationship_type="enables")

# Query the intelligence
chain     = graph.trace_decision_chain(rate_id)
similar   = graph.find_similar_decisions("personal loan approval, 31% DTI", max_results=5)
impact    = graph.analyze_decision_impact(uw_id)
compliant = graph.check_decision_rules({"category": "loan_underwriting", "confidence": 0.94})

Module Showcase

Semantica is a full platform. Every module is independently importable and composable. Below are working examples for each.

semantica.ingest — Multi-Source Ingestion

Ingest from files, web, databases, APIs, streams, email, Git repos, Parquet, Snowflake, or MCP servers — all through a unified interface.

from semantica.ingest import FileIngestor, WebIngestor, ParquetIngestor, DBIngestor

# Ingest an entire directory of contracts (PDF, DOCX, HTML, TXT)
docs = FileIngestor().ingest_directory("./contracts/", recursive=True)

# Ingest live web content
pages = WebIngestor().ingest_url("https://example.com/reports/annual-2024.html")

# Ingest structured data from Parquet
records = ParquetIngestor().ingest("./data/transactions.parquet")

# Ingest from a SQL database — specify which tables to pull
rows = DBIngestor().ingest_database(
    connection_string="postgresql://user:pass@localhost/mydb",
    include_tables=["customer_events"],
    max_rows_per_table=50_000,
)

semantica.semantic_extract — NER, Relations, Events, Triplets

Extract structured knowledge from raw text in one pass.

from semantica.semantic_extract import NERExtractor, RelationExtractor, EventDetector, TripletExtractor

text = """
Anthropic CEO Dario Amodei announced a $7.3B Series E funding round in partnership
with Google and Spark Capital, valuing the company at $61.5B as of Q4 2024.
"""

entities  = NERExtractor().extract_entities(text)
# → [Entity(name="Dario Amodei", type="PERSON"), Entity(name="Anthropic", type="ORG"),
#    Entity(name="Google", type="ORG"), Entity(name="$7.3B", type="MONEY"), ...]

relations = RelationExtractor().extract_relations(text, entities=entities)
# → [Relation(subject="Dario Amodei", predicate="ceo_of", object="Anthropic"),
#    Relation(subject="Anthropic", predicate="raised", object="$7.3B Series E"), ...]

events    = EventDetector().detect_events(text)
# → [Event(type="FUNDING", participants=["Anthropic", "Google", "Spark Capital"],
#          amount="$7.3B", date="Q4 2024")]

triplets  = TripletExtractor().extract_triplets(text)
# → [("Anthropic", "valuation", "$61.5B"), ("Dario Amodei", "is_ceo_of", "Anthropic"), ...]

semantica.kg — Knowledge Graph Construction & Analysis

Build a production knowledge graph from documents and run graph algorithms over it.

from semantica.ingest import FileIngestor
from semantica.semantic_extract import NERExtractor, RelationExtractor
from semantica.kg import GraphBuilder, GraphAnalyzer

sources   = FileIngestor().ingest_directory("./contracts/", recursive=True)
entities  = NERExtractor().extract_entities_batch([s["text"] for s in sources])
relations = RelationExtractor().extract_relations(sources[0]["text"], entities=entities[0])

kg = GraphBuilder(merge_entities=True, enable_temporal=True).build(sources)

analyzer    = GraphAnalyzer()
centrality  = analyzer.calculate_degree_centrality(kg)          # most-connected entities
communities = analyzer.detect_communities(kg, method="louvain")  # natural clusters
bridges     = analyzer.identify_bridges(kg)                      # single points of failure
paths       = analyzer.find_shortest_path(kg, "alice", "contract_001")

semantica.reasoning — Forward Chaining, Rete, Datalog, SPARQL

Run explainable rule-based inference — not a black box.

from semantica.reasoning import ReteEngine, Rule, Fact, RuleType

rete = ReteEngine()
rete.build_network([
    Rule(
        rule_id="aml_flag",
        name="Flag high-risk transactions",
        conditions=[
            {"field": "amount",  "operator": ">",  "value": 10_000},
            {"field": "country", "operator": "in", "value": ["IR", "KP", "SY"]},
        ],
        conclusion="flag_for_compliance_review",
        rule_type=RuleType.IMPLICATION,
    ),
    Rule(
        rule_id="velocity_check",
        name="Flag rapid sequential transfers",
        conditions=[
            {"field": "transfers_in_1h", "operator": ">", "value": 5},
            {"field": "total_amount",    "operator": ">", "value": 50_000},
        ],
        conclusion="flag_velocity_breach",
        rule_type=RuleType.IMPLICATION,
    ),
])

rete.add_fact(Fact("tx_001", "transaction", [{"amount": 15_000, "country": "IR"}]))
flagged = rete.match_patterns()
# → [{"rule": "aml_flag", "matched_facts": ["tx_001"], "conclusion": "flag_for_compliance_review"}]
from semantica.reasoning import DatalogReasoner

engine = DatalogReasoner()
engine.add_fact("parent(tom, bob)")
engine.add_fact("parent(bob, ann)")
engine.add_fact("parent(ann, pat)")
engine.add_rule("ancestor(X, Y) :- parent(X, Y).")
engine.add_rule("ancestor(X, Z) :- parent(X, Y), ancestor(Y, Z).")
ancestors = engine.query("ancestor(tom, ?X)")
# → [{"X": "bob"}, {"X": "ann"}, {"X": "pat"}]

Drop-in vector store with 7 backends, hybrid search, and decision-aware retrieval.

from semantica.vector_store import VectorStore, HybridSearch

# Works with FAISS, Qdrant, Weaviate, Milvus, Pinecone, PgVector, or in-memory
vs = VectorStore(backend="qdrant", dimension=1536)

# Store a decision with scenario description and outcome
vs.store_decision(
    scenario="Personal loan A-7291 — $85k income, 31% DTI, 3yr employment",
    outcome="approved",
    confidence=0.94,
    category="loan_underwriting",
)

# Semantic similarity search
results = vs.search(
    query="personal loan approval with low DTI",
    limit=10,
)

# Hybrid search — dense + sparse retrieval in one pass
hs   = HybridSearch(vector_store=vs)
hits = hs.search("high-risk transactions 2024")

# Explain why a decision was retrieved
explanation = vs.explain_decision(results[0]["id"])

semantica.provenance — W3C PROV-O Lineage

Every fact linked to its source — no black boxes, no mystery outputs.

from semantica.provenance import ProvenanceManager

prov = ProvenanceManager(storage_path="./provenance.db")

# Track where every entity came from
prov.track_entity(
    entity_id="acme_corp",
    source="contracts/acme_master_agreement_2024.pdf",
    metadata={"page": 1, "confidence": 0.97, "extractor": "NERExtractor"},
)

prov.track_relationship(
    relationship_id="alice_works_for_acme",
    source_entity_id="alice_chen",
    target_entity_id="acme_corp",
    source="hr_records/employees_q1_2024.csv",
)

# Answer "where did this come from?"
lineage = prov.get_lineage("acme_corp")
trail   = prov.trace_lineage("alice_chen")   # full ancestor chain
entry   = prov.get_provenance("acme_corp")

semantica.ontology — OWL Generation, SHACL Validation

Generate ontologies from data, validate shapes, and manage your vocabulary.

from semantica.ontology import OntologyGenerator, OntologyValidator

data = {
    "entities": [
        {"id": "acme_corp", "type": "Organization", "industry": "SaaS", "founded": 2012},
        {"id": "alice_chen", "type": "Person",       "role": "CTO",      "since": 2019},
    ],
    "relationships": [
        {"source": "alice_chen", "target": "acme_corp", "type": "works_for"},
    ],
}

gen      = OntologyGenerator(base_uri="https://semantica.dev/ontology/")
ontology = gen.generate_ontology(data)
classes  = gen.infer_classes(data)
props    = gen.infer_properties(data, classes)
optimized = gen.optimize_ontology(ontology)

# Validate the generated ontology for consistency
validator = OntologyValidator()
report    = validator.validate(ontology)
# → ValidationResult(conforms=True, errors=[], warnings=[])

semantica.deduplication — Entity Resolution at Scale

Block, cluster, and merge duplicates with semantic similarity — 6.98× faster than baseline.

from semantica.deduplication import DuplicateDetector, EntityMerger

entities = [
    {"id": "e1", "name": "Acme Corporation",  "domain": "acme.com"},
    {"id": "e2", "name": "Acme Corp.",         "domain": "acme.com"},
    {"id": "e3", "name": "ACME Corp",          "domain": "acme.co"},
    {"id": "e4", "name": "Globex Industries",  "domain": "globex.com"},
]

detector = DuplicateDetector(similarity_threshold=0.75, use_clustering=True)
candidates = detector.detect_duplicates(entities)
groups     = detector.detect_duplicate_groups(entities)
# → DuplicateGroup(entities=["e1","e2","e3"], confidence=0.91, strategy="semantic+blocking")

merger = EntityMerger(preserve_provenance=True)
ops    = merger.merge_duplicates(entities, strategy="keep_most_complete")
history = merger.get_merge_history()

semantica.pipeline — Pipeline DSL

Compose ingestion, extraction, and graph-building into a declarative, parallel pipeline.

from semantica.pipeline import PipelineBuilder, ExecutionEngine

pipeline = (
    PipelineBuilder()
    .add_step("ingest",     step_type="ingest",    source="./contracts/", recursive=True)
    .add_step("extract",    step_type="ner_extract")
    .add_step("relations",  step_type="relation_extract")
    .add_step("build_kg",   step_type="kg_build",   merge_entities=True)
    .add_step("deduplicate",step_type="deduplicate", threshold=0.75)
    .add_step("export",     step_type="export",      format="turtle", output="kg.ttl")
    .connect_steps("ingest",     "extract")
    .connect_steps("extract",    "relations")
    .connect_steps("relations",  "build_kg")
    .connect_steps("build_kg",   "deduplicate")
    .connect_steps("deduplicate","export")
    .set_parallelism(4)
    .build(name="contracts_pipeline")
)

engine = ExecutionEngine()
result = engine.execute(pipeline)
status = engine.get_status(pipeline)
progress = engine.get_progress(pipeline)

semantica.temporal — Bi-Temporal Graphs & Time Travel

Track when facts were true in the world vs. when they were recorded — and query either axis.

from semantica.context import ContextGraph
from datetime import datetime

graph = ContextGraph(advanced_analytics=True)

graph.add_node("alice_chen", "Person",       role="VP Engineering")
graph.add_node("acme_corp",  "Organization", valuation=1_200_000_000)

# Point-in-time snapshots — the graph as it existed on any past date
snapshot_2023 = graph.state_at("2023-06-01")
snapshot_2024 = graph.state_at("2024-01-01")

# Bi-temporal model: track valid time (when true in the world) vs. recorded time
from semantica.kg import BiTemporalFact

fact = BiTemporalFact(
    valid_from=datetime(2024, 3, 1),
    valid_until=datetime(2025, 1, 1),
    recorded_at=datetime(2024, 3, 5),
)

semantica.export — RDF, OWL, Parquet, Cypher, JSON-LD

Export to any format required by regulators, graph databases, or downstream systems.

from semantica.export import RDFExporter, JSONExporter, ParquetExporter, LPGExporter

kg = {"entities": [...], "relationships": [...]}

exporter = RDFExporter()

# export_to_rdf() returns a string; export() writes to a file
turtle_str  = exporter.export_to_rdf(kg, format="turtle")
jsonld_str  = exporter.export_to_rdf(kg, format="json-ld")

exporter.export(kg, "kg_audit.ttl",    format="turtle")
exporter.export(kg, "kg_audit.jsonld", format="json-ld")
exporter.export(kg, "kg_audit.nt",     format="n-triples")

# Export for downstream analytics
ParquetExporter().export(kg, "kg_snapshot.parquet", compression="snappy")
JSONExporter().export_knowledge_graph(kg, "kg.json")

# Export Cypher statements for Neo4j import
LPGExporter().export(kg, "kg_import.cypher", method="cypher")

semantica.visualization — Interactive Graph Workbench

Render force-directed graphs, community maps, ontology hierarchies, and temporal dashboards.

from semantica.visualization import KGVisualizer, OntologyVisualizer, EmbeddingVisualizer

kg = {"entities": [...], "relationships": [...]}

viz = KGVisualizer(layout="force", color_scheme="default")
viz.visualize_network(kg, output="interactive", file_path="kg.html")
viz.visualize_communities(kg, communities, output="interactive")
viz.visualize_centrality(kg, centrality, centrality_type="degree")
viz.visualize_entity_types(kg, output="html", file_path="entity_types.html")

onto_viz = OntologyVisualizer()
onto_viz.visualize_hierarchy(ontology, output="interactive")

import numpy as np
emb_viz = EmbeddingVisualizer()
emb_viz.visualize_2d_projection(embeddings=np.array([...]), labels=["..."], method="umap")

Multi-Agent Shared Context with Agno

One shared intelligence layer — all agents read and write to the same context graph.

# pip install semantica[agno]
from agno.agent import Agent
from agno.team import Team
from agno.models.anthropic import Claude
from semantica.context import ContextGraph
from semantica.vector_store import VectorStore
from integrations.agno import AgnoSharedContext, AgnoDecisionKit, AgnoKGToolkit

shared = AgnoSharedContext(
    vector_store=VectorStore(backend="faiss"),
    knowledge_graph=ContextGraph(advanced_analytics=True),
    decision_tracking=True,
)

researcher = Agent(
    name="Researcher",
    model=Claude(id="claude-sonnet-4-6"),
    memory=shared.bind_agent("researcher"),
    tools=[AgnoKGToolkit(context=shared)],
)
analyst = Agent(
    name="Analyst",
    model=Claude(id="claude-sonnet-4-6"),
    memory=shared.bind_agent("analyst"),
    tools=[AgnoDecisionKit(context=shared)],
)

team = Team(agents=[researcher, analyst], mode="coordinate")
# Researcher's findings are instantly available to the Analyst — no copy, no sync

40+ runnable notebooks in the cookbook

Performance

Benchmarks from v0.5.0 on a 118,000-node production graph:

Operation Before After Improvement
Node search (118k nodes) 24 ms 0.004 ms 6,000× faster
Embedding cache hit cold load revision-based cache 10× throughput
Semantic deduplication baseline optimized candidate gen 6.98× faster
Candidate generation baseline blocking strategy 63.6% faster

CLI

Every capability is available from the terminal. The CLI ships with the package — no separate install.

pip install semantica
semantica        # startup dashboard
semantica --help # full grouped command reference

Startup dashboard

$ semantica

   ███████╗███████╗███╗   ███╗ █████╗ ███╗   ██╗████████╗██╗ ██████╗  █████╗
   ██╔════╝██╔════╝████╗ ████║██╔══██╗████╗  ██║╚══██╔══╝██║██╔════╝ ██╔══██╗
   ███████╗█████╗  ██╔████╔██║███████║██╔██╗ ██║   ██║   ██║██║      ███████║
   ╚════██║██╔══╝  ██║╚██╔╝██║██╔══██║██║╚██╗██║   ██║   ██║██║      ██╔══██║
   ███████║███████╗██║ ╚═╝ ██║██║  ██║██║ ╚████║   ██║   ██║╚██████╗ ██║  ██║
   ╚══════╝╚══════╝╚═╝     ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═╝

╭─────────────────────────────────────────────────────────────────────────────╮
│                                                                             │
│    Knowledge Intelligence Platform  •  v0.5.0                              │
│                                                                             │
│    🕸️  Context Graphs      ⚡ Decision Intelligence      🔍 Provenance      │
│    🧩 Knowledge Fusion    🧠 Reasoning Engine          📊 Explainability    │
│                                                                             │
╰─────────────────────────────────────────────────────────────────────────────╯

  Graph Store     neo4j
  Vector Store    faiss
  Profile         default
  Config          ~/.semantica/config.yaml

  Run semantica --help for all commands  •  semantica shell for interactive mode

Knowledge graph build with progress bars

$ semantica kg build -s ./contracts/ -s ./reports/ --store neo4j

  contracts/    ████████████████████  12/12  4.2s
  reports/      ████████████████████   8/8   2.9s

  Knowledge graph built    1,847 nodes   4,203 edges   7.1s

semantica doctor — full health check

$ semantica doctor

  Python 3.11.9         pass
  semantica 0.5.0       pass
  neo4j backend         pass     neo4j://localhost:7687
  faiss vector store    pass
  LLM provider          warn     OPENAI_API_KEY not set
  Config file           pass     ~/.semantica/config.yaml

Command groups: ingest · parse · extract · kg · reason · decision · temporal · provenance · ontology · embed · deduplicate · validate · export · visualize · pipeline · server · explorer · mcp · doctor · shell

Full CLI reference

Integrations

Native plugin bundles for 8 editors · MCP server with 12 tools · 109-endpoint REST API · Agno first-class · 100+ LLMs via LiteLLM

Native Plugin Bundle MCP Server + Plugin
Claude Code
Claude Code
17 skills · 3 agents · hooks
Cursor
Cursor
17 skills · 3 agents
Codex CLI
Codex CLI
17 skills · 3 agents
Windsurf
Windsurf
plugin
Cline
Cline
plugin
Continue
Continue
plugin
VS Code
VS Code
plugin
OpenClaw
OpenClaw
MCP + plugin
MCP Server REST API
Claude Desktop
Claude Desktop
MCP server
GitHub Copilot
GitHub Copilot
REST API
Roo Code
Roo Code
REST API
Goose
Goose
REST API
Kilo Code
Kilo Code
REST API
Aider
Aider
REST API
Amazon Q
Amazon Q
REST API
Zed
Zed
REST API

Agentic Frameworks

Supported
Agno
Agno
First-class · pip install semantica[agno]
Coming Soon
LangChain
LangChain
Coming soon
LangGraph
LangGraph
Coming soon
CrewAI
CrewAI
Coming soon
LlamaIndex
LlamaIndex
Coming soon
AutoGen
AutoGen
Coming soon
OpenAI Agents SDK
OpenAI Agents
Coming soon
Google ADK
Google ADK
Coming soon

MCP Server

Start the MCP server and connect any compatible client in seconds:

python -m semantica.mcp_server
{
  "mcpServers": {
    "semantica": { "command": "python", "args": ["-m", "semantica.mcp_server"] }
  }
}

12 tools: extract_entities · extract_relations · record_decision · query_decisions · find_precedents · get_causal_chain · add_entity · add_relationship · run_reasoning · get_graph_analytics · export_graph · get_graph_summary

Plugin Bundles

17 domain skills: extract · ingest · query · ontology · validate · deduplicate · embed · reason · decision · causal · temporal · provenance · policy · explain · export · change · visualize

3 specialized agents: kg-assistant · decision-advisor · explainability

Bundles for Claude Code, Cursor, Codex, Windsurf, Cline, Continue, VS Code, and OpenClaw in plugins/.

Knowledge Explorer

A browser-based graph workbench — pan and zoom live graphs, scrub the timeline, review every decision's causal chain, resolve duplicates, author your ontology visually. Built on React 19 + Sigma.js.

Workspace What you can do
Knowledge Graph Live Sigma.js canvas with ForceAtlas2 layout, Ego Mode, semantic distance heatmap
Timeline Scrub through temporal events and watch the graph evolve
Decisions Browse the causal chain behind every recorded decision
Registry Live audit log of every graph mutation
Entity Resolution Review and merge duplicates
Ontology Hub SHACL Studio, visual editor, cross-ontology alignments, SKOS browser
Lineage W3C PROV-O provenance visualization for any entity
python -m semantica.server              # backend on port 8000
cd explorer && npm install && npm run dev  # UI on port 5173

explorer/README.md

Modules

Module What it provides
semantica.context Context graphs, agent memory, decision tracking, causal analysis, precedent search, policy engine
semantica.kg KG construction, graph algorithms, centrality, community detection, temporal queries, link prediction
semantica.semantic_extract NER, relation extraction, event extraction, coreference, triplet generation
semantica.reasoning Forward chaining, Rete, deductive, abductive, SPARQL, Datalog — explainable output
semantica.vector_store FAISS, Pinecone, Weaviate, Qdrant, Milvus, PgVector; hybrid & filtered search
semantica.provenance W3C PROV-O lineage, source tracking, revision history, audit log export
semantica.ontology OWL generation, SHACL shape generation & validation, SKOS vocabulary management
semantica.temporal Bi-temporal facts, Allen interval algebra, point-in-time snapshots, TemporalNormalizer
semantica.deduplication Blocking, hybrid, semantic strategies; entity merging with provenance
semantica.pipeline Pipeline DSL, parallel workers, validation, retry policies, progress tracking
semantica.export RDF (Turtle/JSON-LD/N-Triples), Parquet, OWL, SHACL, GraphML, Cypher, ArangoDB AQL
semantica.ingest Files, web, public APIs, databases, Snowflake, MCP, email, Git repos, Parquet, streams
semantica.graph_store Neo4j, FalkorDB, Apache AGE, Amazon Neptune
semantica.visualization KG, ontology, embedding, temporal, and community graph visualization
explorer/ React 19 + Sigma.js browser workbench

Features

Capability Highlights
Context Graphs Queryable graph of entities, decisions, relationships; causal links; cross-graph navigation
Decision Intelligence record_decision · trace_decision_chain · find_similar_decisions · analyze_decision_impact · check_decision_rules
Temporal Intelligence Point-in-time snapshots · Allen interval algebra (13 relations) · TemporalNormalizer · bi-temporal provenance
Distance Intelligence N×N semantic distance matrices · ego-mode visualization · distance bands · 10× embedding cache
Semantic Extraction NER · relation extraction · event detection · triplet generation · coreference · dedup 6.98× faster
Reasoning Engines Forward chaining · Rete · deductive · abductive · SPARQL · Datalog — explainable output
Provenance W3C PROV-O · every fact traced to source · audit log export JSON/CSV/RDF
Ontology Hub SHACL Studio · visual editor · cross-ontology alignments · 5-dimension health dashboard
Vector Store FAISS · Pinecone · Weaviate · Qdrant · Milvus · PgVector · in-memory · hybrid + filtered search
Graph Databases Neo4j · FalkorDB · Apache AGE · AWS Neptune
LLM Providers 100+ models via LiteLLM — OpenAI · Anthropic · Groq · Ollama · Azure · Bedrock

What's New in v0.5.0

  • Distance Intelligence — 10× embedding cache, N×N semantic distance matrix, Ego Mode explorer, 5 new API endpoints
  • Complete Ontology Hub — SHACL Studio, visual drag-and-drop editor, cross-ontology alignments, 5-dimension health dashboard, 16 new endpoints
  • Modern CLI — startup dashboard, semantica doctor, semantica init, semantica watch, semantica shell, progress bars, structured error cards
  • Security — 12 vulnerabilities fixed (eval injection, pickle, SQL injection, XXE, SSRF, prompt injection, ReDoS, path traversal)
  • 6,000× search speedup — O(log n) inverted index; 118k-node graphs: 24ms → 0.004ms

Full release notes · Changelog

Built for High-Stakes Domains

Semantica is designed for environments where AI outputs must be explainable, auditable, and defensible.

  • Healthcare — clinical decision support, drug interaction graphs, patient safety audit trails
  • Finance — fraud detection, AML compliance, regulatory risk knowledge graphs, loan decision audit trails
  • Legal — evidence-backed research, contract analysis, case law reasoning, privilege tracking
  • Cybersecurity — threat attribution, incident response timelines, IOC provenance tracking
  • Government — policy decision records, classified information governance, regulatory reporting
  • Autonomous Systems — decision logs, safety validation, explainable AI for certification

Installation

pip install semantica           # core
pip install semantica[all]      # everything
pip install semantica[agno]                 # Agno multi-agent integration
pip install semantica[llm-litellm]          # 100+ LLMs (OpenAI, Anthropic, Groq, Ollama…)
pip install semantica[graph-neo4j]          # Neo4j graph store
pip install semantica[vectorstore-qdrant]   # Qdrant vector store
pip install semantica[vectorstore-pinecone] # Pinecone vector store
pip install semantica[db-snowflake]         # Snowflake
pip install semantica[ingest-parquet]       # Parquet / PyArrow
pip install semantica[viz]                  # HTML interactive visualization
pip install semantica[watch]               # Directory file watcher

From source:

git clone https://github.com/semantica-agi/semantica.git
cd semantica && pip install -e ".[dev]" && pytest tests/

Enterprise

On-premises deployment · Private cloud · Custom domain implementations · SLA-backed support · Professional services for regulated industries (healthcare, finance, legal, government).

getsemantica.ai for enterprise solutions and pricing.

Community & Support

Discord discord.gg/sV34vps5hH — real-time help, showcases, announcements
GitHub Discussions Q&A and feature requests
GitHub Issues Bug reports
Documentation docs.getsemantica.ai
Cookbook 40+ runnable Jupyter notebooks
Changelog CHANGELOG.md · Release Notes

Star History

Star History Chart

Contributors

Contributors

Contributing

All contributions welcome — bug fixes, features, tests, and docs.

  1. Fork the repo and create a branch
  2. pip install -e ".[dev]"
  3. Write tests alongside your changes
  4. Open a PR and tag @KaifAhmad1 for review

See CONTRIBUTING.md for full guidelines.

MIT License · Built by Semantica

GitHub  ·  Discord  ·  Twitter/X  ·  Website  ·  Docs  ·  PyPI

If this project helps you build better AI, a star means a lot.

Star on GitHub →

English · Deutsch · Français · Español · Italiano · Português · العربية · اردو · हिन्दी · 中文 · 日本語 · 한국어