Please Make a Donation:
Support This Project

Hosted by:
Get Python Knowledge Engine (PyKE) at Fast, secure and Free Open Source software downloads

Fact Bases

When statements of fact are stored in Pyke, they are stored in fact bases. Pyke allows you to have as many fact bases as you like to help you organize your facts. The fact bases are created automatically, as needed, as new facts are asserted.


Think of a fact as a simple statement. It has a name and a set of arguments. The arguments may be:

  • strings
    • proper identifiers don't need quotes: Fred is the same as 'Fred'
  • numbers
  • None, True or False
  • tuples of any of these (including nested tuples)
    • singleton tuples don't require a comma: (1) is the same as (1,)

Duplicate facts are not allowed. An attempt to assert a fact that already exists is silently ignored. But note that to be a duplicate, all of the arguments must be the same!

Currently facts are thought to be immutable, meaning that they may not be changed or retracted. That's why dictionaries, lists and user-defined objects are not recommended as arguments.

Case Specific Facts

Most facts are case specific facts. This means that they will be deleted when an engine reset is done to prepare for another run of the inference engine. Case specific facts are asserted through either:

some_engine.assert_(kb_name, fact_name, arguments)
some_engine.add_case_specific_fact(kb_name, fact_name, arguments)

They may also be asserted by forward-chaining rules.

Universal Facts

Universal facts are never deleted (specifically, when a reset is done). You can specify universal facts in a .kfb file, or add universal facts by calling:

some_engine.add_universal_fact(kb_name, fact_name, arguments)

Typically, all universal facts are added once at program startup.


Fact Bases

Explanation of facts and fact bases.

Rule Bases

Explanation of rule bases, overview of .krb files and how these files are compiled and loaded into your Python program.

Question Bases

Explanation of question bases and .kqb files.


Explanation of the special knowledge base.

Page last modified Mon, Oct 27 2008.