@Override
	protected void processQueryResults(ResultSet results) {
		assert results != null;
		logger.trace("process query results");

		if (results.hasNext()) { // result set not empty
			QuerySolution qs = results.next();

			if (qs.contains("?numDefClasses")
					|| qs.contains("?numDefConcepts")
					|| qs.contains("?numDefProperties")
					|| qs.contains("?numTypedResources")) { // valid solution

				if (qs.contains("?numDefClasses"))
					numDefClasses = qs.getLiteral("?numDefClasses").getInt();
				else numDefClasses = 0;

				if (qs.contains("?numDefConcepts"))
					numDefClasses = qs.getLiteral("?numDefConcepts").getInt();
				else numDefClasses = 0;

				if (qs.contains("?numDefProperties"))
					numDefProperties = qs.getLiteral("?numDefProperties")
							.getInt();
				else numDefProperties = 0;

				if (qs.contains("?numTypedResources"))
					numTypedResources = qs.getLiteral("?numTypedResources")
							.getInt();
				else numTypedResources = 0;

				logger.debug("Query results: numDefClasses=" + numDefClasses
						+ "; numDefConcepts=" + numDefConcepts
						+ "; numDefProperties=" + numDefProperties + "; " +
						"numTypedResources=" + numTypedResources);
			} else // invalid solution
			logger.debug("invalid solution: " + qs);

		} else
		// result set empty
		logger.error("ResultSet was empty, query not executed?");
	}