solve
Parses currentFile as the static knowledge base and query as the goal, then computes and publishes (via onNewSolution) only the first solution, leaving state as State.SOLUTION if more solutions may exist.
Parsing errors in either the theory or the query are reported through onError (as a SyntaxException) rather than thrown.
Throws
if state is not State.IDLE or State.SOLUTION.