34 lines
		
	
	
		
			652 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			652 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() | ||
|  | print "ok" | ||
|  | q = Query(parent(X, "bob"), module=test1) | ||
|  | print "ok" | ||
|  | 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() | ||
|  | 
 |