/** * For a datalog rule */ public VariableDispatcher(CQIE rule) { variableGenerator = new VariableGenerator(rule); allocatedVariables = new HashSet<>(); }
/** * Please make sure you cannot use the other constructors! */ public VariableDispatcher() { variableGenerator = new VariableGenerator(new HashSet<Variable>()); allocatedVariables = new HashSet<>(); }
@Override public QueryTreeComponent createSnapshot() { return new DefaultQueryTreeComponent(tree.createSnapshot(), new VariableGenerator( variableGenerator.getKnownVariables())); }
/** * TODO: explain */ protected DefaultQueryTreeComponent(QueryTree tree) { this(tree, new VariableGenerator( VariableCollector.collectVariables( tree.getNodesInTopDownOrder()))); }
private static Variable generateNonConflictingVariable(Variable v, VariableGenerator variableGenerator, ImmutableSet<Variable> variables) { Variable proposedVariable = variableGenerator.generateNewVariableIfConflicting(v); if (proposedVariable.equals(v) // Makes sure that a "fresh" variable does not exists in the variable set || (!variables.contains(proposedVariable))) return proposedVariable; /* * Generates a "really fresh" variable */ ImmutableSet<Variable> knownVariables = Sets.union( variableGenerator.getKnownVariables(), variables) .immutableCopy(); VariableGenerator newVariableGenerator = new VariableGenerator(knownVariables); return newVariableGenerator.generateNewVariableFromVar(v); } }
VariableGenerator projectedVariableGenerator = new VariableGenerator(ImmutableSet.of()); for (Term term : datalogDataAtom.getTerms()) { Variable newArgument;
VariableGenerator variableGenerator = new VariableGenerator(firstDefinition.getKnownVariables());
DataNodeAndSubstitution rightComponent) { VariableGenerator variableGenerator = new VariableGenerator(query.getKnownVariables());
VariableGenerator variableGenerator = new VariableGenerator(treeComponent.getKnownVariables()); InjectiveVar2VarSubstitution renamingSubstitution = SUBSTITUTION_FACTORY.generateNotConflictingRenaming(variableGenerator, subQuery.getKnownVariables());