code: private SimpleGraphResultSet executeDescribeQuery(DescribeQuery inputQuery)
  			throws OntopReformulationException, OntopResultConversionException, OntopConnectionException,
  			OntopQueryEvaluationException {
  
  		ImmutableSet<String> constants = extractDescribeQueryConstants(inputQuery);
  
  		SimpleGraphResultSet describeResultSet = null;
  
  		try {
  			// execute describe <uriconst> in subject position
  			for (String constant : constants) {
  				// for each constant we execute a construct with
  				// the uri as subject, and collect the results
  				String str = SPARQLQueryUtility.getConstructSubjQuery(constant);
  				ConstructQuery constructQuery = inputQueryFactory.createConstructQuery(str);
  
  				SimpleGraphResultSet set = executeInThread(constructQuery, this::executeDescribeConstructQuery);
  				if (describeResultSet == null) { // just for the first time
  					describeResultSet = set;
  				} else if (set != null) {
  					// 2nd and manyth times execute, but collect result into one object
  					while (set.hasNext())
  						describeResultSet.addNewResult(set.next());
  				}
  			}
  			// execute describe <uriconst> in object position
  			for (String constant : constants) {
  				String str = SPARQLQueryUtility.getConstructObjQuery(constant);
  
  				ConstructQuery constructQuery = inputQueryFactory.createConstructQuery(str);
  				SimpleGraphResultSet set = executeInThread(constructQuery, this::executeDescribeConstructQuery);
  
  				if (describeResultSet == null) { // just for the first time
  					describeResultSet = set;
  				} else if (set != null) {
  					while (set.hasNext())
  						describeResultSet.addNewResult(set.next());
  				}
  			}
  			// Exception is re-cast because not due to the initial input query
  		} catch (OntopInvalidInputQueryException e) {
  			throw new OntopReformulationException(e);
  		}
  		return describeResultSet;
  	}
docs: TODO: completely refactor this old-way of processing DESCRIBE.
  ---> should be converted into 1 CONSTRUCT query