BPS: Translations of classic Truth Maintenance Systems

[ gpl, library, program, truth-maintenance ] [ Propose Tags ]

Haskell monad transformer-based translations of two classic Truth Maintenance System algorithms of Forbus and de Kleer's Building Problem Solvers. This version includes justification-based and assumption-based TMS (JTMS and ATMS) implementations. See the GitHub repository https://github.com/jphmrst/bps/, or the Haddock documentation.

[Skip to Readme]


Maintainer's Corner

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS]
Change log ChangeLog.md
Dependencies base (>=4.14.1 && <4.15 || >=4.15.1 && <4.16 || >=4.16.0 && <4.17), BPS, extra (>=1.7 && <1.8), free, mtl (>=2.2.2 && <2.3), resourcet, STMonadTrans (>=0.4.6 && <0.5), symbol (>=0.2.4 && <0.3), template-haskell, transformers (>=0.5.6 && <0.6) [details]
License GPL-3.0-only
Copyright 2022 John Maraist; 1986-1993 Kenneth D. Forbus, Johan de Kleer and Xerox Corporation
Author John Maraist
Maintainer haskell-tms@maraist.org
Category Truth maintenance
Home page https://github.com/jphmrst/bps#readme
Bug tracker https://github.com/jphmrst/bps/issues
Source repo head: git clone https://github.com/jphmrst/bps
Uploaded by jpmrst at 2022-04-22T00:24:50Z
Distributions NixOS:
Executables hbps
Downloads 26 total (2 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-04-22 [all 1 reports]

Readme for BPS-

[back to package description]

Truth maintenance system libraries for Scala and Haskell

This repository is a translation from Common Lisp of the truth maintenance systems and other tools from Forbus and de Kleer's Building Problem Solvers into both Scala and Haskell.

The current version includes working versions of the justification- and assumption-based truth maintenance systems (JTMS and ATMS) in both languages. The Haskell translation omits the two top-level functions interpretations and explainNode of the original system, but otherwise both translations include all of the original functionality of these two TMSes. There is a partial translation of the rule engine wrapper for these TMSes in Scala.

To contribute, submit pull requests to one of the three branches atms (Scala), jtms (Scala) or haskell (both JTMS and ATMS), or start a new branch for one of the other BPS tools, at its repository.