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 [EMAIL PROTECTED] Regards, Ralph -- http://mail.python.org/mailman/listinfo/python-list