Welcome to Pyidp3’s documentation!

This documentation covers everything in the Pyidp3 module.

This is a Python3 port of Joost Vennekens Pyidp.

The Pyidp3 module is an API between Python3 and the IDP system. In short, IDP is a Knowledge Base System (KBS) using the FO(.) language. FO(.) is standard First-Order logic, but expanded. See the IDP website for more. A KBS is a system that stores all it’s knowledge in a knowledge base, and then supports different inference methods to apply on the knowledge. It’s programmed in a declarative manner. More on programming the IDP system and FO(.) can be found here.

Pyidp3 will try to bridge the gap between IDP (which is programmed declaratively) and Python (which is programmed imperatively). It works in both directions: the user can supply data in Pythonic form to Pyidp3, which will then be converted to IDP form and given to the IDP system. When the IDP system is done infering, Pyidp3 will process it’s output and translate this back into Pythonic form.

_images/pyidp3.png

A list of all the features can be found at: Pyidp3 features.

More information on the porting of Pyidp to Pyidp3 can be found at: Porting of Pyidp to Pyidp3.

This submodule is part of my master’s thesis. Due to timeconstraints, this module is far from perfect. I used it to build an application to assign students to groups, based on the IDP system. More on that can be found here.