[Edu-sig] This showed up in my mailbox
lac at strakt.com
Thu Feb 16 10:25:36 CET 2006
Possibly of interest.
------- Forwarded Message
Return-Path: python-logic-bounces at www.logilab.org
Delivery-Date: Thu Feb 16 09:59:44 2006
Date: Wed, 15 Feb 2006 16:34:58 -0600
From: Ralph Miller <miller_ralph at sbcglobal.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US;
rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
X-Accept-Language: en-us, en
PyIE, Python Inference Engine, is now available at "DFWPython.org",
under "Our Source Repository", thanks to Jeff Rush. The current revision
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
The current PyIE may be exported from the subversion repository:
Compressed gzip and zip files will be available from time to time from:
PyIE relies on Python 2.3 and later and also TKinter. No other modules
need be installed.
The license is MIT.
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
Ralph S. Miller
miller_ralph at sbcglobal.net
Python-logic mailing list
Python-logic at lists.logilab.org
------- End of Forwarded Message
More information about the Edu-sig