Как отлаживать запросы SPARQL, отправляемые в удаленное хранилище triplestore в GraphDB ? (привязка переменных в предложении SERVICE)

#sparql #graphdb

Вопрос:

При написании запроса SPARQL к моему локальному экземпляру GraphDB с использованием ключевого слова СЛУЖБЫ, которое запрашивает удаленное хранилище триплетов, как я могу отладить запрос, который фактически отправляется в удаленное хранилище триплетов ?

Моя проблема в том, что я использовал подвыборку в своем локальном графике, которая должна связывать некоторые переменные, которые должны быть переданы в предложение SERVICE, но, вероятно, это не так. Мне нужно понять, как выполняется предложение SERVICE.

Помимо подвыборки, есть ли что-нибудь еще, что я могу сделать, чтобы контролировать порядок или выполнение между локальным запросом и предложением СЛУЖБЫ ?

Мой скелет запроса таков

 SELECT ?localUri ?remoteUri
WHERE {

  # subselect : should be executed first
  {
  SELECT ?localUri ?remoteReference
  WHERE {
    # here : build/select ?remoteReference
  }
  }


  # SERVICE : should be executed with ?remoteReference bound
  SERVICE <http://remoteService> {
    ?remoteUri ex:reference ?remoteReference .
  }

}
 

Похоже, предложение SERVICE выполняется без привязки переменной ?remoteReference.

FWIW удаленная служба-это виртуозный триплстор в http://publications.europa.eu/webapi/rdf/sparql

Спасибо!

Комментарии:

1. вы можете использовать Wireshark и фильтр для http-запросов на удаленной конечной точке. В вашем случае введите ip.dst=54.154.48.65 amp;amp; http в текстовое поле фильтр.

2. кроме этого, вы также можете попробовать запустить GraphDB с ./graphdb -Dreuse.vars.in.subselects