docs: private boolean propagateAnswersToQuery(ReasonerAtomicQuery target, CacheEntry<ReasonerAtomicQuery, SE> childMatch, boolean inferred){
          ReasonerAtomicQuery child = childMatch.query();
          boolean[] newAnswersFound = {false};
          boolean childGround = child.isGround();
          getParents(target)
                  .forEach(parent -> {
                      boolean parentDbComplete = isDBComplete(keyToQuery(parent));
                      if (parentDbComplete || childGround){
                          boolean parentComplete = isComplete(keyToQuery(parent));
                          CacheEntry<ReasonerAtomicQuery, SE> parentMatch = getEntry(keyToQuery(parent));
                          boolean newAnswers = propagateAnswers(parentMatch, childMatch, inferred || parentComplete);
                          newAnswersFound[0] = newAnswers;
                          if (parentDbComplete || newAnswers) ackDBCompleteness(target);
                          if (parentComplete) ackCompleteness(target);
                      }
                  });
          return newAnswersFound[0];
      }