info-gnuprologjava
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Info-gnuprologjava] Problem on firing a query


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");

            }

      }

}

 

========================================

 

**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely
for the use of the addressee(s). If you are not the intended recipient, please
notify the sender by e-mail and delete the original message. Further, you are not
to copy, disclose, or distribute this e-mail or its contents to any other person and
any such actions are unlawful. This e-mail may contain viruses. Infosys has taken
every reasonable precaution to minimize this risk, but is not liable for any damage
you may sustain as a result of any virus in this e-mail. You should carry out your
own virus checks before opening the e-mail or attachment. Infosys reserves the
right to monitor and review the content of all messages sent to or from this e-mail
address. Messages sent to or from this e-mail address may be stored on the
Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***

Attachment: FBprocess-prologCode.txt
Description: FBprocess-prologCode.txt


reply via email to

[Prev in Thread] Current Thread [Next in Thread]