добавить тайм-аут к Джене (для sparql) с использованием dbpedia в качестве конечной точки? - PullRequest
4 голосов
/ 19 января 2011

Я хотел бы знать, есть ли способ использовать Jena для выполнения запроса sparql через dbpedia и использовать настройку тайм-аута, указанную в http://dbpedia.org/sparql (если вы видите эту страницу, вы можете увидеть, что естьспособ установить время ожидания), это необходимо, так как я хотел бы сделать большой запрос, и я несколько раз пытался (через страницу), что без установки времени ожидания, я не могу получить результат (это всегда исключение тайм-аута транзакции)

отредактировано: я использую Java.

Ответы [ 2 ]

3 голосов
/ 19 января 2011

Для выполнения запроса, я полагаю, вы используете:

QueryExecutionFactory.sparqlService(String service, Query query) 

Одна вещь, которую вы можете попробовать:

QueryEngineHTTP objectToExec=QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql",YOUR_QUERY);
objectToExec.addParam("timeout","5000"); //5 sec
resultset=objectToExec.execSelect();

Кажется, что QueryEngineHTTP реализует QueryExecutionкоторый имеет addParam метод.Нет описания этого метода, но я предполагаю, что он добавляет параметр к HTTP-запросу.

Дайте мне знать, если он работает !!

Отредактировано , чтобы исправить ошибкуна самом деле все было наоборот ... QueryEngineHTTP реализует QueryExecution

0 голосов
/ 04 июля 2016

Я бы сделал это так:

String service = "http://dbpedia.org/sparql";
QueryExecution qexec = QueryExecutionFactory.create(query, service) ;
qexec.setTimeout(10, TimeUnit.MINUTES);

ResultSet results = qexec.execSelect() ;
String result = ResultSetFormatter.asText(results);

Если по истечении установленного лимита времени генерируется исключение org.apache.jena.query.QueryCancelledException.

...