Prometheux Chain
Description
Prometheux Chain is a Python SDK designed to help you create, evolve, and deploy ontologies with ease. The SDK offers the following capabilities:
- Data Ingestion: Seamlessly integrate data from various sources, including databases and files.
- Reasoning & Knowledge Augmentation: Perform logical reasoning to derive new insights and augment your existing knowledge base.
- Explainability: Gain clear explanations of the results generated by the system.
For more information refer to the documentation
Features
- Supports a wide range of data sources.
- Built-in reasoning engine for deriving new knowledge.
- Easy-to-understand explanations for enhanced interpretability.
- Ready-to-use configurations for fast deployment.
Installation
Requirements
- Python 3.9 or higher (Python 3.13 recommended)
Install Using pip
- Set Up a Virtual Environment (recommended):
python3 -m venv myenv
source myenv/bin/activate # On Windows: myenv\Scripts\activate
- Install the SDK via pip:
pip install --upgrade prometheux-chain
Usage
This guide demonstrates how to get started with the Prometheux Chain SDK. The example below outlines a typical workflow, including creating an ontology, defining concept logic, and running concepts to generate results.
Workflow
Import the prometheux_chain
import prometheux_chain as px
import os
Define the PMTX_TOKEN environment variable for authentication
os.environ['PMTX_TOKEN'] = 'my_pmtx_token'
Configure the backend connection using your Prometheux account
px.config.set('JARVISPY_URL', "https://platform.prometheux.ai/jarvispy/'my_organization'/'my_username'")
Create a new ontology
ontology_id = px.save_ontology(ontology_name="test_ontology")
Define concept logic using Vadalog syntax and save it
definition = """
company("Apple", "Redwood City, CA").
company("Google", "Mountain View, CA").
company("Microsoft", "Redmond, WA").
company("Amazon", "Seattle, WA").
company("Facebook", "Menlo Park, CA").
company("Twitter", "San Francisco, CA").
company("LinkedIn", "Sunnyvale, CA").
company("Instagram", "Menlo Park, CA").
location(Location) :- company(_,Location).
@output("location").
"""
px.save_concept(ontology_id=ontology_id, definition=definition)
Run the concept to generate results
px.run_concept(ontology_id=ontology_id, concept_name="location")
Fetch the produced facts
results = px.fetch_results(ontology_id=ontology_id, output_predicate="location")
Domains
The SDK exposes a flat, function-based API (import prometheux_chain as px)
covering the user-facing JarvisPy backend:
- Ontologies —
save_ontology,list_ontologies,load_ontology,copy_ontology,export_ontology/import_ontology,export_workspace/import_workspace,list_templates,import_template,create_ontology_from_context,create_snapshot,list_snapshots,restore_snapshot,delete_snapshot. - Data sources —
connect_sources,list_sources,infer_schema,list_sheets,list_demo_sources,refresh_sources,preview_datasource,all_pairs_join,cleanup_sources. - Files (disk/) —
upload_file,list_files,make_directory,delete_files,move_file,download_file. - Concepts —
save_concept,rename_concept,run_concept,run_concept_stream,list_concepts,reorder_concepts,fetch_results,search_results,llm_analysis,download_concept,generate_concept_description,get_concept_description,get_execution_status,get_execution_statuses,cleanup_concepts. - Knowledge graphs —
visualize_concept_lineage,build_graph,list_graph_functions,run_graph_analytics. - Ontology schema —
save_ontology_schema,load_ontology_schema,update_concept_ontology_schema_type,add_to_lineage,import_owl. - Knowledge / context layer —
list_context_notes,create_context_note,create_context_notes_from_file,get_context_note,update_context_note,delete_context_note,search_context_notes,auto_seed,interview_template,submit_interview,onboarding_status,ontology_text. - Agent —
agent_chat(streaming),agent_reset. - Sharing —
create_share,revoke_share,update_share_role,list_shares,list_inbox,accept_share,leave_share,sync_inbox. - Apps —
list_all_apps,list_apps,get_app,save_app,delete_app. - Schedules —
create_policy,list_policies,get_policy,update_policy,delete_policy,trigger_policy,get_run_history. - Alerts —
get_alert_history,reprocess_alert. - Chat history —
list_sessions,get_session,rename_session,delete_session. - Compute —
check_compute_availability. - Users / account —
save_user_config,load_user_config,get_role,list_llm_models,get_usage_status,get_login_activity. - Auth / tokens —
issue_token,list_tokens,revoke_token,revoke_specific_token,revoke_all_tokens. - Vadalog authoring —
analyze_program,build_bind,parse_binds,evaluate_program. - Vadalingo translation —
translate_nl_to_vadalog,translate_sql_to_vadalog,translate_rdf_to_vadalog,translate_owl_to_vadalog.
Optional configuration
Some recipient-side sharing flows require a Supabase token. Set it via the
SUPABASE_TOKEN environment variable (or px.config) and it is attached
automatically as the X-Supabase-Token header when present.
Streaming
A few endpoints stream results instead of returning a single response. These return Python generators you iterate over.
Chat with the Vadalog AI agent (NDJSON stream)
for event in px.agent_chat(ontology_id=ontology_id, message="What does this ontology do?"):
if event.get("type") == "content":
print(event["data"]["chunk"], end="")
Run a concept with live status updates (WebSocket stream)
WebSocket streaming requires the websocket-client dependency (installed
automatically with the SDK).
for event in px.run_concept_stream(ontology_id=ontology_id, concept_name="location"):
print(event.get("event"), event.get("data"))
# iteration ends after the terminal "complete" or "error" event
Auto-seed the context layer from connected data sources (NDJSON stream)
for event in px.auto_seed(scope="project", scope_id=ontology_id):
print(event)
Tokens
Issue and manage API tokens programmatically:
token = px.issue_token(name="ci-bot", expires_in_minutes=60)
print(token["token"]) # the raw JWT — shown only once
px.list_tokens()
px.revoke_specific_token(token["jti"])
For Maintainers
Releasing a New Version
Merging a version bump into main publishes to PyPI — see
.github/workflows/publish.yml. Nothing is built from a laptop, so what customers
install is always a commit that was reviewed.
# 1. Bump the version. This is the only place it lives: setup.py stamps it into
# the package metadata, and prometheux_chain.__version__ reads it back out.
echo "0.3.3" > version.txt
# 2. Open a PR with that change and merge it. That is the whole release.
The guard job compares version.txt against the tags that already exist, so a
merge that does not bump the version is a no-op. A merge that does bump it builds,
publishes, attests the artifacts, tags the commit v0.3.3, and opens a GitHub
Release with the SBOM and checksums attached. A version already on PyPI fails the
upload rather than being skipped quietly.
Do not push a v* tag by hand. Nothing listens for tags: the tag is written after
a successful upload as the record of what shipped, and it is what the guard reads
to decide whether the next merge is a release.
One-time PyPI setup. The workflow authenticates with trusted publishing rather than a stored API token, so it must be registered once by a PyPI owner of the project:
prometheux-chain→ Manage → Publishing → add a GitHub publisher with ownerprometheuxresearch, repositoryprometheux-chain, workflowpublish.yml, environmentpypi.The environment name is not optional. A trusted publisher is bound to the workflow filename rather than to any branch, so without it a branch carrying a modified
publish.ymlcan mint a real publishing token. Namingpypion both sides — and restricting that environment tomainunder Settings → Environments →pypi→ deployment branch policy — is what ties a release to a reviewed commit. The environment has to exist before the workflow runs, or the publish job fails withMissing environment 'pypi'.
Access to Prometheux Backend
The Prometheux backend is required to use this SDK. To request access:
- 📧 Email: davben@prometheux.co.uk, teodoro.baldazzi@prometheux.co.uk, or support@prometheux.co.uk
- 🌐 Website: https://www.prometheux.ai
License
BSD 3-Clause License — see LICENSE file for details.
About Prometheux
Prometheux is an ontology native data engine that processes data anywhere it lives. Define ontologies once and unlock knowledge that spans databases, warehouses, and platforms—built on the Vadalog reasoning engine.
Key capabilities:
- Connect: Query across Snowflake, Databricks, Neo4j, SQL, CSV, and more without ETL or vendor lock-in
- Think: Replace 100+ lines of PySpark/SQL with simple declarative logic. Power graph analytics without GraphDBs
- Explain: Full lineage & traceability with deterministic, repeatable results. Ground AI in structured, explainable context
Exponentially faster and simpler than traditional approaches. Learn more at prometheux.ai.
Support
For issues, questions, or access requests:
- Homepage: https://www.prometheux.ai
- PyPI: https://pypi.org/project/prometheux-chain/
- Email: davben@prometheux.co.uk, teodoro.baldazzi@prometheux.co.uk, or support@prometheux.co.uk
- Documentation: https://docs.prometheux.ai/integrations/python-sdk
- Issues: GitHub Issues
Related Projects
- Prometheux MCP — MCP client for AI agents
- Vadalog Extension — JupyterLab extension for Vadalog
- Vadalog Jupyter Kernel — Jupyter kernel for Vadalog
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file prometheux_chain-0.3.3.tar.gz.
File metadata
- Download URL: prometheux_chain-0.3.3.tar.gz
- Upload date:
- Size: 36.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
764af5e61f36bc17ee8695f95c900475baedf988318e28a3f1c8bc8cceee319f
|
|
| MD5 |
a8d8121aae50180f6df9f4414407c612
|
|
| BLAKE2b-256 |
e31960aa696bb4efdf52f98ad082487cc70bc8a2417284bf31026d2fa09ba989
|
Provenance
The following attestation bundles were made for prometheux_chain-0.3.3.tar.gz:
Publisher:
publish.yml on prometheuxresearch/prometheux-chain
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
prometheux_chain-0.3.3.tar.gz -
Subject digest:
764af5e61f36bc17ee8695f95c900475baedf988318e28a3f1c8bc8cceee319f - Sigstore transparency entry: 2505616330
- Sigstore integration time:
-
Permalink:
prometheuxresearch/prometheux-chain@f1c3b3dc5fdc6b75e3a17be233f3c76df0d48899 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/prometheuxresearch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f1c3b3dc5fdc6b75e3a17be233f3c76df0d48899 -
Trigger Event:
push
-
Statement type:
File details
Details for the file prometheux_chain-0.3.3-py3-none-any.whl.
File metadata
- Download URL: prometheux_chain-0.3.3-py3-none-any.whl
- Upload date:
- Size: 43.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc9d501871ffbb5a37b02a46950ed63d24fe65c18aef1d39748445f7e1353cce
|
|
| MD5 |
fb7ff19ffe9660536b8bcf9776f68538
|
|
| BLAKE2b-256 |
b5531a84938bc5babe2f723d69cc1cae737b3a791cd1f57332f4a7b002571321
|
Provenance
The following attestation bundles were made for prometheux_chain-0.3.3-py3-none-any.whl:
Publisher:
publish.yml on prometheuxresearch/prometheux-chain
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
prometheux_chain-0.3.3-py3-none-any.whl -
Subject digest:
cc9d501871ffbb5a37b02a46950ed63d24fe65c18aef1d39748445f7e1353cce - Sigstore transparency entry: 2505616976
- Sigstore integration time:
-
Permalink:
prometheuxresearch/prometheux-chain@f1c3b3dc5fdc6b75e3a17be233f3c76df0d48899 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/prometheuxresearch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f1c3b3dc5fdc6b75e3a17be233f3c76df0d48899 -
Trigger Event:
push
-
Statement type: