code: private ImmutableList<Function> getAtomsForGenerators(Collection<TreeWitnessGenerator> gens, Term r0)  {
  		return TreeWitnessGenerator.getMaximalBasicConcepts(gens, reasoner).stream()
  				.map(con -> {
  					log.debug("  BASIC CONCEPT: {}", con);
  					if (con instanceof OClass) {
  						return atomFactory.getMutableTripleBodyAtom(r0, ((OClass) con).getIRI());
  					}
  					else if (con instanceof ObjectSomeValuesFrom) {
  						ObjectPropertyExpression ope = ((ObjectSomeValuesFrom)con).getProperty();
  						return (!ope.isInverse())
  								? atomFactory.getMutableTripleBodyAtom(r0, ope.getIRI(), getFreshVariable())
  								: atomFactory.getMutableTripleBodyAtom(getFreshVariable(), ope.getIRI(), r0);
  					}
  					else {
  						DataPropertyExpression dpe = ((DataSomeValuesFrom)con).getProperty();
  						return atomFactory.getMutableTripleBodyAtom(r0, dpe.getIRI(), getFreshVariable());
  					}
  				})
  				.collect(ImmutableCollectors.toList());
  	}
docs: /*
  returns atoms E of a given collection of tree witness generators;
  the `free' variable of the generators is replaced by the term r0;