Expert Systems for Python
Project description
Experta is a Python library for building expert systems strongly inspired by CLIPS.
from random import choice
from experta 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"])
>>> engine = RobotCrossStreet()
>>> engine.reset()
>>> engine.declare(Light(color=choice(['green', 'yellow', 'blinking-yellow', 'red'])))
>>> engine.run()
Be cautious because light is blinking-yellow
Migrating from Pyknow
Experta is a Pyknow fork. Just replace any pyknow references in your code/examples to experta and everything should work the same.
Examples
You can find some more examples on GitHub.
TODO
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
experta-1.8.0.tar.gz
(23.6 kB
view hashes)
Built Distribution
experta-1.8.0-py3-none-any.whl
(34.5 kB
view hashes)