<https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modOffset>
        a                          <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"modOffset\">OFFSET</h3>\n\n<p><code>OFFSET</code> causes the solutions generated to start after the specified number of solutions. An <code>OFFSET</code> of zero has no effect.</p>\n<p>Using <code>LIMIT</code> and <code>OFFSET</code> to select different subsets of the query solutions will not be useful unless the order is made predictable by using <code>ORDER BY</code>.</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX foaf:    &lt;http://xmlns.com/foaf/0.1/&gt;\n\nSELECT  ?name\nWHERE   { ?x foaf:name ?name }\nORDER BY ?name\nLIMIT   5\nOFFSET  10\n</code></pre></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#modOffset> ;
        <https://schema.org/name>  "OFFSET" .

<https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modResultLimit>
        a                          <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"modResultLimit\">LIMIT</h3>\n\n<p>The <code>LIMIT</code> clause puts an upper bound on the number of solutions returned. If the number of actual solutions, after <code>OFFSET</code> is applied, is greater than the limit, then at most the limit number of solutions will be returned.</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX foaf:    &lt;http://xmlns.com/foaf/0.1/&gt;\n\nSELECT ?name\nWHERE { ?x foaf:name ?name }\nLIMIT 20\n</code></pre>\n<p>A <code>LIMIT</code> of 0 would cause no results to be returned. A limit may not be negative.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#modResultLimit> ;
        <https://schema.org/name>  "LIMIT" .

<https://kgdev.net/specifications/sparql11-query/solutionModifiers/>
        a       <https://www.w3.org/ns/ldt/document-hierarchy#Item> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                <https://kgdev.net/specifications/sparql11-query/solutionModifiers/#this> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2>
                <https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modOrderBy> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_3>
                <https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modProjection> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_4>
                <https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modDuplicates> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_5>
                <https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modOffset> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#_6>
                <https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modResultLimit> ;
        <http://purl.org/dc/terms/modified>
                "2023-07-10T15:46:30.239Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
        <http://purl.org/dc/terms/title>
                "Solution Sequences and Modifiers" ;
        <http://rdfs.org/sioc/ns#has_container>
                <https://kgdev.net/specifications/sparql11-query/> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#solutionModifiers> ;
        <http://xmlns.com/foaf/0.1/primaryTopic>
                <https://kgdev.net/specifications/sparql11-query/solutionModifiers/#this> .

<https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modProjection>
        a                          <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"modProjection\">Projection</h3>\n\n<p>The solution sequence can be transformed into one involving only a subset of the variables. For each solution in the sequence, a new solution is formed using a specified selection of the variables using the SELECT query form.</p>\n<p>The following example shows a query to extract just the names of people described in an RDF graph using FOAF properties.</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">@prefix foaf:        &lt;http://xmlns.com/foaf/0.1/&gt; .\n\n_:a  foaf:name       \"Alice\" .\n_:a  foaf:mbox       &lt;mailto:alice@work.example&gt; .\n\n_:b  foaf:name       \"Bob\" .\n_:b  foaf:mbox       &lt;mailto:bob@work.example&gt; .\n</code></pre>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX foaf:       &lt;http://xmlns.com/foaf/0.1/&gt;\nSELECT ?name\nWHERE\n { ?x foaf:name ?name }\n</code></pre>\n<table class=\"resultTable table table-striped\">\n   <tr>\n      <th colspan=\"1\" rowspan=\"1\">name</th>\n   </tr>\n   <tr>\n      <td colspan=\"1\" rowspan=\"1\">\"Bob\"</td>\n   </tr>\n   <tr>\n      <td colspan=\"1\" rowspan=\"1\">\"Alice\"</td>\n   </tr>\n</table></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#modProjection> ;
        <https://schema.org/name>  "Projection" .

