Package org.eclipse.rdf4j.query

## Class QueryResults

- java.lang.Object
- - org.eclipse.rdf4j.common.iteration.Iterations
  - - org.eclipse.rdf4j.query.QueryResults

- Direct Known Subclasses:
    `QueryResultUtil`

      public class QueryResults
      extends Iterations

  Utility methods related to query results.
  Author:
    Jeen Broekstra

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `QueryResults()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Model` | `asModel​(CloseableIteration<? extends Statement,​? extends RDF4JException> iteration)` | Get a `Model` containing all elements obtained from the specified query result.
    `static Model` | `asModel​(CloseableIteration<? extends Statement,​? extends RDF4JException> iteration, ModelFactory modelFactory)` | Get a `Model` containing all elements obtained from the specified query result.
    `static boolean` | `bindingSetsCompatible​(BindingSet bs1, BindingSet bs2)` | Check whether two `BindingSet`s are compatible.
    `static GraphQueryResult` | `distinctResults​(GraphQueryResult queryResult)` | Returns a `GraphQueryResult` that filters out any duplicate solutions from the supplied queryResult.
    `static TupleQueryResult` | `distinctResults​(TupleQueryResult queryResult)` | Returns a `TupleQueryResult` that filters out any duplicate solutions from the supplied queryResult.
    `static boolean` | `equals​(GraphQueryResult result1, GraphQueryResult result2)` | Compares two graph query results and returns `true` if they are equal.
    `static boolean` | `equals​(TupleQueryResult tqr1, TupleQueryResult tqr2)` | Compares two tuple query results and returns `true` if they are equal.Tuple query results are equal if they contain the same set of `BindingSet`s and have the same headers.
    `static List<Value>` | `getAllValues​(TupleQueryResult result, String var)` | Returns a list of values of a particular variable out of the QueryResult.
    `static boolean` | `isSubset​(TupleQueryResult tqr1, TupleQueryResult tqr2)` |
    `static GraphQueryResult` | `limitResults​(GraphQueryResult queryResult, long limit, long offset)` | Returns a `GraphQueryResult` that returns at most the specified maximum number of solutions, starting at the supplied offset.
    `static TupleQueryResult` | `limitResults​(TupleQueryResult queryResult, long limit, long offset)` | Returns a `TupleQueryResult` that returns at most the specified maximum number of solutions, starting at the supplied offset.
    `static GraphQueryResult` | `parseGraphBackground​(InputStream in, String baseURI, RDFFormat format, WeakReference<?> callerReference)` | Parses an RDF document and returns it as a GraphQueryResult object, with parsing done on a separate thread in the background. IMPORTANT: As this method will spawn a new thread in the background, it is vitally important that the resulting GraphQueryResult be closed consistently when it is no longer required, to prevent resource leaks.
    `static GraphQueryResult` | `parseGraphBackground​(InputStream in, String baseURI, RDFParser parser, WeakReference<?> callerReference)` | Parses an RDF document and returns it as a GraphQueryResult object, with parsing done on a separate thread in the background. IMPORTANT: As this method will spawn a new thread in the background, it is vitally important that the resulting GraphQueryResult be closed consistently when it is no longer required, to prevent resource leaks.
    `static void` | `report​(GraphQueryResult gqr, RDFHandler rdfHandler)` | Reports a graph query result to an `RDFHandler`.
    `static void` | `report​(TupleQueryResult tqr, QueryResultHandler handler)` | Reports a tuple query result to a `TupleQueryResultHandler`.
    `static Statement` | `singleResult​(GraphQueryResult result)` | Returns a single element from the query result.The QueryResult is automatically closed by this method.
    `static BindingSet` | `singleResult​(TupleQueryResult result)` | Returns a single element from the query result.The QueryResult is automatically closed by this method.

    - ### Methods inherited from class org.eclipse.rdf4j.common.iteration.Iterations

      `addAll, asList, asSet, closeCloseable, stream, toString, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### QueryResults

          public QueryResults()

  - ### Method Detail

    - #### asModel

          public static Model asModel​(CloseableIteration<? extends Statement,​? extends RDF4JException> iteration)
                               throws QueryEvaluationException

      Get a `Model` containing all elements obtained from the specified query result.
      Parameters:
        `iteration` - the source iteration to get the statements from. This can be a `GraphQueryResult`, a `<Statement>`, or any other instance of `<Statement>`
      Returns:
        a `Model` containing all statements obtained from the specified source iteration.
      Throws:
        `QueryEvaluationException`

    - #### asModel

          public static Model asModel​(CloseableIteration<? extends Statement,​? extends RDF4JException> iteration,
                                      ModelFactory modelFactory)
                               throws QueryEvaluationException

      Get a `Model` containing all elements obtained from the specified query result.
      Parameters:
        `iteration` - the source iteration to get the statements from. This can be a `GraphQueryResult`, a `<Statement>`, or any other instance of `<Statement>`
        `modelFactory` - the ModelFactory used to instantiate the model that gets returned.
      Returns:
        a `Model` containing all statements obtained from the specified source iteration.
      Throws:
        `QueryEvaluationException`

    - #### getAllValues

          public static List<Value> getAllValues​(TupleQueryResult result,
                                                 String var)
                                          throws QueryEvaluationException

      Returns a list of values of a particular variable out of the QueryResult.
      Parameters:
        `result` -
        `var` - variable for which list of values needs to be returned
      Returns:
        a list of Values of var
      Throws:
        `QueryEvaluationException`

    - #### singleResult

          public static Statement singleResult​(GraphQueryResult result)
                                        throws QueryEvaluationException

      Returns a single element from the query result.The QueryResult is automatically closed by this method.
      Parameters:
        `result` -
      Returns:
        a single query result element or null
      Throws:
        `QueryEvaluationException`

    - #### singleResult

          public static BindingSet singleResult​(TupleQueryResult result)
                                         throws QueryEvaluationException

      Returns a single element from the query result.The QueryResult is automatically closed by this method.
      Parameters:
        `result` -
      Returns:
        a single query result element or null
      Throws:
        `QueryEvaluationException`

    - #### distinctResults

          public static GraphQueryResult distinctResults​(GraphQueryResult queryResult)

      Returns a `GraphQueryResult` that filters out any duplicate solutions from the supplied queryResult.
      Parameters:
        `queryResult` - a queryResult containing possible duplicate statements.
      Returns:
        a `GraphQueryResult` with any duplicates filtered out.

    - #### distinctResults

          public static TupleQueryResult distinctResults​(TupleQueryResult queryResult)

      Returns a `TupleQueryResult` that filters out any duplicate solutions from the supplied queryResult.
      Parameters:
        `queryResult` - a queryResult containing possible duplicate solutions.
      Returns:
        a `TupleQueryResult` with any duplicates filtered out.

    - #### limitResults

          public static TupleQueryResult limitResults​(TupleQueryResult queryResult,
                                                      long limit,
                                                      long offset)

      Returns a `TupleQueryResult` that returns at most the specified maximum number of solutions, starting at the supplied offset.
      Parameters:
        `queryResult` - a query result possibly containing more solutions than the specified maximum.
        `limit` - the maximum number of solutions to return. If set to 0 or lower, no limit will be applied.
        `offset` - the number of solutions to skip at the beginning. If set to 0 or lower, no offset will be applied.
      Returns:
        A `TupleQueryResult` that will at return at most the specified maximum number of solutions. If neither `limit` nor `offset` are applied, this returns the original `queryResult`.

    - #### limitResults

          public static GraphQueryResult limitResults​(GraphQueryResult queryResult,
                                                      long limit,
                                                      long offset)

      Returns a `GraphQueryResult` that returns at most the specified maximum number of solutions, starting at the supplied offset.
      Parameters:
        `queryResult` - a query result possibly containing more solutions than the specified maximum.
        `limit` - the maximum number of solutions to return. If set to 0 or lower, no limit will be applied.
        `offset` - the number of solutions to skip at the beginning. If set to 0 or lower, no offset will be applied.
      Returns:
        A `GraphQueryResult` that will at return at most the specified maximum number of solutions. If neither `limit` nor `offset` are applied, this returns the original `queryResult`.

    - #### parseGraphBackground

          public static GraphQueryResult parseGraphBackground​(InputStream in,
                                                              String baseURI,
                                                              RDFFormat format,
                                                              WeakReference<?> callerReference)
                                                       throws UnsupportedRDFormatException

      Parses an RDF document and returns it as a GraphQueryResult object, with parsing done on a separate thread in the background.
      IMPORTANT: As this method will spawn a new thread in the background, it is vitally important that the resulting GraphQueryResult be closed consistently when it is no longer required, to prevent resource leaks.
      Parameters:
        `in` - The `InputStream` containing the RDF document.
        `baseURI` - The base URI for the RDF document.
        `format` - The `RDFFormat` of the RDF document.
      Returns:
        A `GraphQueryResult` that parses in the background, and must be closed to prevent resource leaks.
      Throws:
        `UnsupportedRDFormatException`

    - #### parseGraphBackground

          public static GraphQueryResult parseGraphBackground​(InputStream in,
                                                              String baseURI,
                                                              RDFParser parser,
                                                              WeakReference<?> callerReference)

      Parses an RDF document and returns it as a GraphQueryResult object, with parsing done on a separate thread in the background.
      IMPORTANT: As this method will spawn a new thread in the background, it is vitally important that the resulting GraphQueryResult be closed consistently when it is no longer required, to prevent resource leaks.
      Parameters:
        `in` - The `InputStream` containing the RDF document.
        `baseURI` - The base URI for the RDF document.
        `parser` - The `RDFParser`.
      Returns:
        A `GraphQueryResult` that parses in the background, and must be closed to prevent resource leaks.

    - #### report

          public static void report​(TupleQueryResult tqr,
                                    QueryResultHandler handler)
                             throws TupleQueryResultHandlerException,
                                    QueryEvaluationException

      Reports a tuple query result to a `TupleQueryResultHandler`.
      The `CloseableIteration.close()` method will always be called before this method returns.
      If there is an exception generated by the TupleQueryResult, `QueryResultHandler.endQueryResult()` will not be called.
      Parameters:
        `tqr` - The query result to report.
        `handler` - The handler to report the query result to.
      Throws:
        `TupleQueryResultHandlerException` - If such an exception is thrown by the used query result writer.
        `QueryEvaluationException`

    - #### report

          public static void report​(GraphQueryResult gqr,
                                    RDFHandler rdfHandler)
                             throws RDFHandlerException,
                                    QueryEvaluationException

      Reports a graph query result to an `RDFHandler`.
      The `CloseableIteration.close()` method will always be called before this method returns.
      If there is an exception generated by the GraphQueryResult, `RDFHandler.endRDF()` will not be called.
      Parameters:
        `gqr` - The query result to report.
        `rdfHandler` - The handler to report the query result to.
      Throws:
        `RDFHandlerException` - If such an exception is thrown by the used RDF writer.
        `QueryEvaluationException`

    - #### equals

          public static boolean equals​(TupleQueryResult tqr1,
                                       TupleQueryResult tqr2)
                                throws QueryEvaluationException

      Compares two tuple query results and returns `true` if they are equal.Tuple query results are equal if they contain the same set of `BindingSet`s and have the same headers. Blank nodes identifiers are not relevant for equality, they are matched by trying to find compatible mappings between BindingSets. Note that the method consumes both query results fully.
      Parameters:
        `tqr1` - the first `TupleQueryResult` to compare.
        `tqr2` - the second `TupleQueryResult` to compare.
      Returns:
        true if equal
      Throws:
        `QueryEvaluationException`

    - #### isSubset

          public static boolean isSubset​(TupleQueryResult tqr1,
                                         TupleQueryResult tqr2)
                                  throws QueryEvaluationException

      Throws:
        `QueryEvaluationException`

    - #### equals

          public static boolean equals​(GraphQueryResult result1,
                                       GraphQueryResult result2)
                                throws QueryEvaluationException

      Compares two graph query results and returns `true` if they are equal. Two graph query results are considered equal if they are isomorphic graphs. Note that the method consumes both query results fully.
      Parameters:
        `result1` - the first query result to compare
        `result2` - the second query result to compare.
      Returns:
        `true` if the supplied graph query results are isomorphic graphs, `false` otherwise.
      Throws:
        `QueryEvaluationException`
      See Also:
        `Models.isomorphic(Iterable, Iterable)`

    - #### bindingSetsCompatible

          public static boolean bindingSetsCompatible​(BindingSet bs1,
                                                      BindingSet bs2)

      Check whether two `BindingSet`s are compatible. Two binding sets are compatible if they have equal values for each variable that is bound in both binding sets.
      Parameters:
        `bs1` -
        `bs2` -
      Returns:
        true if compatible