2012-11-25 94 views
1

我想獲取在端點linkedlifedata.com/sparql上做出的查詢的結果集和我想要獲取的對象是「跡象」,這是一個段落。我如何在netbeans中打印它?代碼是: -Sparql查詢,獲取輸出

String qs1 = "PREFIX skos: <http://www.w3.org/2004/02/skos/core#>"+ 
"PREFIX drugbank: <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/>"+ 
"select ?indication"+ 
"where {"+ 
"?drug drugbank:indication ?indication."+ 
"?drug drugbank:genericName ?drugname."+ 
"filter(regex(?drugname, 'Omalizumab','i'))"+ 
"}LIMIT 100 "; 

com.hp.hpl.jena.query.Query query = QueryFactory.create(qs1); 
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://linkedlifedata.com/sparql", query); 
String o; 
try{ 
ResultSet results = qexec.execSelect(); 
for (; results.hasNext() ;) 
{ 
QuerySolution soln = results.nextSolution() ; 
o = soln.get("indication").toString(); 
System.out.println(o); 
} 
} 
finally { 
qexec.close(); 
} 
} 

我應用了上面的方法。但它顯示空指針異常。查詢運行良好(在端點上檢查)。我以前使用isLiteral()函數獲得了藥物名稱(一個小字符串),但對於「指示」這是一個段落,它沒有發生。 plz幫助,它是緊急的。謝謝

+0

你可以告訴我們空指針在哪裏出現(哪一行完全) – Jerven

+0

在o = soln.get(「indication」)。toString(); – user1851265

回答

2

我沒有發現這件事,直到我跑了它。你的問題是這樣的:

"select ?indication"+ 
"where {"+ 

在選擇行的末尾沒有空格,所以查詢居然是:

... select ?indicationwhere { ... } 

因此沒有綁定?indication,和一個空指針異常。在那裏粘貼換行符或空格。