<https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modDuplicates>
        a                          <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"modDuplicates\">Duplicate Solutions</h3>\n\n<p>A solution sequence with no <code>DISTINCT</code> or <code>REDUCED</code> query modifier will preserve duplicate solutions.</p>\n<p>Data:</p>\n<pre xml:space=\"preserve\"><code class=\"language-turtle\">@prefix  foaf:  &lt;http://xmlns.com/foaf/0.1/&gt; .\n\n_:x    foaf:name   \"Alice\" .\n_:x    foaf:mbox   &lt;mailto:alice@example.com&gt; .\n\n_:y    foaf:name   \"Alice\" .\n_:y    foaf:mbox   &lt;mailto:asmith@example.com&gt; .\n\n_:z    foaf:name   \"Alice\" .\n_:z    foaf:mbox   &lt;mailto:alice.smith@example.com&gt; .\n</code></pre>\n<p>Query:</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX foaf:    &lt;http://xmlns.com/foaf/0.1/&gt;\nSELECT ?name WHERE { ?x foaf:name ?name }\n</code></pre>\n<p>Results:</p>\n<table class=\"resultTable table table-striped\">\n   <tr>\n      <th colspan=\"1\" rowspan=\"1\">name</th>\n   </tr>\n   <tr>\n      <td colspan=\"1\" rowspan=\"1\">\"Alice\"</td>\n   </tr>\n   <tr>\n      <td colspan=\"1\" rowspan=\"1\">\"Alice\"</td>\n   </tr>\n   <tr>\n      <td colspan=\"1\" rowspan=\"1\">\"Alice\"</td>\n   </tr>\n</table>\n\n<p>The modifiers <code>DISTINCT</code> and <code>REDUCED</code> affect whether duplicates are included in the query results.</p>\n<h4 id=\"modDistinct\">DISTINCT</h4>\n\n<p>The <code>DISTINCT</code> solution modifier eliminates duplicate solutions. Only one solution solution that binds the same variables to the same RDF terms is returned from the query.</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX foaf:    &lt;http://xmlns.com/foaf/0.1/&gt;\nSELECT DISTINCT ?name WHERE { ?x foaf:name ?name }\n</code></pre>\n<table class=\"resultTable table table-striped\">\n   <tr>\n      <th colspan=\"1\" rowspan=\"1\">name</th>\n   </tr>\n   <tr>\n      <td colspan=\"1\" rowspan=\"1\">\"Alice\"</td>\n   </tr>\n</table>\n\n<p>Note that, per the <a href=\"#this\" shape=\"rect\">order of solution sequence modifiers</a>, duplicates are eliminated before either limit or offset is applied.</p>\n<h4 id=\"modReduced\">REDUCED</h4>\n\n<p>While the <code>DISTINCT</code> modifier ensures that duplicate solutions are eliminated from the solution set, <code>REDUCED</code> simply permits them to be eliminated. The cardinality of any set of variable bindings in a <code>REDUCED</code> solution set is at least one and not more than the cardinality of the solution set with no <code>DISTINCT</code> or <code>REDUCED</code> modifier. For example, using the data above, the query</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX foaf:    &lt;http://xmlns.com/foaf/0.1/&gt;\nSELECT REDUCED ?name WHERE { ?x foaf:name ?name }\n</code></pre>\n<p>may have one, two (shown here) or three solutions:</p>\n<table class=\"resultTable table table-striped\">\n   <tr>\n      <th colspan=\"1\" rowspan=\"1\">name</th>\n   </tr>\n   <tr>\n      <td colspan=\"1\" rowspan=\"1\">\"Alice\"</td>\n   </tr>\n   <tr>\n      <td colspan=\"1\" rowspan=\"1\">\"Alice\"</td>\n   </tr>\n</table></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/2000/01/rdf-schema#seeAlso>
                <https://kgdev.net/specifications/sparql11-query/solutionModifiers/#this> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#modDuplicates> ;
        <https://schema.org/name>  "Duplicate Solutions" .

<https://kgdev.net/specifications/sparql11-query/solutionModifiers/#this>
        a                          <https://kgdev.net/ns#Definition> , <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h2 id=\"this\">Solution Sequences and Modifiers</h2>\n\n<p>Query patterns generate an unordered collection of solutions, each <a href=\"../sparqlDefinition/initDefinitions/#defn_sparqlSolutionMapping\" shape=\"rect\">solution</a> being a partial function from variables to RDF terms. These solutions are then treated as a sequence (a solution sequence), initially in no specific order; any sequence modifiers are then applied to create another sequence. Finally, this latter sequence is used to generate one of the results of a <a href=\"../QueryForms/#this\" shape=\"rect\">SPARQL query form</a>.</p>\n<p>A  solution sequence modifier  is one of:</p>\n<ul>\n<li><a href=\"#modOrderBy\" shape=\"rect\">Order</a> modifier: put the solutions in order</li>\n<li><a href=\"#modProjection\" shape=\"rect\">Projection</a> modifier: choose certain variables</li>\n<li><a href=\"#modDistinct\" shape=\"rect\">Distinct</a> modifier: ensure solutions in the sequence are unique</li>\n<li><a href=\"#modReduced\" shape=\"rect\">Reduced</a> modifier: permit elimination of some non-distinct solutions</li>\n<li><a href=\"#modOffset\" shape=\"rect\">Offset</a> modifier: control where the solutions start from in the overall sequence of solutions</li>\n<li><a href=\"#modResultLimit\" shape=\"rect\">Limit</a> modifier: restrict the number of solutions</li>\n</ul>\n<p>Modifiers are applied in the order given by the list above.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#solutionModifiers> ;
        <https://schema.org/name>  "Solution Sequences and Modifiers" .

