use of com.vaticle.typedb.core.logic.resolvable.Unifier in project grakn by graknlabs.
the class ConcludableResolver method registerRules.
private void registerRules(Request fromUpstream, Exploration exploration) {
// loop termination: when receiving a new request, we check if we have seen it before from this root query
// if we have, we do not allow rules to be registered as possible downstreams
Partial.Concludable<?> partialAnswer = fromUpstream.partialAnswer().asConcludable();
for (Map.Entry<Driver<ConclusionResolver>, Set<Unifier>> entry : applicableRules.entrySet()) {
Driver<ConclusionResolver> conclusionResolver = entry.getKey();
for (Unifier unifier : entry.getValue()) {
Optional<? extends Partial.Conclusion<?, ?>> unified = partialAnswer.toDownstream(unifier, resolverRules.get(conclusionResolver));
if (unified.isPresent()) {
Request toDownstream = Request.create(driver(), conclusionResolver, unified.get());
exploration.downstreamManager().addDownstream(toDownstream);
}
}
}
}
Aggregations