public InferenceResult ask(FOLKnowledgeBase KB,Sentence query){
  if (!(query instanceof AtomicSentence)) {
    throw new IllegalArgumentException("Only Atomic Queries are supported.");
  }
  List<Literal> goals=new ArrayList<Literal>();
  goals.add(new Literal((AtomicSentence)query));
  BCAskAnswerHandler ansHandler=new BCAskAnswerHandler();
  List<List<ProofStepBwChGoal>> allProofSteps=folbcask(KB,ansHandler,goals,new HashMap<Variable,Term>());
  ansHandler.setAllProofSteps(allProofSteps);
  return ansHandler;
}

public InferenceResult ask ( FOLKnowledgeBase KB , Sentence query ) { if ( ! ( query instanceof AtomicSentence ) ) { throw new IllegalArgumentException ( "Only Atomic Queries are supported." ) ; } List < Literal > goals = new ArrayList < Literal > ( ) ; goals . add ( new Literal ( ( AtomicSentence ) query ) ) ; BCAskAnswerHandler ansHandler = new BCAskAnswerHandler ( ) ; List < List < ProofStepBwChGoal > > allProofSteps = folbcask ( KB , ansHandler , goals , new HashMap < Variable , Term > ( ) ) ; ansHandler . setAllProofSteps ( allProofSteps ) ; return ansHandler ; }
returns a set of substitutions
