Skip to main content

๐Ÿง  VeritasReason - An Open Source Framework for building Semantic Layers and Knowledge Engineering

Project description

VeritasReason Logo

๐Ÿง  VeritasReason

A Framework for Building Context Graphs and Decision Intelligence Layers for AI

Python 3.8+ License: MIT PyPI Version Total Downloads CI GitHub Discussions GitHub Issues GitHub Stars

โญ Give us a Star ยท ๐Ÿด Fork us ยท ๐Ÿ’ฌ Join the Discussion ยท ๐Ÿ› Report an Issue

Transform Chaos into Intelligence. Build AI systems with context graphs, decision tracking, and advanced knowledge engineering that are explainable, traceable, and trustworthy โ€” not black boxes.


๐ŸŽฌ See it in action โ€” 30-second policy-compliance demo

VeritasGraph + VeritasReason policy-compliance demo

Ask "Which purchase orders violated our Segregation-of-Duties policy in Q1?" โ€” the engine pulls the policy clause via GraphRAG, runs the YAML rules over your ERP triples, and returns the violators with the rule ID and the exact policy citation. Try it yourself:

pip install veritas-reason
veritasreason-policy-demo

Full source + walkthrough: github.com/bibinprathap/VeritasGraph.


The Problem

AI agents today are powerful but not trustworthy:

  • โŒ No memory structure โ€” agents store embeddings, not meaning. There's no way to ask why something was recalled.
  • โŒ No decision trail โ€” agents make decisions continuously but record nothing. When something breaks, there's no history to audit.
  • โŒ No provenance โ€” outputs can't be traced back to source facts. In regulated industries, this is a hard compliance blocker.
  • โŒ No reasoning transparency โ€” black-box answers with zero explanation of how a conclusion was reached.
  • โŒ No conflict detection โ€” contradictory facts silently coexist in vector stores, producing unpredictable outputs.

These aren't edge cases. They're the reason AI can't be deployed in healthcare, finance, legal, and government without custom guardrails built from scratch every time.

The Solution

VeritasReason is the context and intelligence layer you add on top of your existing AI stack:

  • โœ… Context Graphs โ€” a structured, queryable graph of everything your agent knows, decides, and reasons about.
  • โœ… Decision Intelligence โ€” every decision is tracked as a first-class object with causal links, precedent search, and impact analysis.
  • โœ… Full Provenance โ€” every fact links back to its source. W3C PROV-O compliant. No more mystery answers.
  • โœ… Reasoning Engines โ€” forward chaining, Rete networks, deductive, abductive, and SPARQL. Explainable paths, not black boxes.
  • โœ… Quality & Deduplication โ€” conflict detection, entity resolution, and pipeline validation built in.

Works alongside Agno and any LLM โ€” VeritasReason is the accountability layer on top, not a replacement. LangChain, LangGraph, CrewAI, and more coming soon.

pip install veritas-reason

๐Ÿ”Œ Works With Every AI Tool

VeritasReason ships native plugin bundles for Claude Code, Cursor, and Codex, an MCP server (python -m veritasreason.mcp_server) for Windsurf, Cline, Continue, VS Code, Claude Desktop, and OpenClaw, and a REST API (FastAPI, port 8000) for any other tool.

๐Ÿ”Œ 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
๐Ÿ”ง Any Tool
REST API
Any agent
109 REST endpoints ยท FastAPI ยท port 8000

Agentic Frameworks

VeritasReason integrates with Agno today. Coming soon: LangChain, LangGraph, CrewAI, LlamaIndex, AutoGen, OpenAI Agents SDK, Google ADK, and more.