<https://kgdev.net/specifications/sparql11-query/solutionModifiers/#modOrderBy>
        a                          <https://w3id.org/atomgraph/linkeddatahub#Content> ;
        <http://www.w3.org/1999/02/22-rdf-syntax-ns#value>
                "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h3 id=\"modOrderBy\">ORDER BY</h3>\n\n<p>The <code>ORDER BY</code> clause establishes the order of a solution sequence.</p>\n<p>Following the <code>ORDER BY</code> clause is a sequence of order comparators, composed of an expression and an optional order modifier (either <code>ASC()</code> or <code>DESC()</code>). Each ordering comparator is either ascending (indicated by the <code>ASC()</code> modifier or by no modifier) or descending (indicated by the <code>DESC()</code> modifier).</p>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX foaf:    &lt;http://xmlns.com/foaf/0.1/&gt;\n\nSELECT ?name\nWHERE { ?x foaf:name ?name }\nORDER BY ?name\n</code></pre>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX     :    &lt;http://example.org/ns#&gt;\nPREFIX foaf:    &lt;http://xmlns.com/foaf/0.1/&gt;\n\nSELECT ?name\nWHERE { ?x foaf:name ?name ; :empId ?emp }\nORDER BY DESC(?emp)\n</code></pre>\n<pre xml:space=\"preserve\"><code class=\"language-sparql\">PREFIX     :    &lt;http://example.org/ns#&gt;\nPREFIX foaf:    &lt;http://xmlns.com/foaf/0.1/&gt;\n\nSELECT ?name\nWHERE { ?x foaf:name ?name ; :empId ?emp }\nORDER BY ?name DESC(?emp)\n</code></pre>\n<p>The <a href=\"../expressions/OperatorMapping/#op_lt\" shape=\"rect\">\"&lt;\" operator</a> (see the <a href=\"../expressions/OperatorMapping/#this\" shape=\"rect\">Operator Mapping</a> and <a href=\"../expressions/OperatorMapping/#operatorExtensibility\" shape=\"rect\">17.3.1 Operator Extensibility</a>) defines the relative order of pairs of <code>numerics</code>, <code>simple literals</code>, <code>xsd:strings</code>, <code>xsd:booleans</code> and <code>xsd:dateTimes</code>. Pairs of IRIs are ordered by comparing them as <code>simple literals</code>.</p>\n<p>SPARQL also fixes an order between some kinds of RDF terms that would not otherwise be ordered:</p>\n<ol>\n<li>(Lowest) no value assigned to the variable or expression in this solution.</li>\n<li>Blank nodes</li>\n<li>IRIs</li>\n<li>RDF literals</li>\n</ol>\n<p>A plain literal is lower than an RDF literal with type <code>xsd:string</code> of the same lexical form.</p>\n<p>SPARQL does not define a total ordering of all possible RDF terms. Here are a few examples of pairs of terms for which the relative order is undefined:</p>\n<ul>\n<li>\"a\" and \"a\"@en_gb (a simple literal and a literal with a language tag)</li>\n<li>\"a\"@en_gb and \"b\"@en_gb (two literals with language tags)</li>\n<li>\"a\" and \"1\"^^xsd:integer (a simple literal and a literal with a supported datatype)</li>\n<li>\"1\"^^my:integer and \"2\"^^my:integer (two unsupported datatypes)</li>\n<li>\"1\"^^xsd:integer and \"2\"^^my:integer (a supported datatype and an unsupported datatype)</li>\n</ul>\n<p>This list of variable bindings is in ascending order:</p>\n<table class=\"resultTable table table-striped\">\n   <thead>\n      <tr>\n         <th colspan=\"1\" rowspan=\"1\">RDF Term</th>\n         <th colspan=\"1\" rowspan=\"1\">Reason</th>\n      </tr>\n   </thead>\n   <tbody>\n      <tr>\n         <td colspan=\"1\" rowspan=\"1\"></td>\n         <td colspan=\"1\" rowspan=\"1\">Unbound results sort earliest.</td>\n      </tr>\n      <tr>\n         <td colspan=\"1\" rowspan=\"1\">\n            <code>_:z</code>\n         </td>\n         <td colspan=\"1\" rowspan=\"1\">Blank nodes follow unbound.</td>\n      </tr>\n      <tr>\n         <td colspan=\"1\" rowspan=\"1\">\n            <code>_:a</code>\n         </td>\n         <td colspan=\"1\" rowspan=\"1\">There is no relative ordering of blank nodes.</td>\n      </tr>\n      <tr>\n         <td colspan=\"1\" rowspan=\"1\">\n            <code>&lt;http://script.example/Latin&gt;</code>\n         </td>\n         <td colspan=\"1\" rowspan=\"1\">IRIs follow blank nodes.</td>\n      </tr>\n      <tr>\n         <td colspan=\"1\" rowspan=\"1\">\n            <code>&lt;http://script.example/Кириллица&gt;</code>\n         </td>\n         <td colspan=\"1\" rowspan=\"1\">The character in the 23rd position, \"К\", has a unicode codepoint 0x41A, which is higher than 0x4C (\"L\").</td>\n      </tr>\n      <tr>\n         <td colspan=\"1\" rowspan=\"1\">\n            <code>&lt;http://script.example/漢字&gt;</code>\n         </td>\n         <td colspan=\"1\" rowspan=\"1\">The character in the 23rd position, \"漢\", has a unicode codepoint 0x6F22, which is higher than 0x41A (\"К\").</td>\n      </tr>\n      <tr>\n         <td colspan=\"1\" rowspan=\"1\">\n            <code>\"http://script.example/Latin\"</code>\n         </td>\n         <td colspan=\"1\" rowspan=\"1\">Simple literals follow IRIs.</td>\n      </tr>\n      <tr>\n         <td colspan=\"1\" rowspan=\"1\">\n            <code>\"http://script.example/Latin\"^^xsd:string</code>\n         </td>\n         <td colspan=\"1\" rowspan=\"1\">xsd:strings follow simple literals.</td>\n      </tr>\n   </tbody>\n</table>\n\n<p>The ascending order of two solutions with respect to an ordering comparator is established by substituting the solution bindings into the expressions and comparing them with the <a href=\"../expressions/OperatorMapping/#op_lt\" shape=\"rect\">\"&lt;\" operator</a>. The descending order is the reverse of the ascending order.</p>\n<p>The relative order of two solutions is the relative order of the two solutions with respect to the first ordering comparator in the sequence. For solutions where the substitutions of the solution bindings produce the same RDF term, the order is the relative order of the two solutions with respect to the next ordering comparator. The relative order of two solutions is undefined if no order expression evaluated for the two solutions produces distinct RDF terms.</p>\n<p>Ordering a sequence of solutions always results in a sequence with the same number of solutions in it.</p>\n<p>Using <code>ORDER BY</code> on a solution sequence for a <code>CONSTRUCT</code> or <code>DESCRIBE</code> query has no direct effect because only <code>SELECT</code> returns a sequence of results. Used in combination with <code>LIMIT</code> and <code>OFFSET</code>, <code>ORDER BY</code> can be used to return results generated from a different slice of the solution sequence. An <code>ASK</code> query does not include <code>ORDER BY</code>, <code>LIMIT</code> or <code>OFFSET</code>.</p></div>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> ;
        <http://www.w3.org/2000/01/rdf-schema#seeAlso>
                <https://kgdev.net/specifications/sparql11-query/expressions/OperatorMapping/#op_lt> , <https://kgdev.net/specifications/sparql11-query/expressions/OperatorMapping/#operatorExtensibility> , <https://kgdev.net/specifications/sparql11-query/expressions/OperatorMapping/#this> ;
        <http://www.w3.org/ns/prov#wasDerivedFrom>
                <https://www.w3.org/TR/sparql11-query/#modOrderBy> ;
        <https://schema.org/name>  "ORDER BY" .
