public Set<Triple> extractTriplePattern(final Query query, final boolean ignoreOptionals) { triplePattern = new HashSet<>(); optionalTriplePattern = new HashSet<>(); query.getQueryPattern().visit(this); // postprocessing: triplepattern in OPTIONAL clause if (!ignoreOptionals && query.isSelectType()) { for (Triple t : optionalTriplePattern) { if (!ListUtils.intersection(new ArrayList<>(VarUtils.getVars(t)), query.getProjectVars()).isEmpty()) { triplePattern.add(t); } } } return triplePattern; }
public Set<Triple> extractTriplePattern(Query query, boolean ignoreOptionals){ triplePattern = new HashSet<>(); optionalTriplePattern = new HashSet<>(); query.getQueryPattern().visit(this); //postprocessing: triplepattern in OPTIONAL clause if(!ignoreOptionals){ if(query.isSelectType()){ for(Triple t : optionalTriplePattern){ if(!ListUtils.intersection(new ArrayList<>(VarUtils.getVars(t)), query.getProjectVars()).isEmpty()){ triplePattern.add(t); } } } } return triplePattern; }
public Set<Triple> extractTriplePattern(Query query, boolean ignoreOptionals){ triplePattern = new HashSet<Triple>(); candidates = new HashSet<Triple>(); query.getQueryPattern().visit(this); //postprocessing: triplepattern in OPTIONAL clause if(!ignoreOptionals){ if(query.isSelectType()){ for(Triple t : candidates){ if(ListUtils.intersection(new ArrayList<Var>(VarUtils.getVars(t)), query.getProjectVars()).size() >= 2){ triplePattern.add(t); } } } } return triplePattern; }