2016-07-07 8 views
0

Следующий запрос SPARQL возвращает 20 результатов. Я ожидал, что 10 приведены в OFFSET и LIMITOpenlink Virtuoso SPARQL OFFSET и LIMIT поведение

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 

я выполнить код в SPARQL конечной точки OpenLink Virtuoso Server.

В чем проблема с запросом?

+3

Звучит как ошибка. Если вы сказали «LIMIT 10», вы должны получить только 10 результатов. Однако OFFSET не имеет смысла без запроса ORDER BY по запросу. (Я знаю, что в подзапросе есть ORDER BY, но это не имеет значения для внешнего запроса.) –

+2

Должно быть сообщено в списке рассылки Virtuoso, но с дополнительной информацией, например, с версией Virtuoso и, возможно, с более подробной информацией. – AKSW

+2

Как рекомендует @AKSW, сведения о версии жизненно важны для полезного ответа. Кроме того, Virtuoso-специфические ресурсы часто лучше всего подходят для конкретных вопросов, связанных с Virtuoso; например, [Список рассылки пользователей Virtuoso] (https://sourceforge.net/p/virtuoso/mailman/virtuoso-users/), [Форумы поддержки OpenLink] (http://boards.openlinksw.com/support/index .php), [Случай поддержки OpenLink] (http://support.openlinksw.com/support/online-support.vsp). (ObDisclaimer: Я работаю для [OpenLink Software] (http://www.openlinksw.com/), производителя [Virtuoso] (http://virtuoso.openlinksw.com/).) – TallTed

ответ

0

Предложение, вызывающее странное поведение запроса, равно ORDER BY ?link. Заменяя его ORDER BY ?person_id, все работает так, как ожидалось. Мне это все еще не имеет смысла, но я тоже новичок, использующий SPARQL.