2016-07-07 26 views
0

Die folgende SPARQL-Abfrage gibt 20 Ergebnisse zurück. Ich habe erwartet, 10 gegeben die OFFSET und LIMITOpenlink Virtuoso SPARQL OFFSET- und LIMIT-Verhalten

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX dbpedia:<http://dbpedia.org/resource/> 
PREFIX dbpedia-owl:<http://dbpedia.org/ontology/> 
PREFIX dbpprop: <http://dbpedia.org/property/> 
SELECT ?person_id ?person2_id 
WHERE { 
    { 
     SELECT DISTINCT ?person_id ?person2_id WHERE { 
      ?person rdf:type dbpedia-owl:Person . 
      ?person2 rdf:type dbpedia-owl:Person . 
      ?person ?link ?person2 . 
      ?person dbpedia-owl:wikiPageID ?person_id . 
      ?person2 dbpedia-owl:wikiPageID ?person2_id . 
      FILTER (?link = dbpedia-owl:wikiPageWikiLink) . 
     } ORDER BY ?link 
    } 
} OFFSET 10 LIMIT 10 

ich den Code in dem SPARQL-Endpunkt eines Openlink Virtuoso Servers auszuführen.

Was ist das Problem mit der Abfrage?

+3

Klingt wie ein Fehler. Wenn Sie "LIMIT 10" gesagt haben, sollten Sie nur 10 Ergebnisse erhalten. Der OFFSET ist jedoch bedeutungslos ohne ORDER BY in der Abfrage. (Ich weiß, dass es in der Unterabfrage ein ORDER BY gibt, aber für die äußere Abfrage ist das egal.) –

+2

Sollte in der Virtuoso-Mailingliste angegeben werden, aber mit zusätzlichen Informationen wie der Version von Virtuoso und vielleicht einigen weiteren Statistiken. – AKSW

+2

Wie @AKSW nahelegt, sind Versionsdetails für eine nützliche Antwort unerlässlich. Außerdem eignen sich Virtuoso-spezifische Ressourcen oft am besten für Virtuose-spezifische Fragen. zB die [Virtuoso Users Mailingliste] (https://sourceforge.net/p/virtuoso/mailman/virtuoso-users/), das [OpenLink Support Forum] (http://boards.openlinksw.com/support/index) .php), ein [OpenLink Support Case] ​​(http://support.openlinksw.com/support/online-support.vsp). (ObDisclaimer: Ich arbeite für [OpenLink Software] (http://www.openlinksw.com/), Produzent von [Virtuoso] (http://virtuoso.openlinkssw.com/).) – TallTed

Antwort

0

Die Klausel, die die Abfrage sich seltsam verhält, ist ORDER BY ?link. Ersetzen Sie es mit ORDER BY ?person_id funktioniert alles wie erwartet. Es ergibt für mich immer noch keinen Sinn, aber ich bin ein Neuling, der auch SPARQL benutzt.