SPARQL在Java中同时查询?

时间:2012-07-23 14:05:43

标签: java sparql jena

我正在编写一个JUnit测试,用于检查大约一百个SPARQL查询的结果。

for(String query: queries)
{
 QueryEngineHTTP qe = new QueryEngineHTTP(endpoint, query);
 ResultSet rs = qe.execSelect();
 while(rs.hasNext()) {...}
}

为了优化性能,我希望同时执行一些查询,但不能同时执行所有查询。耶拿或其他图书馆是否有这样的机制?我可以使用线程池,但我想优化的解决方案会更好,因为它可以:

  • 最小化开销
  • 通过在存在此类协议的情况下立即向服务器提供所有查询来最小化延迟
  • 指定最大数量的并发查询每个端点,这样如果我有50个DBpedia查询和50个LinkedGeoData查询,那么它将同时运行5个
  • 估计查询的运行时间,以便它可以先启动更快的查询
  • 确定哪个查询顺序最适合SPARQL端点缓存

1 个答案:

答案 0 :(得分:2)

您可能想看一下我作为工作的一部分开发的开源工具,我的公司在BSD许可下发布的工具非常简单SPARQL Query Benchmarker

它没有您正在寻找的所有功能,但它使用Jena并且具有一些利用Java并发框架进行并发查询的功能,因此应该为您提供一些有用的代码来帮助您入门。