public String getCurrentQuery() throws AutoSPARQLException {
   try {
     //			return exampleFinder.getCurrentQueryHTML();
     return exampleFinder.getCurrentQuery();
   } catch (Exception e) {
     logger.error("Error while getting current query.", e);
     throw new AutoSPARQLException(e);
   }
 }
  public PagingLoadResult<Example> getCurrentQueryResult(PagingLoadConfig config)
      throws SPARQLQueryException {
    logger.debug("Retrieving results for current query.");
    List<Example> queryResult = new ArrayList<Example>();

    String currentQuery = exampleFinder.getCurrentQuery();
    logger.debug("Current query:\n");
    logger.debug(currentQuery);
    int limit = config.getLimit();
    int offset = config.getOffset();
    int totalLength = 10;

    try {
      ResultSetRewindable rs =
          SparqlQuery.convertJSONtoResultSet(
              selectCache.executeSelectQuery(endpoint, getCountQuery(currentQuery)));
      totalLength = rs.next().getLiteral(rs.getResultVars().get(0)).getInt();
    } catch (Exception e) {
      e.printStackTrace();
    }

    try {
      ResultSetRewindable rs =
          SparqlQuery.convertJSONtoResultSet(
              selectCache.executeSelectQuery(
                  endpoint, modifyQuery(currentQuery + " LIMIT " + limit + " OFFSET " + offset)));

      String uri;
      String label = "";
      String imageURL = "";
      String comment = "";
      QuerySolution qs;
      while (rs.hasNext()) {
        qs = rs.next();
        uri = qs.getResource("x0").getURI();
        label = qs.getLiteral("label").getLexicalForm();
        queryResult.add(new Example(uri, label, imageURL, comment));
      }
    } catch (Exception e) {
      logger.error("Error while getting result for query \n" + currentQuery, e);
    }

    PagingLoadResult<Example> result = new BasePagingLoadResult<Example>(queryResult);
    result.setOffset(offset);
    result.setTotalLength(totalLength);

    return result;
  }
 public void saveSPARQLQuery(Store store) throws AutoSPARQLException {
   List<Example> posExamples = new ArrayList<Example>();
   for (String uri : exampleFinder.getPositiveExamples()) {
     posExamples.add(examplesCache.get(uri));
   }
   List<Example> negExamples = new ArrayList<Example>();
   for (String uri : exampleFinder.getNegativeExamples()) {
     negExamples.add(examplesCache.get(uri));
   }
   store.saveSPARQLQuery(
       question,
       exampleFinder.getCurrentQuery(),
       endpoint.getLabel(),
       posExamples,
       negExamples,
       exampleFinder.getLastSuggestedExample());
 }