Qualitative physics simulation and causal reasoning systems
Project description
Qualitative Reasoning
A comprehensive Python library for qualitative reasoning systems based on Forbus's Process Theory and de Kleer's Qualitative Physics framework.
This package enables AI systems to reason about physical systems using qualitative relationships rather than precise numerical values, similar to how humans understand physics intuitively.
Features
- Modular Architecture: Clean separation of concerns with specialized components
- Security-First Design: Constraint evaluation without eval() vulnerabilities
- Rich Visualization: Comprehensive analysis and visualization capabilities
- Factory Functions: Pre-configured reasoners for common use cases
- Backward Compatibility: Full compatibility with original implementation
Core Components
- QualitativeReasoner: Main reasoning engine
- QualitativeValue/Direction/Quantity: Core qualitative types
- QualitativeState/Process: System state and process modeling
- Constraint Evaluation: Security-focused constraint system
- Visualization: Rich reporting and analysis tools
Installation
pip install qualitative-reasoning
Basic Usage
from qualitative_reasoning import QualitativeReasoner
# Create a reasoner
reasoner = QualitativeReasoner()
# Add quantities and processes
reasoner.add_quantity("temperature", "increasing")
reasoner.add_process("heating", {"temperature": "increasing"})
# Run simulation
reasoner.simulate_step()
Research Foundation
Based on foundational work in qualitative physics:
- Forbus's Process Theory
- de Kleer's Qualitative Physics framework
Author
Benedict Chen (benedict@benedictchen.com)
- Support: PayPal
- Sponsor: GitHub Sponsors
License
Custom Non-Commercial License with Donation Requirements
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
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 qualitative_reasoning-1.4.0.tar.gz.
File metadata
- Download URL: qualitative_reasoning-1.4.0.tar.gz
- Upload date:
- Size: 153.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83cfe89f1b444a26c978c78597ac9aa76bcb657cf91ffad5febca853c054c047
|
|
| MD5 |
2174891adcd0f66110c783f2dc024161
|
|
| BLAKE2b-256 |
6de06dc50e89a4805ede7d27d65f3223776c9305ada081722a6fce05f4c89399
|
File details
Details for the file qualitative_reasoning-1.4.0-py3-none-any.whl.
File metadata
- Download URL: qualitative_reasoning-1.4.0-py3-none-any.whl
- Upload date:
- Size: 149.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3+
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40a7ed8e49853a72f28b37038b541e85047cb55ce0b18156ee921769e4615066
|
|
| MD5 |
cc9325016f132ad5746dadb2e54116ca
|
|
| BLAKE2b-256 |
f490afc141fa6d327940cdafb2327ced4d22ecf4e116cabfe14c333e3128266f
|