from pyswip import * p = Prolog() assertz = Functor("assertz") parent = Functor("parent", 2) test1 = newModule("test1") test2 = newModule("test2") call(assertz(parent("john", "bob")), module=test1) call(assertz(parent("jane", "bob")), module=test1) call(assertz(parent("mike", "bob")), module=test2) call(assertz(parent("gina", "bob")), module=test2) print "knowledgebase test1" X = Variable() q = Query(parent(X, "bob"), module=test1) while q.nextSolution(): print X.value q.closeQuery() print "knowledgebase test2" q = Query(parent(X, "bob"), module=test2) while q.nextSolution(): print X.value q.closeQuery()