Omitting variables in Sparql changes results












2














I'm querying some data from the Sparql endpoint of the public records of the votings of the Council of European Union.



Currently, I want to get session and act numbers for recorded votes, which I can achieve with this query:



PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

SELECT ?recordedVote ?sessionNumber ?act ?actNumber
WHERE {
?recordedVote a <http://purl.org/linked-data/cube#Observation>.
?recordedVote qb:sessionnrnumber ?session.
?session skos:prefLabel ?sessionNumber.
?recordedVote qb:act ?act.
?act skos:prefLabel ?actNumber

}
LIMIT 10


Note that LIMIT 10 is there only to speed up execution during testing the query. Here are the results:
enter image description here



However, I have to include ?act in the select list, otherwise the results are wrong:



enter image description here



Why is that?










share|improve this question



























    2














    I'm querying some data from the Sparql endpoint of the public records of the votings of the Council of European Union.



    Currently, I want to get session and act numbers for recorded votes, which I can achieve with this query:



    PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
    PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
    PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
    PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

    SELECT ?recordedVote ?sessionNumber ?act ?actNumber
    WHERE {
    ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
    ?recordedVote qb:sessionnrnumber ?session.
    ?session skos:prefLabel ?sessionNumber.
    ?recordedVote qb:act ?act.
    ?act skos:prefLabel ?actNumber

    }
    LIMIT 10


    Note that LIMIT 10 is there only to speed up execution during testing the query. Here are the results:
    enter image description here



    However, I have to include ?act in the select list, otherwise the results are wrong:



    enter image description here



    Why is that?










    share|improve this question

























      2












      2








      2







      I'm querying some data from the Sparql endpoint of the public records of the votings of the Council of European Union.



      Currently, I want to get session and act numbers for recorded votes, which I can achieve with this query:



      PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
      PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
      PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
      PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

      SELECT ?recordedVote ?sessionNumber ?act ?actNumber
      WHERE {
      ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
      ?recordedVote qb:sessionnrnumber ?session.
      ?session skos:prefLabel ?sessionNumber.
      ?recordedVote qb:act ?act.
      ?act skos:prefLabel ?actNumber

      }
      LIMIT 10


      Note that LIMIT 10 is there only to speed up execution during testing the query. Here are the results:
      enter image description here



      However, I have to include ?act in the select list, otherwise the results are wrong:



      enter image description here



      Why is that?










      share|improve this question













      I'm querying some data from the Sparql endpoint of the public records of the votings of the Council of European Union.



      Currently, I want to get session and act numbers for recorded votes, which I can achieve with this query:



      PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
      PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
      PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
      PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

      SELECT ?recordedVote ?sessionNumber ?act ?actNumber
      WHERE {
      ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
      ?recordedVote qb:sessionnrnumber ?session.
      ?session skos:prefLabel ?sessionNumber.
      ?recordedVote qb:act ?act.
      ?act skos:prefLabel ?actNumber

      }
      LIMIT 10


      Note that LIMIT 10 is there only to speed up execution during testing the query. Here are the results:
      enter image description here



      However, I have to include ?act in the select list, otherwise the results are wrong:



      enter image description here



      Why is that?







      sparql






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 27 '18 at 22:09









      Milos

      306215




      306215
























          1 Answer
          1






          active

          oldest

          votes


















          3














          The result is not "wrong", they're both correct answers: they give you a subset of 10 solutions of all results that match the query.



          The reason you're getting different solutions in your result is that the SPARQL endpoint optimizes the query execution differently when you leave ?act out of the SELECT clause. It probably switches to a different internal index, and returns solutions in a different order. If you were to leave out the limit, you'd see that both results are the same, just in a different order.



          You can fix this by forcing a specific order to your query, with an ORDER BY clause. For example:



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?act ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber

          }
          ORDER BY ?act
          LIMIT 10


          and



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber
          }
          ORDER BY ?act
          LIMIT 10


          will return the same result (minus a column, of course).






          share|improve this answer





















          • Thank you very much. :)
            – Milos
            Dec 27 '18 at 23:13











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53951363%2fomitting-variables-in-sparql-changes-results%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          3














          The result is not "wrong", they're both correct answers: they give you a subset of 10 solutions of all results that match the query.



          The reason you're getting different solutions in your result is that the SPARQL endpoint optimizes the query execution differently when you leave ?act out of the SELECT clause. It probably switches to a different internal index, and returns solutions in a different order. If you were to leave out the limit, you'd see that both results are the same, just in a different order.



          You can fix this by forcing a specific order to your query, with an ORDER BY clause. For example:



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?act ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber

          }
          ORDER BY ?act
          LIMIT 10


          and



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber
          }
          ORDER BY ?act
          LIMIT 10


          will return the same result (minus a column, of course).






          share|improve this answer





















          • Thank you very much. :)
            – Milos
            Dec 27 '18 at 23:13
















          3














          The result is not "wrong", they're both correct answers: they give you a subset of 10 solutions of all results that match the query.



          The reason you're getting different solutions in your result is that the SPARQL endpoint optimizes the query execution differently when you leave ?act out of the SELECT clause. It probably switches to a different internal index, and returns solutions in a different order. If you were to leave out the limit, you'd see that both results are the same, just in a different order.



          You can fix this by forcing a specific order to your query, with an ORDER BY clause. For example:



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?act ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber

          }
          ORDER BY ?act
          LIMIT 10


          and



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber
          }
          ORDER BY ?act
          LIMIT 10


          will return the same result (minus a column, of course).






          share|improve this answer





















          • Thank you very much. :)
            – Milos
            Dec 27 '18 at 23:13














          3












          3








          3






          The result is not "wrong", they're both correct answers: they give you a subset of 10 solutions of all results that match the query.



          The reason you're getting different solutions in your result is that the SPARQL endpoint optimizes the query execution differently when you leave ?act out of the SELECT clause. It probably switches to a different internal index, and returns solutions in a different order. If you were to leave out the limit, you'd see that both results are the same, just in a different order.



          You can fix this by forcing a specific order to your query, with an ORDER BY clause. For example:



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?act ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber

          }
          ORDER BY ?act
          LIMIT 10


          and



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber
          }
          ORDER BY ?act
          LIMIT 10


          will return the same result (minus a column, of course).






          share|improve this answer












          The result is not "wrong", they're both correct answers: they give you a subset of 10 solutions of all results that match the query.



          The reason you're getting different solutions in your result is that the SPARQL endpoint optimizes the query execution differently when you leave ?act out of the SELECT clause. It probably switches to a different internal index, and returns solutions in a different order. If you were to leave out the limit, you'd see that both results are the same, just in a different order.



          You can fix this by forcing a specific order to your query, with an ORDER BY clause. For example:



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?act ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber

          }
          ORDER BY ?act
          LIMIT 10


          and



          PREFIX codi: <http://data.consilium.europa.eu/def/codi/>
          PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
          PREFIX ecv: <http://data.consilium.europa.eu/data/public_voting/rdf/schema/>
          PREFIX qb: <http://data.consilium.europa.eu/data/public_voting/qb/dimensionproperty/>

          SELECT ?recordedVote ?sessionNumber ?actNumber
          WHERE {
          ?recordedVote a <http://purl.org/linked-data/cube#Observation>.
          ?recordedVote qb:sessionnrnumber ?session.
          ?session skos:prefLabel ?sessionNumber.
          ?recordedVote qb:act ?act.
          ?act skos:prefLabel ?actNumber
          }
          ORDER BY ?act
          LIMIT 10


          will return the same result (minus a column, of course).







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Dec 27 '18 at 22:24









          Jeen Broekstra

          15.9k43760




          15.9k43760












          • Thank you very much. :)
            – Milos
            Dec 27 '18 at 23:13


















          • Thank you very much. :)
            – Milos
            Dec 27 '18 at 23:13
















          Thank you very much. :)
          – Milos
          Dec 27 '18 at 23:13




          Thank you very much. :)
          – Milos
          Dec 27 '18 at 23:13


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53951363%2fomitting-variables-in-sparql-changes-results%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Monofisismo

          Angular Downloading a file using contenturl with Basic Authentication

          Olmecas