|
From: | Suman Roy |
Subject: | [Info-gnuprologjava] Problem on firing a query |
Date: | Mon, 28 May 2012 16:44:33 +0530 |
Hi, We are using the following code to generate the query “limited_history(H,5),happens3(end(dofulfillmentProcess1),_,H).” This has to be fired on prolog rules (attached) written for business artifact. However, when this query is fired through gnuprolog java JAR file, it is showing that “the current goal is not active’. But this query works fine when we fire them directly to prolog! Can you please tell us what is the problem? Thanks and regards, --Suman ==================================== package RSAE.util; import gnu.prolog.term.AtomTerm; import gnu.prolog.term.CompoundTerm; import gnu.prolog.term.CompoundTermTag; import gnu.prolog.term.IntegerTerm; import gnu.prolog.term.Term; import gnu.prolog.term.VariableTerm; import gnu.prolog.vm.Environment; import gnu.prolog.vm.Interpreter; import gnu.prolog.vm.PrologCode; public class Fresh_06 { public static void main(String[] args) { //limited_history(H,5),happens3(end(dofulfillmentProcess1),_,H). try { VariableTerm H = new VariableTerm(); gnu.prolog.vm.Environment gve = new Environment(); gve.ensureLoaded(AtomTerm.get("D:/RSAE/latest-rule_11.pl")); Interpreter in = gve.createInterpreter(); gve.runInitialization(in); Term lHistory[] = { H, new IntegerTerm(5) }; CompoundTerm lTerm = new CompoundTerm("limited_history", lHistory); //replace with process code works Term t1[] = { AtomTerm.get("sendFreightInvoice1") }; CompoundTerm cTerm2 = new CompoundTerm(",", 2); CompoundTerm ct1 = new CompoundTerm("end", t1); CompoundTerm gTerm1 = new CompoundTerm(CompoundTermTag.get( "happens3", 3), ct1, new VariableTerm(), H); cTerm2.args[0] = lTerm; cTerm2.args[1] = gTerm1; int rc = in.runOnce(cTerm2); if (rc == PrologCode.SUCCESS || rc == PrologCode.SUCCESS_LAST) { System.out.println("success"); } } catch (Exception e) { System.out.println("fail"); } } } ========================================
|
FBprocess-prologCode.txt
Description: FBprocess-prologCode.txt
[Prev in Thread] | Current Thread | [Next in Thread] |