Tree [7cd0dd] default /
History



File Date Author Commit
doc 2008-05-02 mtnyogi mtnyogi [7cd0dd] 1. Removed colon_opt from `python` assertion cl...
examples 2008-05-02 mtnyogi mtnyogi [7cd0dd] 1. Removed colon_opt from `python` assertion cl...
pyke 2008-05-02 mtnyogi mtnyogi [7cd0dd] 1. Removed colon_opt from `python` assertion cl...
README 2008-04-08 mtnyogi mtnyogi [f906c3] - change 2 references to 'compiler' subdirector...
RELEASE_NOTES-0.1.alpha1 2007-11-09 mtnyogi mtnyogi [141a36] First try at 0.1.alpha1
RELEASE_NOTES-0.1.alpha2 2008-02-13 mtnyogi mtnyogi [66bbff] This should be the alpha2 release!
RELEASE_NOTES-0.2 2008-03-06 mtnyogi mtnyogi [5a44bd] Release 0.2
copyright_license 2007-10-15 mtnyogi mtnyogi [9cc939] Added svn:keywords properties. Some work on doc...
doctest_file.py 2008-04-11 mtnyogi mtnyogi [8d35ae] Moved doc/testdocs.py to top-level doctest_file.py
ez_setup.py 2007-11-09 mtnyogi mtnyogi [141a36] First try at 0.1.alpha1
make_doc_tarball 2008-02-13 mtnyogi mtnyogi [66bbff] This should be the alpha2 release!
make_examples_tarball 2008-03-07 mtnyogi mtnyogi [0bd686] Added examples tarball to sourceforge downloads.
setup.py 2008-03-19 mtnyogi mtnyogi [b0f66d] Changed compiler -> krb_compiler in setup.py
testall 2008-05-02 mtnyogi mtnyogi [7cd0dd] 1. Removed colon_opt from `python` assertion cl...

Read Me

Pyke: Python Knowledge Engine

Version: 0.2

Both forward-chaining and backward-chaining rules (which may include python
code) are compiled into python. Can also automatically assemble python
programs out of python functions which are attached to backward-chaining
rules.

COPYRIGHT AND LICENSE:

This is published under the MIT License.  The copyright and license are in
the file "copyright_license".

DOCUMENTATION:

The documentation is at:

    http://pyke.sourceforge.net

You can download a copy of this documentation to your hard drive:

    pyke_doc_html-0.2.tar.gz

See the end of this file for how to regenerate the html files.


INSTALLATION:

Pyke requires python 2.5 (or later 2.x release).  Check with:

    $ python2.5 --version
 or $ python --version

You can download this at:

    http://www.python.org

To install pyke with easy_install, at the shell prompt just type:

    $ easy_install-2.5 pyke

If you don't have easy_install, you should install it:

    download: http://peak.telecommunity.com/dist/ez_setup.py
    then (as root) run: $ python2.5 ez_setup.py

Otherwise, you'll also need ply 2.3 from:

    http://www.dabeaz.com/ply/

This can be checked as follows:

    $ python2.5
    >>> from ply import lex
    >>> lex.__version__

Then you got two choices for pyke:

    pyke-0.2-py2.5.egg


SOURCE DISTRIBUTION:

The pyke source distribution is the file:

    pyke-0.2.tar.gz

This contains the pyke source code, documentation (both source and html), and
examples.

EXAMPLES:

Pyke examples may be downloaded separately from sourceforge if you've used
easy_install to install pyke (or installed the .egg file):

    pyke_examples-0.2.tar.gz

Each example has a README file that explains how to run it.

The family_relations example is a good place to start.  It shows several
solutions to the same problem.  It also has an example of a few rule
optimizations that result in a 100 times performance improvement on this
problem.

The sqlgen example uses MySQL and the python MySQLdb module.  It has a
function that reads the schema information into pyke facts.  Then the rules in
database.krb automatically figure out how to join tables together to retrieve
a list of column names, generate the SQL select statement and return a plan to
execute this SQL statement and return the results as a dictionary.

The web_framework example uses the sqlgen example.  This demonstrates the use
of multiple rule bases.  The web_framework is a WSGI application that uses the
HTMLTemplate package.  It gets the column names from the HTMLTemplate and
feeds those to the sqlgen example to generate a plan to retrieve the data.  It
then builds a plan to populate the template and return the finished HTML
document.  The example includes a wsgiref simple_server setup to run it as an
http server so that you can access it through your browser.


TO INSTALL FROM THE SOURCES:

    $ python2.5 setup.py install


RUNNING DOCTESTS:

To run doctests on all *.py files in the pyke directory, cd to the pyke
directory and:

    $ ./testpyke


COMPILING THE COMPILER.KRB FILE:

In pyke/krb_compiler:

    $ python2.5
    >>> from pyke import krb_compiler
    >>> krb_compiler.compile('.', 'compiled_krb', ('compiler.krb',))
    $ cp compiled_krb/compiler_bc.py .
    $ rm -rf compiled_krb


EXAMPLES:

Currently there is only one example.  Read its README file for how to run it.


COMPILING THE DOCUMENTATION:

To compile the documentation into html, you'll need docutils and rest2web.
If you're running linux, your distro may have packages for these already.
Or you can:

    $ easy_install-2.5 rest2web

I used version 0.4.1 of docutils and 0.5.0 of rest2web.  I don't know if
earlier versions work OK or not.

To check your versions:

    $ python2.5
    >>> import docutils
    >>> docutils.__version__
    >>> import rest2web
    >>> rest2web.__version__

If your linux distro doesn't have packages for these, and you don't want to
use easy_install, you can get them at:

    http://sourceforge.net/projects/docutils
    http://sourceforge.net/projects/rest2web

To regenerate the html, cd to the doc directory and:

    $ r2w r2w.ini

This regenerates everything from doc/source into doc/html.  It takes about
2 seconds to run.

If you want to run doctest on all of the *.txt files in doc/source,
cd to doc and:

    $ ./testdocs