Class QueryResults

  • Direct Known Subclasses:
    QueryResultUtil

    public class QueryResults
    extends org.eclipse.rdf4j.common.iteration.Iterations
    Utility methods related to query results.
    Author:
    Jeen Broekstra
    • Constructor Detail

      • QueryResults

        public QueryResults()
    • Method Detail

      • asModel

        public static org.eclipse.rdf4j.model.Model asModel​(org.eclipse.rdf4j.common.iteration.CloseableIteration<? extends org.eclipse.rdf4j.model.Statement,​? extends org.eclipse.rdf4j.common.exception.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.
        Returns:
        a Model containing all statements obtained from the specified source iteration.
        Throws:
        QueryEvaluationException
      • asModel

        public static org.eclipse.rdf4j.model.Model asModel​(org.eclipse.rdf4j.common.iteration.CloseableIteration<? extends org.eclipse.rdf4j.model.Statement,​? extends org.eclipse.rdf4j.common.exception.RDF4JException> iteration,
                                                            org.eclipse.rdf4j.model.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.
        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<org.eclipse.rdf4j.model.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 org.eclipse.rdf4j.model.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
      • 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

        @Deprecated(since="4.1.2")
        public static GraphQueryResult parseGraphBackground​(InputStream in,
                                                            String baseURI,
                                                            RDFFormat format,
                                                            WeakReference<?> callerReference)
                                                     throws UnsupportedRDFormatException
        Deprecated.
        WeakReference callerReference argument will be removed
        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

        @Deprecated(since="4.1.2")
        public static GraphQueryResult parseGraphBackground​(InputStream in,
                                                            String baseURI,
                                                            RDFParser parser,
                                                            WeakReference<?> callerReference)
        Deprecated.
        WeakReference callerReference argument will be removed
        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.
      • 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 BindingSets 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
      • 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 BindingSets 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