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
Metadata
Release files for qualitative-reasoning 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qualitative_reasoning-1.4.0.tar.gz | 153.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qualitative_reasoning-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 302.4 kB
Release files / qualitative_reasoning-1.4.0.tar.gz
| Download URL | qualitative_reasoning-1.4.0.tar.gz |
|---|---|
| Size | 153.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
83cfe89f1b444a26c978c78597ac9aa76bcb657cf91ffad5febca853c054c047
|
|
BLAKE2b-256 checksum How to use checksums |
6de06dc50e89a4805ede7d27d65f3223776c9305ada081722a6fce05f4c89399
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3+
|
Release files / qualitative_reasoning-1.4.0-py3-none-any.whl
| Download URL | qualitative_reasoning-1.4.0-py3-none-any.whl |
|---|---|
| Size | 149.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40a7ed8e49853a72f28b37038b541e85047cb55ce0b18156ee921769e4615066
|
|
BLAKE2b-256 checksum How to use checksums |
f490afc141fa6d327940cdafb2327ced4d22ecf4e116cabfe14c333e3128266f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3+
|