title: Querying Prolog variables with JPL
body: <p>I want to make a query to use Prolog in java through JPL, I read the documentation (http://www.swi-prolog.org/packages/jpl/java_api/getting_started.html)
  The prolog predicates are these:</p>
  
  <pre><code>child_of(joe, ralf).
  child_of(mary, joe).
  child_of(steve, joe).
  child_of(steve, ralf).
  
  descendent_of(X, Y) :-
      child_of(X, Y).
  descendent_of(X, Y) :-
      child_of(Z, Y),
  descendent_of(X, Z).
  </code></pre>
  
  <p>My code looks like this</p>
  
  <pre><code>Variable X = new Variable();
  
          Query q4 =
              new Query(
                  "descendent_of",
                  new Term[] {X,new Atom("joe")}
              );
  
          java.util.Hashtable solution;
  
          while ( q4.hasMoreSolutions() ){
              solution = q4.nextSolution();
              System.out.println( "X = " + solution.get(X));
          }
  </code></pre>
  
  <p>According to my prolog predicates, my java code should retrieve 'mary' and 'steve', but I get this:</p>
  
  <pre><code>X = null
  X = null
  </code></pre>
  
  <p>What I'm doing wrong? thanks in advance</p>
  
  <p><strong>EDIT</strong>: this is my entire testing</p>
  
  <pre><code>Query q1 =
      new Query(
          "consult",
          new Term[] {new Atom("C:\\Users\\cardozo\\Documents\\fer\\info2\\lore\\test.pl")}
      );
  
  return q1;
  
  System.out.println( "consult " + (q.query() ? "succeeded" : "failed"));
  
  Query q2 =
      new Query(
          "child_of",
          new Term[] {new Atom("joe"),new Atom("X")}
      );
  Boolean resp= q2.query();
  System.out.println("child_of(joe,X) is " + resp.toString()
  );
  
  Query q3 =
      new Query(
          "descendent_of",
          new Term[] {new Atom("steve"),new Atom("ralf")}
      );
  
  System.out.println(
      "descendent_of(joe,ralf) is " +
      ( q3.query() ? "provable" : "not provable" )
  );
  
  Variable X = new Variable();
  
  Query q4 =
      new Query(
          "descendent_of",
          new Term[] {X,new Atom("joe")}
      );
  
  java.util.Hashtable solution;
  
  q4.query();
  
  while ( q4.hasMoreSolutions() ){
      solution = q4.nextSolution();
      System.out.println( "X = " + solution.get("X"));
  }
  </code></pre>
  
  <p>And this is what I get in my java console as result</p>
  
  <pre><code>run:
  % C:\Users\cardozo\Documents\fer\info2\lore\test.pl compiled 0.00 sec, 8 clauses
  consult succeeded
  child_of(joe,X) is false
  descendent_of(joe,ralf) is provable
  X = null
  X = null
  BUILD SUCCESSFUL (total time: 0 seconds)
  </code></pre>