Skip to content

Releases: lab-v2/pyreason

v3.4.0

18 Mar 21:12
477ec63

Choose a tag to compare

What's Changed

Full Changelog: v3.3.0...v3.4.0

v3.3.0

13 Feb 19:06
1c796e4

Choose a tag to compare

What's Changed

New Features

  • Bulk rule loading from CSV and JSON files — Instead of only being able to load rules from plain text files (one rule per line, no per-rule configuration), rules can now be loaded from CSV and JSON files with per-rule control over infer_edges, set_static, custom_thresholds, and weights, thereby enabling three tiers of rule loading expressiveness (text for simple, CSV for moderate, JSON for full control) by @ColtonPayne in #120

  • Input validation for rules — Instead of malformed rules, invalid bounds, and bad parameters causing cryptic runtime failures deep in the reasoning engine, the rule parser now validates structure, predicate/variable names, interval bounds, negation syntax, forall() expressions, thresholds, and weights upfront, thereby producing clear, actionable error messages at parse time by @ColtonPayne in #103

  • Bulk fact loading from CSV/JSON and input validation for facts — Instead of requiring facts to be added one at a time via the Python API with no validation, facts can now be loaded in bulk from CSV and JSON files with automatic header detection, flexible boolean formats, and per-row error handling. The fact parser now also validates parentheses structure, predicate names, interval bounds, and negation syntax upfront, thereby catching malformed facts before they reach the reasoning engine by @ColtonPayne in #100

Bug Fixes

  • Float64 consistency in interval methods — Instead of using np.float32 for default return values when intervals are disjoint, all float values in intersection methods now use np.float64 to match the Interval struct constructor, thereby eliminating type coercion mismatches that caused silent precision loss during bound computations by @ColtonPayne in #118

  • Float-to-string for negative values and zero-padding — Instead of float_to_str() producing incorrect output for negative floats (e.g., -3.456 yielding a wrong decimal due to Python's modulo behavior) and dropping leading zeros in decimal representation (e.g., 3.001 rendering as "3.1"), the function now uses abs() before modulo, handles negative signs correctly, and always produces 3 decimal digits with proper round() instead of int() truncation, thereby fixing display accuracy across interpretation.py, interpretation_fp.py, and interpretation_parallel.py by @ColtonPayne in #119

  • Delta bound convergence with IPL complements — Instead of _update_edge appending the wrong variable to updated_bnds (BUG-125) and delta comparisons using the original label's previous bound for all IPL complements instead of each complement's own previous bound (BUG-127), the correct complement bound is now appended and each bound is compared against its own previous value, thereby fixing premature or incorrect convergence detection in delta_bound mode when Inverse Predicate Law complements are involved by @ColtonPayne in #102

  • Threshold checking with filtered qualified groundings — Instead of check_all_clause_satisfaction() passing unfiltered total groundings as both the denominator and numerator (causing threshold ratios like 5/4=125% instead of 2/4=50% for "available" quantifiers, and always 100% for "total" quantifiers), groundings are now properly filtered by clause bounds before threshold evaluation, thereby ensuring quantifier-based rule thresholds compute the correct satisfaction ratios by @ColtonPayne in #101

Full Changelog: v3.2.0...v3.3.0

v3.2.0

12 Nov 16:17
2bbddff

Choose a tag to compare

What's Changed

Full Changelog: v3.1.0...v3.2.0

v3.1.0

30 Aug 18:06
bfc08f7

Choose a tag to compare

What's Changed

Full Changelog: v3.0.4...v3.1.0

v3.0.4

22 Mar 17:46
5614760

Choose a tag to compare

Changes to reasoning again with restart parameter allowing users to reset time to zero before reasoning again.

Full Changelog: v3.0.3...v3.0.4

v3.0.3

27 Feb 12:43
6cadb6d

Choose a tag to compare

Updated the way we pass facts to reason again to be same as reasoning for the first time

Full Changelog: v3.0.2...v3.0.3

v3.0.2

20 Feb 12:34
e550d62

Choose a tag to compare

Main changes regarding reasoning again and related documentation. Allows users to add facts more naturally

Full Changelog: v3.0.1...v3.0.2

v3.0.1

15 Dec 09:56
78ff570

Choose a tag to compare

What's Changed

Full Changelog: v3.0.0...v3.0.1

v3.0.0

01 Dec 16:16
5a1aab7

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.3.0...v3.0.0

v2.3.0

16 May 20:00
94136bb

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.2.1...v2.3.0