@Override protected AtomPredicate convertToAtomPredicate(Predicate originalPredicate, Map<Predicate, AtomPredicate> predicateCache) { if (originalPredicate instanceof AtomPredicate) { return (AtomPredicate) originalPredicate; } else if (predicateCache.containsKey(originalPredicate)) { return predicateCache.get(originalPredicate); } else { AtomPredicate atomPredicate = ATOM_FACTORY.getAtomPredicate(originalPredicate); // Cache it predicateCache.put(originalPredicate, atomPredicate); return atomPredicate; } }
private DistinctVariableOnlyDataAtom generateProjectionAtom(ImmutableSet<Variable> projectedVariables) { AtomPredicate newPredicate = ATOM_FACTORY.getAtomPredicate(DATALOG_FACTORY.getSubqueryPredicatePrefix() + ++subQueryCounter, projectedVariables.size()); return ATOM_FACTORY.getDistinctVariableOnlyDataAtom(newPredicate, ImmutableList.copyOf(projectedVariables)); }
public static AtomPredicate createAtomPredicateFromRelation(RelationDefinition r) { return ATOM_FACTORY.getAtomPredicate(extractPredicateName(r), r.getAttributes().size()); }
/** * Computes one Most General Unifier (MGU) of (two) substitutions. */ public static Optional<ImmutableSubstitution<ImmutableTerm>> computeMGUS(ImmutableSubstitution<? extends ImmutableTerm> substitution1, ImmutableSubstitution<? extends ImmutableTerm> substitution2) { ImmutableList.Builder<ImmutableTerm> firstArgListBuilder = ImmutableList.builder(); ImmutableList.Builder<ImmutableTerm> secondArgListBuilder = ImmutableList.builder(); for (Map.Entry<Variable, ? extends ImmutableTerm> entry : substitution1.getImmutableMap().entrySet()) { firstArgListBuilder.add(entry.getKey()); secondArgListBuilder.add(entry.getValue()); } for (Map.Entry<Variable, ? extends ImmutableTerm> entry : substitution2.getImmutableMap().entrySet()) { firstArgListBuilder.add(entry.getKey()); secondArgListBuilder.add(entry.getValue()); } ImmutableList<ImmutableTerm> firstArgList = firstArgListBuilder.build(); ImmutableList<ImmutableTerm> secondArgList = secondArgListBuilder.build(); Predicate predicate = ATOM_FACTORY.getAtomPredicate(PREDICATE_STR, firstArgList.size()); ImmutableFunctionalTerm functionalTerm1 = TERM_FACTORY.getImmutableFunctionalTerm(predicate, firstArgList); ImmutableFunctionalTerm functionalTerm2 = TERM_FACTORY.getImmutableFunctionalTerm(predicate, secondArgList); return computeMGU(functionalTerm1, functionalTerm2); }
AtomPredicate atomPredicate = (datalogAtomPredicate instanceof AtomPredicate) ? (AtomPredicate) datalogAtomPredicate : ATOM_FACTORY.getAtomPredicate(datalogAtomPredicate);
ATOM_FACTORY.getAtomPredicate( "dummy" + (++dummyPredCounter),