GitHunt
BU

buguroo/pyknow

PyKnow: Expert Systems for Python

PyKnow: Expert Systems for Python

.. image:: https://img.shields.io/pypi/v/pyknow.svg
:target: https://pypi.python.org/pypi/pyknow

.. image:: https://img.shields.io/pypi/pyversions/pyknow.svg
:target: https://pypi.python.org/pypi/pyknow

.. image:: https://travis-ci.org/buguroo/pyknow.svg?branch=master
:target: https://travis-ci.org/buguroo/pyknow

.. image:: https://readthedocs.org/projects/pyknow/badge/?version=stable
:target: https://readthedocs.org/projects/pyknow/?badge=stable
:alt: Documentation Status

.. image:: https://codecov.io/gh/buguroo/pyknow/branch/develop/graph/badge.svg
:target: https://codecov.io/gh/buguroo/pyknow
:alt: codecov.io

PyKnow is a Python library for building expert systems strongly inspired
by CLIPS_.

.. code-block:: python

from random import choice
from pyknow import *

class Light(Fact):
"""Info about the traffic light."""
pass

class RobotCrossStreet(KnowledgeEngine):
@rule(Light(color='green'))
def green_light(self):
print("Walk")

   @Rule(Light(color='red'))
   def red_light(self):
       print("Don't walk")

   @Rule(AS.light << Light(color=L('yellow') | L('blinking-yellow')))
   def cautious(self, light):
       print("Be cautious because light is", light["color"])

.. code-block:: python

engine = RobotCrossStreet()
engine.reset()
engine.declare(Light(color=choice(['green', 'yellow', 'blinking-yellow', 'red'])))
engine.run()
Be cautious because light is blinking-yellow

You can find some more examples on GitHub_.

.. _CLIPS: http://clipsrules.sourceforge.net
.. _GitHub: https://github.com/buguroo/pyknow/tree/develop/docs

Languages

Python100.0%

Contributors

GNU Lesser General Public License v3.0
Created June 1, 2015
Updated March 5, 2026