Skip to main content

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)

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

qualitative_reasoning-1.4.0.tar.gz (153.4 kB view details)

Uploaded Source

Built Distribution

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

qualitative_reasoning-1.4.0-py3-none-any.whl (149.0 kB view details)

Uploaded Python 3

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

Hashes for qualitative_reasoning-1.4.0.tar.gz
Algorithm Hash digest
SHA256 83cfe89f1b444a26c978c78597ac9aa76bcb657cf91ffad5febca853c054c047
MD5 2174891adcd0f66110c783f2dc024161
BLAKE2b-256 6de06dc50e89a4805ede7d27d65f3223776c9305ada081722a6fce05f4c89399

See more details on using hashes here.

File details

Details for the file qualitative_reasoning-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for qualitative_reasoning-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 40a7ed8e49853a72f28b37038b541e85047cb55ce0b18156ee921769e4615066
MD5 cc9325016f132ad5746dadb2e54116ca
BLAKE2b-256 f490afc141fa6d327940cdafb2327ced4d22ecf4e116cabfe14c333e3128266f

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