โœ… Supported
Agno
Agno
First-class ยท pip install veritas-reason[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

Agno โ€” First-Class Integration ยท pip install veritas-reason[agno]

Five integration modules live in integrations/agno/:

Module Class What it does
context_store.py AgnoContextStore Graph-backed agent memory โ€” store and retrieve structured context
knowledge_graph.py AgnoKnowledgeGraph Implements Agno's AgentKnowledge protocol; full extraction pipeline
decision_kit.py AgnoDecisionKit 6 decision-intelligence tools for Agno agents
kg_toolkit.py AgnoKGToolkit 7 KG pipeline tools (build, query, enrich, export)
shared_context.py AgnoSharedContext Shared context graph for multi-agent team coordination

Plugin Bundles (Claude Code ยท Cursor ยท Codex)

Native plugin bundles live under plugins/. Each directory contains a plugin.json, marketplace.json, and README.md.

Bundle Directory Tools
Claude Code plugins/.claude-plugin/ 17 skills ยท 3 agents ยท hooks
Cursor plugins/.cursor-plugin/ 17 skills ยท 3 agents ยท hooks
Codex CLI plugins/.codex-plugin/ 17 skills ยท 3 agents
Windsurf plugins/.windsurf-plugin/ 17 skills ยท 3 agents ยท MCP config
Cline plugins/.cline-plugin/ 17 skills ยท 3 agents ยท MCP config
Continue plugins/.continue-plugin/ 17 skills ยท 3 agents ยท MCP config
VS Code plugins/.vscode-plugin/ 17 skills ยท 3 agents ยท MCP config
OpenClaw plugins/.openclaw-plugin/ 17 skills ยท 3 agents ยท MCP config

17 domain skills:

Skill What it does
extract Full semantic extraction pipeline: NER, relations, events, coreference, triplets
ingest Data ingestion from files, databases, APIs, streams, and MCP servers
query SPARQL, Cypher, keyword search, structured graph patterns
ontology Schema management, concepts, relationships, alignments
validate Pipeline, extraction, schema, and ontology validation
deduplicate Duplicate detection and entity merging with fuzzy matching
embed Node2Vec embeddings, similarity scoring, link prediction
reason Deductive, abductive, Datalog, SPARQL, and Rete reasoning engines
decision Record, query, and analyze decisions; find precedents; causal analysis
causal Cause-effect chains, interventions, counterfactuals, causal influence
temporal Point-in-time queries, snapshots, timelines, temporal causal analysis
provenance Data lineage, source attribution, audit trails
policy Policy definition, enforcement, compliance checks, access control
explain Decision logic transparency, causal context, audit-ready explanations
export Multi-format export: JSON, RDF, Parquet, CSV, GraphML
change Graph change tracking, diffs, temporal updates, impact analysis
visualize Topology, centrality, communities, paths, embeddings, decision graphs

3 specialized agents:

Agent Role
kg-assistant General-purpose KG-aware assistant โ€” knows all APIs and method signatures
decision-advisor Decision intelligence specialist: causal reasoning, precedents, policy violations
explainability Reasoning transparency specialist โ€” generates audit-ready explanation reports

Hooks (plugins/hooks/hooks.json) โ€” PreToolUse / PostToolUse matchers for syntax validation and automated warnings.

โ†’ plugins/.claude-plugin/README.md

MCP Server (expose VeritasReason to any MCP-aware tool)

VeritasReason ships a full MCP server (veritasreason/mcp_server.py) โ€” run it once and any MCP-compatible tool connects automatically:

python -m veritasreason.mcp_server

Add to your tool's config (Claude Desktop, Windsurf, Cline, Continue, VS Code, Roo Code):

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

12 tools exposed: 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

3 resources: veritasreason://graph/summary, veritasreason://decisions/list, veritasreason://schema/info

See plugins/.claude-plugin/README.md for per-tool config snippets.

MCP Client (Ingest from MCP Servers)

VeritasReason also includes an MCP client (veritasreason/ingest/mcp_client.py) that lets you pull data from any Python/FastMCP server into a knowledge graph:

from veritasreason.ingest import MCPClient

client = MCPClient("http://your-mcp-server:8080")
resources = client.list_resources()   # discover available resources
data      = client.read_resource("resource://your-data")

Supported connection schemes: http://, https://, mcp://, sse:// ยท JSON-RPC ยท auth support ยท dynamic capability discovery.


๐Ÿ–ฅ๏ธ VeritasReason Knowledge Explorer

A real-time visual interface for exploring every dimension of your knowledge graph โ€” built into the repo under explorer/.

Workspace What you can do
Knowledge Graph Pan, zoom, and inspect a live Sigma.js graph canvas with ForceAtlas2 layout
Timeline Scrub through temporal events and watch the graph evolve
Decisions Browse the causal chain behind every recorded decision with outcome badges
Registry Live audit log of every graph mutation โ€” add-node, add-edge, merge, delete
Entity Resolution Review and merge duplicate entities detected by the deduplication engine
KG Overview Aggregate stats, community breakdown, centrality heatmap
Ontology SKOS/OWL vocabulary hierarchy and auto-generated schema summary

Run locally

# 1. Start the VeritasReason backend (port 8000)
python -m veritasreason.server

# 2. In a second terminal
cd explorer
npm install
npm run dev

Open http://localhost:5173 โ€” the Explorer connects automatically. All /api and /ws traffic is proxied to 127.0.0.1:8000 by Vite, so no CORS configuration is needed.

Requirements: Node 18+ ยท Python 3.8+ ยท npm 9+

For the full setup guide, troubleshooting, and production build instructions see explorer/README.md.


Features

Context & Decision Intelligence

  • Context Graphs โ€” structured graph of entities, relationships, and decisions; queryable, causal, persistent
  • Decision tracking โ€” record, link, and analyze every agent decision with add_decision(), record_decision()
  • Causal chains โ€” link decisions with add_causal_relationship(), trace lineage with trace_decision_chain()
  • Precedent search โ€” hybrid similarity search over past decisions with find_similar_decisions()
  • Influence analysis โ€” analyze_decision_impact(), analyze_decision_influence() โ€” understand downstream effects
  • Policy engine โ€” enforce business rules with check_decision_rules(); automated compliance validation
  • Agent memory โ€” AgentMemory with short/long-term storage, conversation history, and statistics
  • Cross-system context capture โ€” capture_cross_system_inputs() for multi-agent pipelines

Knowledge Graphs

  • Knowledge graph construction โ€” entities, relationships, properties, typed edges
  • Graph algorithms โ€” PageRank, betweenness centrality, clustering coefficient, community detection
  • Node embeddings โ€” Node2Vec embeddings via NodeEmbedder
  • Similarity โ€” cosine similarity via SimilarityCalculator
  • Link prediction โ€” score potential new edges via LinkPredictor
  • Temporal graphs โ€” time-aware nodes and edges
  • Incremental / delta processing โ€” update graphs without full recompute

Semantic Extraction

  • Entity extraction โ€” named entity recognition, normalization, classification
  • Relation extraction โ€” triplet generation from raw text using LLMs or rule-based methods
  • LLM-typed extraction โ€” extraction with typed relation metadata
  • Deduplication v1 โ€” Jaro-Winkler similarity, basic blocking
  • Deduplication v2 โ€” blocking_v2, hybrid_v2, semantic_v2 strategies with max_candidates_per_entity
  • Triplet deduplication โ€” dedup_triplets() for removing duplicate (subject, predicate, object) triples

Reasoning Engines

  • Forward chaining โ€” Reasoner with IF/THEN string rules and dict facts
  • Rete network โ€” ReteEngine for high-throughput production rule matching
  • Deductive reasoning โ€” DeductiveReasoner for classical inference
  • Abductive reasoning โ€” AbductiveReasoner for hypothesis generation from observations
  • SPARQL reasoning โ€” SPARQLReasoner for query-based inference over RDF graphs

Provenance & Auditability

  • Entity provenance โ€” ProvenanceTracker.track_entity(entity_id, source, metadata)
  • Algorithm provenance โ€” AlgorithmTrackerWithProvenance tracks computation lineage
  • Graph builder provenance โ€” GraphBuilderWithProvenance records entity source lineage from URLs
  • W3C PROV-O compliant โ€” lineage tracking across all modules
  • Change management โ€” version control with checksums, audit trails, compliance support

Vector Store

  • Backends โ€” FAISS, Pinecone, Weaviate, Qdrant, Milvus, PgVector, in-memory
  • Semantic search โ€” top-k retrieval by embedding similarity
  • Hybrid search โ€” vector + keyword with configurable weights
  • Filtered search โ€” metadata-based filtering on any field
  • Custom similarity weights โ€” tune retrieval per use case

๐ŸŒ Graph Database Support

  • AWS Neptune โ€” Amazon Neptune graph database with IAM authentication
  • Apache AGE โ€” PostgreSQL graph extension with openCypher via SQL
  • FalkorDB โ€” native support; DecisionQuery and CausalChainAnalyzer work directly with FalkorDB row/header shapes

Data Ingestion

  • File formats โ€” PDF, DOCX, HTML, JSON, CSV, Excel, PPTX, archives
  • Web crawl โ€” WebIngestor with configurable depth
  • Databases โ€” DBIngestor with SQL query support
  • Snowflake โ€” SnowflakeIngestor with table/query ingestion, pagination, and key-pair/OAuth auth
  • Docling โ€” advanced document parsing with table and layout extraction (PDF, DOCX, PPTX, XLSX)
  • Media โ€” image OCR, audio/video metadata extraction

Export Formats

  • RDF โ€” Turtle (.ttl), JSON-LD, N-Triples (.nt), XML via RDFExporter
  • Parquet โ€” ParquetExporter for entities, relationships, and full KG export
  • ArangoDB AQL โ€” ready-to-run INSERT statements via ArangoAQLExporter
  • OWL ontologies โ€” export generated ontologies in Turtle or RDF/XML
  • SHACL shapes โ€” export auto-derived constraint shapes via RDFExporter.export_shacl() (.ttl, .jsonld, .nt, .shacl)

Pipeline & Production

  • Pipeline builder โ€” PipelineBuilder with stage chaining and parallel workers
  • Validation โ€” PipelineValidator returns ValidationResult(valid, errors, warnings) before execution
  • Failure handling โ€” FailureHandler with RetryPolicy and RetryStrategy (exponential backoff, fixed, etc.)
  • Parallel processing โ€” configurable worker count per pipeline stage
  • LLM providers โ€” 100+ models via LiteLLM (OpenAI, Anthropic, Cohere, Mistral, Ollama, and more)

Ontology

  • Auto-generation โ€” derive OWL ontologies from knowledge graphs via OntologyGenerator
  • Import โ€” load existing OWL, RDF, Turtle, JSON-LD ontologies via OntologyImporter
  • Validation โ€” HermiT/Pellet compatible consistency checking
  • SHACL shape generation โ€” OntologyEngine.to_shacl() auto-derives SHACL node and property shapes from any VeritasReason ontology dict; zero hand-authoring; deterministic (same ontology โ†’ same shapes)
  • SHACL validation โ€” OntologyEngine.validate_graph() runs shapes against a data graph and returns a SHACLValidationReport with machine-readable violations and plain-English explanations
  • Quality tiers โ€” "basic" (structure + cardinality), "standard" (+ enumerations, inheritance), "strict" (+ sh:closed rejects undeclared properties)
  • Inheritance propagation โ€” child shapes automatically include all ancestor property shapes (up to 3+ levels), cycle-safe
  • Three output formats โ€” Turtle (.ttl), JSON-LD, N-Triples; file export via export_shacl()

๐Ÿš€ What's New in v0.4.0

๐Ÿ• Temporal Intelligence Stack

Everything you need to reason about when โ€” not just what.

  • Temporal GraphRAG โ€” retrieve knowledge as it existed at any point in the past. Natural-language queries like "what did we know before the 2024 merger?" are automatically parsed for temporal intent, with zero LLM calls.
  • Allen Interval Algebra โ€” 13 deterministic interval relations (before, meets, overlaps, during, starts, finishes, equals, and their converses). Find gaps, measure coverage, detect cycles โ€” all without touching an LLM.
  • Point-in-time Query Engine โ€” reconstruct a self-consistent graph snapshot at any timestamp. Comes with a consistency validator that catches 5 classes of temporal errors: inverted intervals, dangling edges, overlapping relations, temporal gaps, and missing entities.
  • Temporal Metadata Extraction โ€” ask the LLM to annotate each extracted relation with valid_from, valid_until, and a calibrated confidence score (0โ€“1 scale with baked-in anchors, so the model doesn't cluster near 1.0).
  • TemporalNormalizer โ€” converts ISO 8601, partial dates, relative phrases ("last year", "Q1 2024"), and 13 domain-specific phrase maps (Healthcare, Finance, Cybersecurity, Supply Chain, Energyโ€ฆ) into UTC datetime pairs. Zero LLM calls.
  • Bi-temporal Provenance โ€” every provenance record is automatically stamped with transaction time. Full revision history and audit log export in JSON or CSV. Temporal relationships export as OWL-Time RDF triples.
  • Decision validity windows โ€” decisions now carry valid_from / valid_until. Superseded decisions stay in the graph โ€” history is immutable. Point-in-time causal chain reconstruction included.
  • Named checkpoints โ€” snapshot the full agent context at any moment and diff two snapshots to see exactly what changed.

โ†’ Temporal docs ยท Temporal examples

๐Ÿ“š SKOS Vocabulary Management

Build and query controlled vocabularies inside your knowledge graph

  • Add SKOS concepts with labels, alt-labels, broader/narrower hierarchy, and definitions โ€” all required triples assembled automatically.
  • Query and search vocabularies with SPARQL-backed APIs (injection-sanitized).
  • REST API for the Explorer: list schemes, fetch full hierarchy trees (cycle-safe), and import .ttl / .rdf / .owl files.

โ†’ SKOS docs

๐Ÿ”ท SHACL Constraints

Turn ontologies into executable data contracts โ€” no hand-authoring.

  • Auto-derive SHACL node and property shapes from any VeritasReason ontology. Deterministic: same ontology always produces the same shapes.
  • Three strictness tiers: "basic" (structure + cardinality), "standard" (+ enumerations and inheritance), "strict" (closes shapes โ€” rejects undeclared properties).
  • Validate any RDF graph and get back a report with plain-English violation explanations ready to feed into an LLM or pipeline.
  • Use in CI to catch breaking ontology changes before they reach production.

โ†’ SHACL shape generation and validation are available via the OntologyEngine โ€” see ontology docs

๐Ÿ”ง Infrastructure & Fixes

  • ContextGraph pagination โ€” memory complexity dropped from O(N) to O(limit). A 50k-node graph no longer allocates 2.5M dicts per paginated request.
  • Named graph support โ€” full config-flag enforcement, duplicate clause prevention, backward-compat URI alias, and safe URI encoding in SPARQL pruning.
  • Ollama remote support โ€” OllamaProvider now correctly connects to remote Ollama servers instead of silently falling back to localhost.
  • Security โ€” API key logging removed from extractors; CI workflows locked to least-privilege contents: read.

โ†’ Full changelog ยท Release notes


๐Ÿ“ฆ What Was in v0.3.0

First stable Production/Stable release on PyPI.

  • Context Graphs โ€” temporal validity windows, weighted BFS, cross-graph navigation with full save/load persistence.
  • Decision Intelligence โ€” complete lifecycle from recording to impact analysis; PolicyEngine with versioned rules.
  • KG Algorithms โ€” PageRank, betweenness centrality, Louvain community detection, Node2Vec embeddings, link prediction.
  • Deduplication v2 โ€” blocking/hybrid candidate generation 63.6% faster; semantic dedup 6.98x faster.
  • Delta Processing โ€” SPARQL-based incremental diff, delta_mode pipelines, snapshot versioning.
  • Export โ€” Parquet (Spark/BigQuery/Databricks ready), ArangoDB AQL, RDF format aliases.
  • Pipeline โ€” exponential/fixed/linear backoff, PipelineValidator, fixed retry loop.
  • Graph Backends โ€” Apache AGE (SQL injection fixed), AWS Neptune, FalkorDB, PgVector.

โœจ What VeritasReason Does

๐Ÿงฉ Context & Decision Intelligence

Track every decision your agent makes as a structured, queryable graph node โ€” with causal links, precedent search, impact analysis, and policy enforcement.

  • Every decision records who made it, why, what outcome was chosen, and how confident.
  • Decisions are linked causally so you can trace the full chain of reasoning that led to any outcome.
  • Hybrid similarity search finds past decisions that match the current scenario.
  • Policy rules validate decisions against business constraints before or after they're made.
  • AgentMemory handles short/long-term storage and conversation history across sessions.

โ†’ Decision tracking docs ยท Decision tracking example

๐Ÿ• Temporal Reasoning

Ask not just what your agent knows, but when it was true.

  • Reconstruct your knowledge graph at any point in the past without modifying the current graph.
  • Parse natural-language temporal queries and rewrite them into structured datetime constraints.
  • Reason over time intervals using a full deterministic Allen algebra implementation.
  • Normalize any date expression โ€” ISO 8601, relative phrases, domain-specific vocabulary โ€” into UTC.
  • Extract temporal validity from text using the LLM, with calibrated confidence scores.

โ†’ Temporal docs ยท Temporal cookbook

๐Ÿ—บ๏ธ Knowledge Graphs

Build, enrich, and analyze knowledge graphs with production-grade algorithms.

  • Add entities, relationships, and typed properties with full metadata support.
  • Run PageRank, betweenness centrality, and Louvain community detection out of the box.
  • Generate Node2Vec embeddings and score potential new links.
  • Delta processing keeps large graphs fresh without full recomputes.

โ†’ KG docs

๐Ÿ” Semantic Extraction

Pull structured knowledge out of raw text.

  • Extract entities and relationships from text using LLMs or rule-based methods.
  • Generate (subject, predicate, object) triplets ready to load into any KG.
  • Deduplicate entities intelligently โ€” Jaro-Winkler, semantic, and hybrid strategies. v2 is up to 6.98x faster.
  • Optionally have the LLM annotate each relation with temporal validity and confidence.

โ†’ Extraction docs

๐Ÿง  Reasoning Engines

Go beyond retrieval โ€” derive new facts from what you know.

  • Forward chaining โ€” IF/THEN rules over facts.
  • Rete network โ€” high-throughput production rule matching for real-time event streams.
  • Deductive โ€” classical inference from axioms.
  • Abductive โ€” generate plausible hypotheses from observations.
  • SPARQL โ€” query-based inference over RDF graphs.
  • Temporal โ€” deterministic Allen algebra, no LLM required.

โ†’ Reasoning docs

๐Ÿ“‹ Provenance & Auditability

Every fact, decision, and computation links back to where it came from.

  • Auto-stamp transaction time on every provenance record.
  • Query full revision history for any fact โ€” version, author, validity window, supersession chain.
  • Export audit logs in JSON or CSV.
  • Export temporal relationships as OWL-Time RDF triples.
  • W3C PROV-O compliant across all modules.

โ†’ Provenance docs

๐Ÿ”ท Ontology & SHACL

Build, import, and enforce data contracts for your knowledge graphs.

  • Auto-generate OWL ontologies from any KG โ€” no hand-authoring.
  • Import existing ontologies in OWL, RDF, Turtle, or JSON-LD.
  • Derive SHACL shapes from any ontology and validate graphs against them.
  • Manage SKOS controlled vocabularies with hierarchy, search, and REST APIs.

โ†’ Ontology docs

๐Ÿญ Pipeline & Production

Orchestrate multi-stage KG pipelines with reliability built in.

  • Chain ingest โ†’ extract โ†’ deduplicate โ†’ build โ†’ export stages with a fluent builder API.
  • Validate the pipeline config before running it.
  • Retry failed stages with exponential backoff, fixed delay, or linear backoff.
  • 100+ LLM providers via LiteLLM โ€” OpenAI, Anthropic, Mistral, Ollama, Azure, Bedrock, and more.

โ†’ Pipeline docs

๐Ÿ”Ž Vector Store

Semantic memory with hybrid search and metadata filtering.

  • FAISS, Pinecone, Weaviate, Qdrant, Milvus, PgVector, and in-memory โ€” one API for all.
  • Hybrid search mixes vector similarity and keyword matching with configurable weights.
  • Filter by any metadata field, or tune similarity weights per use case.

Modules

Module What it provides
veritasreason.context Context graphs, agent memory, decision tracking, causal analysis, precedent search, policy engine
veritasreason.kg Knowledge graph construction, graph algorithms, centrality, community detection, embeddings, link prediction, provenance
veritasreason.semantic_extract NER, relation extraction, event extraction, coreference, triplet generation, LLM-enhanced extraction
veritasreason.reasoning Forward chaining, Rete network, deductive, abductive, SPARQL reasoning, explanation generation
veritasreason.vector_store FAISS, Pinecone, Weaviate, Qdrant, Milvus, PgVector, in-memory; hybrid & filtered search
veritasreason.export RDF (Turtle/JSON-LD/N-Triples/XML), Parquet, ArangoDB AQL, CSV, YAML, OWL, graph formats
veritasreason.ingest Files (PDF, DOCX, CSV, HTML), web crawl, feeds, databases, Snowflake, MCP, email, repositories
veritasreason.ontology Auto-generation (6-stage pipeline), OWL/RDF export, import (OWL/RDF/Turtle/JSON-LD), validation, versioning, SHACL shape generation & validation
veritasreason.pipeline Pipeline DSL, parallel workers, validation, retry policies, failure handling, resource scheduling
veritasreason.graph_store Graph database backends โ€” Neo4j, FalkorDB, Apache AGE, Amazon Neptune; Cypher queries
veritasreason.embeddings Text embedding generation โ€” Sentence-Transformers, FastEmbed, OpenAI, BGE; similarity calculation
veritasreason.deduplication Entity deduplication, similarity scoring, merging, clustering; blocking and semantic strategies
veritasreason.provenance W3C PROV-O compliant end-to-end lineage tracking, source attribution, audit trails
veritasreason.parse Document parsing โ€” PDF, DOCX, PPTX, HTML, code, email, structured data, media with OCR
veritasreason.split Document chunking โ€” recursive, semantic, entity-aware, relation-aware, graph-based, ontology-aware
veritasreason.normalize Data normalization for text, entities, dates, numbers, quantities, languages, encodings
veritasreason.conflicts Multi-source conflict detection (value, type, relationship, temporal, logical) with resolution strategies
veritasreason.change_management Version storage, change tracking, checksums, audit trails, compliance support for KGs and ontologies
veritasreason.triplet_store RDF triplet store integration โ€” Blazegraph, Jena, RDF4J; SPARQL queries and bulk loading
veritasreason.visualization Interactive and static visualization of KGs, ontologies, embeddings, analytics, and temporal graphs
explorer/ VeritasReason Knowledge Explorer โ€” React 19 + Sigma.js UI: graph canvas, decision viewer, causal chains, entity resolution, ontology browser, and registry audit log
veritasreason.seed Seed data management for initial KG construction from CSV, JSON, databases, and APIs
veritasreason.core Framework orchestration, configuration management, knowledge base construction, plugin system
veritasreason.llms LLM provider integrations โ€” Groq, OpenAI, Novita AI, HuggingFace, LiteLLM
veritasreason.utils Shared utilities โ€” logging, validation, exception handling, constants, types, progress tracking

๐Ÿ’ป Code Examples

Decision Tracking

from veritasreason.context import ContextGraph

graph = ContextGraph(advanced_analytics=True)

# Record decisions with full reasoning context
# record_decision() accepts keyword args and returns the decision ID
loan_id = graph.record_decision(
    category="loan_approval",
    scenario="Mortgage โ€” 780 credit score, 28% DTI",
    reasoning="Strong credit history, stable 8-year income, low DTI",
    outcome="approved",
    confidence=0.95,
)
rate_id = graph.record_decision(
    category="interest_rate",
    scenario="Set rate for approved mortgage",
    reasoning="Prime applicant qualifies for lowest tier",
    outcome="rate_set_6.2pct",
    confidence=0.98,
)

# Link decisions causally โ€” builds an auditable chain
graph.add_causal_relationship(loan_id, rate_id, relationship_type="enables")

# Query the graph
similar    = graph.find_similar_decisions("mortgage approval", max_results=5)
chain      = graph.trace_decision_chain(loan_id)
impact     = graph.analyze_decision_impact(loan_id)
compliance = graph.check_decision_rules({"category": "loan_approval", "confidence": 0.95})

โ†’ Full decision tracking guide ยท Cookbook examples

Temporal GraphRAG

from veritasreason.kg import TemporalQueryRewriter, TemporalNormalizer
from veritasreason.context import TemporalGraphRetriever
from datetime import datetime, timezone

# Parse temporal intent from natural language โ€” zero LLM calls
rewriter = TemporalQueryRewriter()
result   = rewriter.rewrite("What decisions were made before the 2024 merger?")
# result.temporal_intent โ†’ "before"
# result.at_time         โ†’ datetime(2024, ..., tzinfo=UTC)
# result.rewritten_query โ†’ "What decisions were made"

# Filter any retriever to a point in time โ€” drop-in wrapper
retriever = TemporalGraphRetriever(
    base_retriever=your_retriever,
    at_time=datetime(2024, 3, 1, tzinfo=timezone.utc),
)
ctx = retriever.retrieve("supplier approval decisions")

# Normalize any date expression to UTC โ€” zero LLM calls
normalizer = TemporalNormalizer()
start, end = normalizer.normalize("Q1 2024")
# โ†’ (datetime(2024, 1, 1, UTC), datetime(2024, 3, 31, UTC))

start, end = normalizer.normalize("effective from 2023-09-01")
# โ†’ (datetime(2023, 9, 1, UTC), None)

โ†’ Temporal GraphRAG docs ยท Temporal cookbook

Point-in-Time Graph Snapshots

from veritasreason.context import ContextGraph, AgentContext
from veritasreason.vector_store import VectorStore
from datetime import datetime, timezone

graph = ContextGraph()

# record_decision() accepts keyword args and supports validity windows
graph.record_decision(
    category="policy",
    scenario="Approve supplier A",
    outcome="approved",
    confidence=0.9,
    valid_from=datetime(2024, 1, 1, tzinfo=timezone.utc),
    valid_until=datetime(2024, 6, 30, tzinfo=timezone.utc),
)

# Reconstruct the graph exactly as it was on any date
# The source graph is never mutated
snapshot = graph.state_at(datetime(2024, 3, 15, tzinfo=timezone.utc))

# Named checkpoints โ€” checkpoint() and diff_checkpoints() live on AgentContext
context = AgentContext(
    vector_store=VectorStore(backend="inmemory"),
    knowledge_graph=graph,
    decision_tracking=True,
)
context.checkpoint("before_merge")
# ... make changes ...
diff = context.diff_checkpoints("before_merge", "after_merge")
# โ†’ {"decisions_added": [...], "relationships_added": [...], ...}

Semantic Extraction

from veritasreason.semantic_extract import NERExtractor, RelationExtractor, TripletExtractor

text = """
OpenAI released GPT-4 in March 2023. Microsoft integrated GPT-4 into Azure.
Anthropic, founded by former OpenAI researchers, released Claude as a competing model.
"""

# Step 1 โ€” extract entities
entities = NERExtractor().extract_entities(text)
# โ†’ [Entity(label="OpenAI", ...), Entity(label="GPT-4", ...), ...]

# Step 2 โ€” extract relations (requires entities)
relations = RelationExtractor().extract_relations(text, entities=entities)
# โ†’ [Relation(source="OpenAI", type="released", target="GPT-4"), ...]

# Step 3 โ€” extract full (subject, predicate, object) triplets
triplets = TripletExtractor().extract_triplets(text)

Semantic Extraction with Temporal Bounds

from veritasreason.semantic_extract import NERExtractor
from veritasreason.semantic_extract.methods import extract_relations_llm

text = "The partnership was effective from January 2022 until the merger in Q3 2024."

# extract_relations_llm requires pre-extracted entities as second arg
entities  = NERExtractor().extract_entities(text)
relations = extract_relations_llm(
    text,
    entities,
    provider="openai",
    extract_temporal_bounds=True,   # LLM annotates each relation with validity window
)

for rel in relations:
    print(f"{rel.source} โ†’ {rel.target}")
    print(f"  valid: {rel.metadata['valid_from']} โ†’ {rel.metadata['valid_until']}")
    print(f"  confidence: {rel.metadata['temporal_confidence']}")

โ†’ Extraction docs

Knowledge Graphs & Algorithms

from veritasreason.kg import GraphBuilder, CentralityCalculator, NodeEmbedder, LinkPredictor

# Build a KG from entity/relationship dicts
builder = GraphBuilder()
graph   = builder.build({
    "entities": [
        {"id": "bert",        "label": "BERT",        "type": "Model"},
        {"id": "transformer", "label": "Transformer", "type": "Architecture"},
        {"id": "gpt4",        "label": "GPT-4",       "type": "Model"},
    ],
    "relationships": [
        {"source": "bert", "target": "transformer", "type": "based_on"},
        {"source": "gpt4", "target": "transformer", "type": "based_on"},
    ],
})

# Graph algorithms
centrality = CentralityCalculator().calculate_pagerank(graph)
embeddings = NodeEmbedder().compute_embeddings(
    graph, node_labels=["Model"], relationship_types=["based_on"]
)
link_score = LinkPredictor().score_link(graph, "gpt4", "bert", method="common_neighbors")

โ†’ KG algorithm docs ยท KG cookbook

Reasoning

from veritasreason.reasoning import Reasoner, ReteEngine

# Forward chaining โ€” derive new facts from rules
reasoner = Reasoner()
reasoner.add_rule("IF Person(?x) THEN Mortal(?x)")
results = reasoner.infer_facts(["Person(Socrates)"])
# โ†’ ["Mortal(Socrates)"]

# Rete network โ€” build a rule network, add facts, then run pattern matching
from veritasreason.reasoning import Rule, Fact, RuleType

rete = ReteEngine()
rule = Rule(
    rule_id="r1",
    name="flag_high_risk",
    conditions=[
        {"field": "amount",  "operator": ">",  "value": 10000},
        {"field": "country", "operator": "in", "value": ["IR", "KP", "SY"]},
    ],
    conclusion="flag_for_compliance_review",
    rule_type=RuleType.IMPLICATION,
)
rete.build_network([rule])

fact = Fact(fact_id="f1", predicate="transaction", arguments=[{"amount": 15000, "country": "IR"}])
rete.add_fact(fact)
matches = rete.match_patterns()   # returns List[Match]

โ†’ Reasoning docs

Ontology Generation & Validation

from veritasreason.ontology import OntologyEngine

engine   = OntologyEngine()

# Derive an OWL ontology from any data dict
ontology = engine.from_data(your_data_dict)

# Export as OWL (Turtle or RDF/XML)
engine.export_owl(ontology, path="domain_ontology.owl", format="turtle")

# Validate ontology consistency
result = engine.validate(ontology)

# Generate ontology from raw text using an LLM
ontology = engine.from_text("Employees work at companies. Companies have departments.")

# Convert ontology to OWL string
owl_str = engine.to_owl(ontology, format="turtle")

โ†’ Ontology docs

Pipeline Orchestration

from veritasreason.pipeline import PipelineBuilder, PipelineValidator
from veritasreason.pipeline import RetryPolicy, RetryStrategy

# Build a multi-stage pipeline using add_step(name, type, **config)
builder = (
    PipelineBuilder()
    .add_step("ingest",      "file_ingest",   source="./documents/", recursive=True)
    .add_step("extract",     "triplet_extract")
    .add_step("deduplicate", "entity_dedup",  threshold=0.85)
    .add_step("build_kg",    "kg_build")
    .add_step("export",      "rdf_export",    format="turtle", output="output/kg.ttl")
    .set_parallelism(4)              # set_parallelism(), not with_parallel_workers()
)

pipeline = builder.build(name="kg_pipeline")

# Validate before running โ€” catches config errors early
result = PipelineValidator().validate(pipeline)
if result.valid:
    pipeline.run()

โ†’ Pipeline docs


๐Ÿ“ฆ Modules

  • veritasreason.context โ€” context graphs, decisions, causal chains, precedent search, policy engine, checkpoints
  • veritasreason.kg โ€” KG construction, graph algorithms, embeddings, link prediction, temporal query engine, Allen algebra, TemporalNormalizer, provenance
  • veritasreason.semantic_extract โ€” NER, relation extraction, triplet generation, LLM extraction with temporal bounds, deduplication
  • veritasreason.reasoning โ€” forward chaining, Rete, deductive, abductive, SPARQL, temporal algebra
  • veritasreason.vector_store โ€” FAISS, Pinecone, Weaviate, Qdrant, Milvus, PgVector, in-memory; hybrid & filtered search
  • veritasreason.export โ€” RDF (Turtle/JSON-LD/N-Triples/XML), OWL-Time, Parquet, ArangoDB AQL, OWL, SHACL
  • veritasreason.ingest โ€” files, web crawl, databases, Snowflake, email, repositories
  • veritasreason.ontology โ€” OWL generation & import, SHACL generation & validation, SKOS vocabulary management
  • veritasreason.pipeline โ€” stage chaining, parallel workers, validation, retry policies, failure handling
  • veritasreason.graph_store โ€” Neo4j, FalkorDB, Apache AGE, Amazon Neptune; Cypher queries
  • veritasreason.embeddings โ€” Sentence-Transformers, FastEmbed, OpenAI, BGE; similarity
  • veritasreason.deduplication โ€” entity dedup, similarity scoring, blocking and semantic strategies
  • veritasreason.provenance โ€” W3C PROV-O lineage, revision history, audit log export
  • veritasreason.parse โ€” PDF, DOCX, PPTX, HTML, code, email, media with OCR
  • veritasreason.split โ€” recursive, semantic, entity-aware, graph-based, ontology-aware chunking
  • veritasreason.conflicts โ€” multi-source conflict detection with resolution strategies
  • veritasreason.change_management โ€” version storage, checksums, audit trails, compliance support
  • veritasreason.triplet_store โ€” Blazegraph, Jena, RDF4J; SPARQL, bulk loading, SKOS helpers
  • veritasreason.visualization โ€” KG, ontology, embedding, and temporal graph visualization
  • veritasreason.llms โ€” Groq, OpenAI, Novita AI, HuggingFace, LiteLLM
  • explorer/ โ€” VeritasReason Knowledge Explorer โ€” browser UI for live graph inspection, decisions, entity resolution, and ontology browsing (npm run dev in explorer/)

Graph Databases

  • Neo4j โ€” Cypher queries via veritasreason.graph_store
  • FalkorDB โ€” native support; DecisionQuery and CausalChainAnalyzer work directly with FalkorDB row/header shapes
  • Apache AGE โ€” PostgreSQL + openCypher via SQL
  • AWS Neptune โ€” Amazon Neptune with IAM authentication

Vector Databases

  • FAISS โ€” built-in, zero extra dependencies
  • Pinecone โ€” pip install veritas-reason[vectorstore-pinecone]
  • Weaviate โ€” pip install veritas-reason[vectorstore-weaviate]
  • Qdrant โ€” pip install veritas-reason[vectorstore-qdrant]
  • Milvus โ€” pip install veritas-reason[vectorstore-milvus]
  • PgVector โ€” pip install veritas-reason[vectorstore-pgvector]

Data Sources

  • Files โ€” PDF, DOCX, HTML, JSON, CSV, Excel, PPTX, archives
  • Web โ€” configurable-depth crawler
  • Databases โ€” SQL via DBIngestor
  • Snowflake โ€” table/query ingestion, pagination, password/key-pair/OAuth/SSO auth ยท pip install veritas-reason[db-snowflake]
  • Docling โ€” advanced table and layout extraction (PDF, DOCX, PPTX, XLSX)
  • Email โ€” inbox ingestion via EmailIngestor
  • Repositories โ€” Git repo ingestion for code graph construction

LLM Providers

  • LiteLLM โ€” 100+ models: OpenAI, Anthropic, Cohere, Mistral, Ollama, Azure, AWS Bedrock, and more
  • Novita AI โ€” OpenAI-compatible (deepseek/deepseek-v3.2 and more) ยท set NOVITA_API_KEY
  • Groq โ€” ultra-low latency inference ยท set GROQ_API_KEY
  • HuggingFace โ€” local and hosted models via HuggingFaceProvider
  • Ollama โ€” local models including remote server support

๐Ÿ› ๏ธ Installation

# Core
pip install veritas-reason

# All optional dependencies
pip install veritas-reason[all]

# Pick only what you need
pip install veritas-reason[vectorstore-pinecone]
pip install veritas-reason[vectorstore-weaviate]
pip install veritas-reason[vectorstore-qdrant]
pip install veritas-reason[vectorstore-milvus]
pip install veritas-reason[vectorstore-pgvector]
pip install veritas-reason[db-snowflake]   # Snowflake ingestion
pip install veritas-reason[agno]           # Agno integration

# From source
git clone https://github.com/bibinprathap/VeritasGraph.git
cd veritasreason
pip install -e ".[dev]"
pytest tests/

๐Ÿ† Built for High-Stakes Domains

Every answer explainable. Every decision auditable. Every fact traceable.

  • ๐Ÿฅ Healthcare โ€” clinical decision support, drug interaction graphs, patient safety audit trails
  • ๐Ÿ’ฐ Finance โ€” fraud detection, regulatory compliance, risk knowledge graphs
  • โš–๏ธ Legal โ€” evidence-backed research, contract analysis, case law reasoning
  • ๐Ÿ”’ Cybersecurity โ€” threat attribution, incident response timelines, provenance tracking
  • ๐Ÿ›๏ธ Government โ€” policy decision records, classified information governance
  • ๐Ÿญ Infrastructure โ€” power grids, transportation networks, operational decision logs
  • ๐Ÿค– Autonomous Systems โ€” decision logs, safety validation, explainable AI

๐Ÿค Community & Support


๐Ÿค 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 Hawksight AI ยท โญ Star on GitHub

GitHub ยท Discussions ยท Issues

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veritas_reason-0.4.5.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veritas_reason-0.4.5-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file veritas_reason-0.4.5.tar.gz.

File metadata

  • Download URL: veritas_reason-0.4.5.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for veritas_reason-0.4.5.tar.gz
Algorithm Hash digest
SHA256 565465dabb35a39f9bfbd69d3680ef6cb1f6ce3b755d59d7f7130d68386cd9a3
MD5 904b9294e9a602e6efd39f61d4a9bfe7
BLAKE2b-256 2d001ba8f690ce9b9083925f648760f72e7e618516b477d3bc777aecb1e61d3a

See more details on using hashes here.

File details

Details for the file veritas_reason-0.4.5-py3-none-any.whl.

File metadata

  • Download URL: veritas_reason-0.4.5-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for veritas_reason-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cd4258b36df0906385efc6fe7f97d7e661b16d2d1baa697d8a070b99ed348eaf
MD5 b601a5ee451b9012f451952477e77463
BLAKE2b-256 773e9be883fa147260a50e333d34ad83e40d0483f0dc77bb77bed91792d6cad0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page