32 lines
		
	
	
		
			630 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			630 B
		
	
	
	
		
			Python
		
	
	
	
	
	
 | 
						|
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()
 | 
						|
 |