/** * Evaluates this flow assembly * * @param evaluationContext the evaluation context, stratum, iteration, rule number * @return true if new inferences were stored, false otherwise */ public boolean evaluate(EvaluationContext evaluationContext) { this.distributedFileSystemManager = new DistributedFileSystemManager(mConfiguration); String flowIdentificator = "_" + evaluationContext.getStratumNumber() + "_" + evaluationContext.getIterationNumber() + "_" + evaluationContext.getRuleNumber(); String resultName = mConfiguration.resultsName != null ? mConfiguration.resultsName : "inference"; if (ruleStreams.getHeadStream().getPredicate() != null || !mConfiguration.doPredicateIndexing) { path = distributedFileSystemManager.getInferencesPath( ruleStreams.getHeadStream(), resultName, flowIdentificator); } else { path = distributedFileSystemManager.getTempInferencesPath(resultName, flowIdentificator); } try { return processFlow(resultName, flowIdentificator, path); } catch (IOException e) { logger.error("io exception creating flow", e); throw new RuntimeException("io exception creating flow", e); } }