Muhammad Bilal
Muhammad Bilal

Reputation: 118

Access Prolog predicate through java

Error is occurred while executing the code.

     Variable X = new Variable();
     Term goal= new Compound("parent", new Term []{new Atom("ali"),X});
     Query q = new Query(goal);
     while (q.hasMoreElements()) {
         Hashtable binding = (Hashtable) q.nextElement();
         Term t = (Term) binding.get(X);
         System.out.println(t);
     }

and Error is

Exception in thread "main" java.lang.ClassCastException: java.util.HashMap cannot be cast to java.util.Hashtable at newProj.MyMain.main(MyMain.java:18)

Prolog Predicates are

parent(ali, rabia).
parent(shomaila, mubashir).
parent(shomaila, rabia).
parent(nadia, ali).  
parent(sumiya, shomaila).
parent(raheel, ali).
parent(anwar, shomaila).   
parent(sara, anwar).
parent(anwar, sana).
parent(sana,naveed). 

Upvotes: 0

Views: 139

Answers (1)

Mohammad
Mohammad

Reputation: 737

Try this

    Query q =new Query("parent("ali",X)")

    java.util.Hashtable solution;

    while ( q.hasMoreSolutions() ){
        solution = q.nextSolution();
        System.out.println( "X = " + solution.get(X));
    }

Upvotes: 0

Related Questions