PPL overview

The construction of a probabilistic logic knowledge base is not a simple task. Formulas must be inserted; assessments associated with them; consistency must be checked, and revisions must be made continuously.

Currently the only system that allows interactive development of a probabilistic logic base, to the best of our knowledge, is the Check Coherence (CkC) package. CkC is distributed for noncommercial use, for Windows platforms only, at http://www.dipmat.unipg.it/~upkd/paid/software.html. The package deals with PSAT and allows conditioning on events of zero probability, a possibility that for the time being we avoid in our software. CkC asks the user to enter each formula and assessment in a sequence of steps, using an graphical interface to guide the process. While the CkC package is useful and very general in its operation, we find that the manipulation of formulas is excessively rigid and a bit difficult at times

We have thus decided to investigate a different strategy to edit probabilistic logic bases. Our idea was to start from a well known prototyping language, and add features to this language so that it can serve as a convenient, simple and easy-to-learn editor of probabilistic logic bases. We wanted to create a tool that could be easily extended by others; that could be freely distributed; and that could run in a variety of operating systems. After a comparative analysis of several prototyping languages currently available, we settled on the Python language (http://www.python.org), as it has a clean syntax, a free implementation and an associated development system.

In the PPL package, the user types in arbitrary propositional formulas, using an intuitive syntax (described in the system manual). The user interacts with the package using the friendly Python editor (the IDLE system), and the user can benefit from all Python facilities such as memory control and string processing. The package can call functions that translate formulas into CNF if so desired. The user can attach either probabilities or probability intervals to formulas, and check consistency at any point in time. To check consistency, the package executes calls to the consistency checker described in the section 7.1.

Andre da Costa Teves 2007-08-11