ANN: PyIE - Python Inference Engine

R

Ralph Miller

PyIE, Python Inference Engine, is now available at "DFWPython.org",
under "Our Source Repository", thanks to Jeff Rush. The current revision
is 0.9.10.

What's PyIE ?
-------------

PyIE is an hypothesis based, agenda driven, object oriented inference
engine written in Python. Inferencing modes include back chaining,
opportunistic forward chaining and explicit forward chaining. The object
base supports classes, first-class objects and multiple, dynamic
inheritance. PyIE uses a TMS (truth maintenance system) for
non-monotonic reasoning. All objects are first class objects and all
values are slot values, i.e. data members attached to some object. The
GUI uses TKinter and consists of a main control panel and seven editors
for the agenda, classes, objects, slots, rules, methods and commands.

The knowledge base file types are currently XML and an older
Python-like text format. A version is associated with all .py files and
when the KBs are saved, this current version number is saved within the
knowledge base source files. Only the XML format supports methods and is
the default file type.

Knowledge is usually, but not always, expressed in rules and the
sequencing of the inferencing is controlled by a structure called an
agenda. The current truth-values of each clause and each rule are kept
in an hypothesis. Rules typically contain the main expression of
knowledge and experience. Every rule must be associated with a hypo.
Every rule has one or more antecedent clauses, usually termed the 'left
hand side' (lhs). Rules may also have one or more consequent clauses;
usually termed the 'right hand side' (rhs). In order to prove the
associated hypo true, a rule must prove all antecedent clauses true.

A hypothesis is simply a truth-value, in PyIE one of four possible
values: True, False, Not Known or Unknown. 'Unknown' indicates that the
hypo has not been tested, while 'Not Known' specifies that the hypo has
been tested but proven neither 'True' nor 'False'. The engine proves
hypotheses taken from an agenda. The agenda is hypothesis driven, that
is, only hypotheses are contained in the agenda, not rules. The engine
selects the relevant hypothesis to be proved and follows a specific set
of steps to prove the hypo. Firing rules is only one method for proving
a hypothesis.

Download
--------

The current PyIE may be exported from the subversion repository:
https://python.taupro.com/repo/Projects/PyIE/trunk

Compressed gzip and zip files will be available from time to time from:
https://python.taupro.com/repo/Projects/PyIE/downloads


External Dependencies
---------------------

PyIE relies on Python 2.3 and later and also TKinter. No other modules
need be installed.

License
-------

The license is MIT.

Caveats
-------

This is a research project. The documenetation is woefully incomplete.
'Eval' and 'compile' are used in the "KBsXML.py" module to process rules
and methods. The underlying assumption is that there will be no
malicious use.

Author
------

Ralph S. Miller
(e-mail address removed)


Regards,
Ralph
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top