SPARQL-запрос выполняется, но возвращается пустым - PullRequest
0 голосов
/ 11 декабря 2018

Невозможно получить этот запрос SPARQL, чтобы получить результаты:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT 
  ?team
  ?club
  (sql:group_concat(?coach, ";;;") as ?coaches) 
  (sql:group_concat(?president, ";;;") as ?presidents) 
  (sql:group_concat(?scorer, ";;;") as ?scorers)
  ?date 
  ?position 
  WHERE {
  SERVICE <http://it.dbpedia.org/sparql/> {
     ?value rdfs:label "Campionato italiano di calcio Serie A"@it .
     ?year <http://purl.org/dc/terms/subject> ?value . 
     ?team <http://dbpedia.org/ontology/league> ?year .
     ?team <http://it.dbpedia.org/property/presidente> ?president .
     ?team <http://dbpedia.org/ontology/coach> ?coach .
     ?team <http://it.dbpedia.org/property/campionatoPosizione> ?position .
     ?team <http://it.dbpedia.org/property/stagione> ?date .
     ?team <http://it.dbpedia.org/property/club> ?club .
     OPTIONAL { ?team <http://it.dbpedia.org/property/marcatori> ?scorer }
     FILTER( 1946 < ?date )
  }} group by ?team ?date ?position ?club LIMIT 1

Служба, использованная для его запуска: URIBURNER

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Как отмечено в комментариях -

Корень проблемы здесь - ОЧЕНЬ старый Virtuoso (06.01.3127, построенный 15 сентября 2014 г.), который предоставляет конечную точку итальянской DBpedia.Лучший вариант - убедить Марко и др. Обновить это Virtuoso.

При этом обратите внимание, что на странице написано: «(Результаты запроса ограничены 1000 записями)».Это означает, что результирующий набор усекается до 1000 записей, аналогично тому, что вы получили бы из LIMIT 1000 OFFSET 0. (Вы можете получить следующие 1000 с LIMIT 1000 OFFSET 1000. Это было бы несколько переосмысленным процессом ...)

0 голосов
/ 13 декабря 2018

Есть ли причина, по которой вы используете URI Burner?

Ваш запрос извлекает данные только из конечной точки итальянской DBpedia, поэтому:

  1. не используйте предложение SERVICE;
  2. просто запустите его на http://it.dbpedia.org/sparql!

См. Также https://stackoverflow.com/a/53529798/10719765

Кроме того, наборы результатов запроса явно ограничено 1000 строками: это также позволяет избежать тайм-аутов выполнения запроса.

Если время запроса истекло, вам необходимо реализовать механизм подкачки с помощью OFFSET и LIMIT,Например:

SELECT ?musician
WHERE { ?musician a <http://dbpedia.org/ontology/MusicalArtist> . }
OFFSET 0
LIMIT 1000

Следующая страница будет OFFSET 1000 LIMIT 2000 и т. Д.

...