@Override public IntermediateQuery optimize(IntermediateQuery query) { return reshape(query); }
private IntermediateQuery normalizeIQ(IntermediateQuery intermediateQuery) { IntermediateQuery groundTermFreeQuery = new GroundTermRemovalFromDataNodeReshaper() .optimize(intermediateQuery); log.debug("New query after removing ground terms: \n" + groundTermFreeQuery); IntermediateQuery queryAfterPullOut = new PullOutVariableOptimizer().optimize(groundTermFreeQuery); log.debug("New query after pulling out equalities: \n" + queryAfterPullOut); return queryAfterPullOut; }
private IntermediateQuery reshape(IntermediateQuery query) { Optional<GroundTermRemovalFromDataNodeProposal> optionalProposal = makeProposal(query); if (optionalProposal.isPresent()) { GroundTermRemovalFromDataNodeProposal proposal = optionalProposal.get(); try { query.applyProposal(proposal); return query; } catch (EmptyQueryException e) { throw new IllegalStateException("Inconsistency: GroundTermRemovalFromDataNodeReshaper should empty the query "); } } else { return query; } }
private IntermediateQuery normalizeIQ(IntermediateQuery intermediateQuery) { IntermediateQuery groundTermFreeQuery = new GroundTermRemovalFromDataNodeReshaper() .optimize(intermediateQuery); log.debug("New query after removing ground terms: \n" + groundTermFreeQuery); IntermediateQuery queryAfterPullOut = new PullOutVariableOptimizer().optimize(groundTermFreeQuery); log.debug("New query after pulling out equalities: \n" + queryAfterPullOut); return queryAfterPullOut; }