2012-07-23 76 views
3

我在寫一個JUnit測試,檢查大約一百個SPARQL查詢的結果。SPARQL在Java中同時查詢?

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

爲了優化性能,我想同時執行一些查詢,但不是同時執行所有查詢。耶拿或其他圖書館是否有這樣的機制?我可以使用線程池,但我猜的優化解決方案會更好,因爲它可以:

  • 減少開銷
  • 最小化的情況下,使所有查詢到服務器一次這樣的協議存在
  • 延遲
  • 指定併發查詢的最大量每個端點,所以,如果我有DBpedia中50個查詢和50 LinkedGeoData,它會立即
  • 近似查詢的運行時間運行的5,使其能夠啓動更快的人首先
  • 確定查詢順序是最好的SPARQL端點緩存
+0

你看過谷歌番石榴圖書館嗎?他們對Java Futures API有一個非常強大的擴展。我不確定這是你要找的 – 2012-07-24 01:47:20

+0

謝謝!但是,如果我理解正確,它是對一般併發性的擴展,而不是特定於SPARQL? – 2012-07-24 08:35:19

回答

2

你可能想看看一個開源工具,我發展我的工作,這部分我公司在BSD許可證下發布了名爲很簡單SPARQL Query Benchmarker

它沒有你正在尋找的所有功能,但它使用Jena並且有一定的能力可以利用Java併發框架進行併發查詢,所以應該爲你提供一些有用的代碼來幫助你開始。

+0

謝謝,我一定會看看它! – 2012-07-26 08:44:02