#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