This sample illustrate a knowledge engineering approach for building intelligent tests, and also illustrates an architecture for knowledgebase applications in general.
The idea behind tutorial testing is the test is used to learn what the student knows and doesn't know, and uses that knowledge to point to pertinent tutorial texts and to provide further testing in the problem areas.
Comments in the code provide documentation.
To run the system from the listener:
?- [tutor_test_ui]. yes ?- main. what's 2 + 5 10 you're confusing + with * what's 3 + 5 8 good what's 2 * 5 4 read multiplication chapter yes ?- main. what's 2 + 5 6 read addition chapter what's 3 + 5 15 you're confusing + with * what's 2 * 5 10 good yes
The knowledgebase architecture is represented in the file structure: